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