Авторизация происходит но если попытаться войти в админку выбрасывает
Авторизация происходит но если попытаться войти в админку выбрасывает. В чем может быть соль ?
function check_user_login_and_password($login,$password){
if(($user = get_user_by('login',$login)) == false) return new WP_Error('not_user_by_login', 'Не существует пользователя с таким логином!');
if(wp_check_password($password, $user->user_pass) == false) return new WP_Error('bad_pass', 'Не верный пароль пользователя!');
return $user;
}
add_action('wp_ajax_nopriv_admin_login', 'admin_login');
function admin_login(){
check_ajax_referer('lk_ajax');
parse_str($_POST["allInput"],$params);
if(is_wp_error($user = check_user_login_and_password($params['login'],$params['password']))){
$out['instructions']['show_error'] = $user->get_error_message();
header('Content-Type: application/json'); echo json_encode($out, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); exit();
};
if(!user_can($user, 'administrator')){
$out['instructions']['show_error'] = 'Входить можно только администраторам!';
header('Content-Type: application/json'); echo json_encode($out, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); exit();
}
$user = wp_signon( array(
'user_login' => $params['login'],
'user_password' => $params['password'],
));
$out['instructions']['redirect'] = get_home_url();
header('Content-Type: application/json'); echo json_encode($out, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT); exit();
}
$(document).on('submit', '#admin_login', function(event) {
event.preventDefault();
var data = {
action: 'admin_login',
allInput: $(this).serialize(),
_ajax_nonce: lk_myajax.ajax_nonce
};
jQuery.post( lk_myajax.url, data, function(response) {
var call_functions = {
show_error : function ($message){
M.toast({html: $message, classes: 'error', displayLength: 8000});
},
show_message : function($message){
M.toast({html: $message, classes: 'message', displayLength: 10000});
},
redirect : function($url){
window.location.replace($url);
},
}
for (var key in response.instructions) {// Запускаем функции которые нам сказал запустить бекенд
call_functions[key](response.instructions[key])
}
console.log('Получено с сервера: ' + response);
});
});
Уже разобрался, всем спасибо) Блин еще ни разу на этом сайте мне никто не ответил))
У меня WordPress в подпапке. Надо было прописать :
Чтоб кука авторизации там была доступна.