Come memorizzare i valori delle caselle di controllo come array

Introduzione

Siete interessati a memorizzare i valori delle caselle di controllo come array all'interno della voce e delle notifiche e-mail? Normalmente, i campi Checkbox visualizzano gli elementi selezionati singolarmente su righe separate all'interno della voce e delle notifiche.

Per impostazione predefinita, le selezioni delle caselle di controllo vengono memorizzate su una riga separata.

Tuttavia, con l'approccio che stiamo per illustrare, è possibile garantire che questi valori siano memorizzati come un array coerente. Questa esercitazione vi guiderà attraverso i passi necessari per ottenere questa presentazione semplificata delle selezioni delle caselle di controllo. Procediamo e ottimizziamo la rappresentazione dei dati!

Creazione del modulo

Per avviare il processo, iniziamo creando un nuovo modulo e incorporando i campi essenziali. Assicurarsi che tra questi campi sia incluso almeno un campo Checkbox. Questa base servirà per implementare la funzionalità desiderata. Andiamo avanti e impostiamo il modulo di conseguenza.

iniziare creando il modulo e aggiungendo i campi, compreso almeno un campo checkbox

Se avete bisogno di aiuto per creare il vostro modulo, consultate questa utile guida.

Aggiunta dello snippet

Ora è il momento di aggiungere lo snippet che completerà questo processo. Se avete bisogno di assistenza su come e dove aggiungere gli snippet al vostro sito, consultate questo tutorial.

/**
 * Display checkbox values in the email notification only as a one-liner.
 *
 * @link  https://wpforms.com/developers/how-to-store-checkbox-values-as-an-array/
 */
function wpf_inline_checkbox_values( $value, $field, $form_data, $context ) {

	// Check if there are any checkboxes in this submission
	if ( $field['type'] !== 'checkbox' ) {
		return $value;
	}

	// Return these values in a single line separated by a comma
	return str_replace( "\n", ', ', $value );
}
add_filter( 'wpforms_html_field_value', 'wpf_inline_checkbox_values', 10, 4 );

Questo snippet accetta qualsiasi valore di casella di controllo da qualsiasi modulo WPForms e visualizza le selezioni come una singola riga separata da una virgola per la voce e per la notifica via e-mail.

Ora, quando l'utente seleziona gli elementi della casella di controllo, questi vengono memorizzati e inviati via e-mail in una singola riga per ogni casella di controllo, separata da una virgola per ogni selezione.

Ora ogni casella di controllo sarà memorizzata e inviata via email nella notifica con una singola riga per ogni casella di controllo e le relative selezioni separate da una virgola. essenzialmente memorizzando i valori delle caselle di controllo come un array

E questo è tutto ciò che serve per memorizzare i valori delle caselle di controllo come array! Volete anche aprire e chiudere un modulo in base all'ora del giorno? Date un'occhiata al nostro tutorial su Come programmare un modulo in base all'ora del giorno.

Riferimento filtro: wpforms_html_field_value

FAQ

D: Come posso fare questo solo per le notifiche via e-mail?

R: Se si desidera questa funzionalità solo per il modello di e-mail, assicurarsi innanzitutto che le impostazioni e-mail di WPForms siano impostate su e-mail HTML. Per sapere come fare, consultate questa documentazione.

Dopo aver confermato che queste impostazioni sono impostate su Template HTML, utilizzare questo snippet per abilitare questa funzionalità solo per le notifiche via e-mail.

/**
 * Display checkbox values in the email notification only as a one-liner.
 *
 * @link  https://wpforms.com/developers/how-to-store-checkbox-values-as-an-array/
 */
function wpf_inline_checkbox_values( $value, $field, $form_data, $context ) {

	// Check if there are any checkboxes in this submission and that the Email Template is HTML
	if ( $field['type'] !== 'checkbox' || $context !== 'email-html' ) {
		return $value;
	}

	// Return these values in a single line separated by a comma
	return str_replace( "\n", ', ', $value );
}
add_filter( 'wpforms_html_field_value', 'wpf_inline_checkbox_values', 10, 4 );