如何禁用WooCommerce中账单邮箱指定地址的订单完成通知?
禁用指定账单邮箱的WooCommerce订单完成通知
你可以通过WooCommerce的邮件收件人过滤钩子实现这个需求,具体操作如下:
利用专属钩子过滤收件人
使用woocommerce_email_recipient_customer_completed_order钩子,这个钩子专门用于修改订单完成通知的收件人列表,我们可以在回调逻辑里判断目标邮箱并取消发送。添加自定义代码
将以下代码添加到你的WordPress主题functions.php文件,或者自定义插件中:
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'disable_completed_email_for_specific_emails', 10, 2 ); function disable_completed_email_for_specific_emails( $recipient, $order ) { // 定义需要禁用通知的邮箱地址数组 $blocked_emails = array( 'test1@example.com', 'test2@example.com' ); // 确保订单对象有效 if ( ! is_a( $order, 'WC_Order' ) ) { return $recipient; } // 获取订单账单邮箱 $billing_email = $order->get_billing_email(); // 匹配到禁用邮箱则清空收件人,阻止邮件发送 if ( in_array( $billing_email, $blocked_emails ) ) { $recipient = ''; } return $recipient; }
- 代码调整说明
- 修改
$blocked_emails数组,把需要禁用通知的邮箱地址添加进去,多个邮箱用逗号分隔。 - 代码会先验证订单对象的有效性,再获取账单邮箱进行匹配,匹配成功则清空收件人,从而取消该邮箱的订单完成通知。
- 测试验证
用列表中的邮箱创建测试订单,完成支付流程后,检查该邮箱是否收到订单完成通知,确认功能生效。
内容的提问来源于stack exchange,提问作者Igor Boldyrev
相关产品推荐
相关产品推荐

