LucusHost, el mejor hosting

LucusHost, el mejor hosting

Enviar el correo de «nueva cuenta» en Woocommerce solo si hay un pedido completado

Publicado el 29 de septiembre de 2023
Actualizado el 29 de septiembre de 2023

Uno de los correos electrónicos clave que WooCommerce envía automáticamente es el mensaje de «nueva cuenta» que se envía a los usuarios cuando se registran en tu tienda en línea. Sin embargo, ¿Qué pasa si solo quieres enviarlo cuando un cliente haya realizado una compra y su pedido esté marcado como «completado»?

Por lo que yo se, no existe ningún plugin específico de WooCommerce que modifique el comportamiento del envío del correo electrónico de «nueva cuenta» únicamente cuando el estado del pedido es «completado».

La mayoría de los plugins de WooCommerce se centran en la administración de pedidos, pagos, envíos, inventario y otros aspectos relacionados con la tienda en línea, pero no suelen abordar la personalización de correos electrónicos de esta manera tan específica.

Si necesitas esta funcionalidad, es probable que debas considerar una solución personalizada utilizando código.

Cómo personalizar el envío del email de «nueva cuenta» en Woocommerce

Esto implica agregar un gancho (hook) para interceptar el envío del correo electrónico y verificar el estado del pedido antes de enviarlo.

A continuación, te muestro un ejemplo de cómo hacerlo:

function personalizar_correo_nueva_cuenta($recipient, $user_id, $user_data) {
    // Obtiene el pedido más reciente del usuario
    $args = array(
        'numberposts' => 1,
        'meta_key' => '_customer_user',
        'meta_value' => $user_id,
        'post_type' => 'shop_order',
        'post_status' => 'wc-completed', // Cambia a 'completed' si es necesario
        'orderby' => 'date',
        'order' => 'DESC',
    );

    $orders = wc_get_orders($args);

    // Verifica si se encontró un pedido completado
    if (!empty($orders)) {
        // Si hay un pedido completado, envía el correo electrónico de "nueva cuenta"
        return $recipient;
    } else {
        // Si no hay un pedido completado, no envía el correo electrónico
        return '';
    }
}

add_filter('woocommerce_email_recipient_customer_new_account', 'personalizar_correo_nueva_cuenta', 10, 3);
Lenguaje del código: PHP (php)

Este código verifica si el usuario tiene al menos un pedido con estado «completado» y, si es así, se envía el correo electrónico de «nueva cuenta» al destinatario especificado en la configuración de WooCommerce.

Los parámetros $recipient, $user_id, y $user_data son proporcionados automáticamente por WooCommerce y contienen información sobre el destinatario y el usuario.

Si no hay pedidos completados, el correo electrónico no se envía.

Asegúrate de agregar este código en el archivo functions.php de tu tema activo o en un plugin de personalización de funciones.

Después, comprueba que funciona correctamente creando una nueva cuenta y realiza un pedido para verificar que el correo electrónico de «nueva cuenta» solo se envía cuando el estado del pedido es «completado».

Y recuerda hacer siempre una copia de seguridad de tu sitio antes de realizar un cambio de esta índole.

¿Dónde pongo este fragmento de código?

Hay varias formas de agregar un snippet a tu instalación de WordPress:

Si necesitas ayuda para ello, no dudes en ponerte en contacto conmigo.

Te recomiendo

Libros que me ayudan

Donde alojo mis sitios web

LucusHost, el mejor hosting

LucusHost, el mejor hosting

Sitio alojado en un servidor verde según The Green Web Foundation

LucusHost, el mejor hosting

Aviso legal | Condiciones de contratación | Política de privacidad | Política de cookies
© 2017-2023 · Jose R. Bernabeu ·
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram