Comment ajouter une année à la date d'entrée

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.

commencez par créer votre formulaire et ajoutez vos champs

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.

ajoutez 2 champs cachés à votre formulaire qui contiendront la date de soumission ainsi que la date que nous créerons dans notre extrait pour la 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 à 2189Si 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.

avec le snippet en place, vous verrez la date d'entrée dans le premier champ caché et la nouvelle date que nous avons créée en ajoutant 1 an à la date d'entrée pour la date d'expiration de notre volontaire.

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.

en modifiant l'affichage par défaut de vos entrées, vous pouvez facilement voir les champs cachés avec les dates tout en visualisant 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.

Référence Action

wpforms_process_complete