WordPress 中如何根据用户角色重定向用户登录
2022-02-14•2 分钟阅读
如果您的 WordPress 网站/项目需要根据用户角色在用户成功登录后重定向到不同的页面,您可以使用以下任何插件:
- https://wordpress.org/plugins/role-based-redirect/
- https://wordpress.org/plugins/peters-login-redirect/
如果您想减少插件数量并使用自定义代码进行重定向该怎么办?
您可以使用如下代码片段(您可以将代码添加到 functions.php 文件或现有的自定义插件中):
/**
* 用户登录后重定向。
* @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 );
关于代码的简要说明
该代码实现了 login_redirect 过滤器
代码检查用户是否具有管理员或编辑者角色,如果是,则用户将被重定向到管理仪表盘页面,否则如果用户具有 vip_customer 角色,用户将被重定向到 /custom-dashboard 页面,任何其他用户将被重定向到 /shop 页面。