Introduction
Souhaitez-vous comparer deux dates dans le même formulaire ? En utilisant un petit snippet PHP, vous pouvez facilement prendre deux dates et les comparer dans le même formulaire. Dans ce tutoriel, nous allons utiliser un snippet PHP qui va prendre deux sélecteurs de date dans le même formulaire.
Création du formulaire
Tout d'abord, nous devons configurer notre formulaire. Nous allons créer un formulaire et y ajouter nos champs, y compris les deux champs du formulaire Date qui sont définis au format Date.
Une fois que vous avez ajouté ces champs, veillez à les paramétrer en fonction du sélecteur de date dans l'onglet Avancé.
Si vous avez besoin d'aide pour créer votre formulaire, veuillez consulter cette documentation.
Ajout du snippet pour comparer deux dates
Avant d'ajouter le snippet, vous devez localiser l'ID du formulaire et les deux ID des 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.
Une fois que vous avez obtenu ces identifiants, vous pouvez ajouter l'extrait 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 personnalisés à votre site, consultez ce tutoriel.
Le snippet ne s'exécute que sur le formulaire ID 731, puis il recherche les champs Date ID 3 et Date ID 4 et les affecte aux variables $date_1 et $date_2 afin de vérifier si $date_2 est inférieur ou égal à $date_1. Si c'est le cas, il affiche une erreur au-dessus du deuxième champ Date, indiquant que cette date ne peut pas être antérieure à l'autre.
Et c'est tout ce dont vous avez besoin pour comparer deux dates dans le même formulaire ! Vous souhaitez également ajouter une fonctionnalité de restriction d'âge à votre formulaire ? Consultez notre tutoriel sur Comment ajouter une restriction d'âge au champ de formulaire Datepicker.
En rapport
Référence de l'action : wpforms_process