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

时间:2017-06-21 13:13:33

标签: php wordpress email woocommerce

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

//  $prodct_liter[] = $product->get_attribute( 'pa_liter' );

这会导致“内部错误”,并且不会发送电子邮件。我怀疑自定义分类法不一定要进入阵列吗?如何使用“name”和“qty”将它们添加到数组中?

add_action( 'woocommerce_email_after_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_name[] = $product['name']; 
        $prodct_quantity[] = $product['qty'];
    //  $prodct_liter[] = $product->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_liter );
    //echo "$product_list";

    echo '</th></tr></thead>';  
echo '</tbody></table>';



 }
}

1 个答案:

答案 0 :(得分:0)

似乎我弄清楚了,我认为处理数组我还有很多东西需要学习。

$order_item = $order->get_items();

不返回包含Im之后的属性的数组。所以我需要将产品ID传递给一个命令,它将获得完整的产品数组。

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