我的functions.php中添加了以下代码
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
发布于 2021-04-19 06:32:21
您可以尝试这个woocommerce_email_recipient_customer_on_hold_order
过滤器挂钩。
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;
}
https://stackoverflow.com/questions/67155876
复制相似问题