Enrique J. Ros

WooCommerce no manda emails: ¿qué está pasando?

De todos los problemas que generan toneladas de consultas, uno de los más repetidos es el de los emails generados por los pedidos: WooCommerce no está enviando correos electrónicos.

Y además no es trivial, ya que puede causar problemas como que el cliente no sepa si el pedido se ha recibido correctamente o que el administrador no se entere de que hay un nuevo pedido esperando para ser preparado y enviado.

Así que vamos a ver cuáles son las principales causas (en el 90% de los casos son las mismas) de que WooCommerce no envíe los emails que debería, y a aprender a solucionarlos.

¿Está WordPress enviando los emails?

Antes de nada (sobre todo antes de empezar a ponernos nerviosos) deberíamos identificar la auténtica raíz del problema. A veces nos volvemos locos buscando la causa de un error en WooCommerce, cuando la causa en sí está no en una funcionalidad del plugin, sino en una funcionalidad de WordPress.

Seguro que ya te das cuenta de por dónde voy: ¿es realmente WooCommerce el que no está enviando los emails, o es un problema general de tu instalación? Evidentemente, si el problema está en la instalación no es que WooCommerce no envíe emails: es que no se envía ningún email desde la web.

Esto puedes comprobarlo de varias formas rápidamente, como enviando tú mismo un mensaje a través del formulario de contacto para comprobar si se reciben las notificaciones del administrador y/o del cliente, o generar una nueva contraseña para tu usuario alternativo (porque tienes una cuenta de usuario en tu web aparte de la de administrador, ¿verdad?) y permitir que se le notifique por email.

En cualquier caso es recomendable instalar y activar el plugin Email Log al hacer estas pruebas ya que podrá ayudarte, si no recibes ninguno de estos emails, a saber si el problema está al generar el email o si lo que está fallando es el envío.

Si resulta que los emails se están generando correctamente (puedes verlos registrados en la lista de Email Log) se debe normalmente a un problema con el sistema de envío.

Si es tu caso lo primero que deberías intentar es usar un plugin para envío de los correos electrónicos de la web a través de SMTP, como por ejemplo WP Mail SMTP, en lugar de dejar a PHP que haga el trabajo (mediante la función wp_mail), ya que este método puede dar problemas en función de la configuración del servidor.

¿Se están yendo los emails a la carpeta de spam?

Pero ojo, porque puede ser que todo vaya en apariencia correctamente y, sin embargo, sigan sin recibirse los correos electrónicos.

Y es que la causa puede ser tan peregrina como que están siendo detectados como correo no deseado por los filtros antispam y enviados sin misericordia a terminar sus días junto a ofertas de pastillas azules y alargadores de dudosa utilidad.

Así que, si en el punto anterior todo parece funcionar correctamente (Email Log está registrando todos los correos electrónicos y el envío por SMTP no reporta ningún error) comprueba la bandeja de correo no deseado. A veces los filtros son tan simpáticos que incluso el buzón de correo del mismo dominio que la web está bloqueando la entrada de los correos electrónicos.

Revisar los ajustes de correos electrónicos de WooCommerce

Una vez comprobado que WordPress está enviando el resto de correos (los que no corresponden a WooCommerce) correctamente y que estos no se están quedando en la bandeja de correo no deseado, podemos estar razonablemente seguros de que tenemos realmente un problema con los emails de WooCommerce.

O no. Quizá no se trate más que de una configuración incorrecta, así que hay que comprobar que tenemos WooCommerce correctamente configurado para que envíe los emails que queramos que envíe.

Estos ajustes los encontrarás en WooCommerce > Ajustes > Correos electrónicos, donde puedes configurar qué emails (nuevo pedido, cambio de estado, etc.) deben enviarse al administrador y al cliente: si el correo electrónico tiene una marca violeta a la izquierda, debería estar enviándose.

Si en lugar de esta marca ✓ sobre fondo violeta tiene una ✕ sobre fondo gris, significa que esa notificación no está activada. En ese caso tienes que pulsar sobre el botón Gestionar y marcar la casilla Activar este aviso por correo electrónico.

Las tareas cron no se están ejecutando

A partir de WooCommerce 3.0 se introdujo un cambio en el modo en que WooCommerce enviaba el email de notificación de nuevo pedido: en lugar de ser enviado de inmediato, era enviado a la cola de tareas programadas (cron).

Muchas instalaciones experimentaron problemas entonces con el envío de este email específico, mientras que el envío se realizaba correctamente si se lanzaba manualmente a través de las acciones del pedido. Por eso WooCommerce incluyó un filtro que desactivaba esta característica, volviendo al sistema de envío anterior.

Estos problemas suelen estar relacionados específicamente no con WooCommerce, sino con la ejecución de las tareas programadas:

En cualquier caso, si tu problema se parece mucho a lo que acabo de describir, resolverlo es sencillo: basta con que pegues este código en tu archivo functions.php:

add_filter( 'woocommerce_defer_transactional_emails', '__return_false' );
Salir de la versión móvil