Php 在特定电子邮件上显示产品ACF字段
所以我差点就明白了,但这封电子邮件的最后一个细节让我的头脑有点纠结 我需要显示产品的ACF(高级自定义字段)字段(在本例中,这是一个自定义发货时间)Php 在特定电子邮件上显示产品ACF字段,php,wordpress,woocommerce,advanced-custom-fields,hook-woocommerce,Php,Wordpress,Woocommerce,Advanced Custom Fields,Hook Woocommerce,所以我差点就明白了,但这封电子邮件的最后一个细节让我的头脑有点纠结 我需要显示产品的ACF(高级自定义字段)字段(在本例中,这是一个自定义发货时间) 但仅在新订单电子邮件(处理订单和等待付款订单发送给客户)中,然后在新订单电子邮件中发送给管理员 这是我找到的主要方式:提前谢谢你@ 我还向它添加了一些条件设置(请注意,我的PHP非常开始复制pasty) 这些都很有效 然而,我无法回避的是,它只能在新订单电子邮件上工作。 我有这样的设置,它的工作,但它显示在所有电子邮件中,包含电子邮件订单的详
- 但仅在新订单电子邮件(处理订单和等待付款订单发送给客户)中,然后在新订单电子邮件中发送给管理员
这是我找到的主要方式:提前谢谢你@ 我还向它添加了一些条件设置(请注意,我的PHP非常开始复制pasty) 这些都很有效 然而,我无法回避的是,它只能在新订单电子邮件上工作。 我有这样的设置,它的工作,但它显示在所有电子邮件中,包含电子邮件订单的详细信息,我不能在已完成的订单电子邮件上显示发货时间,因为它会造成混乱
//在电子邮件通知中显示产品ACF自定义字段值
添加过滤器('woocommerce\u order\u item\u name','custom\u order\u item\u name',10,2);
函数自定义\订单\项目\名称($item\名称,$item){
//仅针对电子邮件通知
如果('new_order'=$email->id)
返回$item_name;
//获取WC_产品对象(从订单项)
$product=$item->get_product();
$othershipping=get_字段('shipping_custom',$product->get_id());
如果($shpng\u value=get\u字段($shipping\u',$product->get\u id())==“24小时”){
$item_name.='
。(“发货时间”,“woocommerce”):。明天(24小时)拿到。
。;
}
elseif($shpng\u value=get\u字段('shipping\u',$product->get\u id())==“2-5天”){
$item_name.='
。(“发货时间”、“woocommerce”):。2-5天
。;
}
elseif($shpng\u value=get\u字段('shipping\u',$product->get\u id())==“其他”){
$item_name.='
。uu('Shipping time','woocommerce'):。$othershipping.
;
}
返回$item_name;
}
我已经试着换了电话
if('new_order'=$email->id)
到
if('new_order'!=$email->id)
但这只会使它在任何地方都不起作用
我还以为可能是这一部分
函数自定义订单商品名称($item商品名称,$item){
我需要添加($order、$sent\u to\u admin、$plain\u text、$email)
函数自定义订单项目名称($item\u name,$item,$order,$sent\u to\u admin,$plain\u text,$email)
但这会使电子邮件返回错误。通常,这应该与下面的代码一起工作 注意:我的答案主要基于:。信用:@所以别忘了把答案投给我
//将“sent_to_admin”设置为全局变量
函数email\u order\u id\u as\u a\u global($order,$sent\u to\u admin,$plain\u text,$email){
$GLOBALS['email_data']=数组(
'sent_to_admin'=>$sent_to_admin,//$email->id,//电子邮件id(发送到特定的电子邮件通知)
);
}
添加操作('WOOMerce\u email\u before\u order\u table','email\u order\u id\u as\u a\u global',1,4);
函数自定义\订单\项目\名称($item\名称,$item){
如果(!is_wc_endpoint_url()&&$item->is_type('line_item')){
//获取自定义“email_data”全局变量
$refnamelobalsvar=$GLOBALS;
$email_data=$refNameGlobalsVar['email_data'];
//仅适用于新订单
如果(是数组($email\u data)&&$email\u data['email\u id']=='new\u order'){
//获取WC_产品对象(从订单项)
$product=$item->get_product();
$othershipping=get_字段('shipping_custom',$product->get_id());
如果($shpng\u value=get\u字段($shipping\u',$product->get\u id())==“24小时”){
$item_name.='
。(“发货时间”,“woocommerce”):。明天(24小时)拿到。
。;
}
elseif($shpng\u value=get\u字段('shipping\u',$product->get\u id())==“2-5天”){
$item_name.='
。(“发货时间”、“woocommerce”):。2-5天
。;
}
elseif($shpng\u value=get\u字段('shipping\u',$product->get\u id())==“其他”){
$item_name.='
。uu('Shipping time','woocommerce'):。$othershipping.
;
}
}
}
返回$item_name;
}
添加过滤器('woocommerce\u order\u item\u name','custom\u order\u item\u name',10,2);
谢谢!最初,此邮件只发送给新订单,无法按照我的意愿发送多封电子邮件(客户等待订单客户处理订单和新订单)所以我想我可以只为new order if语句重复//的行,并将电子邮件ID更改为正确的,这就成功了!非常感谢