Come configurare un webhook?
Ho uno script semplice che invia messaggi su Slack, esegue report e altre operazioni. Vorrei che questo script si eseguisse direttamente dopo che gli utenti effettuano un acquisto sul mio sito. NON voglio costruire questa funzionalità usando WordPress, il mio obiettivo è avere sistemi debolmente accoppiati.
ECCO I WEBHOOK.
I webhook sembrano esattamente quello che cerco. Qualcosa accade su WordPress e poi notifica il mio server di reporting.
WordPress pubblicizza una funzionalità webhook su https://en.support.wordpress.com/webhooks/ affermando che c'è un'opzione WEBHOOKS sotto IMPOSTAZIONI nell'amministrazione.
Tuttavia, sul mio WordPress non ho questa opzione di menu.
C'è qualcosa di speciale che devo fare per ottenere questo menu?

Stai utilizzando WordPress self-hosted, a volte indicato come WordPress.org.
Chiamare un hook remoto è ancora una possibilità lì, ma a meno che la tua soluzione di e-commerce non lo supporti, potresti dover aggiungere un codice personalizzato.
- Opzione - trovare un plugin
Esistono alcuni plugin che inviano dati a un URL esterno quando si verifica un determinato evento, ad esempio l'invio di un modulo. Questi potrebbero essere specifici per i tuoi moduli o potrebbero essere generici (supportando diversi moduli). Probabilmente esiste qualcosa per WooCommerce e altri sistemi. Purtroppo non posso essere più specifico senza sapere cosa stai utilizzando.
- Per gli acquisti - il tuo processore di pagamento potrebbe avere webhook.
Io utilizzo webhook con Stripe, ad esempio. L'acquisto viene effettuato tramite WP ma non appena viene addebitato sulla carta di credito utilizzando Stripe, ricevo una callback da Stripe con tutte le informazioni. Quindi, non c'è bisogno di inviarle nuovamente da WordPress.
- Aggiungere un codice personalizzato per gestire il webhook per te
Praticamente ogni azione in WordPress attiva qualche "azione", che può essere intercettata dal tuo plugin. Fondamentalmente tutto quello che devi fare è registrare un'azione e, una volta che si verifica, inviare i dati al tuo server esterno.
Maggiori informazioni sulle azioni: https://codex.wordpress.org/Plugin_API#Hooks:_Actions_and_Filters

Grazie per la spiegazione. Esiste un plugin che permette di specificare azioni WordPress arbitrarie? Posso dire al mio fornitore di far utilizzare azioni al mio plugin personalizzato. E quello strumento potrebbe trasformare le azioni in webhook.

WordPress ha degli hook disponibili che possono essere usati per attivare azioni arbitrarie. Un esempio è https://developer.wordpress.org/reference/hooks/admin_post_nopriv_action/.
Quando un altro sito web invia dati al tuo sito attraverso un URL che appare come http://www.example.com/wp-admin/admin-post.php?action=foobar, la funzione foobar che hai definito verrà eseguita.

Dato che molto è cambiato negli ultimi anni, volevo fare un aggiornamento sulle novità nel mondo dei webhook di WordPress (2019+).
Il documento che hai menzionato è fornito da WordPress.com, che è un servizio diverso rispetto ai siti self-hosted via WordPress.org.
Per raggiungere questo obiettivo ci sono diverse possibilità:
1. Usa un plugin già esistente
Il modo più semplice sarebbe utilizzare un plugin che già offre webhook. Se vuoi coprire un caso d'uso specifico, ha senso cercare una soluzione mirata. Ad esempio, Woocommerce offre un plugin per l'integrazione con Slack: https://woocommerce.com/products/woocommerce-slack/
Se invece cerchi una soluzione globale per integrare praticamente qualsiasi cosa, ti consiglio WP Webhooks - Hanno una versione gratuita disponibile e funziona benissimo subito. Ti permette non solo di inviare dati da WordPress ma anche di riceverli. Puoi anche connetterlo facilmente in entrambi i modi con Zapier, automate.io e molti altri servizi.
Un altro plugin possibile sarebbe Hookpress - Ti offre anche la possibilità di inviare dati da WordPress a qualsiasi webhook. L'unico problema è che non è più mantenuto e ci sono problemi di compatibilità con PHP 7+
Un altro plugin è WebSub/PubSubHubbub - Funziona altrettanto bene ma ha casi d'uso più specifici.
2. Codice Personalizzato
Se nessuna delle opzioni sopra si adatta al tuo caso d'uso, puoi sempre iniziare a creare il tuo codice o assumere uno sviluppatore per farlo. Se vuoi farlo da solo, dovresti dare un'occhiata alle seguenti funzioni di WordPress: wp_remote_post e wp_remote_get
Se vuoi assumere uno sviluppatore, ti consiglio di chiedere su fiverr o Upwork o se vuoi solo sviluppatori esperti Codeable
Se sai qualcosa che io non so, non esitare a contattarmi e lo aggiungerò anche io :)

Se stai valutando di utilizzare codice personalizzato, potresti voler creare degli endpoint a seconda di ciò che stai facendo.
https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

Quando utilizzi un sito web self-hosted, segui i passaggi seguenti:
Accedi al pannello di amministrazione del tuo sito yoursite.com/wp-admin
Clicca su Impostazioni, poi su Impostazioni di scrittura yoursite.com/wp-admin/options-writing.php
Scorri fino a Servizi di aggiornamento
Aggiungi i tuoi URL endpoint
Questi sono tutti i passaggi necessari.
