Comment rediriger les utilisateurs après leur connexion en fonction de leur rôle sur WordPress
2022-02-14•2 min de lecture
Si votre site/projet WordPress nécessite que les utilisateurs soient redirigés vers différentes pages après leur connexion réussie, en fonction de leurs rôles, vous pouvez utiliser l'un des plugins suivants :
- https://wordpress.org/plugins/role-based-redirect/
- Documentation : https://wordpress.org/plugins/role-based-redirect/
- https://wordpress.org/plugins/peters-login-redirect/
- Documentation : https://loginwp.com/docs/
Quand on veut limiter le nombre de plugins et faire la redirection avec du code personnalisé ?
Vous pouvez utiliser un extrait comme celui-ci (Vous pouvez ajouter le code dans le fichier functions.php ou dans un plugin personnalisé existant) :
/**
* rediriger les utilisateurs après leur connexion.
* @param $redirect_to
* @param $request
* @param $user
* @return mixed|string|void
*/
function my_site_login_redirect( $redirect_to, $request, $user ) {
if ( isset( $user->roles ) && is_array( $user->roles ) ) {
if ( in_array( 'administrator', $user->roles ) || in_array( 'editor', $user->roles ) ) {
$redirect_to = admin_url();
} else if ( in_array( 'customer', $user->roles ) ) {
$redirect_to = home_url( '/shop/' );
} else {
$redirect_to = home_url('/shop');
}
}
return $redirect_to;
}
add_filter( 'login_redirect', 'my_site_login_redirect', 10, 3 );
Une courte explication du code
Le code implémente le filtre login_redirect
Le code vérifie si l'utilisateur a le rôle d'administrateur ou d'éditeur, si c'est le cas, l'utilisateur est redirigé vers la page du tableau de bord d'administration, sinon si l'utilisateur a le rôle de client VIP, l'utilisateur est redirigé vers la page /custom-dashboard, tous les autres utilisateurs seront redirigés vers la page /shop.