使用自定义登录表单登录后将用户重定向到推荐人页面

时间:2013-04-03 作者:theshorttree

我使用以下代码使用自定义wordpress登录表单。我的网站侧栏中有此表单:

<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
    $args = array(
        \'redirect\' => admin_url(), 
        \'form_id\' => \'loginform-custom\',
        \'label_username\' => __( \'Username\' ),
        \'label_password\' => __( \'Password ),
        \'label_remember\' => __( \'Remember Me\' ),
        \'label_log_in\' => __( \'Log In\' ),
        \'remember\' => true
    );
    wp_login_form( $args );
} else { // If logged in:
    echo \'you are already logged in\';
    wp_loginout( home_url() ); // Display "Log Out" link.
    echo " | ";
    wp_register(\'\', \'\'); // Display "Site Admin" link.
}
?>
在函数中。php页面,我正在使用以下代码redirect users to the homepage 登录后:

function my_login_redirect( $redirect_to, $request, $user ){
    //is there a user to check?
    if( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if( in_array( "administrator", $user->roles ) ) {
            // redirect them to the default place
            return $redirect_to;
        } else {
            return home_url();
        }
    }
    else {
        return $redirect_to;
    }
}
add_filter("login_redirect", "my_login_redirect", 10, 3);
My question is:, 在用户登录后,是否有办法通过更改上述代码或使用更好的代码将用户重定向到“推荐人页面(他们登录的页面)”?

提前谢谢。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

关键部分就在这里--\'redirect\' => admin_url(), 在您的第一个代码块中。无论您将其设置为什么,都将重定向。如果你正在重定向每个人,我看不出第二个块的原因。

我找不到“此页”的函数,所以您可能想要$_SERVER[\'REQUEST_URI\']

$args = array(
    \'redirect\' => esc_url($_SERVER[\'REQUEST_URI\']), 
    \'form_id\' => \'loginform-custom\',
    \'label_username\' => __( \'Username\' ),
    \'label_password\' => __( \'Password\' ),
    \'label_remember\' => __( \'Remember Me\' ),
    \'label_log_in\' => __( \'Log In\' ),
    \'remember\' => true
);
wp_login_form( $args );
小心$_SERVER 变量:http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/

结束

相关推荐

Redirect user after logout

我正在尝试为我的成员创建一个退订页面,但为了查看退订表单,他们必须注销,因此第一个链接是:/wp-login.php?action=logout&_wpnonce=ba51bbcdc3. 一旦他们注销,我需要将他们重定向到退订表单,但我不能只设置转发,因为这也是登录页面。