Résumé IA
Introduction
Souhaitez-vous comparer deux champs Heure dans votre formulaire et enregistrer la différence calculée dans votre saisie ? Ne cherchez plus ! Ce tutoriel est fait pour vous. Nous vous guiderons dans la configuration de votre formulaire et vous fournirons l'extrait de code PHP nécessaire 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écifiquement pour la réservation de salles de fête. Notre extrait de code utilisera un Champ Masqué pour calculer et ajouter automatiquement le total des heures réservées à la saisie. Cette fonctionnalité est particulièrement utile pour l'équipe comptable, offrant un aperçu simple pour la facturation.
Si vous ne savez pas comment créer des formulaires, vous pouvez consulter cette documentation pour obtenir de l'aide.
Dans la configuration de notre formulaire, nous inclurons des champs standard tels que Nom, Email, Adresse et Téléphone. De plus, nous intégrerons un champ Liste déroulante pour la sélection de la salle, 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 Masqué final pour stocker le total des heures calculées à l'aide de notre extrait de code.

Ajout du snippet
Ensuite, nous allons ajouter l'extrait de code à notre site. Si vous ne savez pas où ni comment ajouter des extraits de code, 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 );
Cet extrait de code ne s'exécutera que pour l'ID de formulaire 731. Il examinera les deux champs Heure du formulaire, qui sont les ID 37 et 38. En utilisant la fonction round, il calculera la différence entre les deux heures et stockera la différence dans le Champ Masqué.
Vous devrez mettre à jour l'extrait de code pour qu'il corresponde aux ID de formulaire et de champ de votre formulaire. Si vous avez besoin d'aide pour trouver ces ID, veuillez consulter ce tutoriel.

Souhaitez-vous également comparer deux dates ? Consultez notre tutoriel sur Comment comparer deux dates dans le même formulaire.
Articles associés
Référence d'action : wpforms_process