wp_set_auth_cookie()函数不能与ajax一起使用?

时间:2019-08-05 18:49:00

标签: jquery ajax wordpress wordpress-theming

请帮助,在创建自定义wordpress表单进行登录时,wp_set_auth_cookie()函数存在问题。 Ajax可以正常工作,它可以发送数据,并且已经将我重定向到所需的页面,但是它没有运行wp_set_auth_cookie()和wp_set_current_user()函数。我认为这是因为wp_set_auth_cookie()需要位于页面顶部,但是我在functions.php中编写了该代码,当我按带有正确信息的登录名时,它会将我重定向到正确的主页,但没有任何不同(不是用户)。 请注意,当我将其添加到同一页面顶部而不使用ajax时,此代码可以正常工作。

这是登录功能

function login_ajax_moAtef() {
if ( isset($_REQUEST) ) {
    $user_login     = esc_attr($_REQUEST['user_email']);
    $user_password  = esc_attr($_REQUEST['user_password']);
    $user_email     = esc_attr($_REQUEST['user_email']);
    $creds = array();
    $creds['user_login'] = $user_login;
    $creds['user_password'] = $user_password;
    if(empty($user_login) || empty($user_password) || empty($user_email)){
        echo "Please fill username or Email and password";
    }
    if($_REQUEST['rememberme']){
        $creds['remember'] = true;
        $rememberme = true ; 
    }else {
        $creds['remember'] = false;
        $rememberme = false ;
    }

    $user = wp_signon( $creds, false );
    if( is_wp_error($user) ){
        $status = "Username , email or Password is wrong";
        echo $status;           
    }else {
        $userID = $user->ID;
        global $userID ;
        wp_set_current_user( $userID, $user_login );
        wp_set_auth_cookie( $userID, $rememberme, false );
        do_action( 'wp_login', $user_login );
        $status = "done";
        echo $status;
    }
}
die();
}
 add_action( 'wp_ajax_login_ajax_moAtef', 'login_ajax_moAtef' );
 add_action( 'wp_ajax_nopriv_login_ajax_moAtef', 'login_ajax_moAtef' );

0 个答案:

没有答案