Как перенаправлять пользователя на определённый URL после авторизации

По умолчанию внутренний метод WooCommerce process_login() отправляет всех авторизовывающихся пользователей сайта на wc_get_page_permalink( 'myaccount' ), короче говоря в личный кабинет (я сейчас говорю про стандартную форму входа WooCommerce).

Не могу не порекомендовать вам свой видеокурс по WooCommerce, в котором мы создаём тему для интернет-магазина с нуля на основе готовой вёрстки 🚀

Но мы можем изменить это легко при помощи хука woocommerce_login_redirect.

add_filter( 'woocommerce_login_redirect', 'truemisha_login_redirect', 25, 2 );
 
function truemisha_login_redirect( $redirect, $user ) {
 
	$redirect = site_url();
	return $redirect;
 
}
  • Второй параметр функции – это объект WP_User, который вы можете использовать для создания каких-либо дополнительных условий. Например добавить проверку роли пользователя wc_user_has_role( $user, 'customer' ).
  • site_url() – возвращает ссылку на главную страницу сайта, вы можете поменять её на что угодно другое, только если этот URL находится на вашем собственном сайте, внешние урлы будут проигнорированы.
  • Если вам ну очень хочется редиректнуть на левый домен, то его нужно будет прописать в отдельном фильтр-хуке allowed_redirect_hosts.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 1

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

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал