У меня есть настраиваемая страница входа в мой плагин wordpress. Все шло хорошо, так как я сменил домен и включил SSL. Теперь все части работают нормально, кроме админки. Попытка войти в систему из / wp-login. php работает нормально, но при попытке войти с моей пользовательской страницы входа происходит следующее перенаправление:
https://example.com/wp-admin/admin-ajax.php 200
https://example.com/wp-admin/ 302
https://example.com/wp-admin/login-register 301
https://example.com/login-register/ 200
/ login-register - это адрес моей пользовательской страницы входа, и я использую ajax для отправки формы.
Затем появится панель администратора и все страницы, которым требуется вход в систему, будут работать нормально, но все еще пытаются получить доступ / admin дает результат, указанный выше.
При переходе на новый домен + SSL я добавил эти строки в wp-config. php:
define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS']='on';
А также добавил следующие строки в .htaccess :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Код, который я использовал для аутентификации пользователей после проверки заданных параметров:
wp_logout();
$user = wp_signon(['user_login' => $username, 'user_password' => $password, 'remember' =>true], false);
if (is_wp_error($user))
return ['status'=>'ERROR', 'message'=>$user->get_error_message()];
wp_set_current_user($user->ID, $username);
wp_set_auth_cookie($user->ID, true, false);
do_action('wp_login', $user->user_login, $user);
return ['status'=>'OK'];
Также is_user_logged_in () возвращает True на init перехватчик после попытки входа в систему.