Якщо WooCommerce перестав приймати замовлення, проблема може бути не лише в платіжній системі. Причина часто пов’язана з кошиком, сесіями покупців, помилками JavaScript, конфліктом плагінів, налаштуваннями доставки або сервером. Важливо не змінювати все одночасно: безпечна діагностика допомагає зрозуміти, на якому етапі переривається оформлення.
Перед оновленням плагінів, редагуванням коду чи очищенням таблиць бази даних зробіть повну резервну копію файлів і бази даних. Якщо магазин активно працює, бажано спершу створити копію на тестовому середовищі. Будь-які необережні зміни можуть призвести до втрати даних, замовлень або налаштувань.
Перевірка кошика та оформлення
Спочатку визначте, на якому кроці виникає збій: товар не додається до кошика, кошик очищується, не відкривається сторінка оформлення, форма не відправляється або замовлення створюється без успішної оплати.
- Перевірте сайт у приватному вікні браузера та з іншого пристрою.
- Додайте різні товари до кошика: простий, варіативний і цифровий, якщо вони є в магазині.
- Перевірте, чи працюють кнопки «Додати до кошика», «Оформити замовлення» та «Підтвердити замовлення».
- Подивіться, чи правильно розраховуються ціна, податки, доставка та знижки.
- Перевірте консоль браузера на помилки JavaScript, особливо якщо кнопка не реагує або сторінка зависає.
Проблеми з кошиком можуть виникати через неправильне кешування динамічних сторінок, застарілі сесії WooCommerce, блокування cookies, помилки у фрагментах кошика або некоректні правила доставки. Сторінки кошика, оформлення та облікового запису не повинні кешуватися так само, як звичайні інформаційні сторінки.
Якщо після натискання кнопки з’являється повідомлення про помилку, зафіксуйте його дослівно. Не очищайте базу даних і не видаляйте замовлення вручну, якщо не зрозуміло, де саме зберігається проблема.
Платіжний шлюз
Коли замовлення створюється, але оплата не проходить, перевіряйте платіжний шлюз окремо від самого WooCommerce. У налаштуваннях способу оплати зверніть увагу на активність шлюзу, тестовий або робочий режим, ключі API, URL для повідомлень і дозволені валюти.
- Перевірте, чи не завершився термін дії ключів або сертифікатів.
- Переконайтеся, що домен і протокол HTTPS відповідають вимогам платіжного сервісу.
- Перевірте, чи доступні callback або webhook-адреси з боку платіжної системи.
- Порівняйте валюту магазину з валютами, дозволеними у вашому тарифі платіжного сервісу.
- Зробіть тестову оплату лише в тестовому режимі або на мінімально ризиковому замовленні.
Якщо клієнт після оплати повертається на сайт, але замовлення залишається зі статусом «Очікує оплати», проблема може бути у webhook, блокуванні запитів сервером, неправильному підписі відповіді або помилці в часовій зоні. Не змінюйте ключі API навмання: спочатку збережіть поточні налаштування та перевірте журнали платіжного сервісу.
Окремо перевірте, чи не блокує запити firewall, CDN, хостинг або плагін безпеки. Після тимчасового вимкнення обмеження його потрібно налаштувати коректно, а не залишати сайт без захисту.
Конфлікти плагінів
Після оновлення WordPress, WooCommerce, теми або платіжного модуля магазин може втратити сумісність. Конфлікт часто проявляється лише на сторінці оформлення, тому головна сторінка сайту при цьому працює нормально.
Безпечна послідовність перевірки така:
- Створіть резервну копію файлів і бази даних.
- За можливості повторіть проблему на копії сайту або staging-середовищі.
- Тимчасово вимкніть не критичні плагіни, не видаляючи їх.
- Перевірте кошик і оформлення після кожної зміни.
- Якщо проблема зникла, увімкніть розширення по одному, щоб знайти конфлікт.
- Перевірте сумісність проблемного плагіна з поточними версіями WordPress, WooCommerce та PHP.
Особливу увагу варто звернути на плагіни кешування, оптимізації JavaScript, доставки, знижок, податків, мультивалютності, фільтрів товарів і безпеки. Не рекомендується одразу оновлювати всі компоненти на робочому сайті: оновлення може змінити поведінку оформлення або пошкодити сумісність із темою.
Якщо після відключення плагінів помилка залишається, причиною може бути тема, кастомний код у functions.php, mu-плагін, версія PHP або пошкоджені файли WooCommerce. У такій ситуації краще не редагувати робочі файли без копії.
Логи WooCommerce
Логи допомагають перейти від припущень до конкретної причини. У панелі WordPress відкрийте розділ WooCommerce з журналами та перегляньте записи за часом невдалого замовлення. Назви логів залежать від встановлених розширень, але зазвичай окремо зберігаються повідомлення WooCommerce і платіжного шлюзу.
Шукайте помилки, пов’язані з:
- невдалим підключенням до API;
- відсутніми або неправильними ключами доступу;
- помилками бази даних;
- недостатнім лімітом пам’яті PHP або часом виконання;
- заблокованими HTTP-запитами;
- невірними webhook, callback або redirect-адресами;
- помилками обробки сесії та cookies.
Додатково перевірте PHP error log на хостингу та журнал веб-сервера. Не показуйте детальні технічні помилки відвідувачам на робочому сайті: режим налагодження може розкрити шляхи до файлів, SQL-запити або службові дані. Перед увімкненням розширеного логування переконайтеся, що доступ до журналів обмежений, а після діагностики вимкніть непотрібний debug-режим.
Якщо в логах є повідомлення про пошкодження таблиць, помилки підключення до бази або повторювані збої після підозрілих змін, не запускайте автоматичне «відновлення» без резервної копії. Це може змінити або видалити частину даних. У разі серйозного збою стане доречним Відновлення інтернет-магазину після технічного збою.
Безпечний тест замовлення
Після внесення змін перевіряйте весь сценарій від початку до кінця: додавання товару, введення контактних даних, вибір доставки, застосування знижки, перехід до оплати, повернення на сайт і зміна статусу замовлення.
- Використовуйте окремий тестовий товар із чітко визначеною ціною.
- Не застосовуйте реальні платіжні дані, якщо шлюз має тестовий режим.
- Перевірте замовлення з авторизованого та неавторизованого користувача.
- Повторіть тест на комп’ютері та мобільному пристрої.
- Переконайтеся, що клієнт і адміністратор отримують потрібні повідомлення.
- Перевірте, чи не створюються дублікати замовлень після повторного натискання кнопки.
Після успішної перевірки очистіть лише потрібний кеш і проконтролюйте кілька реальних замовлень. Якщо магазин не приймає замовлення, помилки повторюються в логах, зникають дані кошика або проблема пов’язана з базою, сервером чи кодом платіжного шлюзу, варто залучити спеціаліста. До діагностики підготуйте резервну копію, опис симптомів, час виникнення збою та список останніх змін — це зменшить ризик додаткового пошкодження і допоможе швидше визначити причину.