Como armazenar valores de campo na entrada WPForms

Gostaria de armazenar os valores dos campos Dropdown, Checkboxes e Multiple Choice dentro da entrada do WPForms? Neste tutorial, mostraremos como usar o PHP para pegar o valor do campo em vez do rótulo do campo e armazená-lo dentro da entrada.

Armazenar o valor dentro da entrada

Para este tutorial, vamos adicionar os snippets ao nosso site antes de criar o formulário. Fazemos isso simplesmente porque parte desse snippet é ativar a opção nos campos para Mostrar valores para os campos Dropdown, Caixas de seleção e Múltipla escolha.

Para obter ajuda sobre como e onde adicionar snippets, consulte este 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 );

Adicionámos dois snippets separados. O primeiro snippet segue este tutorial que nos permitirá adicionar valores de campo para os campos Dropdown, Caixas de seleção e Múltipla escolha.

O segundo snippet pega na submissão do formulário e, enquanto o processa, vai buscar o valor do campo em vez da etiqueta do campo para armazenar na entrada.

Criar o formulário

Agora é hora de criar o formulário e adicionar os campos que incluirão pelo menos um menu suspenso, caixas de seleção ou múltipla escolha.

Se precisar de ajuda para criar formulários, consulte a nossa documentação detalhada.

comece por criar o seu formulário e adicionar os seus campos

Para efeitos desta documentação, adicionámos um campo pendente para a preferência do contacto. Para adicionar os valores do campo, basta selecionar o campo e clicar no separador Avançadas.

clique no botão para ativar a opção Mostrar valores

Clique no botão para ativar a opção Mostrar valores e, em seguida, volte ao separador Geral para adicionar os valores do campo.

adicione os valores que pretende no seu campo

Depois de guardar o formulário, pode agora ver que os valores do campo são guardados dentro da entrada do formulário e não na etiqueta do campo.

utilizando este snippet, pode armazenar os valores dos campos na entrada

Gostaria de também enviar os valores de campo usando o complemento Zapier? Veja o nosso tutorial sobre Como enviar valores de campo para o Excel usando o Zapier.

Filtro de referência

wpforms_process_filter

FAQ

P: Como é que posso visar apenas um único formulário?

R: Para segmentar apenas um formulário, basta usar este snippet. Terá de atualizar o 584 para corresponder ao seu próprio ID de formulário. Para encontrar o ID do formulário, consulte este tutorial para obter ajuda.

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