在新订单电子邮件通知中获取客户订单数
Get customer order count in new order email notification
如果是回头客,我想在 WooCommerce "new order" 电子邮件通知中指出。
这看起来很简单,但我尝试了大约 5 种不同的方法并且 none 奏效了。我试过将其放入 2 个不同的钩子中:
woocommerce_email_after_order_table
woocommerce_email_subject_new_order
.
似乎 wc_get_customer_order_count($user->ID)
应该可以工作,但 $user
对象似乎没有传递到那些hook的函数对吧?
我也想知道当它是访客而不是注册用户时这是否可能,也许通过比较电子邮件地址?
谢谢
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 文件或任何插件文件。
此代码已经过测试并且有效。
如果是回头客,我想在 WooCommerce "new order" 电子邮件通知中指出。
这看起来很简单,但我尝试了大约 5 种不同的方法并且 none 奏效了。我试过将其放入 2 个不同的钩子中:
woocommerce_email_after_order_table
woocommerce_email_subject_new_order
.
似乎 wc_get_customer_order_count($user->ID)
应该可以工作,但 $user
对象似乎没有传递到那些hook的函数对吧?
我也想知道当它是访客而不是注册用户时这是否可能,也许通过比较电子邮件地址?
谢谢
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 文件或任何插件文件。
此代码已经过测试并且有效。