WooCommerce: как добавить политику конфиденциальности на страницу оформления заказа

Почему важно добавить политику конфиденциальности на страницу оформления заказа WooCommerce

В соответствии с законодательством о защите персональных данных (например, GDPR), сайт должен информировать пользователя о сборе и обработке его данных. На странице оформления заказа WooCommerce по умолчанию отсутствует поле с согласием на политику конфиденциальности, что может привести к юридическим рискам и отказу платежных систем.

Диагностика проблемы: как понять, что политика конфиденциальности не добавлена

  • Отсутствует чекбокс «Я принимаю политику конфиденциальности» на странице оформления заказа.
  • Пользователь может оформить заказ без подтверждения согласия на обработку данных.
  • В настройках WooCommerce -> Страницы нет ссылки на страницу политики конфиденциальности, или она не задана.

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

1. Убедитесь, что у вас есть страница с политикой конфиденциальности

В WordPress перейдите в Настройки -> Конфиденциальность и задайте или создайте страницу с текстом политики конфиденциальности.

2. Свяжите страницу политики конфиденциальности с WooCommerce

В WooCommerce перейдите в WooCommerce -> Настройки -> Аккаунты и конфиденциальность. В поле Страница политики конфиденциальности выберите созданную страницу.

3. Добавьте код для вывода обязательного чекбокса на странице оформления заказа

В файл functions.php вашей дочерней темы или в кастомный плагин добавьте следующий код:

add_action('woocommerce_review_order_before_submit', 'add_privacy_policy_checkbox', 9);
function add_privacy_policy_checkbox() {
    $privacy_policy_page_id = wc_privacy_policy_page_id();
    if (!$privacy_policy_page_id) {
        return; // страница не задана
    }
    $privacy_policy_url = get_permalink($privacy_policy_page_id);
    echo '<p class="form-row validate-required">';
    echo '<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">';
    echo '<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="privacy_policy" id="privacy_policy" /> ';
    echo 'Я принимаю <a href="' . esc_url($privacy_policy_url) . '" target="_blank" rel="noopener noreferrer">политику конфиденциальности</a>.';
    echo '</label> </p>';
}

add_action('woocommerce_checkout_process', 'validate_privacy_policy_checkbox');
function validate_privacy_policy_checkbox() {
    if (empty($_POST['privacy_policy'])) {
        wc_add_notice(__('Вы должны принять политику конфиденциальности, чтобы оформить заказ.'), 'error');
    }
}

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

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

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

  • Чекбокс не отображается: Проверьте, что функция wc_privacy_policy_page_id() возвращает ID страницы. Если нет — задайте страницу политики конфиденциальности в WooCommerce.
  • Не срабатывает проверка при оформлении заказа: проверьте, что функция validate_privacy_policy_checkbox подключена к хуку woocommerce_checkout_process без ошибок.
  • Ссылка ведет на неправильную страницу: убедитесь, что URL получен через get_permalink() с правильным ID страницы.

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

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

Сравнение вариантов реализации чекбокса политики конфиденциальности

ВариантПлюсыМинусы
Код в functions.phpЛегко адаптировать, нет лишних плагиновНеудобно для новичков, нужно знать PHP
Плагин для политики конфиденциальностиПростая установка, настройка через интерфейсДополнительная нагрузка, возможные конфликты
Использование готовых решений WooCommerceИнтеграция с системой, обновления поддержкиНе всегда есть гибкость и кастомизация
Как создать динамический выбор сообщений в админке WordPress
31.01.2026
Автоматическое удаление старого контента в WordPress
07.04.2026
WooCommerce: автоматическое обновление стоимости товара при изменении атрибутов
01.06.2026
Как сделать эффективный кэш в WordPress для уменьшения нагрузки на сервер
28.01.2026
Как создать собственный метабокс в WordPress
05.11.2025