• Добрый день. Столкнулся с такой проблемой:
    Своя страница авторизации. Полностью работает, но есть очень странное поведение при входе.
    Если попытаться авторизоваться в первый раз, введя почту и пароль, то попадаем на страницу с GET login=failed, и is_user_logged_in() ничего не возвращает. Если второй раз ввести ту же почту и пароль (100% совпадающие с первым разом), то вход проходит без проблем, а is_user_logged_in() возвращает «1».
    Кеширующих плагинов нет. Из плагинов стоят только Classic Editor и Cyr-To-Lat, которые, не могут влиять на такое поведение.

    Кто сталкивался с подобной ситуацией, как ее лечить?
    Спасибо

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Своя страница авторизации

    Как именно реализована? Или речь о форме авторизации хостинг-провайдера?

    Если попытаться авторизоваться в первый раз, введя почту и пароль, то попадаем на страницу с GET login=failed

    В ядре WordPress у страницы входа нет параметра login, есть action.

    Нет, своя — самописная. Форма входа следующая:

    <form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
    	<input type="text" placeholder="E-mail" name="log"/><br/>
    	<input type="password" placeholder="Пароль" name="pwd"/></br></br>
    	<input type="submit" name="submit" value="Войти"/>
    	<input type="hidden" name="redirect_to" value="/" />
    </form>	

    В файле функций:

    add_action( 'wp_login_failed', 'pu_login_failed' ); // Если не получилось войти в сайт
    
    function pu_login_failed( $user ) {
      	$referrer = '/';
    	if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') && $user!=null ) {
    		if ( !strstr($referrer, '?login=failed' )) {
    	    	wp_redirect( $referrer . '?login=failed');
    	    } else {
    	      	wp_redirect( $referrer );
    	    }
    	    exit;
    	}
    }
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Успешный вход только после 2й попытки» закрыта для новых ответов.