Descrição

O wpforms_frontend_output é ativado antes de um formulário ser apresentado no frontend do site e dentro do contentor de formulários HTML. Só será ativado se o formulário existir e contiver campos.

Parâmetros

$form_data
(matriz) Definições/dados de formulários processados, preparados para serem utilizados posteriormente.
$formulário
(WP_Post) Tipo de post de formulário.

Fonte

wpforms/src/Frontend/Frontend.php

Mais informações

Enquanto wpforms_frontend_output só é activada para formulários válidos não vazios e é executada logo no início do processo de renderização da saída. No entanto, o que colocar com esta ação será apresentado dentro do HTML form contentor.

Uma ação alternativa a considerar é wpforms_frontend_output_before, uma vez que funciona de forma semelhante, exceto que estará fora do contentor do formulário HTML.

Exemplos

No nosso exemplo, temos um formulário que será retirado no dia de Natal. Queremos apresentar uma mensagem acima do formulário que calcula a data de hoje menos o dia de Natal e dá ao utilizador uma contagem de quantos dias faltam para submeter 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 limite de entrada restante