问题描述
我使用checkout field插件在checkout部分中创建了一个新字段。该字段允许客户指定帐单或送货地址之外的第三个电子邮件地址。我只想将订单确认信息发送到此地址,而不发送到账单部分。
经过几次搜索,我使用了Send Woocommerce Order to email address listed on product page答案代码,将订单项元键'email'
替换为'billing_email_guest'
,例如:
$email = wc_get_order_item_Meta( $item_id,'billing_email_guest',true );
但是它不起作用。我在做什么错了?
解决方法
您使用的方法不正确,因为这与自定义订单元数据有关,而与订单项元数据无关。
请尝试以下操作:
add_filter( 'woocommerce_email_recipient_customer_on_hold_order','additional_customer_email_recipient',10,2 ); // On hold Order
add_filter( 'woocommerce_email_recipient_customer_processing_order',2 ); // Processing Order
add_filter( 'woocommerce_email_recipient_customer_completed_order',2 ); // Completed Order
function additional_customer_email_recipient( $recipient,$order ) {
if ( ! is_a( $order,'WC_Order' ) )
return $recipient;
$billing_email_guest = $order->get_meta('billing_email_guest');
if( ! empty($billing_email_guest) ) {
return $billing_email_guest;
}
return $recipient;
}
代码进入活动子主题(或活动主题)的functions.php文件中。应该可以。