Hooks en WordPress (add_action y add_filter) y Webhooks en WooCommerce: Guía Práctica con Ejemplos en PHP

Toda la arquitectura extensible de WordPress y WooCommerce se sostiene sobre el sistema de Hooks (Ganchos). Gracias a los hooks, puedes modificar precios en el carrito, alterar campos del checkout, inscribir alumnos en Tutor LMS al completarse un pago o disparar peticiones hacia servicios externos sin tocar jamás un solo archivo del núcleo de WordPress.

En esta guía técnica veremos la diferencia exacta entre un Action Hook (add_action) y un Filter Hook (add_filter), cómo manejar las prioridades y el número de argumentos, y cómo se relacionan con los Webhooks de WooCommerce para integraciones en tiempo real.

1. Diferencia entre add_action (Acciones) y add_filter (Filtros)

  • Action Hooks (add_action): Ejecutan código en un momento específico del ciclo de vida de WordPress (por ejemplo, al guardar un post, al cargar el <head> o cuando un pedido de WooCommerce pasa a estado Completado). No devuelven ningún valor; simplemente realizan una tarea.
  • Filter Hooks (add_filter): Interceptan un dato antes de que se guarde en la base de datos o antes de que se muestre en pantalla, lo transforman y obligatoriamente deben devolver (return) el valor modificado.
// EJEMPLO DE ACTION: Ejecutar una tarea cuando un pedido de WooCommerce se completa
add_action( 'woocommerce_order_status_completed', 'dc_notificar_pedido_completado', 10, 1 );
function dc_notificar_pedido_completado( $order_id ) {
    $order = wc_get_order( $order_id );
    if ( ! $order ) {
        return;
    }
    // Aquí puedes registrar un log, activar una licencia o llamar a una API externa
    error_log( 'Pedido completado #' . $order_id . ' por ' . $order->get_Formatted_order_total() );
}

// EJEMPLO DE FILTER: Modificar el texto del botón de añadir al carrito en WooCommerce
add_filter( 'woocommerce_product_single_add_to_cart_text', 'dc_personalizar_texto_boton_carrito', 10, 1 );
function dc_personalizar_texto_boton_carrito( $texto ) {
    return 'Comprar ahora de forma segura'; // ¡Siempre hacer return en un filter!
}

2. Cómo funcionan la Prioridad (10) y los Argumentos aceptados

Tanto add_action como add_filter reciben hasta 4 parámetros: add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ):

  • Prioridad (por defecto 10): Un número menor (por ejemplo, 5) se ejecuta antes; un número mayor (por ejemplo, 20 o 99) se ejecuta después, lo cual es indispensable cuando quieres sobrescribir el comportamiento de otro plugin.
  • Argumentos aceptados (por defecto 1): Si el hook original pasa 2 o 3 variables mediante do_action( 'mi_hook', $var1, $var2, $var3 ), debes especificar 3 en el cuarto parámetro para recibirlas todas en tu función.

3. Webhooks en WooCommerce: De los Hooks internos en PHP a la nube (n8n, Make y Pasarelas)

Mientras que un Hook ocurre internamente dentro del servidor PHP de tu WordPress, un Webhook de WooCommerce toma un evento interno (como woocommerce_new_order o woocommerce_subscription_status_updated) y envía un paquete JSON mediante una petición HTTP POST hacia una URL externa:

  • De WooCommerce hacia n8n / WhatsApp: Cuando se crea un pedido, WooCommerce dispara el webhook hacia tu flujo de n8n y WhatsApp Cloud API.
  • Desde Pasarelas de Pago (Wompi / Mercado Pago) hacia WooCommerce: En el sentido inverso, cuando Wompi o Mercado Pago procesan el cobro recurrente mensual de una suscripción, envían un Webhook firmado criptográficamente hacia un endpoint de la API REST de WordPress o woocommerce_api_ para marcar la renovación como pagada.

4. Biblioteca de Snippets con Hooks de WordPress, Elementor y WooCommerce

Explora nuestros tutoriales prácticos donde aplicamos hooks reales en producción:

Sobre el autor — Cristian Leguizamón (@crleguizamon): Desarrollador Full-Stack especializado en WordPress, WooCommerce, IA y Automatizaciones con más de 9 años de experiencia y 6 plugins publicados en el directorio oficial de WordPress.org.

¿Buscas plugins de cobro recurrente o desarrollo a medida? Explora nuestro Catálogo de Plugins para WooCommerce y WordPress o solicita soporte en DevCristian.com.

¿Necesitas una funcionalidad que no existe en WordPress?

Desarrollamos plugins, integraciones y funcionalidades personalizadas para que tu sitio o tienda WooCommerce haga exactamente lo que tu negocio necesita, con código seguro, compatible y preparado para crecer.

Compartir esta información