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!
Sommario
1 Reindirizzare tutti gli utenti di WordPress dopo il login |
2 Reindirizzare gli utenti di WordPress dopo il login in base al ruolo |
3 Commenti |
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!