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

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.
- Vai su WPML -> Traduzione stringhe
- Cerca ‘order-received’ o naviga nel dominio ‘WooCommerce Endpoints’ e trova la stringa ‘order-received’.
- Espandi la sezione ‘Traduzioni’ per la stringa ‘order-received’
- Deseleziona la casella di controllo ‘La traduzione è completata’ e fai clic su ‘Salva’ per tutte le lingue

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