woocommerce_new_order 操作未返回所有订单详细信息
woocommerce_new_order action not returning all order details
我正在使用 woocommerce_new_order 操作将订单详细信息发送到 Mailchimp 列表。
// Add user to mailchimp list
function add_user_to_mailchimp($order_id) {
$order = get_post_meta($order_id);
write_log($order);
}
add_action( 'woocommerce_new_order', 'add_user_to_mailchimp', 1, 1 );
要记住的一个重要部分是用户不一定要注册帐户。
最重要的部分是检索客户的电子邮件并将其发送给 Mailchimp。我想通过使用
来实现
get_post_meta($order_id, 'billing_email', true);
但是即使我使用“_billing_email”,这个 returns 也是一个空值。
当我在日志中输出 $order 时,我得到以下输出:
[17-Jan-2017 07:47:35 UTC] Array
(
[_wc_customer_order_csv_export_is_exported] => Array
(
[0] => 0
)
[_wc_customer_order_csv_export_customer_is_exported] => Array
(
[0] => 0
)
[_order_key] => Array
(
[0] => wc_order_587dcc17ca5f0
)
[_order_currency] => Array
(
[0] => ZAR
)
[_prices_include_tax] => Array
(
[0] => yes
)
[_customer_ip_address] => Array
(
[0] => ::1
)
[_customer_user_agent] => Array
(
[0] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:50.0) Gecko/20100101 Firefox/50.0
)
[_customer_user] => Array
(
[0] => 0
)
[_created_via] => Array
(
[0] => checkout
)
[_cart_hash] => Array
(
[0] => 4457fd575a37c07e4863ce5610ddb4d2
)
[_order_version] => Array
(
[0] => 2.6.4
)
)
我是否使用了错误的动作挂钩?数据库中存在的所有值。
将操作更改为
add_action( 'woocommerce_checkout_update_order_meta', 'add_user_to_mailchimp', 1, 1 );
此操作在创建 post 元数据后触发,而 'woocommerce_new_order' 并非如此。
尝试下面的 teo 挂钩,其中传递订单 ID 作为参数:
woocommerce_thankyou
woocommerce_payment_complete
这为我修复了它,我仍然使用 'woocommerce_new_order' 但更改了优先级。
来自:
add_action('woocommerce_new_order', 'add_user_to_mailchimp');
收件人:
add_action('woocommerce_new_order', 'add_user_to_mailchimp', 1000, 2);
如果这不起作用,您可以尝试提高优先级。
我正在使用 woocommerce_new_order 操作将订单详细信息发送到 Mailchimp 列表。
// Add user to mailchimp list
function add_user_to_mailchimp($order_id) {
$order = get_post_meta($order_id);
write_log($order);
}
add_action( 'woocommerce_new_order', 'add_user_to_mailchimp', 1, 1 );
要记住的一个重要部分是用户不一定要注册帐户。
最重要的部分是检索客户的电子邮件并将其发送给 Mailchimp。我想通过使用
来实现get_post_meta($order_id, 'billing_email', true);
但是即使我使用“_billing_email”,这个 returns 也是一个空值。
当我在日志中输出 $order 时,我得到以下输出:
[17-Jan-2017 07:47:35 UTC] Array
(
[_wc_customer_order_csv_export_is_exported] => Array
(
[0] => 0
)
[_wc_customer_order_csv_export_customer_is_exported] => Array
(
[0] => 0
)
[_order_key] => Array
(
[0] => wc_order_587dcc17ca5f0
)
[_order_currency] => Array
(
[0] => ZAR
)
[_prices_include_tax] => Array
(
[0] => yes
)
[_customer_ip_address] => Array
(
[0] => ::1
)
[_customer_user_agent] => Array
(
[0] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:50.0) Gecko/20100101 Firefox/50.0
)
[_customer_user] => Array
(
[0] => 0
)
[_created_via] => Array
(
[0] => checkout
)
[_cart_hash] => Array
(
[0] => 4457fd575a37c07e4863ce5610ddb4d2
)
[_order_version] => Array
(
[0] => 2.6.4
)
)
我是否使用了错误的动作挂钩?数据库中存在的所有值。
将操作更改为
add_action( 'woocommerce_checkout_update_order_meta', 'add_user_to_mailchimp', 1, 1 );
此操作在创建 post 元数据后触发,而 'woocommerce_new_order' 并非如此。
尝试下面的 teo 挂钩,其中传递订单 ID 作为参数:
woocommerce_thankyou
woocommerce_payment_complete
这为我修复了它,我仍然使用 'woocommerce_new_order' 但更改了优先级。 来自:
add_action('woocommerce_new_order', 'add_user_to_mailchimp');
收件人:
add_action('woocommerce_new_order', 'add_user_to_mailchimp', 1000, 2);
如果这不起作用,您可以尝试提高优先级。