问题描述
使用高级自定义字段插件,我在 wordpress 选项选项卡中创建了一个自定义字段,允许我的客户添加额外的电子邮件,该电子邮件将接收 Woocommerce 新订单电子邮件确认,以及他们自己。
如果我对电子邮件地址进行硬编码,下面的功能将起作用。虽然我希望额外的电子邮件收件人从客户端可以添加/更改等的 ACF 选项中提取。电子邮件从选项 ACF 中正确提取。虽然当我尝试将电子邮件连接到 BCC 时,新电子邮件没有收到新订单电子邮件。
谁能指出我哪里出了问题?谢谢
add_filter( 'woocommerce_email_headers','mycustom_headers_filter_function',10,2);
function mycustom_headers_filter_function( $headers,$object) {
$additional_order_email_recipient = get_field('manufacturer_email_recipient','options');
$manu_email = "<".$additional_order_email_recipient.">";
$email_header = "BCC: Manufacture " . $manu_email . "\r\n";
if ($object == 'new_order') {
$headers .= "BCC: New Order <email@domain.co.uk>" . "\r\n"; // This Works
$headers .= "BCC: New Order " . $manu_email . "\r\n"; // This doesnt work
$headers .= $email_header; // This doesnt work
}
return $headers;
}
解决方法
您的代码中有一些错误……您需要检查在使用 ACF 自定义字段时是否获得了值:get_field( 'manufacturer_email_recipient','options' )
。
如果是这种情况,请尝试以下操作:
add_filter( 'woocommerce_email_headers','bcc_to_email_headers',10,3 );
function bcc_to_email_headers( $headers,$email_id,$order ) {
if ( $email_id === 'new_order' ) {
$manufacturer_email = get_field( 'manufacturer_email_recipient','options' );
if ( $manufacturer_email ) {
$headers .= "BCC: Manufacture <" . $manufacturer_email . ">\r\n";
}
}
return $headers;
}
代码位于活动子主题(或活动主题)的functions.php 文件中。它应该可以工作。
相关:New Account Email Notification sent to Admin as BCC in Woocommerce