¿Cómo agregar un destinatario BCC a todos los correos electrónicos enviados por WooCommerce?

3 minutos de lectura

avatar de usuario
DBR

Estoy tratando de agregar BCC a cada correo enviado por woocommerce / wp. Intenté usar una solución diferente que se encuentra en la web y en Stackoverflow y agregué los fragmentos a functions.php del tema que estoy usando:

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: [email protected]\r\n";
    }
return $headers;
}

y

add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2);

function add_bcc_all_emails($headers, $object) {

    $headers = array();
    $headers[] = 'Bcc: [email protected]';
    $headers[] = 'Content-Type: text/html';

    return $headers;
}

y

add_filter('wp_mail','custom_mails', 10,1);

function custom_mails($args){
    $bcc_email = sanitize_email('[email protected]');

    if (is_array($args['headers'])){
        $args['headers'][] = 'Bcc: '.$bcc_email ;
    }
    else{
        $args['headers'] .= 'Bcc: '.$bcc_email."\r\n";
    }

    return $args;
}

Estoy usando “El calendario de eventos”, así que también probé esto:

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 );
}

Todos los temas no funcionan según lo previsto. Ignoran el BCC y envían todos los correos electrónicos nuevamente, por lo que el administrador y el usuario reciben el doble de correos. Pero el correo bcc agregado no recibe un correo. No puedo entender por qué esto no funciona. ¿Alguien tiene una idea?

Gracias por adelantado.

Tal vez puedas intentarlo con:

function add_bcc_all_emails( $headers, $object ) {

    $headers = array( 
         $headers,
         'Bcc: Me <[email protected]>' ."\r\n",
    );

    return $headers;
}
add_filter( 'woocommerce_email_headers', 'add_bcc_all_emails', 10, 2 );

  • ¡Gracias, ese funcionó para mí! Para ser honesto, creo que el problema ha sido de unos 30 cm (~ 11 pulgadas) frente a la computadora. Así que propongo que uno de mis fragmentos ya publicados debería funcionar para que alguien más lo haga.

    – DBR

    23 de octubre de 2018 a las 7:24

Para una solución sin código, intente usar el complemento Post SMTP para manejar su correo electrónico. En Configuración / Mensaje, hay una opción para BCC en todos los correos electrónicos que salen de WP, incluido WooCommerce.

avatar de usuario
Kashif Rafique

Para enviar BCC a todos los correos electrónicos de WooCommerce:

  • Elimine fragmentos de código agregados previamente de su tema actual functions.php expediente
  • Agregue el siguiente fragmento en su tema actual functions.php expediente
add_filter( 'woocommerce_email_headers', 'lh_wc_add_bcc_email', 10, 2 );

function lh_wc_add_bcc_email( $headers, $email ) {

    $headers .= 'BCC: Your name <[email protected]>' . "\r\n"; //replace 'Your name' with your name and '[email protected]' with your email address

    return $headers;
}

O puedes usar este complemento:
CC y BCC para correos electrónicos de pedidos de Woocommerce

  • Gracias por el fragmento, pero eso no funcionó para mí en absoluto. Solo los correos habituales donde se recibieron.

    – DBR

    23 de octubre de 2018 a las 7:22

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad