Resumo de IA
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 );