Авторизация происходит но если попытаться войти в админку выбрасывает
Авторизация происходит но если попытаться войти в админку выбрасывает. В чем может быть соль ?
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 в подпапке. Надо было прописать :
Чтоб кука авторизации там была доступна.