当前位置: 首页 > 知识库问答 >
问题:

在Woocommerce中停止基于支付方式的特定客户电子邮件通知

罗奇文
2023-03-14

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

但不管用。感谢任何帮助。

共有1个答案

姚航
2023-03-14

更新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文件中。经过测试并起作用。

 类似资料:
  • 通常在WooCommerce中,一旦付款完成,提交的订单将重定向到。 是否可以将客户重定向到特定付款方式的自定义页面? 例如:

  • 我在这个相关的答案中找到了对我的问题的部分和可行的答案: send-an-email-notification-when-order-status-changhe-fron-pendig-to-cancelled 我正在考虑使用提供的解决方案,但想看看我是否可以更改电子邮件通知,明确地说,“未决付款订单现在取消”,所以它不同于常规取消的订单。 我该怎么做?

  • 关于这个线程的后续:Woocommerce退款电子邮件 我有一个问题我似乎无法解决,我阅读了所有关于扩展WC_Email类的主题,该类具有自定义触发器,但我无法使其工作。 我想要实现的是添加一个电子邮件通知到WooCommerce电子邮件设置,并发送一封电子邮件给收件人,只要客户更新它的帐单或运输细节。 因此,在functions.php中,我将woocommerce_customer_save_

  • 在我的WooCommerce网上商店里,我出售洗发水和肥皂等天然产品。目前我只有2个产品。 我想添加一个特定的文本字符串,其中包含一个超链接,指向购买产品的一些背景信息,以防止人们感到困惑: 如果他们购买棕榈油洗发水,我想发送一个超链接,其中包含我们如何制作洗发水等的背景信息。 如果他们买肥皂,我也想买肥皂。 产品A等于超链接A,产品B等于超链接B。 到目前为止,我得到的是: 但它不起作用。 如何

  • 我的Wordpress安装有问题,更具体的说是WooCommerce。 我在过去几个月中一直在工作的客户希望,每次客户完成/支付订单时,除了标准的订单确认电子邮件外,还会向他的电子邮件地址发送一封自定义电子邮件。 简而言之:我需要在订单完成时给客户发送一封自定义邮件。如何在functions.php中做到这一点? 我尝试使用官方文档中描述的各种钩子和函数,但无法弄明白。 Wordpress的版本是

  • 我无法将产品属性添加到新订单电子邮件中。我已经将下面的代码片段添加到email-order-items.php(在//SKU..part之后),但是什么也没有发生。甚至滴度“位置:”也不可见。有什么想法吗?