请帮助,在创建自定义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' );