Как настроить вебхук?
У меня есть простой скрипт, который отправляет сообщения в Slack, запускает отчеты и выполняет другие задачи. Я хочу, чтобы этот скрипт запускался автоматически после того, как пользователи что-то покупают на моем сайте. Я НЕ хочу встраивать эту функциональность в WordPress, моя цель - иметь слабосвязанные системы.
ВВОДИМ ВЕБХУКИ.
Вебхуки - это именно то, что мне нужно. Что-то происходит в WordPress, и затем он пингует мой сервер отчетов.
WordPress рекламирует функцию вебхуков на https://en.support.wordpress.com/webhooks/, где указано, что опция WEBHOOKS находится в разделе SETTINGS (Настройки) в административной панели.
Однако в моем WordPress этого пункта меню нет.
Нужно ли что-то особенное сделать, чтобы получить это меню?

Вы используете WordPress с самостоятельным хостингом, который иногда называют WordPress.org.
Вызов удалённого хука всё ещё возможен, но если ваше решение для электронной коммерции не поддерживает его, вам может потребоваться добавить пользовательский код.
- Вариант — найти плагин
Существуют плагины, которые отправляют данные на внешний URL при наступлении определённого события, например, при отправке формы. Они могут быть специфичными для ваших форм или универсальными (поддерживающими разные формы). Вероятно, есть что-то для WooCommerce и других систем. К сожалению, без информации о том, что именно вы используете, сложно быть более конкретным.
- Для покупок — ваш платёжный процессор может поддерживать вебхуки.
Например, я использую вебхуки с Stripe. Покупка совершается через WordPress, но как только она проходит через кредитную карту с помощью Stripe, я получаю обратный вызов от Stripe со всей информацией. Таким образом, нет необходимости отправлять её снова из WordPress.
- Добавить пользовательский код для реализации вебхука
Практически каждое действие в WordPress вызывает какой-либо "экшен", который может быть перехвачен вашим плагином. Всё, что вам нужно сделать, — зарегистрировать экшен и, как только он сработает, отправить данные на ваш внешний сервер.
Подробнее об экшенах: https://codex.wordpress.org/Plugin_API#Hooks:_Actions_and_Filters

Спасибо за объяснение. Существует ли плагин, который позволяет указывать произвольные действия WordPress? Я могу попросить своего разработчика сделать так, чтобы мой кастомный плагин использовал действия. И этот инструмент мог бы преобразовывать действия в вебхуки.

В WordPress доступны хуки, которые можно использовать для запуска произвольных действий. Один из примеров — https://developer.wordpress.org/reference/hooks/admin_post_nopriv_action/.
Когда другой сайт отправляет POST-запрос на ваш сайт по URL вида http://www.example.com/wp-admin/admin-post.php?action=foobar, будет выполнена функция foobar, которую вы определили.

Так как за последние годы многое изменилось, я хотел обновить информацию о нововведениях в мире WordPress вебхуков (2019+).
Документ, который вы упомянули, предоставлен WordPress.com, а это другой сервис по сравнению с самостоятельным хостингом сайтов через WordPress.org.
Для достижения этой цели есть несколько возможностей:
1. Использовать уже существующий плагин
Самый простой способ — использовать плагин, который уже поддерживает вебхуки. Если вам нужно решение для конкретного случая, имеет смысл поискать специализированный плагин. Например, WooCommerce предлагает интеграцию со Slack в виде плагина: https://woocommerce.com/products/woocommerce-slack/
Если вам нужно универсальное решение для интеграции практически с любым сервисом, я рекомендую WP Webhooks — у них есть бесплатная версия, которая отлично работает "из коробки". Этот плагин позволяет не только отправлять данные из WordPress, но и получать их. Вы также можете легко подключить его в обоих направлениях к Zapier, automate.io и многим другим сервисам.
Ещё один возможный плагин — Hookpress. Он тоже позволяет отправлять данные из WordPress на любой вебхук. Проблема в том, что он больше не поддерживается и имеет проблемы совместимости с PHP 7+.
Ещё один плагин — WebSub/PubSubHubbub. Он тоже работает хорошо, но предназначен для более узких задач.
2. Собственный код
Если ни один из вышеперечисленных вариантов вам не подходит, вы всегда можете написать собственный код или нанять разработчика. Если вы хотите сделать это самостоятельно, вам стоит изучить следующие функции WordPress: wp_remote_post и wp_remote_get.
Если хотите нанять разработчика, рекомендую обратиться на Fiverr или Upwork, а если вам нужны только эксперты — на Codeable.
Если вы знаете что-то, чего не знаю я, не стесняйтесь связаться со мной, и я добавлю это в статью :)

Если вы рассматриваете использование пользовательского кода, возможно, вам потребуется создавать конечные точки в зависимости от ваших задач.
https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

Если вы используете самостоятельно размещённый сайт, выполните следующие шаги:
Войдите в административную панель вашего сайта yoursite.com/wp-admin
Нажмите на раздел "Настройки", затем выберите "Настройки написания" yoursite.com/wp-admin/options-writing.php
Прокрутите до раздела Сервисы обновлений
Добавьте URL ваших конечных точек (endpoint URLs)
Это все необходимые шаги.
