Home>Guide>Come reindirizzare un utente dopo il login su WordPress

Come reindirizzare un utente dopo il login su WordPress




Come comportamento predefinito, WordPress reindirizza gli utenti che effettuano il login sulla dashboard del backend di WordPress.
Ma in alcuni casi, potrebbe essere molto utile decidere di far atterrare gli utenti che hanno effettuato il login su di una pagina specifica, come ad esempio una pagina contenente un avviso importante o che richiede un’azione.
Ma come è possibile reindirizzare un utente di WordPress dopo il login?

  • Leggi l'articolo, ti bastano solo 1 minuto, 17 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

Reindirizzare tutti gli utenti di WordPress dopo il login

Come tutte le guide di Code4Life, vedremo come raggiungere lo scopo senza alcun plugin, con il solo utilizzo degli hooks e degli strumenti messi a disposizione da WordPress.
Nel caso specifico, WordPress dispone di un hook che fa proprio al nostro caso: login_redirect.

È sufficiente quindi inserire nel file:

wp-content/themes/{nome_del_tema}/functions.php

il codice:

// Reindirizza l'utente ad una specifica pagina dopo il login
add_filter( 'login_redirect', function( $redirect_to, $request, $user ) {
    $redirect_to = home_url( '/pagina-personalizzata-dopo-login/' );
    return $redirect_to;
}, 10, 3 );

Nell’esempio, è mostrato come reindirizzare attraverso lo slug della pagina, ma ovviamente è possibile decidere la pagina di atterraggio dopo il login anche attraverso l’ID della pagina, se preferisci. In questo caso, il codice da utilizzare sarà:

// Reindirizza l'utente ad una specifica pagina dopo il login
add_filter( 'login_redirect', function( $redirect_to, $request, $user ) {
    $redirect_to = get_the_permalink( 10 );
    return $redirect_to;
}, 10, 3 );

dove 10 è l’ID della pagina su cui desideri reindirizzare l’utente dopo il login.

Da questo momento, tutti gli utenti che effettueranno il login, verranno reindirizzati alla pagina desiderata. Semplice no?
Ma non è finita qui!


Reindirizzare gli utenti di WordPress dopo il login in base al ruolo

L’esempio del paragrafo precedente è generico e vale per tutti gli utenti, ma come fare a reindirizzare ad una pagina personalizzata dopo il login solo utenti specifici?
Detto, fatto!
È sufficiente modificare un po’ il codice precedente in:

// Reindirizza utenti specifici ad una specifica pagina dopo il login
add_filter( 'login_redirect', function( $redirect_to, $request, $user ) {
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        if ( in_array( 'subscriber', $user->roles ) ) {
            $redirect_to = home_url( '/pagina-personalizzata-dopo-login/' ); 
        }
    }    
    return $redirect_to;
}, 10, 3 );

In questo modo, solamente gli utenti con ruolo Sottoscrittore (subscriber) verranno reindirizzati alla pagina personalizzata dopo aver completato il login.

Ora non ti resta che pensare alle tantissime soluzioni che potresti mettere in pratica con questa guida!



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 geolocalizzare un IP con PHP


Vuoi scoprire da quale luogo provengono i visitatori del suo sito web? Scopri come.

Come creare un negozio B2B con WooCommerce


È possibile creare un ecommerce B2B di successo con WooCommerce? Scopri come.

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)