首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎样才能防止Woocommerce搁置通知电子邮件?

我怎样才能防止Woocommerce搁置通知电子邮件?
EN

Stack Overflow用户
提问于 2021-04-19 04:14:46
回答 1查看 211关注 0票数 1

我的functions.php中添加了以下代码

代码语言:javascript
运行
复制
add_action( 'woocommerce_email', 'unhook_those_pesky_emails' );
function unhook_those_pesky_emails( $email_class ) {

// New order emails
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_pending_to_completed_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_failed_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_failed_to_completed_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_failed_to_on-hold_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) );

// Processing order emails
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );
remove_action( 'woocommerce_order_status_pending_to_on-hold_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) );

// Order complete email
remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) );
}

我的测试订单与贝宝沙盒立即暂停,直到付款决定。这是好的。我的问题是,一封电子邮件通知买家这件事。我试图停止所有的通知电子邮件。我是不是错过了一个remove_action?这让我很吃惊,不管发生什么,这封邮件还是会发出去的。

在任何人建议之前-我不能通过wp来做这件事,因为我将应用将确定通知是否被抑制的条件。

谢谢!-M

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 06:32:21

您可以尝试这个woocommerce_email_recipient_customer_on_hold_order过滤器挂钩。

代码语言:javascript
运行
复制
add_filter( 'woocommerce_email_recipient_customer_on_hold_order', 'stop_on_hold_order_notification_for_specified_payment', 10, 2 );

function stop_on_hold_order_notification_for_specified_payment( $recipient, $order ) {
    
   if ( $order->get_payment_method() == 'paypal' ) {
       $recipient = '';
   }
   return $recipient;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67155876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档