Como armazenar valores de campo na entrada do WPForms

Você 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.

Armazenamento do 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 );

Adicionamos dois snippets separados. O primeiro snippet segue este tutorial que nos permitirá adicionar valores de campo para os campos Dropdown, Checkboxes e Multiple Choice.

O segundo snippet pega o envio do formulário e, durante o processamento, pega o valor do campo em vez do rótulo do campo para armazenar na entrada.

Criando o formulário

Agora é hora de criar seu formulário e adicionar seus 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 nossa documentação detalhada.

Comece criando seu formulário e adicionando seus campos

Para os fins desta documentação, adicionamos um campo Dropdown para a preferência de contato. Para adicionar os valores do campo, basta selecionar o campo e clicar na guia Advanced (Avançado ).

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

Clique no botão para ativar a opção Show Values (Mostrar valores ) e, em seguida, clique novamente na guia General (Geral ) para adicionar os valores do campo.

adicione os valores que você deseja em seu campo

Depois de salvar o formulário, você poderá ver que os valores do campo estão armazenados dentro da entrada do formulário, e não no rótulo do campo.

Usando esse snippet, você pode armazenar os valores de campo na entrada

Você também gostaria de enviar os valores de campo usando o complemento Zapier? Dê uma olhada em nosso tutorial sobre Como enviar valores de campo para o Excel usando o Zapier.

Filtro de referência

wpforms_process_filter

PERGUNTAS FREQUENTES

P: Como posso direcionar apenas um único formulário?

R: Para direcionar apenas um formulário, basta usar este snippet. Você precisará atualizar o 584 para corresponder ao seu próprio ID de formulário. Para encontrar seu ID de 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 );