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.phpestá 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_createdymeta_query(para excluircod). - Se usa
WC()->mailer()->emailsy se dispara->trigger($order_id)de las clases de correo de WooCommerce, p. ej.:WC_Email_New_OrderWC_Email_Customer_On_Hold_OrderWC_Email_Customer_Processing_OrderWC_Email_Customer_Completed_OrderWC_Email_Failed_OrderWC_Email_Cancelled_OrderWC_Email_Customer_InvoiceWC_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_refererpara 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
cody 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_diedurante eltriggerde emails para evitar caída del flujo AJAX. Se conviertewp_dieen 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
stepy respuesta con contadores por tipo de correo.
-
1.0.3
- Nuevo: flag interno
_yg_resend_wc_emails_donepara evitar reenvíos repetidos y opción "Ignorar flag" en la UI. - Mejora: detectar si el método
codestá 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!