Wordpress - Перенаправить пользователя на предыдущую страницу после успешного входа со страницы входа - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть веб-сайт WordPress.Вы должны войти в систему для доступа к любым страницам, в противном случае вы будете перенаправлены на страницу входа в систему: mywebsite.com/login

Все коды, которые я нашел, работают, если у вас есть форма входа в меню, но нет, если у вас естьизменить страницу.Другие ответы ориентированы на woocommerce и не подходят.

Что я хочу: Пользователь просматривает недоступную страницу: mywebsite.com/this-cat/this-page.Он перенаправлен на mywebsite.com/login.После успешного входа он перенаправляется на свой первый запрос: mywebsite.com/this-cat/this-page.

Пока что пользователь просто перенаправлен на домашнюю страницу.

Я подумал, что, возможно, есть способ отфильтровать перенаправлениепоместите фрагмент страницы в параметре запроса и после входа в систему отфильтруйте перенаправление, чтобы перенаправить его в параметр запроса.

Но, если честно, я понятия не имею, какие фильтры использовать,..

1 Ответ

0 голосов
/ 25 сентября 2019

Вот как я решил мою проблему, благодаря комментарию Стефано.Сначала я не понял, что он имел в виду, но, наконец, понял.

add_action( 'wp', 'redirect_non_logged_users_to_specific_page' );
function redirect_non_logged_users_to_specific_page() {

    if ( !is_user_logged_in() && !is_page('resetpass') && !is_page('lostpassword') && !is_page('login')) {
        global $wp;
        wp_redirect( '/login/?redirect_to='.home_url($wp->request ));
        exit;
    }
}

Я вспомнил, что использовал функцию в коде для перенаправления незарегистрированных пользователей.В этот момент я понял, когда и как сохранить URL, который я хотел перенаправить.

Тогда моей самой большой проблемой было узнать, как правильно перенаправить пользователя после успешного входа в систему.Я перепробовал много кодов, но ни один не работал правильно.Потом я вспомнил комментарий Стефано и понял, что делать дальше.Добавление параметра запроса redirect_to в URL входа в систему заставляет Wordpress перенаправить вас на URL.

  • $wp->request возвращает путь страницы, например: /a-category/my-page
  • home_url()Функция помогает создать полный URL этой страницы, например: https://my-website.com/a-category/my-page
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...