Запрет доступа к страницам WooCommerce для неавторизованных пользователей

В интернет-магазинах на WordPress с WooCommerce часто возникает задача ограничить доступ к определённым страницам, например, к корзине, оформлению заказа или личному кабинету, только для авторизованных пользователей. Это позволяет защитить контент, стимулировать регистрацию и повысить безопасность магазина. В этой статье мы подробно разберём, как реализовать запрет доступа для гостей, используя как готовые плагины, так и собственные функции на PHP.

Почему важно ограничить доступ к страницам WooCommerce

WooCommerce по умолчанию открывает страницы магазина для всех пользователей, включая гостей. Однако бывают ситуации, когда нужно:

  • Скрыть цены и товары для неавторизованных посетителей;
  • Запретить оформление заказа без регистрации;
  • Сделать личный кабинет видимым только для залогиненных;
  • Защитить пользовательские данные и историю заказов.

Реализация этих ограничений улучшает пользовательский опыт и способствует росту базы зарегистрированных клиентов.

Ограничение доступа с помощью плагинов

Плагин "Restrict User Access"

Один из простых и удобных способов — использовать плагин Restrict User Access. Он позволяет гибко настраивать уровни доступа к страницам и типам записей.

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

Плагин "WooCommerce Members Only"

Этот плагин специально разработан для WooCommerce и позволяет скрывать товары и страницы магазина для гостей. Он платный, но предлагает расширенные возможности, включая:

  • Скрытие товаров и категорий;
  • Перенаправление гостей на страницу входа;
  • Настройку сообщений для неавторизованных пользователей.

Реализация запрета доступа через код в functions.php

Если вы предпочитаете решение без плагинов, можно добавить следующий код в файл functions.php вашей темы или в плагин-сниппет. Этот код перенаправит гостей с критичных страниц WooCommerce на страницу входа.

function wpstock_restrict_woocommerce_pages() {
    if ( is_admin() ) {
        return; // Не ограничиваем админку
    }

    // Страницы WooCommerce, доступ к которым нужно ограничить
    $restricted_pages = array(
        wc_get_page_id('cart'),
        wc_get_page_id('checkout'),
        wc_get_page_id('myaccount'),
    );

    if ( is_page($restricted_pages) && !is_user_logged_in() ) {
        wp_redirect( wp_login_url( get_permalink() ) );
        exit;
    }
}
add_action('template_redirect', 'wpstock_restrict_woocommerce_pages');

Объяснение кода:

  • Проверяем, что пользователь не в админке;
  • Определяем ID страниц корзины, оформления заказа и личного кабинета;
  • Если посетитель пытается открыть эти страницы без авторизации — перенаправляем на страницу входа с возвратом обратно после логина.

Расширение функционала: вывод сообщения гостям

Можно дополнительно вывести сообщение на странице входа, уведомляя пользователя о необходимости авторизации для доступа к магазину.

function wpstock_login_message_custom() {
    if ( isset($_GET['redirect_to']) ) {
        echo '<p style="color:#d9534f;">Для доступа к корзине и оформлению заказа, пожалуйста, войдите в аккаунт.</p>';
    }
}
add_action('login_message', 'wpstock_login_message_custom');

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

Иногда требуется не просто ограничить страницы, а полностью скрыть цены и кнопки покупки для неавторизованных пользователей. Для этого можно использовать следующий код:

function wpstock_hide_price_add_to_cart() {
    if ( !is_user_logged_in() ) {
        remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10);
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
        remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
    }
}
add_action('wp', 'wpstock_hide_price_add_to_cart');

Этот код убирает вывод цены и кнопок на страницах магазина и карточках товара для гостей, подталкивая их к регистрации.

Рекомендации по плагинам с WPSHOP

Для комплексной работы с WooCommerce и управлением доступом можно использовать плагины из каталога WPSHOP. Среди них есть решения для защиты контента и управления пользователями, которые дополнят вашу реализацию.

Выводы и лучшие практики

Ограничение доступа к страницам WooCommerce для гостей — важная задача для многих магазинов. Правильное сочетание готовых плагинов и кастомных функций позволяет добиться точного контроля и удобства для пользователей. Обязательно тестируйте изменения на рабочем сайте и учитывайте UX, чтобы не отпугнуть потенциальных клиентов.

Как автоматически отключить плагины на отдельных страницах WordPress для оптимизации
26.04.2026
Как отключить Gutenberg и вернуть классический редактор в WordPress
16.12.2025
Как реализовать автоматический редирект после входа в WordPress
27.01.2026
Как создать адаптивный слайдер в WordPress с помощью плагинов и кода
27.12.2025
Как использовать хук WooCommerce before_add_to_cart для дополнительных проверок
03.06.2026