Vai al contenuto Vai alla barra laterale

Questo è il forum di assistenza tecnica di WPML, il plug-in multilingue di WordPress.

La sua lettura è permessa a tutti, ma la pubblicazione è riservata esclusivamente ai clienti di WPML. Il team di WPML risponde sul forum 6 giorni su 7, 22 ore su 24.

Etichettato: 

Questo ticket contiene 8 risposte, ha 0 voci.

Ultimo aggiornamento da Laura 6 giorno, 23 ora fa.

Assistito da: Laura.

Autore Post
Luglio 9, 2025 alle 8:46 am #17217693

Andrea Notari

Contesto del problema:
I am working on a site in development and need to have a different label and URL for each language (I use 3 languages) for the 'Return to the shop' snippet. I am using the following code: function wc_empty_cart_redirect_url() { return 'custom-url-EN'; } add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );

Sintomi:
I have not found any documentation that truly helps.

Domande:
How can I set a different label and URL for each language in the 'Return to the shop' snippet?

Luglio 9, 2025 alle 11:53 am #17219065

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

Salve,

grazie per averci contattato.

Devi usare uno degli hook di WPML, per esempio wpml_current_language o wpml_object_id.

Luglio 9, 2025 alle 12:32 pm #17219314

Andrea Notari

Buongiorno.

Grazie per la risposta.

Puoi farmi un esempio o verificare quello che ho scritto (php non è il mio linguaggio).

function wc_empty_cart_redirect_url() {
$redirect_url = '#';

if ( defined( 'ICL_LANGUAGE_CODE' ) ) {
switch ( ICL_LANGUAGE_CODE ) {
case 'en': // EN translation
$redirect_url = '#'; // EN URL
break;
case 'fr': // French translation
$redirect_url = '#'; // FR URL
break;
}
}

return $redirect_url;
}
add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );

Luglio 9, 2025 alle 12:35 pm #17219329

Andrea Notari

Oppure forse intendevi questo?

function wc_empty_cart_redirect_url() {

$current_lang = apply_filters( 'wpml_current_language', null );

switch ( $current_lang ) {
case 'en': // EN
return '/en/shop';
case 'fr': // FR
return '/fr/shop';
default:
return '/shop'; // Default IT URL
}
}
add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );

Luglio 9, 2025 alle 3:33 pm #17220184

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

ICL_LANGUAGE_CODE è una funzione deprecata e non andrebbe mai usata.

Il secondo snippet dovrebbe funzionare.

Tieni presente che il supporto non copre il codice custom come questo, posso solo darti delle indicazioni su come raggiungere il risultato voluto ma non possiamo scrivere del codice ex-novo.

Luglio 10, 2025 alle 8:47 am #17222516

Andrea Notari

Grazie Laura.

Vanno bene le tue indicazioni ma ti chiedo di aiutarmi su 2 cose:

1) Per tua esperienza che differenza esiste tra l'uso di wpml_current_language o wpml_object_id? Nel mio caso quale conviene?

2) È possibile che usando wpml_current_language (o attivando lo snippet) avvenga in modo automatico l'aggiornamento dei permalink? Chiedo questo perché è successo.

Sì, il secondo snippet funziona correttamente.

Grazie.

Luglio 10, 2025 alle 12:03 pm #17223736

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

wpml_current_language ritorna la lingua che stai usando in quel momento (la lingua corrente, appunto) mentre wpml_object_id ritorna l'ID del post nella lingua scelta, quindi fanno proprio 2 cose diverse.

Se wpml_current_language funziona, usa quello.

WPML normalmente aggiorna i permalink, sì.

Luglio 10, 2025 alle 12:46 pm #17223888

Andrea Notari

Scusami Laura.

> WPML normalmente aggiorna i permalink, sì.

Cosa intendi esattamente?
Per quali eventi WPML aggiorna autonomamente i permalink?
Puoi documentarmi questa cosa per capire.

Grazie.

Luglio 10, 2025 alle 1:54 pm #17224334

Laura
Sostenitore di WPML dal 05/2018

Lingue: Inglese (English ) Italiano (Italiano )

Fuso orario: Europe/Rome (GMT+02:00)

WPML aggiorna i permalink dei link interni, se il contenuto viene tradotto. Non c'è una documentazione.

Nel tuo caso, lo snippet rileva qual è la lingua in uso e ritorna il permalink che hai indicato nello snippet stesso, non c'è nessun aggiornamento dei permalink.