do_action()
do_action() es la función que crea un action hook. WordPress la usa internamente miles de veces. Cuando desarrollas tu propio plugin, la usas para hacer tu código extensible por otros.
¿Quién usa do_action()?
- El núcleo de WordPress — para crear todos sus hooks internos
- Tú — cuando quieres que tu plugin sea extensible sin que nadie toque su código
Sintaxis
do_action( $hook_name, ...$args );
Ejemplo: hacer tu plugin extensible
// En mi-plugin.php — creo el hook
function mi_plugin_procesar_pedido( $pedido_id ) {
// lógica del plugin...
$pedido = obtener_pedido( $pedido_id );
// Hook ANTES de guardar — cualquiera puede engancharse aquí
do_action( 'mi_plugin_antes_guardar_pedido', $pedido_id, $pedido );
guardar_pedido( $pedido );
// Hook DESPUÉS de guardar
do_action( 'mi_plugin_pedido_guardado', $pedido_id );
}
// En functions.php del tema — me engancho al hook
add_action( 'mi_plugin_pedido_guardado', 'enviar_email_confirmacion' );
function enviar_email_confirmacion( $pedido_id ) {
wp_mail( 'cliente@ejemplo.com', 'Pedido confirmado', 'Tu pedido #' . $pedido_id . ' está listo.' );
}
Pasar argumentos al hook
// Crear el hook con 2 argumentos
do_action( 'mi_plugin_evento', $arg1, $arg2 );
// Engancharse y recibir los 2 argumentos
add_action( 'mi_plugin_evento', 'mi_funcion', 10, 2 );
function mi_funcion( $arg1, $arg2 ) {
// disponibles aquí
}
Verificar si alguien está enganchado
if ( has_action( 'mi_plugin_evento' ) ) {
do_action( 'mi_plugin_evento' );
}
