Php 如果订单中有来自WooCommerce特定类别的商品,请向CC发送新订单电子邮件

Php 如果订单中有来自WooCommerce特定类别的商品,请向CC发送新订单电子邮件,php,wordpress,woocommerce,email-notifications,carbon-copy,Php,Wordpress,Woocommerce,Email Notifications,Carbon Copy,如果订单包含来自父产品类别的项目,我想向cc发送管理员新订单电子邮件: 我正在使用下面的代码,但这似乎不起作用。邮件正在发送,但我收到一个未定义变量的通知。CC中的人也没有收到消息 add_filter('woocommerce_email_headers','bbloomer_order_completed_email_add_cc_bcc',9999,3); 函数bbloomer\u order\u completed\u email\u add\u cc\u bcc($headers,$e

如果订单包含来自父产品类别的项目,我想向cc发送管理员新订单电子邮件:

我正在使用下面的代码,但这似乎不起作用。邮件正在发送,但我收到一个未定义变量的通知。CC中的人也没有收到消息

add_filter('woocommerce_email_headers','bbloomer_order_completed_email_add_cc_bcc',9999,3);
函数bbloomer\u order\u completed\u email\u add\u cc\u bcc($headers,$email\u id,$order){
$order=wc\u get\u order($order\u id);//wc\u order对象
如果('new_order'=$email_id&&$orderid['product_cat']==69){
$headers.=“Cc:Name”“\r\n”“//如果不需要,则删除
}
返回$headers;
}

有人想仔细看看吗?

  • 不需要使用
    wc\u get\u order()
    ,您已经可以通过参数访问
    $order
    对象
  • $orderid['product\u cat']
    不存在
  • 通过代码中添加的注释进行解释
所以你可以用

功能过滤器\u商业\u电子邮件\u标题($header,$email\u id,$order){
//新秩序
如果($email\u id=='new\u order'){
//设置类别
$categories=数组('categorie-1','categorie-2');
//默认情况下,Flag=false
$flag=false;
//循环槽项目
foreach($order->get_items()作为$item){
//产品id
$product_id=$item['product_id'];
//具有术语(本例中为特定类别)
if(具有术语($categories,$product\u cat',$product\u id)){
//找到,标志=真,中断循环
$flag=true;
打破
}
}
//真的
如果($标志){
//准备数据
$formatted_email=utf8_decode(“我的测试”);
//将Cc添加到标题
$header.='Cc:'.$formatted_email.\r\n';
}
}
返回$header;
}
添加过滤器('woocommerce\u电子邮件\u标题','filter\u woocommerce\u电子邮件\u标题',10,3);