- 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.

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.
- Allez dans WPML -> Traduction de chaînes
- Recherchez « order-received » ou naviguez jusqu’au domaine « WooCommerce Endpoints » et trouvez la chaîne de texte « order-received ».
- Développez la section « Traductions » pour la chaîne de texte « order-received »
- Décochez la case « La traduction est terminée » et cliquez sur « Enregistrer » pour toutes les langues

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.