2017-06-21 76 views
0

当订单被放置时,Im将管理员的电子邮件通知挂钩。我从一个插件做这件事。我试图添加一个自定义表,这将有助于日常工作。 代码正在工作,除了尝试将自定义属性分配给数组(注释掉部分)。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>'; 



} 
} 

回答

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

的完整代码(静止搞清楚一些bug)

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>'; 
    } 
} 
相关问题