将管理员邮箱设置为WooCommerce取消和失败订单的BCC。

我目前正在使用这段代码来发送失败和取消订单的通知。

function wc_cancelled_order_add_customer_email( $recipient, $order )
{ 
 return $recipient . ',' . $order->billing_email; 
} 
add_filter( 'woocommerce_email_recipient_cancelled_order', 'wc_cancelled_order_add_customer_email', 10, 2 ); 
add_filter( 'woocommerce_email_recipient_failed_order', 'wc_cancelled_order_add_customer_email', 10, 2 );

问题是我在woocommerce系统设置中设置的那两个管理员邮箱也和客户的邮箱一起被添加到了收件人的邮箱中,是否可以调整一下,让管理员的邮箱地址在BCC上,这样客户就看不到他们的邮箱地址了?

解决方案:

你需要对你的钩子函数做一些小改动,并添加一个额外的钩子函数来处理管理员邮件作为BCC收件人。

add_filter( 'woocommerce_email_recipient_cancelled_order', 'custom_cancelled_and_failed_order_email_recipients', 10, 2 ); 
add_filter( 'woocommerce_email_recipient_failed_order', 'custom_cancelled_and_failed_order_email_recipients', 10, 2 );
function custom_cancelled_and_failed_order_email_recipients( $recipient, $order ) { 
    // Check that the WC_Order object always exist
    if( is_a( $order, 'WC_Order' ) )
        $recipients = $order->get_billing_email(); 

    return $recipients;
} 


add_filter( 'woocommerce_email_headers', 'custom_cancelled_and_failed_order_email_headers', 20, 3 );
function custom_cancelled_and_failed_order_email_headers( $header, $email_id, $order ) {
    // Only for 'cancelled' and 'failed' order notifications
    if( in_array( $email_id, ['cancelled_order', 'failed_order'] ) ) { 
        // Get original admin recipient
        $recipient = WC()->mailer()->get_emails()['WC_Email_Cancelled_Order']->settings['recipient'];
        // Add Admin email As Bcc recipient
        $header .= 'Bcc: ' . $recipient . "\r\n";
    }
    return $header;
}

代码在你的活动主题(或活动主题)的function.php文件中。它应该可以工作。

给TA打赏
共{{data.count}}人
人已打赏
未分类

"Cucumber Full Support "扩展在VS代码中,我面临着配置问题。

2022-9-9 5:52:19

未分类

Android Studio调试构建到设备上使设备断网

2022-9-9 5:52:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索