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



我想在WooCommerce的"新订单"电子邮件通知中指出,如果是回头客。

这看起来很简单,但我尝试了大约 5 种不同的方法,但没有一种有效。我尝试将其放入 2 个不同的钩子中:

  • woocommerce_email_after_order_table
  • woocommerce_email_subject_new_order .

似乎wc_get_customer_order_count($user->ID)应该工作,但似乎$user对象没有传递到这些钩子的函数中,对吧?

我也想知道当它是访客而不是注册用户时,这是否可能,也许通过比较电子邮件地址?

谢谢

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钩子,例如...

代码进入函数.php活动子主题(或主题(的文件或任何插件文件中。

此代码经过测试并有效。

相关内容

  • 没有找到相关文章

最新更新