Retour au blog

Comment rediriger les utilisateurs après leur connexion en fonction de leur rôle sur WordPress

2022-02-142 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 :

  1. https://wordpress.org/plugins/role-based-redirect/
    1. Documentation : https://wordpress.org/plugins/role-based-redirect/
  2. https://wordpress.org/plugins/peters-login-redirect/
    1. 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.

Catégories: