我试图建立一个costum登录到WordPress的 AJAX 调用。我从PHP函数中删除了wp_signon(),我得到了正确的echo。但是当我添加wp_signon()时,它总是以HTML的形式返回整个登录页面。我不知道我做错了什么。无法登录。
救命啊!
js
$.ajax({
method: 'POST',
url: '/wp-admin/admin-ajax.php',
dataType: 'json',
data: {
'action': 'getLoggedIn',
'user_name': user_name,
'user_password': user_password,
'user_remember': user_remember
},
success: function(response) {
if (response === 'ok') {
window.location = '/app/';
}
},
error: function(){}
});
PHP
function getLoggedIn() {
global $wpdb;
// Check if users is already logged in
if ( is_user_logged_in() ) {
echo 'You are already logged in';
die;
}
//We shall SQL escape all inputs
$username = $wpdb->escape($_REQUEST['user_name']);
$password = $wpdb->escape($_REQUEST['user_password']);
$remember = $wpdb->escape($_REQUEST['user_remember']);
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = $remember;
$user_signon = wp_signon( $creds, false );
// Check if error
if ( is_wp_error($user_signon)) {
echo $user_verify->get_error_code();
exit();
} else {
echo 'ok';
exit;
}
die();
}
add_action('wp_ajax_getLoggedIn', 'getLoggedIn');
add_action('wp_ajax_nopriv_getLoggedIn', 'getLoggedIn');
3条答案
按热度按时间rlcwz9us1#
问题不是
wp_signon()
函数。这是另一个WordPress操作,在用户登录失败后重定向页面。这是:kqlmhetl2#
尝试使某些自定义用户进行身份验证
jq6vz3qz3#
我陷入了同样的境地。你是否删除了wp_login_failed操作,或者你是如何解决这个问题的?