WPML
Stato
Risolto
Segnalato per
WPML String Translation 2.4.2
Risolto in
WPML String Translation 2.4.2.1

Panoramica del problema

Quando si utilizza WPML Multilingual & Multicurrency for WooCommerce 3.8.6 con WPML 3.5.3, alcuni errori vengono visualizzati (o registrati) nella pagina di conferma dell’ordine, dopo aver effettuato un ordine in una lingua secondaria.

Il messaggio di errore è simile a quello riportato di seguito:

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

Oltre al messaggio di errore, invece della pagina “Ordine ricevuto” con i dettagli dell’ordine, agli utenti viene mostrata la pagina “Checkout” tradotta senza alcun contenuto.

Pagina "Checkout" vuota
Pagina “Checkout” vuota in tedesco

Nonostante gli ordini vengano comunque evasi e le e-mail di notifica inviate, i clienti potrebbero confondersi, pensare che l’ordine non sia andato a buon fine e inviare ordini duplicati.

Abbiamo scoperto che ciò deriva da una modifica in WPML Traduzione stringhe 2.4.2. Una correzione è già in arrivo, ma dobbiamo testarla a fondo prima di rilasciare un aggiornamento.

Soluzione alternativa

Un modo per risolvere questo problema è utilizzare la versione beta 2.4.2.1-b1 di WPML Traduzione stringhe. Risolve solo questo problema specifico e non dovrebbe avere alcun impatto su nient’altro. Tuttavia, si tratta di una versione beta, quindi si raccomanda cautela: esegui il backup del tuo sito e preferibilmente testala prima in un ambiente non di produzione.

C’è un’altra possibile soluzione alternativa che puoi utilizzare temporaneamente e che non dovrebbe influire troppo sull’esperienza dell’utente. Questa soluzione alternativa consiste nel contrassegnare la stringa corrispondente all’endpoint ‘order-received’ come non traducibile. Non è necessario eliminare la stringa, ma basta deselezionare la casella di controllo ‘La traduzione è completata’. Ecco i passaggi per un caso in cui hai l’inglese come lingua predefinita. I passaggi sono identici se il tuo sito utilizza una lingua predefinita diversa.


  1. Vai su WPML -> Traduzione stringhe

  2. Cerca ‘order-received’ o naviga nel dominio ‘WooCommerce Endpoints’ e trova la stringa ‘order-received’.

  3. Espandi la sezione ‘Traduzioni’ per la stringa ‘order-received’

  4. Deseleziona la casella di controllo ‘La traduzione è completata’ e fai clic su ‘Salva’ per tutte le lingue
Contrassegna l’endpoint ‘order-received’ come non tradotto
Contrassegna l’endpoint ‘order-received’ come non tradotto

Dopo aver fatto questo, la tua pagina ‘Order Received’ sarà ancora tradotta. Semplicemente, la stringa dell’endpoint nell’URL non sarà tradotta.

Tutti i problemi noti →