Resumo de IA
Descrição
O wpforms_frontend_output é executado antes de um formulário ser exibido no frontend do site e dentro do container HTML do formulário. Só será executado se o formulário existir e contiver campos.
Parâmetros
- $form_data
- (array) Configurações/dados do formulário processados, preparados para serem usados posteriormente.
- $form
- (WP_Post) Tipo de post do formulário.
Origem
wpforms/src/Frontend/Frontend.php
Mais Informações
Embora wpforms_frontend_output só seja executado 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 container HTML form.
Uma ação alternativa a considerar é wpforms_frontend_output_before, pois funciona de forma semelhante, exceto que estará fora do container HTML do formulário.
Exemplos
No nosso exemplo, temos um formulário que será desativado no dia de Natal. Queremos exibir uma mensagem acima do formulário que calcule 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 );