我希望在一个新的订单已经创建,电子邮件也发送了订单中的每个产品,每个地址保存在一个特定产品的acf字段。
在邮件中,我想有在表中看到的经典wordpress订单摘要邮件项目的细节。
我试过:
add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order', 1, 2 );
function create_invoice_for_wc_order( $order_id, $order ) {
$oggetto = '';
$corpo = '';
$emailDaChi = $order->get_billing_email();
foreach ( $order->get_items() as $item_id => $item ) {
$emailAChi = get_field('email_gestore', $product_id); //email del gestore
if ($emailAChi != '' && $emailAChi != null) {
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$product = $item->get_product(); // see link above to get $product info
$product_name = $item->get_name();
$quantity = $item->get_quantity();
$subtotal = $item->get_subtotal();
$total = $item->get_total();
$tax = $item->get_subtotal_tax();
$tax_class = $item->get_tax_class();
$tax_status = $item->get_tax_status();
$allmeta = $item->get_meta_data();
$somemeta = $item->get_meta( '_whatever', true );
$item_type = $item->get_type(); // e.g. "line_item", "fee"
$dettaglio = wc_display_item_meta($item, array(
'echo' => false,
));
$corpo = '
<div>
<h3>
Riepilogo NUOVA PRENOTAZIONE:
</h3>
<p>
DETTAGLI ORDINE:
<br>'
.$product_name.'
<br>
QUANTITA: '.$quantity.'
<br>
SUBTOTALE: '.$subtotal.'
<br>
TOTALE: '.$total.'
<br>
DETTAGLI: '.$dettaglio.'
<br>
</p>
</div>';
$headers = array(
'Content-Type: text/html; charset=UTF-8',
'From: '.$emailDaChi,
);
$mail = wp_mail( $emailAChi, $oggetto, $corpo, $headers);
}
}
}
在邮件中的字符串"DETTAGLI:"我什么也没看见。
但是,如果我获取代码,重新调整它的用途以传递订单ID并回显邮件正文,则详细信息会正确地打印出来。
我该怎么做呢?
谢谢
1条答案
按热度按时间5q4ezhmt1#
你称之为:
...但在该阶段尚未定义$product_id,因此不会触发电子邮件(wp_mail)。
另外,请确保$oggetto不是空的,并且您不需要这个:
......这就够了: