我正在尝试将具有特定元标记的用户在登录时发送到特殊页面。我知道$ current_user全局可能不可用,但是过滤器将用户作为参数传递,所以我想是什么我正在做的应该工作:
//special login redirect for employers
function employer_login_redirect($redirect_url, $request_url, $user) {
$user;
$is_employer = get_user_meta($user->ID, 'is_employer', true);
var_dump($is_employer);
if ($is_employer) {
return get_bloginfo('url') . "/candidate-ranks/";
} else {
return $redirect_url;
}
}
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 ); //late priority just in case other plugins are interfering
我错过了什么吗?我甚至无法显示var_dumpt,这让我觉得回调函数甚至没有被触发。
答案 0 :(得分:0)
看起来不错,但我认为你应该使用site_url()
因为get_bloginfo('url')
返回home_url而不是site_url。这可能是一个问题。
function employer_login_redirect($redirect_url, $request_url, $user) {
$is_employer = get_user_meta($user->ID, 'is_employer', true);
if ($is_employer) {
return site_url() . "/candidate-ranks/";
} else {
return $redirect_url;
}
}
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 );