在新订单电子邮件通知中获取客户订单计数

时间:2017-02-08 23:54:21

标签: php wordpress woocommerce orders email-notifications

我想在WooCommerce"新订单"电子邮件通知,如果它是重复客户。

看起来很简单,但我尝试了5种不同的方法,但都没有效果。我已经尝试将它放入两个不同的钩子中:

  • woocommerce_email_after_order_table
  • woocommerce_email_subject_new_order 即可。

似乎 wc_get_customer_order_count($user->ID) 应该可以正常工作,但 $user 对象似乎没有传递到那些钩子的功能,对吧?

我也想知道如果这是客人而不是注册用户,可能是通过比较电子邮件地址吗?

由于

1 个答案:

答案 0 :(得分:2)

WooCommerce电子邮件通知与订单相关。

woocommerce_email_after_order_table钩子中,您将Order对象作为钩子自定义函数中的参数以及$email对象。

使用 $order 对象,您可以通过以下方式获取 user ID

$user_id = $user_id = $order->get_user_id();

通过 $email 对象,您可以定位新订单电子邮件通知。

所以工作代码将是:

add_action( 'woocommerce_email_after_order_table', 'customer_order_count', 10, 4);
function customer_order_count( $order, $sent_to_admin, $plain_text, $email ){

    if ( $order->get_user_id() > 0 ){

        // Targetting new orders (that will be sent to customer and to shop manager)
        if ( 'new_order' == $email->id ){

            // Getting the user ID
            $user_id = $order->get_user_id();

            // Get the user order count
            $order_count = wc_get_customer_order_count( $user_id );

            // Display the user order count
            echo '<p>Customer order count: '.$order_count.'</p>';

        }
    }
}

您也可以使用 woocommerce_email_before_order_table 钩子代替......

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码经过测试并有效。