←Terug naar het blog

Hoe gebruikers na het inloggen omleiden op basis van hun rol in WordPress

2022-02-14‱2 minuten lezen

Als uw WordPress-site/project vereist dat gebruikers na succesvol inloggen naar verschillende pagina's worden omgeleid, op basis van hun rollen, kunt u een van de volgende plugins gebruiken:

  1. https://wordpress.org/plugins/role-based-redirect/
    1. Documentatie: https://wordpress.org/plugins/role-based-redirect/
  2. https://wordpress.org/plugins/peters-login-redirect/
    1. Documentatie: https://loginwp.com/docs/

Wat als u het aantal plugins laag wilt houden en de omleiding wilt doen met aangepaste code?

U kunt een snippet zoals de volgende gebruiken (u kunt de code toevoegen aan het functions.php-bestand of in een bestaande aangepaste plugin):

/**
 * gebruikers omleiden na het inloggen.
 * @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 );

Een korte uitleg over de code

De code implementeert de login_redirect filter
De code controleert of de gebruiker de administrator- of editorrol heeft, zo ja, dan wordt de gebruiker omgeleid naar de admin-dashboardpagina, anders als de gebruiker de vip_customer-rol heeft, wordt de gebruiker omgeleid naar de /custom-dashboard-pagina, alle andere gebruikers worden omgeleid naar de /shop-pagina.

Categorieën: