Comment stocker les valeurs des champs dans l'entrée WPForms

Souhaitez-vous stocker les valeurs des champs Dropdown, Checkboxes, et Multiple Choice à l'intérieur de l'entrée WPForms ? Dans ce tutoriel, nous allons vous montrer comment utiliser PHP pour prendre la valeur du champ au lieu de l'étiquette du champ et la stocker à l'intérieur de l'entrée.

Stockage de la valeur à l'intérieur de l'entrée

Pour ce tutoriel, nous allons d'abord ajouter les snippets à notre site avant de créer le formulaire. Nous le faisons simplement parce qu'une partie de ce snippet consiste à activer l'option Show Values pour les champs Dropdown, Checkboxes et Multiple Choice.

Pour savoir comment et où ajouter des snippets, consultez ce tutoriel.

/**
 * Show values in Dropdown, checkboxes, and Multiple Choice.
 */
  
add_action( 'wpforms_fields_show_options_setting', '__return_true' );


/**
 * Save choices 'values' instead of 'labels' for the fields with 'Show values' option enabled.
 *
 * @link https://wpforms.com/developers/how-to-store-field-values-in-the-wpforms-entry/
 */

function wpf_dev_process_filter_choices_values( $fields, $entry, $form_data ) {

	if ( ! is_array( $fields ) ) {
		return $fields;
	}

	foreach ( $fields as $field_id => $field ) {
		if (
			isset( $field[ 'type' ] ) &&
			in_array( $field[ 'type' ], [ 'checkbox', 'radio', 'select' ], true ) &&
			! empty( $form_data[ 'fields' ][ $field_id ][ 'show_values' ] )
		) {
			$value_raw = ! empty( $field[ 'value_raw' ] ) ? $field[ 'value_raw' ] : '';
			$field[ 'value_raw' ] = $field[ 'value' ];
			$field[ 'value' ] = $value_raw;
			$fields[ $field_id ] = $field;
		}
	}

	return $fields;
};
add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter_choices_values', 10, 3 );

Nous avons ajouté deux snippets distincts. Le premier extrait suit ce tutoriel qui nous permettra d'ajouter des valeurs de champ pour les champs Dropdown, Checkboxes et Multiple Choice.

Le deuxième extrait prend la soumission du formulaire et, lors du traitement, saisit la valeur du champ au lieu de l'étiquette du champ pour la stocker dans l'entrée.

Création du formulaire

Il est maintenant temps de créer votre formulaire et d'ajouter vos champs qui comprendront au moins une liste déroulante, des cases à cocher ou des choix multiples.

Si vous avez besoin d'aide pour créer des formulaires, veuillez consulter notre documentation détaillée.

commencez par créer votre formulaire et ajoutez vos champs

Pour les besoins de cette documentation, nous avons ajouté un champ déroulant pour les préférences du contact. Pour ajouter les valeurs du champ, il suffit de sélectionner le champ et de cliquer sur l'onglet Avancé.

cliquez sur le bouton pour activer l'option Afficher les valeurs

Cliquez sur le bouton pour activer l'option Afficher les valeurs, puis revenez à l'onglet Général pour ajouter les valeurs de vos champs.

ajoutez les valeurs que vous souhaitez pour votre champ

Une fois le formulaire enregistré, vous pouvez voir que les valeurs des champs sont stockées dans l'entrée du formulaire plutôt que dans l'étiquette du champ.

en utilisant cet extrait, vous pouvez stocker les valeurs des champs dans l'entrée

Vous souhaitez également envoyer les valeurs des champs à l'aide de l'addon Zapier? Jetez un coup d'œil à notre tutoriel sur Comment envoyer des valeurs de champ vers Excel à l'aide de Zapier.

Filtre de référence

wpforms_process_filter

FAQ

Q : Comment puis-je cibler un seul formulaire ?

R : Pour cibler un seul formulaire, il suffit d'utiliser ce snippet. Vous devrez mettre à jour le 584 pour qu'il corresponde à l'ID de votre propre formulaire. Pour trouver l'identifiant de votre formulaire, veuillez consulter ce tutoriel pour obtenir de l'aide.

/**
 * Show values in Dropdown, checkboxes, and Multiple Choice.
 *
 * @link https://wpforms.com/developers/add-field-values-for-dropdown-checkboxes-and-multiple-choice-fields/
 */
   
add_action( 'wpforms_fields_show_options_setting', '__return_true' );

/**
 * Save choices 'values' instead of 'labels' for the fields with 'Show values' option enabled.
 *
 * @link https://wpforms.com/developers/how-to-store-field-values-in-the-wpforms-entry/
 */
function wpf_dev_process_filter_choices_values( $fields, $entry, $form_data ) {
	
	// Optional, you can limit to specific forms. Below, we restrict output to
    // form #584.
    if ( absint( $form_data[ 'id' ] ) !== 584 ) {
        return $fields;
    }
 
    if ( ! is_array( $fields ) ) {
        return $fields;
    }
 
    foreach ( $fields as $field_id => $field ) {
        if (
            isset( $field[ 'type' ] ) &&
            in_array( $field[ 'type' ], [ 'checkbox', 'radio', 'select' ], true ) &&
            ! empty( $form_data[ 'fields' ][ $field_id ][ 'show_values' ] )
        ) {
            $value_raw = ! empty( $field[ 'value_raw' ] ) ? $field[ 'value_raw' ] : '';
            $field[ 'value_raw' ] = $field[ 'value' ];
            $field[ 'value' ] = $value_raw;
            $fields[ $field_id ] = $field;
        }
    }
 
    return $fields;
};
add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter_choices_values', 10, 3 );