Introduction
Vous souhaitez comparer deux champs de temps dans votre formulaire et capturer la différence calculée dans votre entrée ? Ne cherchez pas plus loin ! Ce tutoriel est fait sur mesure pour vous. Nous vous guiderons à travers le processus de configuration de votre formulaire et nous vous fournirons les snippets PHP nécessaires pour implémenter cette fonctionnalité de manière transparente sur votre site.
Création du formulaire
Pour commencer, créons un nouveau formulaire et configurons nos champs. Dans ce guide, nous allons concevoir un formulaire spécifique pour la réservation de salles de fêtes. Notre extrait utilisera un champ caché pour calculer automatiquement le nombre total d'heures réservées et l'ajouter à l'entrée. Cette fonction est particulièrement utile pour l'équipe comptable, car elle permet d'avoir une vue d'ensemble directe pour la facturation.
Si vous n'êtes pas familiarisé avec la création de formulaires, vous pouvez vous référer à cette documentation pour obtenir de l'aide.
Dans notre formulaire, nous inclurons des champs standard tels que le nom, l'adresse électronique, l'adresse et le téléphone. En outre, nous incorporerons un champ déroulant pour la sélection de la chambre, un champ Date pour la date de réservation, deux champs Heure pour spécifier les heures de début et de fin de la réservation, et enfin, un champ caché final pour stocker le total des heures calculées à l'aide de notre extrait.
Ajout du snippet
Ensuite, nous allons ajouter l'extrait à notre site. Si vous ne savez pas où ou comment ajouter des snippets, veuillez consulter ce tutoriel.
/** * Compare two time fields in a form * * @link https://wpforms.com/developers/how-to-compare-two-time-fields-in-a-form/ */ function wpf_wpforms_update_total_field( $fields, $entry, $form_data ) { // Only run on my form with ID = 731 if( 731 != $form_data[ 'id' ] ){ return $fields; } // Field ID 37 is the first time field of the form $start_time = strtotime( $fields[37][ 'value' ] ); // Field ID 38 is the second time field of the form $finishing_time = strtotime( $fields[38][ 'value'] ); // Field ID 41 is the hidden field that will calculate the difference // between the two time fields and store the hours inside a hidden field of the entry $fields[41][ 'value' ] = round(abs($finishing_time - $start_time)/ 3600,2) . __( ' Hours', 'text-domain'); return $fields; } add_filter( 'wpforms_process_filter', 'wpf_wpforms_update_total_field', 10, 3 );
Ce snippet ne s'exécutera que sur le formulaire ID 731. Il examinera les deux L'heure des champs du formulaire, qui sont les ID 37 et 38. L'utilisation de l'outil round
elle calculera la différence entre les deux temps et la stockera dans la fonction Champ caché
Vous devrez mettre à jour le snippet pour qu'il corresponde aux ID de formulaire et de champ que vous avez dans votre formulaire. Si vous avez besoin d'aide pour trouver ces identifiants, consultez ce tutoriel.
Vous souhaitez également comparer deux dates ? Consultez notre tutoriel sur la comparaison de deux dates dans le même formulaire.
En rapport
Référence de l'action : wpforms_process