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

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.



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Come aumentare il limite di memoria in WordPress


Scopri come aumentare il limite della memoria che WordPress utilizza per il PHP, risolvendo l’errore Fatal error: Allowed memory size of…

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)