Come reindirizzare un cliente su una pagina personalizzata dopo il login in WooCommerce

Come comportamento predefinito, WooCommerce reindirizza i clienti che effettuano il login sulla dashboard della pagina my-account. Ci sono casi in cui preferiresti che una volta effettuato il login i tuoi clienti atterrino su una pagina diversa? Si, è possibile, potresti reindirizzarli direttamente alla pagina shop, oppure ad una pagina personalizzata di benvenuto, contenente ad esempio istruzioni e avvisi.
Sei incuriosito? Bene, vediamo come fare a raggiungere lo scopo.
- Leggi l'articolo, ti bastano solo 1 minuto, 17 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Il codice
Per raggiungere l’obbiettivo, utilizziamo un hook messo a disposizione da WooCommerce:
apply_filters( ‘woocommerce_login_redirect’, $redirect, $user );
I lettori più assidui, ricorderanno sicuramente il nostro precedente articolo Come reindirizzare un utente dopo il login su WordPress. Questo nuovo hook funziona in modo del tutto analogo, ma è specifico di WooCommerce e viene invocato quando si effettua il login dalla pagina my-account proprio di WooCommerce.
Utilizzare l’hook è molto semplice: è sufficiente quindi inserire nel file:
wp-content/themes/{nome_del_tema}/functions.php
il codice:
add_filter( 'woocommerce_login_redirect', function( $redirect, $user ) { if ( wc_user_has_role( $user, 'customer' ) ) { $redirect = get_home_url( '/pagina-personalizzata-dopo-login/' ); } return $redirect; }, 99, 2 );
In particolare, lo snippet si occupa di controllare se l’utente che ha effettuato il login ha ruolo customer, applicando poi il redirect alla URL ‘/pagina-personalizzata-dopo-login/’.
Ovviamente, nulla ti vieta di modificare o eliminare la condizione di controllo del ruolo. È infine sufficiente valorizzare la variabile $redirect con la URL che preferisci. Ecco qualche esempio utile:
// Reindirizza alla pagina shop del tuo sito $redirect = wc_get_page_permalink( 'shop' ); // Reindirizza alla pagina ordini nella sezione my-account del cliente $redirect = wc_get_endpoint_url( 'orders', '', get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) ); // Reindirizza alla pagina con ID 100 $redirect = get_permalink( 100 ); // Reindirizza alla pagina con slug "pagina-personalizzata" $redirect = get_home_url( '/pagina-personalizzata/' ); // Reindirizza ad una pagina esterna al tuo sito $redirect = 'https://www.code4life.it/';
…e così via! Non ti resta che pensare allo scenario ideale per il tuo negozio WooCommerce e migliorare l’esperienza d’uso dei tuoi utenti.