从 ACF 选项将 BCC 收件人添加到 WooCommerce 电子邮件通知

Adding BCC recipient to WooCommerce email notification from ACF option

使用 Advanced Custom Fields 插件,我在 WordPress 选项选项卡中创建了一个自定义字段,允许我的客户添加一个额外的电子邮件,该电子邮件将接收 Woocommerce 新订单电子邮件确认,以及他们自己。

如果我对电子邮件地址进行硬编码,则下面的功能可以正常工作。虽然我希望其他电子邮件收件人从客户端可以 add/change 等的 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 = "&lt".$additional_order_email_recipient."&gt";
    $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 文件。它应该有效。

相关: