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

Comment comparer deux dates dans le même formulaire

Introduction

Souhaitez-vous comparer deux dates dans le même formulaire ? En utilisant un petit extrait de code PHP, vous pouvez facilement prendre deux dates et les comparer dans le même formulaire. Dans ce tutoriel, nous allons créer un extrait de code PHP qui prendra deux sélecteurs de date dans le même formulaire.

Création du formulaire

Tout d'abord, nous devrons configurer notre formulaire. Nous allons créer un formulaire et ajouter nos champs, y compris les deux champs de formulaire Date qui sont définis sur le format Date.

créez votre formulaire et ajoutez vos champs, y compris vos 2 champs de date

Une fois que vous avez ajouté ces champs, assurez-vous de les définir sur Sélecteur de date dans l'onglet Avancé.

définissez le champ de date pour utiliser le sélecteur de date pour les deux champs

Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter cette documentation.

Ajout de l'extrait de code pour comparer deux dates

Avant d'ajouter l'extrait de code, vous devrez localiser l'ID du formulaire et les ID des deux champs pour les champs Date que vous venez d'ajouter à votre formulaire.

Si vous avez besoin d'aide pour trouver ces numéros d'identification, veuillez consulter ce tutoriel.

Lorsque vous avez ces ID, vous pouvez ajouter l'extrait de code suivant à votre site.

/**
 * Compare 2 dates inside the same form.
 *
 * @link  https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/
 */

function wpf_dev_compare_dates( $fields, $entry, $form_data ) {
      
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #731.
    if ( absint( $form_data[ 'id' ] ) !== 731 ) {
        return $fields;
    }
      
	// 3 is the ID of date 1 field
	$date_1 = $fields[3][ 'unix' ]; 
	
	// 4 is the ID of date 2 field
	$date_2 = $fields[4][ 'unix' ]; 
	
	// If date 2 is earlier of the same as time 1
	if ( $date_2 <= $date_1 ) {

		
                // [ 'header' ] will display the error message above the form
                // [ 'footer' ] will display the error message under the form
		wpforms()->process->errors[ $form_data[ 'id' ] ][ 'header' ] = esc_html__( 'The pickup date should not be earlier than the order date.', 'plugin-domain' );
	}
	
}
add_action( 'wpforms_process', 'wpf_dev_compare_dates', 10, 3 );

Si vous ne savez pas où ou comment ajouter des extraits de code personnalisés à votre site, veuillez consulter ce tutoriel.

La façon dont l'extrait de code fonctionne est qu'il ne s'exécutera que sur l'ID de formulaire 731, puis il recherchera l'ID de champ Date 3 et l'ID de champ Date 4 et les attribuera aux variables $date_1 et $date_2 afin qu'il puisse vérifier si $date_2 est inférieur ou égal à $date_1. Si c'est le cas, il affichera une erreur au-dessus du deuxième champ Date indiquant que cette date ne peut pas être antérieure à l'autre.

le message d'erreur apparaîtra ci-dessus lorsque l'extrait de code pour comparer deux dates échouera

Et c'est tout ce dont vous avez besoin pour comparer deux dates dans le même formulaire ! Souhaitez-vous également fournir une fonctionnalité de restriction d'âge à votre formulaire ? Consultez notre tutoriel sur Comment fournir une restriction d'âge sur le champ de formulaire Datepicker.

Référence d'action : wpforms_process