Диагностика проблемы: почему данные карты продолжают собираться при отключенных платежах
Иногда в WooCommerce сохраняются данные карт покупателей даже если все платежные шлюзы отключены или неактивны. Это может происходить из-за настроек плагинов платежей, кэширования или кода в теме, который принудительно вызывает обработку платежных данных. Такое поведение создает риски безопасности и нарушение требований PCI DSS, а также может привести к ошибкам в оформлении заказа.
Как проверить, собираются ли данные карт
- Оформите тестовый заказ с отключенными платежными методами.
- Посмотрите в базе данных таблицу
wp_woocommerce_payment_tokensна наличие сохраненных токенов карт. - Проверьте в логе ошибок WooCommerce и серверном логе наличие запросов к платежным API.
- Используйте инструменты разработчика браузера (Network) для анализа отправляемых данных формы оплаты.
Пошаговое решение: как отключить сбор данных карты при отключенных платежах WooCommerce
1. Отключите все платежные методы в WooCommerce
Перейдите в WooCommerce > Настройки > Платежи и отключите все платежные шлюзы.
2. Удалите или деактивируйте плагины платежных систем
Если на сайте установлены сторонние плагины для оплаты (например, Stripe, PayPal, YooMoney и др.), временно деактивируйте их для проверки.
3. Добавьте фильтр для предотвращения обработки данных карт
В functions.php вашей темы (или в кастомном плагине) добавьте следующий код, который отключит сохранение платежных токенов:
add_filter('woocommerce_payment_token_is_active', '__return_false');Этот фильтр запрещает активацию любых сохраненных платежных токенов, что эффективно блокирует хранение и использование данных карт.
4. Очистите существующие токены карт из базы
Для удаления данных карт выполните SQL-запрос (желательно через phpMyAdmin или wp-cli):
DELETE FROM wp_woocommerce_payment_tokens;Также рекомендуется очистить связанные метаданные:
DELETE FROM wp_woocommerce_payment_tokenmeta;5. Отключите обработку полей платежей на фронтенде
Переопределите вывод полей оплаты на странице оформления заказа, чтобы полностью убрать формы для ввода карты:
add_filter('woocommerce_cart_needs_payment', '__return_false');Это предотвратит появление любых платежных форм, если платежи отключены.
Проверка результата после внедрения
- Создайте тестовый заказ без активных платежных методов — форма ввода карты не должна отображаться.
- Проверьте, что таблица
wp_woocommerce_payment_tokensпуста после оформления заказа. - Используйте инструменты разработчика для проверки отсутствия отправки данных карт в сетевых запросах.
- В логе WooCommerce не должно быть ошибок, связанных с платежами.
Частые ошибки и как их исправить
- Платежные формы всё ещё отображаются: проверьте, не подключен ли в теме или плагинах кастомный код, который выводит поля оплаты. Используйте поиск по коду по ключам
payment_fieldsилиwoocommerce_checkout_payment. - Токены карт не удаляются из базы: убедитесь, что SQL запросы выполняются на нужной базе, и что префикс таблиц совпадает с вашим (
wp_может быть другим). - Проблемы с кэшированием: иногда кэш страницы или серверный кэш могут показывать старые данные. Очистите кэш после внесения изменений.
- Плагины платежей переактивируются: отключите или удалите плагины, а не только их методы в WooCommerce.
Практические советы по безопасности и производительности
- Всегда используйте HTTPS на сайте для защиты данных пользователей.
- Регулярно обновляйте WooCommerce и плагины платежей для предотвращения уязвимостей.
- Ограничьте доступ к базе данных и используйте сильные пароли.
- Если на сайте не нужны платежи, отключайте соответствующие плагины полностью, чтобы избежать случайного сбора данных.
- Для оптимизации загрузки и безопасности рассмотрите использование плагина Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wpskins.ru&utm_medium=article&utm_campaign=woocommerce-otmena-sbora-dannyh-karty-pri-otkljuchenii-platezhej) для очистки неиспользуемых функций WooCommerce.
Сравнение способов отключения сбора данных карты в WooCommerce
| Метод | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
| Отключение платежных методов в админке | Простой и быстрый способ | Не гарантирует полное отключение сбора данных | Для временного отключения платежей |
| Деактивация плагинов платежей | Полное отключение функционала | Может нарушить работу сайта, если плагины нужны для других функций | При длительном отключении платежей |
Добавление фильтра woocommerce_payment_token_is_active | Программное и надежное решение | Требует доступа к коду сайта | Для точечного контроля сбора данных |
| Удаление токенов из базы данных | Полное удаление существующих данных | Требует осторожности и резервного копирования | Для очистки после отключения платежей |