Я хочу эти два случая, как я могу добиться этого
Проверка пользователя> Проверить вход>
если залогинен в кассе.
если нет, перенаправить на страницу входа / регистрации> перейти на страницу оформления заказа.
После 2-го (со страницы оформления заказа) пункта, если клиент захочет перейти в мою учетную запись, перейдите на страницу «Моя учетная запись», если перейдете по ссылке «Моя учетная запись», даже если в корзине есть элементы
Сценарий 2
если клиент регистрируется напрямую, без перенаправления с любого URL-адреса> Страница моей учетной записи должна отображаться.
Как мне этого добиться.
Я следовал за вышеупомянутым вопросом, но проблема, с которой я сталкиваюсь, чтобы выполнить мои требования.
Перенаправление входа в WooCommerce в зависимости от корзины
Код 1
add_action('template_redirect','check_if_logged_in');
function check_if_logged_in()
{
$pageid = 8; // your checkout page id
if(!is_user_logged_in() && is_page($pageid))
{
$url = add_query_arg(
'redirect_to',
get_permalink($pagid),
site_url('/my-account/') // your my acount url
);
wc_add_notice( 'Please Login for Checkout', 'notice' );
wp_redirect($url);
exit;
}
}
Код 2
add_action('template_redirect', 'woocommerce_custom_redirections');
function woocommerce_custom_redirections() {
// Case1: Non logged user on checkout page (cart empty or not empty)
if ( !is_user_logged_in() && is_checkout() )
wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
// Case2: Logged user on my account page with something in cart
if( is_user_logged_in() && ! WC()->cart->is_empty() && is_account_page() )
wp_redirect( get_permalink( get_option('woocommerce_checkout_page_id') ) );
}
Ожидается вывод как
Оформить заказ пользователя> Проверить логин>
если залогинен в кассе.
если нет, перенаправить на страницу входа / регистрации> перейти на страницу оформления заказа.
Страница оформления заказа> Моя учетная запись должна работать, если какой-либо пользователь захочет перейти на страницу моей учетной записи, если у него есть товары в корзине.
Второй
Если пользователь вошел в систему как обычно, тогда Показать его только в личном кабинете, не перенаправлять к оформлению заказа