禁用特定订单ID的WooCommerce电子邮件通知

时间:2018-01-25 09:53:16

标签: php wordpress woocommerce email-notifications

我需要停用特定订单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.
}

1 个答案:

答案 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