如何将 BCC 收件人添加到 WooCommerce 发送的所有电子邮件中?
How to add BCC recipient to all emails sent by WooCommerce?
我正在尝试将 BCC 添加到 woocommerce / wp 发送的每封邮件中。我尝试使用在网络和 Whosebug 上找到的不同解决方案,并将片段添加到我正在使用的主题的 functions.php 中:
add_filter( 'woocommerce_email_headers', 'add_bcc_to_wc_admin_new_order', 10, 3 );
function add_bcc_to_wc_admin_new_order( $headers = '', $id = '', $wc_email = array() ) {
if ( $id == 'new_order' ) {
$headers .= "Bcc: my@mail.net\r\n";
}
return $headers;
}
和
add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2);
function add_bcc_all_emails($headers, $object) {
$headers = array();
$headers[] = 'Bcc: my@mail.net';
$headers[] = 'Content-Type: text/html';
return $headers;
}
和
add_filter('wp_mail','custom_mails', 10,1);
function custom_mails($args){
$bcc_email = sanitize_email('my@mail.net');
if (is_array($args['headers'])){
$args['headers'][] = 'Bcc: '.$bcc_email ;
}
else{
$args['headers'] .= 'Bcc: '.$bcc_email."\r\n";
}
return $args;
}
我正在使用 "The Events Calendar" 所以我也试过这个:
add_action( 'event_tickets_rsvp_tickets_generated', 'tribe_tickets_cc_organizer', 10, 3 );
function tribe_tickets_cc_organizer( $order_id = null, $post_id = null, $attendee_order_status = null ) {
$to = tribe_get_organizer_email( $post_id, false );
// bail if there's no valid email for the organizer
if ( ! is_email( $to ) ) return;
$event_name = get_the_title( $post_id );
$site_name = get_bloginfo( 'name' );
$attendee_list_url = admin_url( 'edit.php?post_type=tribe_events&page=tickets-attendees&event_id=' . $post_id );
$content = '<a href="' . esc_url( $attendee_list_url ) . '" style="color: #000; font-family: sans-serif;">Check the event attendee list</a>';
$headers = array( 'Content-type: text/html' );
$subject = sprintf( __( 'Your event %1$s has new attendee(s) - %2$s', 'tribe-extension' ), $event_name, $site_name );
wp_mail( $to, $subject, $content, $headers);
}
add_action( 'event_ticket_woo_attendee_created', 'tribe_woo_compat_cc', 10, 4 );
function tribe_woo_compat_cc ( $attendee_id, $event_id, $order, $product_id ) {
tribe_tickets_cc_organizer( null, $event_id );
}
所有主题都没有按预期工作。他们忽略密件抄送并再次发送所有电子邮件,因此管理员和用户会收到双倍的邮件。但是添加的密件抄送邮件没有收到一封邮件。我不明白,为什么这是行不通的。有人有想法吗?
提前致谢。
也许你可以尝试一下:
function add_bcc_all_emails( $headers, $object ) {
$headers = array(
$headers,
'Bcc: Me <my@mail.net>' ."\r\n",
);
return $headers;
}
add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2 );
要将 BCC 发送到所有 WooCommerce 电子邮件:
- 从当前主题的
functions.php
文件中删除之前添加的代码片段
- 在您当前主题的
functions.php
文件中添加以下代码段
add_filter( 'woocommerce_email_headers', 'lh_wc_add_bcc_email', 10, 2 );
function lh_wc_add_bcc_email( $headers, $email ) {
$headers .= 'BCC: Your name <you@email.com>' . "\r\n"; //replace 'Your name' with your name and 'you@email.com' with your email address
return $headers;
}
或者你可以使用这个插件:
CC & BCC for Woocommerce Order Emails
对于无代码解决方案,请尝试使用 Post SMTP 插件来处理您的电子邮件。在“设置/消息”下,有一个选项可以密件抄送来自 WP 的所有电子邮件,包括来自 WooCommerce 的电子邮件。
我正在尝试将 BCC 添加到 woocommerce / wp 发送的每封邮件中。我尝试使用在网络和 Whosebug 上找到的不同解决方案,并将片段添加到我正在使用的主题的 functions.php 中:
add_filter( 'woocommerce_email_headers', 'add_bcc_to_wc_admin_new_order', 10, 3 );
function add_bcc_to_wc_admin_new_order( $headers = '', $id = '', $wc_email = array() ) {
if ( $id == 'new_order' ) {
$headers .= "Bcc: my@mail.net\r\n";
}
return $headers;
}
和
add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2);
function add_bcc_all_emails($headers, $object) {
$headers = array();
$headers[] = 'Bcc: my@mail.net';
$headers[] = 'Content-Type: text/html';
return $headers;
}
和
add_filter('wp_mail','custom_mails', 10,1);
function custom_mails($args){
$bcc_email = sanitize_email('my@mail.net');
if (is_array($args['headers'])){
$args['headers'][] = 'Bcc: '.$bcc_email ;
}
else{
$args['headers'] .= 'Bcc: '.$bcc_email."\r\n";
}
return $args;
}
我正在使用 "The Events Calendar" 所以我也试过这个:
add_action( 'event_tickets_rsvp_tickets_generated', 'tribe_tickets_cc_organizer', 10, 3 );
function tribe_tickets_cc_organizer( $order_id = null, $post_id = null, $attendee_order_status = null ) {
$to = tribe_get_organizer_email( $post_id, false );
// bail if there's no valid email for the organizer
if ( ! is_email( $to ) ) return;
$event_name = get_the_title( $post_id );
$site_name = get_bloginfo( 'name' );
$attendee_list_url = admin_url( 'edit.php?post_type=tribe_events&page=tickets-attendees&event_id=' . $post_id );
$content = '<a href="' . esc_url( $attendee_list_url ) . '" style="color: #000; font-family: sans-serif;">Check the event attendee list</a>';
$headers = array( 'Content-type: text/html' );
$subject = sprintf( __( 'Your event %1$s has new attendee(s) - %2$s', 'tribe-extension' ), $event_name, $site_name );
wp_mail( $to, $subject, $content, $headers);
}
add_action( 'event_ticket_woo_attendee_created', 'tribe_woo_compat_cc', 10, 4 );
function tribe_woo_compat_cc ( $attendee_id, $event_id, $order, $product_id ) {
tribe_tickets_cc_organizer( null, $event_id );
}
所有主题都没有按预期工作。他们忽略密件抄送并再次发送所有电子邮件,因此管理员和用户会收到双倍的邮件。但是添加的密件抄送邮件没有收到一封邮件。我不明白,为什么这是行不通的。有人有想法吗?
提前致谢。
也许你可以尝试一下:
function add_bcc_all_emails( $headers, $object ) {
$headers = array(
$headers,
'Bcc: Me <my@mail.net>' ."\r\n",
);
return $headers;
}
add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2 );
要将 BCC 发送到所有 WooCommerce 电子邮件:
- 从当前主题的
functions.php
文件中删除之前添加的代码片段 - 在您当前主题的
functions.php
文件中添加以下代码段
add_filter( 'woocommerce_email_headers', 'lh_wc_add_bcc_email', 10, 2 );
function lh_wc_add_bcc_email( $headers, $email ) {
$headers .= 'BCC: Your name <you@email.com>' . "\r\n"; //replace 'Your name' with your name and 'you@email.com' with your email address
return $headers;
}
或者你可以使用这个插件: CC & BCC for Woocommerce Order Emails
对于无代码解决方案,请尝试使用 Post SMTP 插件来处理您的电子邮件。在“设置/消息”下,有一个选项可以密件抄送来自 WP 的所有电子邮件,包括来自 WooCommerce 的电子邮件。