【问题标题】:Stop specific customer email notification based on payment methods in Woocommerce根据 Woocommerce 中的付款方式停止特定客户电子邮件通知
【发布时间】:2018-11-18 14:16:23
【问题描述】:

在 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;
}

但它不起作用。任何帮助表示赞赏。

【问题讨论】:

    标签: php wordpress woocommerce hook-woocommerce email-notifications


    【解决方案1】:

    更新 2

    woocommerce_email_recipient_{$email_id} 过滤器是一个复合挂钩,要在其中设置的正确电子邮件 ID 是 customer_on_hold_order 而不是 customer_on_hold_order_order,这将不起作用...

    使用WC_Order 对象,从Woocommerce 3 开始,您需要使用get_payment_method() 方法。

    为了避免使用“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 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-22
      • 2018-04-23
      • 2019-04-16
      • 2017-12-06
      • 2016-11-17
      • 1970-01-01
      • 2017-06-19
      • 2019-03-12
      相关资源
      最近更新 更多