我需要停用特定订单ID的电子邮件通知。例如,在woocommerce订单ID 2378中,我想仅针对此订单ID禁用客户的所有电子邮件通知。因为我继续遇到订单本身改变状态的问题。这对我们来说一直是个问题,不幸的是,我一直无法找到原因。但是,自9月首次推出以来,有一个特定的订单不断改变状态。
我发现下面禁用电子邮件通知的一些代码是该代码。但我不知道如何使用具有特定订单ID的该功能。
add_action( 'woocommerce_email', 'unhook_those_pesky_emails' );
function unhook_those_pesky_emails( $email_class ) {
remove_action( 'woocommerce_order_status_completed_notification', array( $email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger' ) ); // cancels automatic email of order complete status update.
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_New_Order'], 'trigger' ) ); // cancels automatic email of new order placed (when defined to procession status)
remove_action( 'woocommerce_order_status_pending_to_processing_notification', array( $email_class->emails['WC_Email_Customer_Processing_Order'], 'trigger' ) ); // cancels automatic email of status update to processing.
}
答案 0 :(得分:0)
晚会很晚,但这可能对某人有所帮助。
这个想法怎么样?
add_filter( 'woocommerce_email_recipient_customer_on_hold_order', 'customer_on_hold_order_for_specified_order', 10, 2 );
function customer_on_hold_order_for_specified_order( $recipient, $order ) {
if( is_a($order, 'WC_Order') && $order->get_id() === 2378 ) {
$recipient = '';
}
return $recipient;
}
然后针对每个激活的电子邮件执行此操作吗?
在应归还的地方给予信用:谢谢@ LoicTheAztec