根据 Woocommerce 中的付款方式停止特定客户的电子邮件通知
Stop specific customer email notification based on payment methods in Woocommerce
在 Woocommerce 中,我需要在下订单时停止向客户发送电子邮件通知,除非 payment_method 是 BACS(直接银行转帐)。
我尝试在我的活动主题的 function.php 文件中关注:
add_filter( 'woocommerce_email_recipient_customer_on_hold_order_order', 'customer_order_email_if_bacs', 10, 2 );
function customer_order_email_if_bacs( $recipient, $order ) {
if( $order->payment_method() !== 'bacs' ) $recipient = '';
return $recipient;
}
但它不起作用。感谢任何帮助。
更新 2
woocommerce_email_recipient_{$email_id}
过滤器是一个复合挂钩,要在其中设置的正确电子邮件 ID 是 customer_on_hold_order
而不是 customer_on_hold_order_order
,这将不起作用...
对于 WC_Order
对象,自 Woocommerce 3 起,您需要使用 get_payment_method()
方法。
要避免客户 ON Hold 电子邮件通知,"Bacs" 付款方式除外,请使用:
add_filter( 'woocommerce_email_recipient_customer_on_hold_order', 'customer_on_hold_order_for_bacs', 10, 2 );
function customer_on_hold_order_for_bacs( $recipient, $order ) {
if( is_a('WC_Order', $order) && $order->get_payment_method() !== 'bacs' ){
$recipient = '';
}
return $recipient;
}
代码进入您的活动子主题(活动主题)的 function.php 文件。已测试并有效。
在 Woocommerce 中,我需要在下订单时停止向客户发送电子邮件通知,除非 payment_method 是 BACS(直接银行转帐)。
我尝试在我的活动主题的 function.php 文件中关注:
add_filter( 'woocommerce_email_recipient_customer_on_hold_order_order', 'customer_order_email_if_bacs', 10, 2 );
function customer_order_email_if_bacs( $recipient, $order ) {
if( $order->payment_method() !== 'bacs' ) $recipient = '';
return $recipient;
}
但它不起作用。感谢任何帮助。
更新 2
woocommerce_email_recipient_{$email_id}
过滤器是一个复合挂钩,要在其中设置的正确电子邮件 ID 是 customer_on_hold_order
而不是 customer_on_hold_order_order
,这将不起作用...
对于 WC_Order
对象,自 Woocommerce 3 起,您需要使用 get_payment_method()
方法。
要避免客户 ON Hold 电子邮件通知,"Bacs" 付款方式除外,请使用:
add_filter( 'woocommerce_email_recipient_customer_on_hold_order', 'customer_on_hold_order_for_bacs', 10, 2 );
function customer_on_hold_order_for_bacs( $recipient, $order ) {
if( is_a('WC_Order', $order) && $order->get_payment_method() !== 'bacs' ){
$recipient = '';
}
return $recipient;
}
代码进入您的活动子主题(活动主题)的 function.php 文件。已测试并有效。