Resumen de IA
Descripción
La acción wpforms_frontend_output_before se dispara antes de que se muestre un formulario en el front-end del sitio, solo si el formulario existe y contiene campos.
Parámetros
- $form_data
- (array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.
- $form
- (WP_Post) Objeto del tipo de publicación del formulario.
Origen
wpforms/src/Frontend/Frontend.php
Más Información
Mientras que wpforms_frontend_output_before solo se dispara para formularios válidos y no vacíos, se ejecuta al principio del proceso de renderizado de la salida.
En algunos casos, la acción puede dispararse pero el formulario no se mostrará, como al mostrar un mensaje de confirmación del formulario o al activar el filtro wpforms_frontend_load.
Una acción alternativa a considerar es wpforms_frontend_output_after, ya que funciona de manera similar, excepto que solo se dispara después de que se muestra el formulario.
Ejemplos
En nuestro fragmento de código de ejemplo, que verás a continuación, primero comprobaremos si el ID del formulario es igual a 5. Si lo es, mostraremos un enlace para descargar el catálogo digital.
Solo recuerda cambiar el ID del formulario de 5 para que coincida con el ID específico del formulario en el que deseas ejecutar tu código. Eliminar esta comprobación haría que se ejecutara para todos los formularios.
/**
* Output something before your form(s).
*
* @link https://wpforms.com/developers/wpforms_frontend_output_before/
*
* @param array $form_data Form data and settings.
* @param object $form Form post type object.
*/
function wpf_dev_frontend_output_before( $form_data, $form ) {
// Optional, you can limit to specific forms. Below, we restrict output to
// form #5.
if ( absint( $form_data[ 'id' ] ) !== 5 ) {
return;
}
// Run code or see the example echo statement below.
_e( '<p>If you would like to download our digital catalog, <a href="http://yourlinkurl.com/" target="_blank">click here</a>.</p>', 'plugin-domain' );
}
add_action( 'wpforms_frontend_output_before', 'wpf_dev_frontend_output_before', 10, 2 );