我正在使用 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',这也会返回一个空值。
当我在日志中输出$ 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
)
)
我可能使用了错误的动作钩子吗?数据库中存在的所有值。
答案 0 :(得分:2)
将操作更改为
add_action( 'woocommerce_checkout_update_order_meta', 'add_user_to_mailchimp', 1, 1 );
在创建帖子元数据后触发此操作,但' woocommerce_new_order'
的情况并非如此。答案 1 :(得分:0)
尝试下面的teo hook,其中传递顺序id作为参数:
woocommerce_thankyou
woocommerce_payment_complete
答案 2 :(得分:0)
这为我解决了这个问题,我仍然使用“woocommerce_new_order”,但更改了优先级。 来自:
add_action('woocommerce_new_order', 'add_user_to_mailchimp');
致:
add_action('woocommerce_new_order', 'add_user_to_mailchimp', 1000, 2);
如果这不起作用,您可以尝试提高优先级数。