WooCommerce — мощный плагин для создания интернет-магазинов на WordPress. Однако в некоторых случаях владельцы сайтов хотят ограничить или полностью запретить регистрацию новых пользователей в магазине. Это может быть нужно, например, для закрытого магазина или для предотвращения спама и нежелательных регистраций.
Почему может понадобиться запретить регистрацию в WooCommerce?
Чаще всего регистрация пользователей открыта по умолчанию для упрощения процесса покупки, чтобы клиенты могли сохранять свои данные и историю заказов. Но если ваш магазин ориентирован на узкий круг клиентов или работает по приглашениям, открытая регистрация может привести к нежелательным последствиям:
- Рост количества фейковых аккаунтов и спама.
- Увеличение нагрузки на базу данных.
- Проблемы с безопасностью и контролем доступа.
В таких случаях разумно отключить регистрацию, оставив возможность оформлять заказы гостями или через админку.
Как отключить регистрацию пользователей через настройки WooCommerce
Самый простой способ — использовать настройки WooCommerce. Для этого зайдите в панель управления WordPress:
- Перейдите в WooCommerce > Настройки > Аккаунты и конфиденциальность.
- Снимите галочки с опций Разрешить регистрацию на странице оформления заказа и Разрешить регистрацию на странице «Мой аккаунт».
- Сохраните изменения.
После этого форма регистрации будет скрыта с указанных страниц. Однако иногда этого недостаточно, так как некоторые темы или плагины могут показывать регистрацию в других местах.
Отключение регистрации с помощью кода в functions.php
Для более жёсткого контроля можно запретить регистрацию через добавление кода в файл functions.php вашей темы или в собственный плагин. Вот пример функции для отключения регистрации и перенаправления попыток регистрации на страницу входа:
function wpclass_disable_woocommerce_registration() {
if ( isset( $_POST['register'] ) ) {
wp_redirect( wc_get_page_permalink( 'myaccount' ) );
exit;
}
}
add_action( 'template_redirect', 'wpclass_disable_woocommerce_registration' );
// Отключаем отображение ссылки на регистрацию
add_filter( 'woocommerce_registration_enabled', '__return_false' );Эта функция предотвращает регистрацию через формы WooCommerce, а также скрывает ссылки и кнопки регистрации.
Полное удаление формы регистрации
Если вы хотите полностью удалить форму регистрации с страницы «Мой аккаунт», можно использовать следующий код:
function wpclass_remove_registration_form() {
remove_action( 'woocommerce_register_form', 'woocommerce_register_form' );
remove_action( 'woocommerce_register_form_start', 'woocommerce_register_form_start' );
remove_action( 'woocommerce_register_form_end', 'woocommerce_register_form_end' );
}
add_action( 'init', 'wpclass_remove_registration_form' );Однако будьте осторожны с этим методом, так как он может повлиять на обновления WooCommerce или совместимость с другими плагинами.
Использование плагинов для управления регистрацией WooCommerce
Если вы не хотите писать код, рассмотрите плагины, которые помогают управлять регистрацией и доступом:
- Clearfy Pro — плагин для оптимизации и безопасности WordPress, который позволяет отключать регистрацию, скрывать страницы и блокировать доступ.
- WPCommunity — плагин для продвинутого управления пользователями и сообществом, можно настроить ограничения на регистрацию.
Эти плагины позволяют гибко настраивать доступ без необходимости модифицировать код.
Учет гостей (Guest Checkout) в WooCommerce
Если регистрация отключена, но вам нужно принимать заказы, убедитесь, что включена опция оформления заказа без регистрации:
- Перейдите в WooCommerce > Настройки > Аккаунты и конфиденциальность.
- Включите опцию Разрешить оформление заказа без регистрации.
Это позволит пользователям оформлять заказы как гости, без создания аккаунта, что удобно и безопасно.
Проверка и отладка после отключения регистрации
После внесения изменений обязательно проверьте, что регистрация действительно отключена:
- Попробуйте открыть страницу регистрации вручную.
- Проверьте, что форма не отображается на странице «Мой аккаунт» и в оформлении заказа.
- Убедитесь, что гости могут оформить заказ без регистрации.
- Проверьте, что не возникают ошибки PHP или JavaScript.
Если вы используете кэширование или CDN, очистите кэш, чтобы увидеть актуальные изменения.
Заключение
Отключение регистрации в WooCommerce — частая задача для владельцев сайтов с особыми требованиями к доступу. Вариантов решения несколько: от стандартных настроек WooCommerce до кастомного кода и использования специализированных плагинов. Выбирайте метод, который подходит именно вашему проекту с учётом удобства пользователей и безопасности.