2017-06-21 131 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>'; 
    } 
} 
相關問題