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