Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Planification d'un formulaire en fonction de l'heure de la journée

Souhaitez-vous planifier un formulaire en fonction d'heures spécifiques de la journée ? C'est simple : vous pouvez facilement configurer votre formulaire pour qu'il apparaisse ou non pendant les heures désignées.

Dans ce tutoriel, nous vous guiderons tout au long du processus de mise en œuvre transparente de cette fonctionnalité à l'aide de l'extrait de code fourni.

Plongeons et faisons de la planification de votre formulaire un jeu d'enfant !


Création du formulaire

Pour commencer, nous allons créer un nouveau formulaire et ajouter nos champs. Si vous avez besoin d'aide pour créer votre formulaire, consultez ce guide utile.

pour planifier un formulaire, vous devez d'abord en créer un et ajouter vos champs

Ajout de l'extrait

Une fois votre formulaire créé, vous devrez ajouter cet extrait à votre site. Si vous avez besoin d'aide sur comment et où ajouter des extraits à votre site, veuillez consulter ce tutoriel.

/* Hide a specific form based on the time of day 
 *
 * @link https://wpforms.com/developers/how-to-schedule-a-form-base-on-the-time-of-day/
*/
 
function wpf_dev_form_open_check( $form_data, $form ) {
     
    // Only process this snippet on form ID 3602
    if ( absint( $form_data[ 'id' ] ) !== 3602 ) {
        return;
    } 
    
	// H is for 24 hour format and h is for the 12 hour format
	// Get the current 24 hour format in hours only, this is pulled from your server
	$hours = intval(date('H'));

    // The form will be closed to any submissions from 8PM (20 in 24-hour time format) to 8AM
    if ( $hours >= 20 && $hours < 8 ) {
		// Display a message stating the form is currently closed
    	_e( 'We\'re sorry, this contest is only open for entry everyday from 8:00 AM EST to 8:00 PM EST. Please check back tomorrow for your raffle entry.', 'textdomain' );
		
		// Run a separate script to hide the form if it is currently closed to submissions
		echo '<script type="text/javascript">';
		echo 'jQuery("#wpforms-form-3602").hide();';
		echo '</script>';
	}

}
add_action( 'wpforms_frontend_output_after', 'wpf_dev_form_open_check', 10, 2 );

Il y a quelques points à noter dans ce script. Ce script ne s'exécutera que sur l'ID de formulaire 3602, vous devrez donc mettre à jour ce numéro d'ID pour qu'il corresponde à votre propre formulaire.

Pour obtenir de l'aide afin de trouver votre numéro d'ID de formulaire, veuillez consulter ce tutoriel.

Ensuite, la variable $hours ne considérera que l'heure actuelle de votre serveur, et non celle du navigateur ou de l'ordinateur de l'utilisateur. Elle récupère également l'heure au format 24 heures en utilisant le H majuscule. Si vous souhaitez utiliser le format 12 heures, remplacez le H par un h. Selon le format que vous choisissez, vous devrez peut-être mettre à jour la ligne if ( $hours >= 20 && $hours < 8 ).

N'oubliez pas de mettre à jour le message qui sera affiché à vos utilisateurs dans l'instruction _e pour qu'il corresponde à ce que vous souhaitez afficher lorsque le formulaire est fermé à vos visiteurs.

Enfin, la dernière partie du script masquera le formulaire ID 23 en utilisant echo 'jQuery("#wpforms-form-3602").hide();';. N'oubliez pas de remplacer le 3602 par l'ID de votre propre formulaire.

Si un visiteur consulte votre page lorsque le formulaire est fermé, il verra votre message.

avec cet extrait, vous avez facilement planifié votre formulaire pour qu'il s'affiche uniquement à certains moments de la journée

Et voilà tout ce dont vous avez besoin pour planifier un formulaire en fonction de l'heure de la journée !

Ensuite, souhaitez-vous afficher ou masquer un bouton de soumission ? Consultez notre tutoriel sur comment afficher conditionnellement le bouton de soumission WPForms.

Référence d'action : wpforms_frontend_output_after