WPML
Statut
Résolu
Signalé pour
WPML String Translation 2.4.2
Résolu dans
WPML String Translation 2.4.2.1

Aperçu de l’anomalie

Lors de l’utilisation de WPML Multilingual & Multicurrency for WooCommerce 3.8.6 avec WPML 3.5.3, des erreurs s’affichent (ou sont enregistrées) sur la page de confirmation de commande, après avoir passé une commande dans une langue secondaire.

Le message d’erreur est similaire à celui ci-dessous :

PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155

En plus du message d’erreur, au lieu de la page « Commande reçue » contenant les détails de la commande, les utilisateurs voient s’afficher la page « Validation de commande » traduite sans aucun contenu.

Page « Validation de commande » vide
Page « Validation de commande » vide en allemand

Bien que les commandes soient traitées et que les e-mails de notification soient envoyés, les clients pourraient être confus, penser que la commande n’a pas abouti et envoyer des commandes en double.

Nous avons découvert que cela provient d’une modification dans WPML Traduction de chaînes 2.4.2. Un correctif est déjà en cours, mais nous devons bien le tester avant de publier une mise à jour.

Solution de contournement

Une solution consiste à utiliser la version bêta 2.4.2.1-b1 de WPML Traduction de chaînes. Elle résout uniquement ce problème précis et ne devrait avoir aucune autre incidence. Il s’agit toutefois d’une version bêta, la prudence est donc de mise : sauvegardez votre site et testez-la de préférence d’abord sur un environnement de test.

Il existe une autre solution de contournement possible que vous pouvez utiliser temporairement et qui ne devrait pas trop affecter l’expérience utilisateur. Cette solution de contournement consiste à marquer la chaîne de texte correspondant au point de terminaison « order-received » comme non traduite. Vous n’avez pas besoin de supprimer la chaîne de texte, mais simplement de décocher la case « La traduction est terminée ». Voici les étapes à suivre si l’anglais est votre langue par défaut. Les étapes sont identiques si votre site utilise une langue par défaut différente.


  1. Allez dans WPML -> Traduction de chaînes

  2. Recherchez « order-received » ou naviguez jusqu’au domaine « WooCommerce Endpoints » et trouvez la chaîne de texte « order-received ».

  3. Développez la section « Traductions » pour la chaîne de texte « order-received »

  4. Décochez la case « La traduction est terminée » et cliquez sur « Enregistrer » pour toutes les langues
Marquez le point de terminaison « order-received » comme non traduit
Marquez le point de terminaison « order-received » comme non traduit

Après cela, votre page « Order Received » sera toujours traduite. C’est simplement que la chaîne de texte du point de terminaison dans l’URL ne sera pas traduite.

Toutes les anomalies connues →