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 );

Artículos de referencia

Cómo mostrar el número restante del límite de entradas