Descripción
En wpforms_frontend_output
se dispara antes de que se muestre un formulario en el frontend del sitio y dentro del contenedor HTML del formulario. Sólo se activará 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) Formulario tipo post.
Fuente
wpforms/src/Frontend/Frontend.php
Más información
En wpforms_frontend_output
sólo se dispara para formularios válidos no vacíos, se ejecuta al principio del proceso de renderizado de la salida. Sin embargo, lo que coloque con esta acción se mostrará dentro del HTML form
contenedor.
Una acción alternativa a considerar es wpforms_frontend_output_before, ya que funciona de forma similar, excepto que estará fuera del contenedor del formulario HTML.
Ejemplos
En nuestro ejemplo, tenemos un formulario que será retirado el día de Navidad. Queremos mostrar un mensaje encima del formulario que calcule la fecha de hoy menos el día de Navidad y le dé al usuario un recuento de cuántos días quedan para enviar el formulario.
/** * Output something before your form(s). * * @link https://wpforms.com/developers/wpforms_frontend_output/ * * @param array $form_data Form data and settings. * @param object $form Form post type. */ function wpf_dev_frontend_output( $form_data, $form ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #898. if ( absint( $form_data[ 'id' ] ) !== 898 ) { return; } // Set the PHP timezone date_default_timezone_set( 'America/New_York' ); // Set the variable to Christmas day $christmasDay = strtotime( 'December 25' ); // Get the current date $time = time(); // Calculate how many days from today's date to Christmas day $days = ceil(($christmasDay - $time)/60/60/24); echo '<div class="countdown_wrapper"> <p>' . __( 'This contest closes on <strong>12/25/2024</strong>, enter now! There are only <strong>', 'text-domain' ) . $days . __( '</strong> days left to enter!', 'text-domain' ) . '</p></div>'; } add_action( 'wpforms_frontend_output', 'wpf_dev_frontend_output', 10, 2 );