在 woocommerce_email_recipient_{$this->id} 过滤器挂钩中,您可以使用 $order 参数来获取您的第二封电子邮件。
但首先让我们使用 Product Add-ons 插件在全局范围内添加一个电子邮件字段……
- 产品上的添加字段(填写字段并添加到购物车):
- 结帐后,已收到订单(谢谢)页面中的此“电子邮件”字段:
您可以注意到此字段的标签是“电子邮件”...
现在,如果我在 wp_woocommerce_order_itemmeta 中的数据库中查找此订单,我可以看到 meta_key "Email" 和 meta_value "loic@TheAztec.com" :
现在我可以在下面的代码中设置正确的meta_key 来获取我的电子邮件。
以下代码将添加此额外电子邮件收件人以处理和完成客户订单电子邮件通知:
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'additional_customer_email_recipient', 10, 2 ); // Processing Order
add_filter( 'woocommerce_email_recipient_customer_processing_order', 'additional_customer_email_recipient', 10, 2 ); // Completed Order
function additional_customer_email_recipient( $recipient, $order ) {
if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;
$additional_recipients = array(); // Initializing…
// Iterating though each order item
foreach( $order->get_items() as $item_id => $item_data ){
// HERE set the the correct meta_key (like 'Email') to get the correct value
$email = wc_get_order_item_meta( $item_id, 'Email', true );
// Avoiding duplicates (if many items with many emails)
// or an existing email in the recipient
if( ! in_array( $email, $additional_recipients ) && strpos( $recipient, $email ) === false )
$additional_recipients[] = $email;
}
// Convert the array in a coma separated string
$additional_recipients = implode( ',', $additional_recipients);
// If an additional recipient exist, we add it
if( count($additional_recipients) > 0)
$recipient .= ','.$additional_recipients;
return $recipient;
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。
经过测试并且有效。