当我下订单时,我会联系管理员的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 :(得分: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>';
}
}