Reenvía en bloque correos de WooCommerce para pedidos dentro de un rango de fechas, con filtros por estados, tipos de correo y exclusiones (por ejemplo, pagos contraentrega cod
). Incluye modo simulación para evaluar el impacto antes de enviar.
- Autor: Yogui Dev
- Versión: 1.0.6
- Licencia: GPLv2 or later
- Requiere: WordPress + WooCommerce activos
- Archivo principal:
yg-dev-resend-wc-emails.php
Repositorio oficial: https://github.com/yogui-dev/yg-dev-resend-wc-emails
-
Reenvío masivo por rango de fechas (inicio y término) usando la zona horaria del sitio.
-
Filtro por estados de pedido (ej.: pending, on-hold, processing, completed, etc.).
-
Selección de tipos de correo a reenviar:
- Nuevo pedido (admin)
- Pedido en espera (cliente)
- Pedido en procesamiento (cliente)
- Pedido completado (cliente)
- Pedido fallido (cliente)
- Pedido cancelado (cliente)
- Factura/Detalles de pedido (cliente)
- Pedido reembolsado (cliente)
-
Exclusión de métodos de pago
cod
(por defecto activada). -
Modo simulación (no envía; solo calcula cuántos correos se enviarían).
-
Opción para reenviar “Nuevo pedido (admin)” solo si no fue enviado antes, validando el meta
_new_order_email_sent
. -
Ejecución por AJAX con barra de progreso y actualización en vivo del índice procesado.
-
Visualización de errores recientes durante el proceso.
-
Flag interno por pedido para evitar reenvíos repetidos (
_yg_resend_wc_emails_done
) y opción para ignorarlo. -
Agrega una nota al pedido cuando se reenvían correos, con detalle del tipo y usuario que ejecutó la acción.
- WordPress compatible con WooCommerce actual.
- WooCommerce activo: el menú y la pantalla solo se registran si WooCommerce está cargado.
- Permisos de usuario:
manage_woocommerce
(administración de WooCommerce).
- Copia la carpeta del plugin
yg-dev-resend-wc-emails/
dentro dewp-content/plugins/
. - Asegúrate de que el archivo principal
yg-dev-resend-wc-emails.php
está en esa carpeta. - Activa el plugin desde el panel de WordPress en “Plugins”.
- Verás el submenú en: WooCommerce → Reenviar Emails.
- Ve a
WooCommerce → Reenviar Emails
. - Define el rango de fechas (Inicio y Término). El selector usa formato
datetime-local
. - Selecciona los estados de pedido a incluir.
- Marca los tipos de correo que deseas reenviar.
- Opcional:
- Excluir pagos en efectivo (cod).
- Solo reenviar “Nuevo pedido (admin)” si no fue enviado antes.
- Activar “Simular (no envía, solo calcula)” para revisar resultados antes de hacer envíos.
- Haz clic en “Ejecutar”.
Al finalizar, verás un resumen con:
- Pedidos afectados.
- Conteo de correos por tipo.
- Errores (si los hubo).
- Indicador si fue simulación.
- Pantalla y lógica principal en
yg-dev-resend-wc-emails.php
, funciónyg_dev_resend_wc_emails_admin_page()
. - Consulta de pedidos con
wc_get_orders()
filtrando porstatus
,date_created
ymeta_query
(para excluircod
). - Se usa
WC()->mailer()->emails
y se dispara->trigger($order_id)
de las clases de correo de WooCommerce, p. ej.:WC_Email_New_Order
WC_Email_Customer_On_Hold_Order
WC_Email_Customer_Processing_Order
WC_Email_Customer_Completed_Order
WC_Email_Failed_Order
WC_Email_Cancelled_Order
WC_Email_Customer_Invoice
WC_Email_Customer_Refunded_Order
- Solo se enviarán correos que estén habilitados en WooCommerce → Ajustes → Correos electrónicos (
is_enabled()
). - Conversión de fechas a formato MySQL respetando la zona horaria del sitio:
yg_dev_resend_wc_emails_to_mysql_datetime()
.
- Este plugin respeta la habilitación de emails en WooCommerce. Si un email está desactivado en los ajustes, no se enviará aunque lo marques aquí.
- El tipo “Factura/Detalles de pedido (cliente)” puede requerir parámetros adicionales en ciertas versiones de WooCommerce. Aquí se activa con el
trigger($order_id)
estándar. - El valor por defecto del campo “Inicio” está configurado en el código como
2025-08-12T09:00
, y “Término” usa la hora actual del sitio.
- Solo accesible a usuarios con capacidad
manage_woocommerce
. - Se utiliza
check_admin_referer
para proteger el envío del formulario en la pantalla de administración.
- “No se encontraron pedidos”: revisa rango de fechas, estados seleccionados o si estás excluyendo
cod
y tus pedidos son de ese método de pago. - “No se envían correos”: verifica en WooCommerce → Ajustes → Correos electrónicos que el tipo esté habilitado. Revisa también logs de WooCommerce/SMTP.
- “Demora o timeouts”: el plugin intenta remover límites (
set_time_limit(0)
), pero en servidores con restricciones podrías necesitar reducir el rango o usar el modo simulación primero.
- Seleccionar/excluir métodos de envío.
- Paginación por lotes para sitios con muchos pedidos.
- Registro detallado a archivo/log.
-
1.0.6
- Arreglo: capturar
wp_die
durante eltrigger
de emails para evitar caída del flujo AJAX. Se conviertewp_die
en Exception y se restaura el handler enfinally
. - Arreglo: procesamiento determinístico al ordenar las consultas por fecha ascendente (
orderby=date
,order=ASC
). - Mejora de resiliencia ante pedidos problemáticos y verificación de permisos antes de agregar notas al pedido.
- Arreglo: capturar
-
1.0.5
- Mejora: notas en el pedido tras reenvío con detalle de correos enviados, fecha y usuario.
- Mejora: progreso e ID de último pedido procesado en la UI (AJAX), y manejo de errores más robusto.
- Varios: limpieza de código y pequeñas mejoras de UX.
-
1.0.4
- Nuevo: ejecución por AJAX con barra de progreso y listado de errores recientes.
- Mejora: control de lotes en endpoint
step
y respuesta con contadores por tipo de correo.
-
1.0.3
- Nuevo: flag interno
_yg_resend_wc_emails_done
para evitar reenvíos repetidos y opción "Ignorar flag" en la UI. - Mejora: detectar si el método
cod
está activo para habilitar/deshabilitar la exclusión.
- Nuevo: flag interno
-
1.0.2
- Agregado: tabla de previsualización siempre visible bajo el formulario. Muestra, según los filtros actuales, una fila por Pedido x Tipo de correo a enviar. Respeta estados, rango de fechas, exclusión
cod
, tipos seleccionados, habilitación de emails en WooCommerce y la regla opcional "Nuevo pedido (admin) solo si no fue enviado antes".
- Agregado: tabla de previsualización siempre visible bajo el formulario. Muestra, según los filtros actuales, una fila por Pedido x Tipo de correo a enviar. Respeta estados, rango de fechas, exclusión
-
1.0.1
- Agregado: tabla de "Órdenes filtradas" en el resumen con columnas ID, #Pedido, Fecha, Estado, Total, Pago y Email.
-
1.0.0
- Versión inicial: reenvío por rango de fechas, filtros por estado, tipos de correo, exclusión
cod
, modo simulación y regla para “Nuevo pedido (admin)” si no fue enviado antes.
- Versión inicial: reenvío por rango de fechas, filtros por estado, tipos de correo, exclusión
Este plugin se distribuye bajo la licencia GPLv2 o posterior.
Por Yogui Dev — creando herramientas simples y útiles para tiendas con WooCommerce.
Si este plugin te ayudó, considera dejar una ⭐ en el repositorio: https://github.com/yogui-dev/yg-dev-resend-wc-emails ¡Gracias por apoyar el software libre!