Php Woocommerce将自定义属性(分类法)作为数组添加到邮件模板

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

当下订单时,我会挂接到管理员的woocommerce电子邮件通知。我从一个插件做这件事。我试图添加一个自定义表,这将有助于日常工作。 代码正在工作,只是尝试将自定义属性分配给数组(注释掉的部分)

这会导致“内部错误”,并且不会发送电子邮件。我的怀疑是,定制分类法不一定要进入数组?如何将它们添加到具有“name”和“qty”的数组中

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>';
  }
}