Hoy vamos a ver cómo podemos enviar datos de WordPress a un webhook en el momento que se realice una publicación.

Lo primero que haremos es instalar el plugin llamado Code Snippet que nos permite añadir código.
Le damos a añadir nuevo código:
add_action('transition_post_status', 'enviar_a_a_webhook', 10, 3);
function enviar_a_webhook($new_status, $old_status, $post) {
// Verificar que el post ha cambiado a "publish" desde cualquier otro estado
if ('publish' !== $new_status || 'publish' === $old_status) {
return; // Solo enviar si el post cambia a "publish" (y no es ya publicado)
}
// Verificar que el post no es una revisión
if (wp_is_post_revision($post->ID)) {
return;
}
$webhook_url = 'https://n8n.web.com/webhook/post-wordpress';
// Si usas WPML o Polylang, ajusta esto para obtener el idioma
$language = function_exists('pll_get_post_language') ? pll_get_post_language($post->ID) : 'es';
$data = [
'id' => $post->ID,
'title' => $post->post_title,
'content' => apply_filters('the_content', $post->post_content), // HTML limpio renderizado
'slug' => $post->post_name,
'author' => get_the_author_meta('display_name', $post->post_author),
'date' => $post->post_date,
'status' => $post->post_status,
'language' => $language,
'categories' => wp_get_post_categories($post->ID),
'tags' => wp_get_post_tags($post->ID, ['fields' => 'names']),
];
// Añadir log para los datos antes de enviarlos
error_log('Datos enviados: ' . print_r($data, true));
// Enviar los datos al webhook
$response = wp_remote_post($webhook_url, [
'method' => 'POST',
'headers' => ['Content-Type' => 'application/json'],
'body' => json_encode($data),
]);
// Comprobación de la respuesta del webhook
if (is_wp_error($response)) {
error_log('Error en la respuesta del webhook: ' . $response->get_error_message());
} else {
error_log('Webhook enviado correctamente: ' . wp_remote_retrieve_body($response));
}
}
Debes cambiar la URL por la de tu webhook.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.