Saltar navegación

Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.

Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.

Etiquetado: 

Este tema contiene 2 respuestas, tiene 0 voces.

Última actualización por Otto hace 3 semanas, 2 días.

Asistido por: Otto.

Autor Entradas
Abril 23, 2025 en 3:57 pm #16961240

sergiom-12

Antecedentes del problema:
Estoy intentando configurar AutomateWoo para que envíe un aviso 3 días antes de la fecha de una reserva hecha con WooCommerce Bookings. Aquí está el enlace a la página donde se puede ver el problema: enlace oculto

Síntomas:
Se envían todos los avisos o flujos por duplicado.

Preguntas:
¿Por qué se envían los avisos o flujos por duplicado?
¿Cómo puedo configurar AutomateWoo para que envíe un solo aviso según el idioma?

Abril 23, 2025 en 4:06 pm #16961273

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

AutomateWoo requiere que se creen flujos de trabajo separados para cada idioma. Esto significa que debes duplicar tu flujo de trabajo original y adaptarlo para cada idioma que utilices en tu sitio.
Pasos:
• Edita tu flujo de trabajo en el idioma predeterminado.
• Utiliza el botón “Duplicar” para crear una copia del flujo de trabajo.
• En la copia, haz clic en “Traducir independientemente” para editar el contenido en el nuevo idioma.
• Asegúrate de que las condiciones del flujo de trabajo se apliquen solo a usuarios que navegan en el idioma correspondiente.

Por favor, revisa esta documentación y asegúrate de haberlo configurado de acuerdo a ella:
https://woocommerce.com/document/automatewoo/wpml-2/

Saludos cordiales,
Otto

Abril 24, 2025 en 6:21 am #16962512

sergiom-12

Hola,

Como ves en imagen1, todos los flujos están traducidos de forma independiente y según indicas. En imagen2 puedes ver el flujo en concreto y como está bien traducido. En la imagen3 puedes ver la cola de envíos de ese mismo flujo, se duplican para el mismo idioma.

Sergio

imagen1.png
imagen2.png
imagen3.png
Abril 24, 2025 en 1:25 pm #16964660

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias.

Para investigar mejor el problema, ¿puedes proporcionarme acceso temporal a tu sitio (wp-admin y FTP)?
**Importante:**
- **Haz un backup** de tu sitio antes de compartir los datos.
- Si no ves un formulario privado para ingresar las credenciales, **no las publiques** en el foro.

Si es necesario, podría replicar tu sitio localmente instalando un plugin (Duplicator, WP All in One Migration, WP Staging o Updraft Plus)? Una vez resuelto el problema, borraré la copia.

Saludos cordiales,
Otto

Abril 24, 2025 en 5:33 pm #16965701

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Gracias.

He consultado con nuestro suporte de compatibilidad.

El problema ocurre porque la compatibilidad de WooCommerce Bookings y WPML crea una una reserva en cada idioma.

Hemos contactado al autor para solucionar este tipo de problemas:
https://wpml.org/errata/woocommerce-bookings-automatewoo-multiple-confirmation-emails-sent-when-using-3d-secure-payment/

Pero de momento no hemos tenido respuesta.

A otro usuario le funcionó este workaround:
Utilizar el filtro pre_wp_mail de WordPress para evitar enviar correos electrónicos duplicados (con el mismo asunto al mismo destinatario) dentro de un periodo de 1 hora.

Añade este código en el archivo functions.php del tema o como un plugin específico:

<?php
add_filter( 'pre_wp_mail', function( $success, $atts ) {
	$sent = get_transient( 'wp_mail_sent' );
	if ( false === $sent ) {
		$sent = [];
	}

	if ( isset( $sent[ $atts['to'] ] ) && $atts['subject'] === $sent[ $atts['to'] ] ) {
		$success = true;
	}

	$sent[ $atts['to'] ] = $atts['subject'];
	set_transient( 'wp_mail_sent', $sent, HOUR_IN_SECONDS );

	return $success;
}, 10, 2 );

❌ Por favor, antes que nada: haz un backup de tu sitio ❌

Saludos cordiales,
Otto

Abril 25, 2025 en 7:18 am #16967075

sergiom-12

Ok, voy a implementar este código y ver, en todo caso quedo a la espera de la respuesta que os de el autor que comentas.

Abril 25, 2025 en 1:15 pm #16968745

Otto
Partidario de WPML desde 09/2015

Idiomas: Inglés (English ) Español (Español )

Zona horaria: America/Argentina/Buenos_Aires (GMT-03:00)

Hola,

Perfecto, dime si funciona por favor.

Saludos cordiales,
Otto