Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Descrição

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

Parâmetros

$form_data
(array) Configurações/dados do formulário processados, preparados para uso posterior.
$form
(WP_Post) Tipo de postagem do formulário.

Fonte

wpforms/src/Frontend/Frontend.php

Mais Informações

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

Uma ação alternativa a ser considerada é wpforms_frontend_output_before, pois ela 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á desativado 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 restam 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 Restante do Limite de Entradas