Passer au contenu Passer à la barre latérale

Ce sujet est résolu. Voici une description du problème et de la solution.

Problème :
Le client a rencontré un problème de duplication de commandes avec WooCommerce Bookings après la mise à jour de WooCommerce Multilingual & Multicurrency de la version 5.2.1 à la version 5.3.0.
Solution :
Nous avons publié WCML 5.3.3 qui résout des problèmes liés à WooCommerce Bookings. Nous recommandons de mettre à jour vers cette version. Vous pouvez consulter le journal des changements et télécharger la mise à jour ici : WCML 5.3.3 Changelog.
Pour le problème de traduction mentionné, nous avons ouvert un nouveau ticket pour le traiter séparément. Vous pouvez suivre la discussion et obtenir de l'aide sur ce ticket ici : Nouveau ticket de support.

Si cette solution ne semble pas pertinente, veuillez ouvrir un nouveau ticket de support sur notre forum : Forum de support WPML.

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Ce sujet contient 28 réponses, a 3 voix.

Dernière mise à jour par Nicolas V. Il y a 1 année et 7 mois.

Assisté par: Ilyes.

Auteur Messages
Novembre 30, 2023 à 3:19 pm #14964525

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Les développeurs m'ont donné le code suivant que vous pouvez ajouter soit dans le fichier functions.php de votre thème actif soit dans un mu-plugin.

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 );

J'ai voulu le tester sur la copie Cloudways mais j'ai des problèmes de connection à la base de données. Veuillez me confirmer que cela résout le problème de votre côté.

décembre 2, 2023 à 1:48 pm #14977667

florentC-7

Bonjour Nicolas,

Merci pour votre retour.

Je fais les tests en local et je reviens vers vous.

Cordialement,
Florent

décembre 4, 2023 à 11:40 am #14986087

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour Florent,

Merci, j'attends donc votre confirmation.

décembre 5, 2023 à 11:54 am #14996531

florentC-7

Bonjour Nicolas,

J'ai donc pu mener quelques essais.

Je suis un peu déconcerté et vous aurez sans doute quelques éléments de réponse à me fournir...

En effet, je constate, sur la première capture d'écran, bien dans la boite de réception, qu'un seul email a été reçu par le client (moi, en l'occurence)
Le second fait référence à la copie envoyée à l'administrateur (ici etrier@henson.fr)

Nous avons donc bien un fonctionnement normal (1 email au client + 1 email à l'admin)

Hors, lorsque je regarde les journaux d'AutomateWoo, je constate que deux emails ont été envoyés au client (seconde capture)

Enfin, si j'observe les informations de la commande WooCommerce, je remarque que deux réservations ont été créées: 109201 et 109202 (troisième capture)

Alors que sur le site en ligne, avec l'ancienne version du plugin, une seule réservation est créée et donc naturellement, un seul email est envoyé au client (quatrième capture)

Je m'interroge donc sur le fonctionnement de votre code d'ajustement.

Si je suis sa logique, il n'empêche aucunement la création inutile d'entrées (les réservations, les logs du journal AutomateWoo), ni la création d'une action d'envoi d'email d'AutomateWoo mais va simplement bloquer l'une d'entre-elles. C'est bien ça?

Auquel cas, afin de ne pas surcharger inutilement la base de données, ni rendre confus la lecture des journaux d'AutomateWoo, je préfère conserver temporairement l'ancienne version du plugin.

En revanche, pouvez-vous me confirmer que la prochaine mise à jour ne se basera pas sur le principe de ce code personnalisé?

D'avance, je vous remercie de votre retour.

Bien cordialement,
Florent

Capture d’écran 2023-12-05 à 12.33.48.png
Capture d’écran 2023-12-05 à 12.26.04.png
Capture d’écran 2023-12-05 à 12.25.42.png
Capture d’écran 2023-12-05 à 12.29.05.png
décembre 5, 2023 à 12:58 pm #14997481

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

1/ Oui ce code permet de garder le statut de l'email dans un transient ce qui évite l'envoi u second email par AutomateWoo. C'est une solution d'appoint pour un plugin qui n'est pas encore 100% compatibile.

2/ Par contre notre équipe à travailler sur la compatibilité de WP Bookings dans la dernière version de WCML. Certes WP Bookings fonctionnait peut être ensemble dans les versions antérieures mais la logique de WP Bookings n'était pas intégrée et il y avait pas mal de rapport de bugs dans des cas précis.

Le fait que AutomateWoo + WP Bookings + WCML fonctionnait sur votre site était en quelque sorte un "side effect". Cela fonctionnait mais pas de la bonne manière.

Maintenant WP Bookings et WCML sont 100% compatibles, et la logique de WP Bookings est prise en compte, c'est pour cela qu'avec la nouvelle version de WCML vous avez 1 commande, 2 réservations. Je l'ai confirmé dans ma première réponse ici (dans "clarifications"): https://wpml.org/fr/forums/topic/woocommerce-bookings-une-commande-2-reservations-fr-uk-2/#post-14889133

En résumé: WCML 5.3.0 rend WP Bookings compatible (voir le changelog: https://wpml.org/download/woocommerce-multilingual-multicurrency/?section=changelog)
Et le code fourni est une solution d'appoint pour AutomateWoo qui n'est pas encore compatible.

Nico

décembre 6, 2023 à 1:12 pm #15007797

florentC-7

Bonjour Nicolas,

Merci pour votre retour.

1/ Bien je comprends la logique de blocage de l'évènement. Toutefois, cet envoi, bien que non opéré, apparaît tout de même dans les journaux d'activité d'AutomateWoo (ce qui est, vous en conviendrez, un peu perturbant)

2/ J'ai un peu de mal à vous suivre...

Sommes-nous d'accord que vous parlez bien de WooCommerce Bookings et non WP Bookings qui est un autre plugin?

Par ailleurs, vous m'avez mis le doute. Donc par acquis de conscience, je suis allé vérifier.
En l'occurence, les réservations faites dans une langue se répercutent normalement dans l'autre.
Et ce, même si une seule entrée par réservation a été créée et non deux (qui, supposément, devait servir à répercuter l'indisponibilité d'un créneau dans l'autre langue)

Dans ce cas, pourquoi cela fonctionne-t-il sans problème sur mon installation? Il y a quelque chose d'illogique ici car selon vos explications, la duplication d'une réservation permet de mettre à jour les places disponibles pour un créneau dans les deux langues. Par conséquent, l'absence de cette réservation dupliquée devrait empêcher de voir, dans la seconde langue, le bon nombre de places disponibles. Hors ce n'est pas le cas...

Ce qui me fait m'interroge sur la pertinence d'avoir un "nouveau" système, avec une meilleure compatibilité, mais qui aurait comme effet direct de surcharger la base de données avec les entrées dupliquées et nécessiterait de juguler le fonctionnement normal des plugins avec lesquels il coopère (en l'occurence AutomateWoo et son système d'envoi automatique d'email)

Vous dites que le bon fonctionnement de mon installation est un "effet secondaire" et qu'il n'opère pas de la bonne manière. Bien évidemment, je suis tout à fait prêt à l'entendre. Mais comprenez que de mon point de vue, il fonctionne idéalement en évitant les confusions d'envois multiples et les entrées dupliquées inutilement dans la base de données.

Ne serait-il pas judicieux de se pencher sur ce cas afin de comprendre pour quelles raisons il fonctionne "anormalement" normalement si je puis l'exprimer ainsi?

Je me mets à votre disposition si vous avez besoin d'éléments.

Bien cordialement,
Florent

décembre 7, 2023 à 3:21 pm #15018305

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour Florent,

Je vous prie de m'excuser pour le léger retard dans la réponse,

Nicolas est actuellement en congé, je vais donc m'occuper de vos demandes dans l'intervalle,

J'ai recontacté notre équipe de développement à propos de vos commentaires concernant la façon dont votre site a été affecté par la mise à jour WCML 5.3.1 + la solution par code personnalisé que nous avons fournie.

Lorsque vous dites que cela fonctionne comme prévu dans votre installation, faites-vous référence à la version utilisant WCML 5.2.1 ?

Si j'ai bien compris votre dernier message, avec WCML 5.2.1 :

- AutomateWoo n'a pas créé ni envoyé d'emails en double à l'utilisateur et il n'y avait pas non plus d'emails en double dans les logs.
- Une seule entrée de réservation a été créée et cela a suffi à bloquer sa disponibilité dans toutes les langues.

Je vous informerai dès que j'aurai reçu une mise à jour de la part de nos développeurs, en espérant qu'ils puissent trouver une meilleure solution pour votre cas,

Cordialement,

décembre 8, 2023 à 9:06 am #15023559

florentC-7

Bonjour Ilyes,

Merci pour votre retour.

Oui, en effet, c'est très exactement ce que je veux dire par là.

J'ai encore fait l'essai ce matin et une réservation prend effet sur le calendrier de chacune des langues.

Et comme il n'y a qu'une seule entrée par réservation, il n'y a qu'un envoi d'email pour celle-ci.

Sachant que les flux de travail sont traduits, l'email envoyé s'applique au nom de la catégorie correspondante. Ainsi, il n'y a pas de de confusion. Un produit réservé en anglais appartient donc à une catégorie de produit en anglais et c'est le flux de travail correspondant à cette catégorie qui sera déclenché pour l'envoi de l'email de confirmation.

D'ailleurs, je ne sais pas si votre système est pensé ainsi mais le calendrier est-il partagé entre les langues ou distinct?

Car après tout, nous parlons de traduction et non de distinction régionalisée de produit.

Je me mets à votre disposition pour toute demande d'informations complémentaires.

Bien cordialement,
Florent

décembre 20, 2023 à 3:32 pm #15104311

florentC-7

Bonjour,

Quelqu'un s'occupe-t-il de faire un suivi de ce ticket?

Je ne fais toujours pas la mise à jour ne sachant pas l'effet de celle-ci sur mon système et je ne tiens définitivement pas à retomber dans les problèmes d'avant et ses doublons.

Merci de bien vouloir revenir vers moi.

Cordialement,
Florent

décembre 20, 2023 à 3:51 pm #15104439

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Bonjour Florent,

Merci encore pour votre patience,

Depuis la dernière fois que nous nous sommes parlés, l'équipe de développement a fait passer le problème au niveau de notre principal chaine de compatibilité, ce qui signifie qu'ils prévoient d'implémenter les changements nécessaires dans la prochaine version de WCML,

Je n'ai pas encore reçu de solutions temporaires car comme nous l'avons déjà dit, il s'agit vraiment d'une situation unique qui nécessite du temps pour être corrigée sans affecter les autres fonctionnalités de WP, WPML et WC.

Je suis le traitement de ce ticket et je reviendrai vers vous avec des mises à jour bientôt !

Merci,

décembre 20, 2023 à 3:58 pm #15104461

florentC-7

Bonjour Ilyes,
Merci pour votre retour.
J'attends donc de vos nouvelles et me mets à votre disposition si je peux aider.
Cordialement,
Florent

décembre 20, 2023 à 4:11 pm #15104625

Ilyes
Supporter

Les langues: Anglais (English ) Français (Français ) Arabe (العربية )

Fuseau horaire: Pacific/Easter (GMT-05:00)

Votre aide est vraiment appréciée, passez une bonne fin de journée ! et on se reparle bientôt.

janvier 25, 2024 à 9:58 am #15225324
florentC-7

Bonjour,

Je me permets de revenir vers vous afin d'avoir des nouvelles de l'avancée de notre ticket.

Voilà maintenant des semaines que je ne fais pas la mise à jour du plugin incriminé, ce qui pose des problèmes de sécurité et très certainement de futures incompatibilités avec les autres plugins WPML.

Je propose, une fois de plus, de me mettre à la disposition de vos services afin qu'ils puissent, si cela paraît pertinent, analyser mon site afin de comprendre pourquoi le plugin en question pose problème.

Par ailleurs, je remarque que mes traductions ne sont plus prises en compte lors de la création/modification de la traduction d'un produit.

En effet, alors même qu'une traduction a bien été enregistrée pour un produit (comme le fait mention la notification), vous pouvez constater sur la capture jointe qu'aucune traduction n'est en réalité liée au-dit produit.

Pouvez-vous svp prendre rapidement contact avec moi afin que nous puissions comprendre d'où vient le problème et le régler dans les meilleurs délais?

D'avance merci de votre retour.

Cordialement,
Florent

Les nouveaux fils créés par Nicolas V. et associés à celui-ci sont repris ci-dessous :

https://wpml.org/fr/forums/topic/split-woocommerce-bookings-une-commande-2-reservations-fr-uk-2/

Capture d’écran 2024-01-25 à 10.56.38.png
janvier 25, 2024 à 1:11 pm #15226230

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour Florent,

Nous venons de publier WCML 5.3.3 qui règle deux problèmes liés à WooCommerce Bookings. Vous pouvez voir le journal des changements et télécharger cette version ici: https://wpml.org/download/woocommerce-multilingual-multicurrency/?section=changelog

Concernant le problème de traduction, comme nous limitons les tickets à un seul problème, j'ai ouvert un nouveau ticket pour vous. Continuons la conversation sur ce nouveau ticket: https://wpml.org/fr/forums/topic/split-woocommerce-bookings-une-commande-2-reservations-fr-uk-2/

Traiter un seul problème par ticket aide à garder le forum organisé, cela aidera aussi les autres utilisateurs avec un problème similaire à trouver plus rapidement une solution sur le forum.

Merci de votre compréhension.
Nico