AndiMandi
@AndiMandi
Вроде юн, а уже на заводе :)

При вызове функции wp_redirect() выходит ошибка ERR_TOO_MANY_REDIRECT?

Суть следующая: я создал шорткод, которая проверяет авторизацию пользователя на сайте. Если он не авторизирован, его редиректит на страницу логина, в противном случае пропускает. Но мой случай, скорее, является исключением (вызывается ошибка ERR_TOO_MANY_REDIRECT). Вот код ниже, который я использую для проверки:
function check_login() {
  if(!is_user_logged_in) {
    wp_redirect('/login/');
    exit();
  }
  elseif(is_user_logged_in) {
    wp_redirect('/profile/');
    exit();
  }
 return do_shortcode('[clean-login]');
}
add_shortcode('proverka', 'check_login');

Плагин использую clean-login (там же использую редирект, что если пользователь авторизовался успешно, его редиректит на главную страницу, с выходом из аккаунта тоже самое)
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 2
@pantsarny
Редирект в шорткоде?

Используйте экшен template_redirect
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
is_user_logged_in это какая-то странная константа. Подозреваю, что хотели вызвать функцию is_user_logged_in(), но забыли скобки

PS elseif и return-то тут зачем? С такими условиями в ветку elseif мы всегда попадаем, если пользователь не залогинен (то есть было бы достаточно просто else), а до return вообще никогда делао не доходит (потому что exit в одной из веток сработает раньше)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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