Vous souhaitez ajouter automatiquement une année à la date d'entrée de vos formulaires ? Dans ce tutoriel, nous allons vous guider dans la mise en place d'un formulaire pour les volontaires, avec une date de début. De plus, nous vous montrerons comment générer dynamiquement une date d'expiration qui précède d'un an la date d'inscription à l'aide de PHP. Il s'agit de créer des champs cachés pour stocker à la fois la date de début du bénévolat et la date d'expiration calculée. Allons-y, plongeons !
Création du formulaire
Nous allons commencer par créer un nouveau formulaire. Si vous avez besoin d'aide pour créer un nouveau formulaire, veuillez consulter cette documentation.
Pour les besoins de ce tutoriel, nous créons un formulaire d'inscription des volontaires. Ce formulaire saisira les diverses informations nécessaires aux bénévoles ainsi que deux champs cachés qui stockeront la date de début, qui est la date d'entrée de la soumission, ainsi qu'une date d'expiration pour le bénévole puisque nous voudrons que le bénévole s'inscrive à nouveau chaque année.
Définition des champs cachés
Dans notre formulaire, nous avons deux champs cachés. Le premier sert à stocker les informations relatives à la date d'entrée exacte et le second prend la date d'entrée, y ajoute une année et stocke ces données dans le second champ caché, qui sera une date d'expiration.
Ajouter une année à la date d'entrée dans WPForms
Il est maintenant temps d'ajouter l'extrait à votre site. Si vous avez besoin d'aide pour savoir comment et où ajouter des snippets à votre site, veuillez consulter notre tutoriel à ce sujet.
/** * Add one year to the entry date and store this date inside a hidden field * * @link https://wpforms.com/developers/how-to-add-a-year-to-the-wpforms-entry-date/ */ function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #2189. if ( absint( $form_data[ 'id' ] ) !== 2189 ) { return; } // Get the full entry object $entry = wpforms()->entry->get( $entry_id ); // Fields are in JSON, so we decode to an array $entry_fields = json_decode( $entry->fields, true ); // Checking to make sure Name field (ID 2) is not empty if (isset( $fields[2][ 'value' ] )) { // Set the date to today's date so the Entry Date is recorded // on the first hidden field in the form // Remember to update the 30 to match the field ID of your form for your first hidden field $entry_fields[30][ 'value' ] = date('m/d/Y'); // Set the date format and store the current date in a variable $setDate = date('m/d/Y'); $date = strtotime($setDate); // Get the date set above and add 1 year to this date $new_date = strtotime('+ 1 year', $date); // Store this new date inside the hidden field ID // Remember to update the 33 to match the field ID of your form for your second hidden field $entry_fields[33][ 'value' ] = date('m/d/Y', $new_date); } // Convert back to json $entry_fields = json_encode( $entry_fields ); // Save changes wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) ); } add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );
Dans l'extrait ci-dessus, il est important de noter qu'il y a une référence d'ID de formulaire(2189) ainsi que quelques références d'ID de champ(2, 30 et 33). Vous devrez mettre à jour chacun de ces numéros d'identification pour qu'ils correspondent à vos propres numéros d'identification de formulaire et de champ. Si vous avez besoin d'aide pour trouver vos numéros d'identification, veuillez consulter ce tutoriel.
Dans l'extrait ci-dessus, notre fonction commence par s'assurer que l'identifiant du formulaire correspond à 2189
Si ce n'est pas le cas, cet extrait ne sera pas exécuté.
Dans la partie suivante de l'extrait, nous nous assurons que l'élément Nom (il s'agit de l'ID du champ 2
) n'est pas vide. Puisque nous avons configuré notre formulaire de manière à ce que la fonction Nom est un champ obligatoire, nous savons qu'il ne sera jamais vide, mais nous l'avons tout de même placé en tant que contrôle de validation.
Une fois que nous aurons poursuivi notre extrait, nous allons définir le premier champ caché (champ ID 30
) à la date du jour, qui est la même que la date d'entrée de la soumission.
Enfin, nous allons prendre la date actuelle, y ajouter une année et placer cette nouvelle date dans le deuxième champ caché (champ ID 33
).
Désormais, lorsque vous consultez l'entrée, vous pouvez clairement voir la date originale de la soumission du formulaire ainsi que la nouvelle date qui sera la date d'expiration de la soumission.
Vous pouvez même suivre le guide de cette documentation pour modifier l'affichage par défaut de l'écran des entrées afin de voir facilement ces dates lorsque vous consultez toutes les entrées.
Et le tour est joué ! Vous avez ajouté et stocké avec succès une nouvelle date dans vos entrées, qui se situe exactement un an après la date d'entrée. Souhaitez-vous également stocker des valeurs de champs dans vos entrées ? Consultez notre tutoriel sur Comment stocker des valeurs de champ dans l'entrée WPForms.