Last active
November 20, 2017 09:36
-
-
Save flayder/b63a95575c9ad8ef8f3df8e42a409785 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Ajax Login | |
function ajax_login_init(){ | |
/* Подключаем скрипт для авторизации */ | |
wp_enqueue_script('script', get_template_directory_uri() . '/js/jquery.min.js'); | |
wp_register_script('ajax-login-script', get_template_directory_uri() . '/js/ajax-login-script.js'); | |
wp_enqueue_script('ajax-login-script'); | |
/* Локализуем параметры скрипта */ | |
wp_localize_script( 'ajax-login-script', 'ajax_login_object', array( | |
'ajaxurl' => admin_url( 'admin-ajax.php' ), | |
'redirecturl' => $_SERVER['REQUEST_URI'], | |
'loadingmessage' => __('Проверяются данные, секундочку...') | |
)); | |
// Разрешаем запускать функцию ajax_login() пользователям без привелегий | |
add_action( 'wp_ajax_nopriv_ajaxlogin', 'ajax_login' ); | |
} | |
// Выполняем авторизацию только если пользователь не вошел | |
if (!is_user_logged_in()) { | |
add_action('init', 'ajax_login_init'); | |
} | |
function ajax_login(){ | |
// Первым делом проверяем параметр безопасности | |
check_ajax_referer( 'ajax-login-nonce', 'security' ); | |
// Получаем данные из полей формы и проверяем их | |
$args = array( | |
'orderby' => 'email', | |
'order' => 'ASC', | |
'search' => $_POST['useremail'], | |
'search_columns' => array('email'), | |
); | |
$users = get_users( $args ); | |
$info = array(); | |
$info['user_login'] = ($users)?$users[0]->data->user_login:null; | |
$info['user_password'] = $_POST['password']; | |
$info['remember'] = true; | |
$user_signon = wp_signon( $info, false ); | |
if ( is_wp_error($user_signon) ){ | |
echo json_encode(array('loggedin'=>false, 'message'=>__('Неправильный email или пароль!'))); | |
} else { | |
echo json_encode(array('loggedin'=>true, 'message'=>__('Отлично! Идет перенаправление...'))); | |
} | |
die(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment