Woocommerce переадресация пользователя после авторизации

Автор: | 04.12.2017

По умолчанию в Woocommerce, после успешной авторизации пользователь попадает на на страницe /my-account/, которая выглядит приблизительно так:

Внешний вид может меняться в зависимости от вашего шаблона, но суть одинакова.

По-моему эта страница не несет в себе какой либо важно информации. Поэтому, стал вопрос о том как редиректнуть пользователя сразу на страницу его заказов. Решение оказалось очень простым.

В файле functions.php достаточно добавить вот такой код:

// переадресация пользователя на страницу заказов
function wc_custom_user_redirect( $redirect, $user ) {
	
	$role = $user->roles[0];
	$myaccount = wc_get_account_endpoint_url( 'orders' );
	
	if ( $role == 'customer' || $role == 'subscriber' ) {
		$redirect = $myaccount;
	} 
	
	return $redirect;
}
add_filter( 'woocommerce_login_redirect', 'wc_custom_user_redirect', 10, 2 );

 

И для большей красоты уберем вообще эту вкладку из меню аккаунта:

add_filter( 'woocommerce_account_menu_items', function($items){	
	unset($items['dashboard']);	
	return $items;
	
});

 

Woocommerce переадресация пользователя после авторизации: 3 комментария

  1. Михаил

    Подскажите, пожалуйста, как сделать редирект с «my-account» на изменение профиля в админке WordPress и на определенный URL?

    1. rogodessa Автор записи

      Попробуйте так
      [php]
      function my_page_template_redirect(){

      if( function_exists(‘is_account_page’) ){

      if( is_account_page() && is_user_logged_in() ){
      $edit_account_url = wc_customer_edit_account_url();
      wp_redirect( $edit_account_url );
      exit();
      }

      }
      }

      add_action( ‘template_redirect’, ‘my_page_template_redirect’ );

      [/php]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *