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:
- En un plugin de funcionalidades personalizado.
- En el archivo functions.php de tu tema hijo.
- A través de un plugin de gestión de fragmentos de código como Code Snippets o Advanced Scripts.
Si necesitas ayuda para ello, no dudes en ponerte en contacto conmigo.