Description

Le wpforms_frontend_output se déclenche avant l'affichage d'un formulaire sur le frontend du site et à l'intérieur du conteneur de formulaire HTML. Il ne se déclenche que si le formulaire existe et contient des champs.

Paramètres

$form_data
(tableau) Paramètres/données de formulaire traités, préparés pour être utilisés ultérieurement.
Formulaire
(WP_Post) Type de formulaire.

Source

wpforms/src/Frontend/Frontend.php

Plus d'informations

Tandis que wpforms_frontend_output ne se déclenche que pour les formulaires valides et non vides, elle s'exécute au début du processus de rendu de la sortie. Cependant, ce que vous placez avec cette action sera affiché à l'intérieur de la page HTML form contenant.

Une autre action à considérer est wpforms_frontend_output_before, car elle fonctionne de manière similaire, sauf qu'elle se situe en dehors du conteneur du formulaire HTML.

Exemples

Dans notre exemple, nous avons un formulaire qui sera supprimé le jour de Noël. Nous voulons afficher un message au-dessus du formulaire qui calculera la date d'aujourd'hui moins le jour de Noël et indiquera à l'utilisateur le nombre de jours restants pour soumettre le formulaire.

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

Articles de référence

Comment afficher le nombre d'inscriptions restantes ?