我正在尝试根据某个订单元删除处理(或完成)电子邮件。
我正在使用POS系统并让客户通过客户发票电子邮件付款 - 初始订单状态为待付款。我想a)测试订单是否是使用pos制作的,b)删除“处理”或“完整”电子邮件。
我似乎无法使if语句逻辑起作用。我很确定元键是'_pos',值是'1'或'0'。
Here's my myphp screem shot of wp_postmeta
async void
我错过了什么吗?可以在woocommerce_email钩子中使用post meta吗?
如果我的if语句正确,我相信我可以删除处理/完整的电子邮件,甚至更改电子邮件类并创建自定义处理电子邮件。
答案 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