@s1mypj
Начинающий web-программист.

Почему выскакивает ошибка кук на wordpres?

Добрый день, на сайте реализована авторизация через данную форму
<form method="POST" class="callback" name="loginform" id="loginform"  action="<?php bloginfo('url') ?>/wp-login.php">
	<label for="user_login">
		<span class="placeholder">Логин</span>
		<input type="text" name="log" id="user_login" autocomplete="off">
	</label>
	<label for="user_pass">
		<span class="placeholder">Пароль</span>
		<input type="password" name="pwd" id="user_pass" autocomplete="off">
	</label>
	<div class="button_wrapper">
		<button name="wp-submit">Отправить</button>
	</div>
	<input type="hidden" name="redirect_to" value="https://site.ru">
	<input type="hidden" name="testcookie" value="1">
</form>

Проблема в том, что форма, если до этого никогда не заходили с этого браузера, либо заходим через инкогнито срабатывает не сразу, хотя логин и пароль подходят и логинятся с спустя несколько попыток...
Если пробовать несколько раз, настанет момент, когда нас перекинет в wp-login где нам выдаст ошибку 5ea7ed2445847732752087.png
А после обновления этой страницы, выскакиевает аллерт с подтверждением повторной отправки формы нажимаем продолжить и нас спокойно логинет и перекидывает на главную.
В function.php у меня есть пару редиректов, чтобы пользователи не могли заходить на wp-admin или wp-login
function custom_login_page() {
	$new_login_page_url = home_url( '/enter/' ); // new login page
	global $pagenow;
	if( $pagenow == 'wp-login.php' && $_SERVER['REQUEST_METHOD'] == 'GET' OR $pagenow == '/wp-admin/' ) {
		wp_redirect($new_login_page_url);
	exit;
	}
}
if( !is_user_logged_in() OR !current_user_can('administrator') ){
	add_action('init','custom_login_page');
}
add_action( 'init', 'blockusers_init' );
function blockusers_init() {
	if ( is_admin() && ! current_user_can( 'administrator' ) &&
	! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
	wp_redirect( home_url( '/enter/' ) );
	exit;
	}
}

Но когда мы попадаем на страницу wp-login и выдаётся эта ошибка(скриншот), то нас оставляют на странице wp-login, что странно лично для меня.
Есть пару вариантов, попробовать ajax`om отправлять форму регистрации в тот же wp-login.php, поможет ли это?
Или же на это влияет ридерект с wp-login на site.ru/enter
Как мне быть и что могло повлиять на это?
Грешил на http ссылку раньше, то есть сайт был без сертификата, поменял на https - установил серт. но ошибка никуда не исчезла...
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
@s1mypj Автор вопроса
Начинающий web-программист.
Исправил отправкой формы через ajax, но таким костылём, просто ужас...
Всё ещё жду совета по решению этой проблемы.
Мой костыль
$('#loginform').submit(function(event) {
	event.preventDefault();
	var url = $(this).attr('action');
	var logindata = $(this).serialize();
	$.ajax({
		url: url,
		type: 'POST',
		data: logindata,
	})
	.done(function() {
		var url = $('#loginform').attr('action');
		var logindata = $('#loginform').serialize();
		$.ajax({
			url: url,
			type: 'POST',
			data: logindata,
		})
		.done(function() {
			window.location.href = 'https://site.ru/enter';
		})
		.fail(function() {
			console.log("error");
		})
		.always(function() {
			console.log("complete");
		});
	})
	.fail(function() {
		console.log("error");
	})
	.always(function() {
		console.log("complete");
	});
});

Двойная отправка информации, ибо с первого раза почему-то он не хочет конектить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы