无法使用wp_sign_on()和set_current_user()登录用户

问题描述 投票:0回答:1

我在尝试在wordpress中设置登录系统时遇到了一些麻烦。

我使用来自post数据的用户输入来运行wp_sign_on(),它返回用户对象。然后我使用$ user-> ID设置当前用户;问题是没有任何反应,用户没有登录。(例如,如果我刷新页面或转到另一个页面,我仍然没有登录)。

我试图谷歌这个问题,但没有一个解决方案修复它。我肯定错过了一些东西。代码工作正常,但用户实际上并未实际登录...

代码如下:

            $username = $_POST['username'];
            $password = $_POST['password'];

            $creds = array();
            $creds['user_login'] = $username;
            $creds['user_password'] = $password;
            $creds['remember'] = true;

            $user = wp_signon( $creds, false ); 
            print_r( $user ); // I can see the user object printed, so it works fine.
            $user_id = $user->id; // I get the user ID
            if ( is_wp_error($user) )
            echo $user->get_error_message();
            else
            {
                wp_set_current_user( $user_id, $user_login );
                //The following three lines come from a solution found 
                online, but it doesn't work
                wp_set_auth_cookie( $user_id );
                do_action( 'wp_login', $user_login );
                wp_redirect( remove_query_arg( 'login' ) ); 
                exit; 
            }
[...]
php wordpress
1个回答
0
投票

尝试在wp_set_auth_cookie()wp_set_current_user()之后使用Codex函数

© www.soinside.com 2019 - 2024. All rights reserved.