Публикация в группе: Полезное для WordPress

Категории группы: Полезное

Ниже опишем несколько довольно полезных фильтров, дающих возможность более конкретно и целенаправленно работать с пользователями.

Применение такого рода перенаправлений поможет управлять пользователем в нужном вам аспекте, задержать внимание, оставить на сайте.

Все ниже приведенные коды используются и добавляются в файл 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/';
}

?>

Надеюсь приведенные тут примеры помогут кому то в решении актуальных задач на своем сайте. Если вы думаете, что приведенные примеры можно дополнить, то предлагайте другие варианты, обязательно это сделаю.

4

Автор публикации

не в сети 1 день

Андрей CS

12K
рассматриваю задания
Комментарии: 2744Публикации: 481Регистрация: 30-11--0001Продаж/Покупок: 0/0