Php Woocommerce将自定义属性(分类法)作为数组添加到邮件模板
当下订单时,我会挂接到管理员的woocommerce电子邮件通知。我从一个插件做这件事。我试图添加一个自定义表,这将有助于日常工作。 代码正在工作,只是尝试将自定义属性分配给数组(注释掉的部分) 这会导致“内部错误”,并且不会发送电子邮件。我的怀疑是,定制分类法不一定要进入数组?如何将它们添加到具有“name”和“qty”的数组中Php Woocommerce将自定义属性(分类法)作为数组添加到邮件模板,php,wordpress,email,woocommerce,Php,Wordpress,Email,Woocommerce,当下订单时,我会挂接到管理员的woocommerce电子邮件通知。我从一个插件做这件事。我试图添加一个自定义表,这将有助于日常工作。 代码正在工作,只是尝试将自定义属性分配给数组(注释掉的部分) 这会导致“内部错误”,并且不会发送电子邮件。我的怀疑是,定制分类法不一定要进入数组?如何将它们添加到具有“name”和“qty”的数组中 add_action('woocommerce_email_在订单表之后,'add_frakt_storrelser',10,2); 函数add\u frakt\u
add_action('woocommerce_email_在订单表之后,'add_frakt_storrelser',10,2);
函数add\u frakt\u storrelser($order,$sent\u to\u admin){
如果($sent_to_admin){
回声“”;
$product_list='';
$order\u item=$order->get\u items();
foreach($order\作为$product的项目){
$prodct_name[]=$product['name'];
$prodct_数量[]=$product['qty'];
//$prodct_升[]=$product->get_属性('pa_升');
}
回声';
$product\U list=内爆('
“,$prodct_name);
回显“$product_list”;
回声';
$product\U list=内爆('
“,$PRODUCT_数量);
回显“$product_list”;
//回声';
//$product\U list=内爆('
//“,$prodct_升);
//回显“$product_list”;
回声';
回声';
}
}
看来我已经弄明白了,我认为在处理阵列方面还有很多需要学习的地方
$order_item = $order->get_items();
不返回包含Im after属性的数组。因此,我需要将产品id传递给一个命令,该命令将获得完整的产品数组
$prodct_id = $product['product_id'];
$ting = wc_get_product( $prodct_id);
然后我可以得到属性
$prodct_liter[] = $ting->get_attribute( 'pa_liter' );
完整代码(仍在找出一些bug)
add_action('woocommerce_email_前_订单_表','add_frakt_storrelser',10,2);
函数add\u frakt\u storrelser($order,$sent\u to\u admin){
如果($sent_to_admin){
回声“”;
$product_list='';
$order\u item=$order->get\u items();
foreach($order\作为$product的项目){
$prodct_id=$product['product_id'];
$ting=wc\U get\U产品($product\U id);
$prodct_name[]=$product['name'];
$prodct_数量[]=$product['qty'];
如果(!empty($ting->get_属性('pa_kolli-stor')){
$prodct_kolli[]=$ting->get_属性('pa_kolli-stor');
}
否则{
$prodct_kolli[]=1;
}
$prodct_公升[]=$ting->get_属性('pa_公升');
}
回声';
$product\U list=内爆('
“,$prodct_name);
回显“$product_list”;
回声';
$product\U list=内爆('
“,$PRODUCT_数量);
回显“$product_list”;
回声';
$product\U list=内爆('
“,$prodct_kolli);
回显“$product_list”;
回声';
$product\U list=内爆('
“,$prodct_升);
回显“$product_list”;
回声';
}
}
$prodct_id = $product['product_id'];
$ting = wc_get_product( $prodct_id);
$prodct_liter[] = $ting->get_attribute( 'pa_liter' );
add_action( 'woocommerce_email_before_order_table', 'add_frakt_storrelser', 10, 2 );
function add_frakt_storrelser( $order, $sent_to_admin ) {
if ( $sent_to_admin ) {
echo '<p></p><table class="td" cellspacing="0" cellpadding="6" style="width: 100%; font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;" border="1"><thead><tr>';
$product_list = '';
$order_item = $order->get_items();
foreach( $order_item as $product ) {
$prodct_id = $product['product_id'];
$ting = wc_get_product( $prodct_id);
$prodct_name[] = $product['name'];
$prodct_quantity[] = $product['qty'];
if (!empty($ting->get_attribute( 'pa_kolli-stor' ))) {
$prodct_kolli[] = $ting->get_attribute( 'pa_kolli-stor' );
}
else {
$prodct_kolli[] = 1;
}
$prodct_liter[] = $ting->get_attribute( 'pa_liter' );
}
echo '<th class="td" scope="col">';
$product_list = implode( '</th>
<th class="td" scope="col">', $prodct_name );
echo "$product_list";
echo '</th></tr><tr><th class="td" scope="col">';
$product_list = implode( '</th>
<th class="td" scope="col">', $prodct_quantity );
echo "$product_list";
echo '</th></tr><tr><th class="td" scope="col">';
$product_list = implode( '</th>
<th class="td" scope="col">', $prodct_kolli );
echo "$product_list";
echo '</th></tr><tr><th class="td" scope="col">';
$product_list = implode( '</th>
<th class="td" scope="col">', $prodct_liter );
echo "$product_list";
echo '</th></tr></thead></table>';
}
}