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