Перенаправление входа в WooCommerce в зависимости от корзины и пути - PullRequest
0 голосов
/ 10 мая 2019

Я хочу эти два случая, как я могу добиться этого

Проверка пользователя> Проверить вход> если залогинен в кассе. если нет, перенаправить на страницу входа / регистрации> перейти на страницу оформления заказа.

После 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') ) );
}

Ожидается вывод как Оформить заказ пользователя> Проверить логин> если залогинен в кассе. если нет, перенаправить на страницу входа / регистрации> перейти на страницу оформления заказа. Страница оформления заказа> Моя учетная запись должна работать, если какой-либо пользователь захочет перейти на страницу моей учетной записи, если у него есть товары в корзине.

Второй

Если пользователь вошел в систему как обычно, тогда Показать его только в личном кабинете, не перенаправлять к оформлению заказа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...