Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous fournissons ce code à titre de courtoisie, mais nous n'offrons pas de support pour les personnalisations de code ou le développement tiers.

Pour obtenir de l'aide supplémentaire, veuillez consulter le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Ignorer

Comment ajouter un an à la date de saisie

Souhaitez-vous ajouter automatiquement un an à la date de saisie des soumissions de votre formulaire ? Dans ce tutoriel, nous vous guiderons dans la configuration d'un formulaire pour les bénévoles, avec une date de début. De plus, nous vous montrerons comment générer dynamiquement une date d'expiration qui est un an après leur date d'inscription en utilisant PHP. Cela implique la création de champs masqués pour stocker la date de début du bénévole et la date d'expiration calculée. Plongeons dans le vif du sujet !

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.

Dans le cadre de ce tutoriel, nous créons un formulaire d'inscription pour les bénévoles. Ce formulaire capturera les différentes informations nécessaires pour les bénévoles ainsi que deux champs masqués qui stockeront la date de début, qui est la date de saisie de la soumission, ainsi qu'une date d'expiration pour le bénévole, car nous voudrons que le bénévole s'inscrive à nouveau chaque année.

commencez par créer votre formulaire et ajouter vos champs

Définition des champs masqués

Dans notre formulaire, nous avons deux champs masqués. L'un sert à stocker les informations de la date de saisie exacte et le second est là où nous prendrons la date de saisie, ajouterons un an, puis stockerons ces données dans le second champ masqué 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 allons créer dans notre extrait pour la date d’expiration

Ajouter un an à la date de saisie WPForms

Il est maintenant temps d'ajouter le extrait à votre site. Si vous avez besoin d'aide sur comment et où ajouter des extraits à votre site, veuillez consulter notre tutoriel sur 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 à l'ID du formulaire (2189) ainsi que quelques références à des ID de champ (2, 30 et 33). Vous devrez mettre à jour chacun de ces numéros d'ID pour qu'ils correspondent à vos propres ID de formulaire et de champ. Si vous avez besoin d'aide pour trouver vos numéros d'ID, veuillez consulter ce tutoriel.

Dans l'extrait ci-dessus, notre fonction commence par s'assurer que l'ID du formulaire correspond à 2189. S'il ne correspond pas, cet extrait ne s'exécutera pas.

Dans la partie suivante de l'extrait, nous vérifions juste pour nous assurer que le champ Nom (c'est l'ID de champ 2) n'est pas vide. Puisque nous avons configuré notre formulaire pour que le champ Nom soit un champ obligatoire, nous savons qu'il ne sera jamais vide, mais nous l'avons néanmoins inclus comme vérification de validation.

Une fois que nous continuons dans notre extrait, nous allons définir le premier champ masqué (ID de champ 30) à la date actuelle, ce qui est identique à la date de saisie de la soumission.

Et enfin, nous allons prendre la date actuelle, ajouter un an, puis placer cette nouvelle date dans le second champ masqué (ID de champ 33).

Et maintenant, lorsque vous visualisez la saisie, vous pouvez clairement voir la date d'origine de la soumission du formulaire ainsi que la nouvelle date qui servira de date d'expiration de la soumission.

avec l’extrait en place, vous verrez la date de l’entrée dans le premier champ caché et la nouvelle date que nous avons créée en ajoutant 1 an à la date de l’entrée pour la date d’expiration de notre bénévole

Vous pouvez même suivre le guide de cette documentation pour modifier la vue par défaut de l’écran des entrées afin de pouvoir facilement voir ces dates lorsque vous consultez toutes les entrées.

en modifiant la vue par défaut de vos entrées, vous pouvez facilement voir les champs cachés avec les dates lorsque vous consultez toutes les entrées.

Et voilà ! Vous avez ajouté et stocké avec succès une nouvelle date dans vos entrées, qui est exactement un an après la date de l’entrée. Souhaitez-vous également stocker des valeurs de champ dans vos entrées ? Consultez notre tutoriel sur Comment stocker des valeurs de champ dans une entrée WPForms.

Action de référence

wpforms_process_complete