删除woocommerce完成或处理基于订单元的电子邮件

时间:2018-02-16 12:43:41

标签: php wordpress woocommerce hook-woocommerce email-notifications

我正在尝试根据某个订单元删除处理(或完成)电子邮件。

我正在使用POS系统并让客户通过客户发票电子邮件付款 - 初始订单状态为待付款。我想a)测试订单是否是使用pos制作的,b)删除“处理”或“完整”电子邮件。

我似乎无法使if语句逻辑起作用。我很确定元键是'_pos',值是'1'或'0'。

Here's my myphp screem shot of wp_postmeta

async void

我错过了什么吗?可以在woocommerce_email钩子中使用post meta吗?

如果我的if语句正确,我相信我可以删除处理/完整的电子邮件,甚至更改电子邮件类并创建自定义处理电子邮件。

1 个答案:

答案 0 :(得分:1)

更新(与$ order参数相关的其他钩子上有一个错误)

这是正确的方法:

add_filter( 'woocommerce_email_recipient_customer_processing_order', 'conditional_email_notification', 10, 2 );
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'conditional_email_notification', 10, 2 );
function conditional_email_notification( $recipient, $order ) {
    if( is_admin() ) return $recipient;

    if ( get_post_meta( $order->get_id(), '_pos', true ) ){
        return '';
    }
    return $recipient;
}

此代码在您的活动子主题(或主题)的function.php文件中进行。已测试并正常运行。

类似的答案:Avoid customer email notification for a specific product category in Woocommerce