¿Cómo configuro un webhook?

20 jul 2017, 20:56:53
Vistas: 30.9K
Votos: 6

Tengo un script simple que envía mensajes a Slack, ejecuta informes y hace otras cosas. Me gustaría que este script se ejecutara directamente después de que los usuarios compren algo en mi sitio. NO quiero construir esta funcionalidad usando WordPress, mi objetivo es tener sistemas débilmente acoplados.

ENTRAN LOS WEBHOOKS.

Los webhooks suenan exactamente como lo que quiero. Algo sucede en WordPress y luego notifica a mi servidor de informes.

WordPress anuncia una función de webhooks en https://en.support.wordpress.com/webhooks/ donde indica que hay una opción de WEBHOOKS bajo AJUSTES en el panel de administración.

Captura de pantalla de la documentación de WordPress sobre webhooks

Sin embargo, en mi WordPress no tengo esta opción de menú.

Captura de pantalla del panel de administración de WordPress sin la opción de webhooks

¿Hay algo especial que tenga que hacer para obtener este menú?

1
Comentarios

Creo que ese enlace es sobre sitios alojados en Wordpress.com

hwl hwl
20 jul 2017 21:37:06
Todas las respuestas a la pregunta 4
2

Estás usando WordPress autoalojado, que a veces se denomina WordPress.org.

Llamar a un hook remoto sigue siendo una posibilidad allí, pero a menos que tu solución de comercio electrónico lo admita, es posible que necesites agregar un código personalizado.

  1. Opción - encontrar un plugin

Existen algunos plugins que enviarán datos a una URL externa cuando ocurra cierto evento, por ejemplo, cuando se envíe un formulario. Estos pueden ser específicos para tus formularios o pueden ser algo genéricos (compatibles con diferentes formularios). Es probable que exista algo para WooCommerce y otros sistemas. Lamentablemente no puedo ser más específico sin saber qué estás usando.

  1. Para compras - tu procesador de pagos puede tener webhooks.

Yo uso webhooks con Stripe, por ejemplo. La compra se realiza a través de WP, pero tan pronto como se carga a la tarjeta de crédito usando Stripe, recibo una devolución de llamada de Stripe con toda la información. Por lo tanto, no es necesario publicarla nuevamente desde WordPress.

  1. Agregar código personalizado para hacer webhook por ti

Casi todas las acciones en WordPress activan alguna "acción", que puede ser capturada por tu plugin. Básicamente, todo lo que necesitas hacer es registrar una acción y, una vez que ocurra, publicarla en tu servidor externo.

Más sobre acciones: https://codex.wordpress.org/Plugin_API#Hooks:_Actions_and_Filters

21 jul 2017 01:31:28
Comentarios

Gracias por la explicación. ¿Existe algún plugin que permita especificar acciones arbitrarias de WordPress? Puedo decirle a mi proveedor que haga que mi plugin personalizado use acciones. Y esa herramienta podría convertir las acciones en webhooks.

William Entriken William Entriken
26 jul 2017 03:55:59

WordPress tiene hooks disponibles que se pueden usar para activar acciones arbitrarias. Un ejemplo es https://developer.wordpress.org/reference/hooks/admin_post_nopriv_action/.

Cuando otro sitio web publica en tu sitio a través de una URL que luce como http://www.example.com/wp-admin/admin-post.php?action=foobar, la función foobar que definas será ejecutada.

ajie ajie
8 ago 2019 20:38:49
0

Como muchas cosas han cambiado en los últimos años, quería hacer una actualización sobre lo nuevo en el mundo de los webhooks de WordPress (2019+).

El documento que mencionas es proporcionado por WordPress.com, que es un servicio diferente a los sitios web autohospedados a través de WordPress.org.

Para lograr ese objetivo, hay un par de posibilidades:

1. Usar un plugin ya existente

La forma más fácil sería usar un plugin que ya ofrezca webhooks. Si quieres cubrir un caso de uso específico, tiene sentido buscar una solución específica. Por ejemplo, Woocommerce ofrece integración con Slack como plugin: https://woocommerce.com/products/woocommerce-slack/

En caso de que quieras una solución global para poder integrar básicamente todo, te recomiendo WP Webhooks - Tienen una versión gratuita disponible y funciona genial desde el primer momento. No solo te permite enviar datos desde WordPress, sino también recibirlos. También puedes conectarlo fácilmente en ambas direcciones con Zapier, automate.io y muchos otros servicios.

Otro plugin posible sería Hookpress - También te ofrece la posibilidad de enviar datos desde WordPress a cualquier webhook. El único problema es que ya no se mantiene y hay problemas de compatibilidad con PHP 7+

Otro plugin sería WebSub/PubSubHubbub - Funciona muy bien también, pero tiene casos de uso más específicos.

2. Código Personalizado

En caso de que nada de lo anterior se adapte a tu caso de uso, siempre puedes empezar a crear tu propio código o contratar a un desarrollador para que lo haga por ti. Si quieres hacerlo tú mismo, deberías echar un vistazo a las siguientes funciones de WordPress: wp_remote_post y wp_remote_get

Si quieres contratar a un desarrollador, te recomiendo preguntar en fiverr o Upwork o, si solo quieres desarrolladores expertos, en Codeable

Si sabes algo que yo no sepa, no dudes en contactarme y lo añadiré también :)

27 mar 2019 16:19:44
0

Si estás considerando usar código personalizado, quizás quieras crear endpoints dependiendo de lo que estés haciendo.

https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/

10 may 2022 16:31:54
0
-2

Cuando estás utilizando un sitio web autohospedado, sigue los pasos a continuación:

  1. Inicia sesión en el panel de administración de tu sitio tusitio.com/wp-admin

  2. Haz clic en Ajustes, luego en Ajustes de escritura tusitio.com/wp-admin/options-writing.php

  3. Desplázate hasta Servicios de actualización

  4. Añade las URLs de tus endpoints

Esos son todos los pasos.

26 dic 2018 11:35:17