问题:woocommerce_new_order 操作未返回所有订单详细信息

我正在使用 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
        )

)

我可能使用了错误的动作钩子吗?数据库中存在的所有值。

解答

将动作更改为

add_action( 'woocommerce_checkout_update_order_meta', 'add_user_to_mailchimp', 1, 1 );

此操作在帖子元创建后触发,'woocommerce_new_order' 不是这种情况。

Logo

WooCommerce社区为您提供最前沿的新闻资讯和知识内容

更多推荐