Descripción
En wpforms_frontend_output_before
se dispara antes de que se muestre un formulario en el front-end del sitio, sólo si el formulario existe y contiene campos.
Parámetros
- $form_data
- (array) Ajustes/datos del formulario procesados, preparados para su uso posterior.
- $forma
- (WP_Post) Objeto de tipo post de formulario.
Fuente
wpforms/src/Frontend/Frontend.php
Más información
En wpforms_frontend_output_before
sólo se dispara para formularios válidos no vacíos, se ejecuta al principio del proceso de renderización de la salida.
En algunos casos, la acción puede dispararse pero el formulario no se mostrará, por ejemplo, mostrando un mensaje de confirmación del formulario o activando el botón wpforms_frontend_load
filtro.
Una acción alternativa a considerar es wpforms_frontend_output_after, ya que funciona de manera similar, excepto que sólo se dispara después de que se muestra el formulario.
Ejemplos
En nuestro fragmento de código de ejemplo, que verá a continuación, vamos a comprobar primero si el ID del formulario es igual a 5. Si lo es, enviaremos un enlace para descargar el catálogo digital.
Sólo recuerda cambiar el ID del formulario de 5
para que coincida con el ID del formulario específico en el que desea ejecutar el código. Eliminando esa comprobación se ejecutaría 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 );