3

我试图在用户登录时将具有特定元标记的用户发送到特殊页面。我知道 $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,这让我认为回调函数甚至没有被触发。

4

1 回答 1

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 );
于 2012-09-29T21:41:42.457 回答