thehighhomie
@thehighhomie

Wordpress: Кастомная форма входа и редирект на wp-login.php?pass=1?

Почему на локальном сервере моя форма входа работает отлично а на хостинге идет редирект на wp-login.php?pass=1 и авторизация не работает.

Если указать напрямую в action формы action="<?php echo get_option('home'); ?>/wp-login.php?pass=1" вместо action="<?php echo get_option('home'); ?>/wp-login.php" то будет все работать и на хостинге.

Почему так? Что за баг? На сколько будет плохо если так оставить?

PS: Сайт я перенес нормально, то есть и site_url и home_url я поправил после переноса в БД. Постоянные ссылки тоже обновлял, косяк не в этом.

полный код HTML формы:

<form name="loginform" id="login-form" action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
          <div class="login-form-heading">
            <p>Вход в личный кабинет</p>
          </div>
          <div class="fgroup">
            <i class="fa fa-user" aria-hidden="true"></i>
            <input type="text" name="log" id="user_login" placeholder="Логин">
          </div>
          <div class="fgroup">
            <i class="fa fa-lock" aria-hidden="true"></i>
            <input type="password" name="pwd" id="user_pass" placeholder="Пароль">
          </div>
          <div class="login-form-description">
            <p>Введите ваш логин и пароль для входа</p>
          </div>
          <div class="login-remember-wrapper">
            <input id="login-remember" type="checkbox" name="login-remember">
            <label for="login-remember">Запомнить меня</label>
          </div>
          <input type="hidden" name="redirect_to" value="<?php bloginfo('url') ?>/account/">
          <div class="fsubmit">
            <input class="btn-green" type="submit" name="login-submit" value="Войти">
          </div>
        </form>
  • Вопрос задан
  • 1266 просмотров
Пригласить эксперта
Ответы на вопрос 2
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Вам виднее, что там у вас за код, и что такое ?pass=1,
ибо такого GET параметра в API авторизации нет
Ответ написан
@KingAnton
Небольшой снипет

//login page

function redirect_login_page() {
  $login_page  = home_url( '/lichnyj-kabinet/' );
  $page_viewed = basename($_SERVER['REQUEST_URI']);
 
  if( $page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
    wp_redirect($login_page);
    exit;
  }
}
add_action('init','redirect_login_page');

function login_failed() {
  $login_page  = home_url( '/lichnyj-kabinet/' );
  wp_redirect( $login_page . '?lichnyj-kabinet=failed' );
  exit;
}
add_action( 'wp_login_failed', 'login_failed' );
 
function verify_username_password( $user, $username, $password ) {
  $login_page  = home_url( '/lichnyj-kabinet/' );
    if( $username == "" || $password == "" ) {
        wp_redirect( $login_page . "?lichnyj-kabinet=empty" );
        exit;
    }
}
add_filter( 'authenticate', 'verify_username_password', 1, 3);

function logout_page() {
  $login_page  = home_url( '/lichnyj-kabinet/' );
  wp_redirect( $login_page . "?login=false" );
  exit;
}
add_action('wp_logout','logout_page');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы