Descrição

O wpforms_frontend_output é acionado antes de um formulário ser exibido no frontend do site e dentro do contêiner de formulário HTML. Ele só será acionado se o formulário existir e contiver campos.

Parâmetros

$form_data
(array) Configurações/dados de formulários processados, preparados para serem usados posteriormente.
$form
(WP_Post) Tipo de post de formulário.

Fonte

wpforms/src/Frontend/Frontend.php

Mais informações

Enquanto wpforms_frontend_output só é acionada para formulários válidos e não vazios e é executada no início do processo de renderização de saída. No entanto, o que você colocar com essa ação será exibido dentro do HTML form contêiner.

Uma ação alternativa a ser considerada é wpforms_frontend_output_before, pois funciona de forma semelhante, exceto que estará fora do contêiner do formulário HTML.

Exemplos

Em nosso exemplo, temos um formulário que será retirado do ar no dia de Natal. Queremos exibir uma mensagem acima do formulário que calculará a data de hoje menos o dia de Natal e dará ao usuário uma contagem de quantos dias faltam para enviar o formulário.

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

Artigos de referência

Como exibir o número do limite de entrada restante