Ниже опишем несколько довольно полезных фильтров, дающих возможность более конкретно и целенаправленно работать с пользователями.
Применение такого рода перенаправлений поможет управлять пользователем в нужном вам аспекте, задержать внимание, оставить на сайте.
Все ниже приведенные коды используются и добавляются в файл functions.php вашей активной темы.
Перенаправление пользователя после успешной регистрации
Как правило, новые пользователи перенаправляются на форму входа в систему с этим уведомлением: ". Регистрация в завершена. Пожалуйста , проверьте свою электронную почту." С помощью фильтра registration_redirect, мы собираемся изменить это.
Давайте предположим, что у вас есть специальная страница дающая первоначальную информацию, правила, другие моменты, и вы хотите, что бы все новые пользователи ее увидели на вашем сайте. Используя фрагмент кода ниже, вы можете отправить новых пользователей на необходимую вам страницу:
<?php add_filter( 'registration_redirect', 'redir_new_users' ); function redir_new_users() { // измените слаг ниже на ваш и путь return home_url( '/white-paper/' ); } ?>
Перенаправление пользователя после входа в систему и выхода
После каждого входа в систему, пользователи перенаправляются в свою панель в профиле. Если пользователи не должны видеть панель по какой - то причине, вы можете их перенаправить с помощью фильтра login_redirect.
В следующем примере, мы собираемся проверить роль пользователя и перенаправить "подписчиков" на домашнюю страницу:
<?php add_filter( 'login_redirect', 'send_subscribers_home', 10, 3 ); function send_subscribers_home( $location, $request, $user ) { global $user; if ( isset( $user->roles ) && is_array( $user->roles ) ) { if ( in_array( 'subscriber', $user->roles ) ) { return home_url(); } else { return $location; } } return; } ?>
То же самое можно сделать с помощью фильтра logout_redirect. Вместо того чтобы посылать их на главную страницу, вы можете перенаправить их на страницу "до свидания", с нужной информацией:
<?php add_filter( 'logout_redirect', 'goodbye_subscribers', 10, 3 ); function goodbye_subscribers( $location, $request, $user ) { global $user; if ( isset( $user->roles ) && is_array( $user->roles ) ) { if ( in_array( 'subscriber', $user->roles ) ) { // измените слаг ниже на ваш и путь return home_url( '/goodbye/' ); } else { return $location; } } return; } ?>
Перенаправление пользователя после сброса пароля
По умолчанию пользователи, которые введут свои имена или адреса электронной почты в форме "Сброс пароля" отправляются обратно к форме входа в систему, с уведомлением о проверки своей электронной почты. Фильтр lostpassword_redirect позволяет изменить эту страницу.
Конечно для большинства пользователей WordPress сайтов, стандартных функций достаточной, но если вам нужно поделиться дополнительной информацией, подсказать о проверки спам папок, вы можете перенаправить пользователей на конкретную страницу:
<?php add_filter( 'lostpassword_redirect', 'lostpassword_message' ); function lostpassword_message( $location ) { // измените слаг ниже на ваш и путь return '/lost-password-notice/'; } ?>
Перенаправление пользователя после комментирования
Фильтр comment_post_redirect позволяет изменять вашу страницу комментирования, после отправки комментария.
Именно этот редирект, поможет вам увеличить базу подписчиков, повысить лояльность пользователей и заинтересованность. Например, вы можете отправить их на страницы "Спасибо за комментарий, и не забудьте подписаться на нашу рассылку", используя следующие строки кода:
<?php add_filter( 'comment_post_redirect', 'redirect_to_newsletter' ); function redirect_to_newsletter( $location ) { // измените слаг ниже на ваш и путь return '/subscribe-to-our-newsletter/'; } ?>
Надеюсь приведенные тут примеры помогут кому то в решении актуальных задач на своем сайте. Если вы думаете, что приведенные примеры можно дополнить, то предлагайте другие варианты, обязательно это сделаю.
Спасибо за идеи. По редиректам в интернете много чего есть, а вот того что надо не найдёшь, здесь именно то что нужно. Я рад что пользуюсь вашим сервисом, много чего полезного здесь узнал, а самое главное что всё предельно понятно. 8)