WooCommerce: как отключить автологин после регистрации пользователя

Почему WooCommerce автоматически логинит пользователя после регистрации?

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

Диагностика проблемы: как проверить, что автологин включён

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

  1. Откройте страницу регистрации WooCommerce (обычно /my-account/ с вкладкой регистрации).
  2. Зарегистрируйте нового пользователя с тестовым email.
  3. После отправки формы проверьте, вошёл ли пользователь в систему (например, в верхнем меню должен отображаться его ник или ссылка «Выход» вместо «Вход»).

Если пользователь сразу остается залогиненным — автологин включён.

Пошаговое решение: отключаем автологин после регистрации в WooCommerce

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

add_action('init', function() {
    // Удаляем автоматический логин после регистрации
    remove_action('woocommerce_created_customer', 'wc_set_customer_auth_cookie');
});

// Перенаправляем пользователя на страницу входа после регистрации
add_filter('woocommerce_registration_redirect', function($redirect_url) {
    return wp_login_url(); // Можно указать свою страницу входа
});

Добавьте этот код в файл functions.php вашей активной темы или в собственный плагин.

Как это работает?

  • remove_action('woocommerce_created_customer', 'wc_set_customer_auth_cookie') отключает автоматическую установку куки авторизации после регистрации.
  • woocommerce_registration_redirect меняет URL, на который перенаправляется пользователь после регистрации — в нашем случае это стандартная страница входа WordPress.

Проверка результата после внедрения

Повторите регистрацию нового пользователя на сайте:

  1. Заполните форму регистрации.
  2. После отправки формы вас должно перенаправить на страницу входа.
  3. Проверьте, что пользователь не авторизован — в верхнем меню должны быть ссылки «Вход» и «Регистрация».

Если всё работает именно так — вы успешно отключили автологин.

Частые ошибки и как их исправить

  • Код не работает, пользователь всё равно логинится: возможно, другой плагин или тема повторно вызывают wc_set_customer_auth_cookie. Проверьте сторонние расширения и попробуйте отключить их по одному.
  • После регистрации происходит редирект на неверную страницу: убедитесь, что в фильтре woocommerce_registration_redirect установлен корректный URL. Можно использовать wp_login_url() или любую кастомную страницу.
  • Пользователь не может войти после регистрации: проверьте, что форма входа работает и нет проблем с куками или сессиями.

Практические советы по безопасности и производительности

  • Отключение автологина — это дополнительный способ снизить риски, особенно если требуется подтверждение email или ручная проверка пользователя.
  • Не забудьте реализовать уведомления для пользователя, что после регистрации нужно отдельно войти.
  • Если ваш магазин большой, минимизируйте количество редиректов и используйте кэширование страниц входа с осторожностью, чтобы не мешать аутентификации.

Сравнение способов отключения автологина

Метод Описание Плюсы Минусы
Удаление действия wc_set_customer_auth_cookie Отключение автоматической установки куки авторизации Простой и надёжный способ Может конфликтовать с плагинами соцсетей и кастомной авторизации
Переопределение редиректа woocommerce_registration_redirect Изменение страницы после регистрации Позволяет направлять пользователя на страницу входа или уведомления Без удаления куки может остаться авторизация (нужно использовать вместе)
Использование плагинов безопасности/авторизации Настройка через сторонние расширения Интегрировано с другими функциями безопасности Увеличивает нагрузку и может быть избыточно
WooCommerce: как установить отрицательные цены на товары
21.05.2026
Как использовать хуки для оптимизации загрузки WordPress
14.12.2025
Как создать настройку в админ панели WordPress с примерами кода
15.11.2025
WooCommerce: как автоматически удалять товар из корзины после отмены оплаты
13.06.2026
Как создать функцию автоматической отправки Email в WordPress с примерами кода
21.03.2026