Come memorizzare i valori dei campi nelle voci di WPForms

Volete memorizzare i valori dei campi dropdown, checkbox e a scelta multipla all'interno della voce di WPForms? In questo tutorial, vi mostreremo come usare PHP per prendere il valore del campo invece dell'etichetta del campo e memorizzarlo all'interno della voce.

Memorizzazione del valore all'interno della voce

Per questa esercitazione, aggiungeremo gli snippet al nostro sito prima di creare il modulo. Questo semplicemente perché parte di questo snippet serve ad abilitare l'opzione sui campi per mostrare i valori per i campi a discesa, a casella di controllo e a scelta multipla.

Per informazioni su come e dove aggiungere gli snippet, consultare questo tutorial.

/**
 * 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 );

Abbiamo aggiunto due snippet separati. Il primo snippet segue questo tutorial che ci consentirà di aggiungere valori di campo per i campi a discesa, a casella di controllo e a scelta multipla.

Il secondo snippet prende l'invio del modulo e durante l'elaborazione prende il valore del campo invece dell'etichetta del campo da memorizzare nella voce.

Creazione del modulo

Ora è il momento di creare il modulo e aggiungere i campi, che includeranno almeno una casella a discesa, una casella di controllo o una scelta multipla.

Se avete bisogno di aiuto per creare i moduli, consultate la nostra documentazione dettagliata.

iniziare creando il modulo e aggiungendo i campi

Ai fini di questa documentazione, abbiamo aggiunto un campo a discesa per le preferenze dei contatti. Per aggiungere i valori del campo, è sufficiente selezionarlo e fare clic sulla scheda Avanzate.

fare clic sul pulsante per attivare la funzione Mostra valori

Fare clic sul pulsante per attivare la funzione Mostra valori e quindi tornare alla scheda Generale per aggiungere i valori dei campi.

aggiungere i valori desiderati nel campo

Una volta salvato il modulo, si può notare che i valori dei campi sono memorizzati all'interno della voce del modulo anziché nell'etichetta del campo.

Utilizzando questo snippet è possibile memorizzare i valori dei campi sulla voce

Volete anche inviare i valori dei campi utilizzando l'addon Zapier? Date un'occhiata al nostro tutorial su Come inviare i valori dei campi a Excel utilizzando Zapier.

Filtro di riferimento

wpforms_process_filter

FAQ

D: Come posso mirare a un singolo modulo?

R: Per indirizzare solo un modulo, basta utilizzare questo snippet. È necessario aggiornare il 584 in modo che corrisponda all'ID del proprio modulo. Per trovare l'ID del proprio modulo, consultare questo tutorial.

/**
 * 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 );