Связаться
  • WordPress
  • CRM и интеграции
  • v1.0.0

Webhook Watchdog для WooCommerce — сторож вебхуков

WooCommerce отключает вебхук после 5 неудачных доставок и не предупреждает. Плагин находит такие вебхуки, ведёт журнал инцидентов и шлёт дайджест. Pro включает их обратно после проверки эндпоинта.

Pro 990 грн / год
Скачать Free
Совместимость
WordPress 6.2+, WooCommerce 6.0+ (проверено на WP 7.1 / Woo 10.7)
PHP
7.4 и новее
Лицензия
один сайт, годовая
Триал
7 дней, без карты, один на сайт
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Модуль в работе — 41 секунда

Понятно и без звука: субтитры на украинском

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Находит вебхуки, которые WooCommerce отключил после 5 неудачных доставок ✔ ✔
Журнал инцидентов: топик, URL, количество неудач, что сделано, ответ эндпоинта ✔ ✔
Один дайджест на скан, а не письмо на каждый вебхук ✔ ✔
Скан по расписанию: 15 мин / час / дважды в сутки / сутки ✔ ✔
Кнопка «Сканировать сейчас» ✔ ✔
Проверка — HEAD/GET, никогда не повтор неудачного payload ✔ ✔
Сброс счётчика неудач вместе со статусом ✔ ✔
Защита от «мигания»: лимит восстановлений на вебхук в сутки ✔ ✔
Ничего не добавляет на витрину и не замедляет магазин ✔ ✔
HPOS и блочная корзина/чекаут — совместимость объявлена ✔ ✔
Автоматическое включение обратно после проверки, что эндпоинт жив — ✔
Ретенция журнала, до трёх лет — ✔

Как это выглядит

Журнал инцидентов с реального стенда: живой эндпоинт включён обратно (HTTP 200), два мёртвых остались отключёнными с точной причиной.
Журнал инцидентов с реального стенда: живой эндпоинт включён обратно (HTTP 200), два мёртвых остались отключёнными с точной причиной.
Настройки: периодичность скана, что делать с найденным вебхуком, проверка эндпоинта с таймаутом и защита от «мигания».
Настройки: периодичность скана, что делать с найденным вебхуком, проверка эндпоинта с таймаутом и защита от «мигания».
Штатная панель вебхуков WooCommerce: два из трёх отключены (мёртвые эндпоинты), и никакой истории — именно этого не хватает, когда интеграция тихо отваливается.
Штатная панель вебхуков WooCommerce: два из трёх отключены (мёртвые эндпоинты), и никакой истории — именно этого не хватает, когда интеграция тихо отваливается.

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней.

Технические требования

  • WordPress 6.2+ (проверено на 7.1).
  • WooCommerce 6.0+ (проверено на 10.7).
  • PHP 7.4+.
  • Работает с HPOS (собственные таблицы заказов) и с блочной корзиной и чекаутом — совместимость объявлена явно.
  • Для проверки эндпоинта нужны исходящие HTTP-запросы с сайта (стандартный WP HTTP API).

История версий

v1.0.0 Текущая

Скан по расписанию, журнал инцидентов, дайджест на почту, ручной скан, автоматическое восстановление с предварительной пробой эндпоинта, сброс счётчика неудач, защита от «мигания», ретенция.

Вместе с Webhook Watchdog для WooCommerce покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Webhook Watchdog Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 590 ₴ / год вместо 5 960 ₴ поштучно
Купить набор →

Полное описание модуля

WooCommerce ведёт счётчик неудачных доставок на каждом вебхуке. После пятой подряд он ставит вебхуку статус disabled — и никому об этом не говорит. Ни письма, ни уведомления в админке, ни записи там, куда владелец магазина заглядывает.

История всегда одна и та же: интеграция на том конце — Printful, CRM, склад, бухгалтерия — просто перестаёт получать заказы, а магазин узнаёт об этом через несколько дней от клиента или по неотправленной посылке. На экране вебхуков написано «Отключено», и нигде не объяснено ни когда, ни почему, ни сколько раз так уже было.

Этот модуль — та самая недостающая половина.

Как это выглядит для покупателя

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

Что получает админ

Проверка вебхуков по расписанию — каждые 15 минут, ежечасно, дважды в сутки или раз в сутки, на выбор. Плюс кнопка «Сканировать сейчас», когда нужно проверить прямо сейчас.

Журнал инцидентов — отдельный экран со своей таблицей: когда найдено, какой вебхук, топик, URL доставки, сколько доставок провалилось, что сделано и что ответил эндпоинт. Фильтры по результату: только уведомлено, восстановлено, эндпоинт лежит, лимит исчерпан, не удалось.

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

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

Как это работает — шаг за шагом

  1. По расписанию модуль спрашивает WooCommerce, какие вебхуки сейчас в статусе disabled (по желанию — ещё и paused).
  2. На каждый такой вебхук пишется инцидент: топик, URL, счётчик неудач, предыдущий статус.
  3. В режиме «только уведомить» на этом всё и заканчивается — состояние магазина не меняется, вы просто узнаёте.
  4. В режиме восстановления модуль сначала проверяет, отвечает ли эндпоинт вообще: обычный HEAD, с откатом на GET, если HEAD отдаёт 405.
  5. Если ответа нет или пришёл 5xx — вебхук остаётся отключённым, а в журнале и в письме пишется точная причина (вплоть до текста ошибки cURL).
  6. Если эндпоинт жив — вебхук включается обратно, и вместе со статусом сбрасывается счётчик неудач.
  7. Записи инцидентов старше заданного срока удаляются сами.

Проба намеренно никогда не повторяет тот payload, который не дошёл. Повторно отправить настоящий вебхук заказа на эндпоинт, состояние которого неизвестно, — это ровно тот путь, которым склад отгружает один и тот же заказ дважды. Проба отвечает только на вопрос «слушает ли вообще кто-то по этому адресу», и именно он решает, стоит ли пытаться включать.

Любой HTTP-ответ, включая 4xx, считается признаком жизни: эндпоинт, который отклоняет голый GET, но принимает подписанный POST, — это абсолютно нормально, и это всё равно доказательство, что хост поднят.

Что под капотом

Собственная таблица инцидентов — строка на каждый случай, когда вебхук найден отключённым, с тем, что с ним сделали. Это то, чего нет ни в WooCommerce, ни в панели интеграции: история, по которой видна повторяемость.

Сброс failure_count при восстановлении — не косметика. WooCommerce сравнивает текущий счётчик с порогом, так что вебхук, включённый со счётчиком, оставшимся на пятёрке, умирает снова при следующей же неудаче. Именно эту ошибку делают, когда включают вебхук руками.

Защита от «мигания» считает именно восстановления, а не упоминания: вебхук, о котором десять раз уведомили, ничего из лимита не потратил. Без этого ограничения вебхук, чей эндпоинт сломан так, что проба этого не видит, воскресал бы вечно — по пять настоящих запросов за раз.

Проход обёрнут так, что сбой внутри не валит очередь задач WordPress: сторожевой пёс, который падает с фаталом, забирает с собой все остальные запланированные задачи магазина.

Модуль не трогает таблицы заказов и ничего никуда не отправляет, кроме письма на ваш собственный адрес и пробы на тот URL доставки, который вы сами указали в WooCommerce.

Как установить

  1. Плагины → Добавить новый → Загрузить плагин → zip → активировать. WooCommerce должен быть активен.
  2. В меню админки появится Webhook Watchdog.
  3. Оставьте режим «только уведомить» на несколько дней — чтобы увидеть, что на самом деле происходит в вашем магазине.
  4. После этого решайте, включать ли автоматическое восстановление.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Почему мой вебхук вообще отключается?

WooCommerce увеличивает счётчик неудач на каждой доставке без 2xx и после пятой ставит статус «отключено». Достаточно короткой аварии на стороне получателя.

Перешлёт ли он доставки, которые потерялись?

Нет. WooCommerce не хранит payload неудачных доставок, а придумывать замену хуже пропуска.

Не начнёт ли он включать вебхук, который я отключил намеренно?

Нет. Вручную поставленный paused по умолчанию не трогается — это отдельный переключатель.

Насколько он нагружает сайт?

Один запрос по индексу плюс одна лёгкая HTTP-проба на каждый сломанный вебхук. Когда всё исправно — проб нет.

Что будет при удалении плагина?

Журнал удаляется только при полном удалении, а не при деактивации.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль