Cómo almacenar valores de campo en la entrada WPForms

¿Le gustaría almacenar los valores de los campos Dropdown, Checkboxes y Multiple Choice dentro de la entrada WPForms? En este tutorial, le mostraremos como usar PHP para tomar el valor del campo en lugar de la etiqueta del campo y almacenarlo dentro de la entrada.

Almacenar el valor dentro de la entrada

Para este tutorial, vamos a añadir los snippets a nuestro sitio antes de crear el formulario. Hacemos esto simplemente porque parte de este snippet es habilitar la opción en los campos para Mostrar Valores para los campos Desplegables, Casillas de Verificación y Opciones Múltiples.

Si necesita ayuda sobre cómo y dónde añadir fragmentos, 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 );

Hemos añadido dos snippets separados. El primer snippet sigue este tutorial que nos permitirá añadir valores de campo para los campos Dropdown, Checkboxes y Multiple Choice.

El segundo fragmento toma el envío del formulario y mientras lo procesa tomará el valor del campo en lugar de la etiqueta del campo para almacenarlo en la entrada.

Creación del formulario

Ahora es el momento de crear su formulario y añadir sus campos que incluirán al menos un desplegable, casillas de verificación o selección múltiple.

Si necesita ayuda para crear formularios, consulte nuestra documentación detallada.

comience creando su formulario y añadiendo sus campos

Para el propósito de esta documentación, hemos añadido un campo desplegable para la preferencia de contacto. Para añadir los valores del campo, basta con seleccionarlo y hacer clic en la pestaña Avanzado.

pulse el botón para activar Mostrar valores

Haga clic en el botón para activar Mostrar valores y, a continuación, vuelva a la pestaña General para añadir los valores de los campos.

añada los valores que desee en su campo

Una vez que haya guardado el formulario, ahora puede ver que los valores de campo se almacenan dentro de la entrada del formulario en lugar de la etiqueta del campo.

utilizando este fragmento puede almacenar los valores de campo en la entrada

¿Le gustaría también enviar los valores de campo a través del addon Zapier? Echa un vistazo a nuestro tutorial sobre Cómo enviar valores de campo a Excel usando Zapier.

Filtro de referencia

wpforms_process_filter

PREGUNTAS FRECUENTES

P: ¿Cómo puedo dirigirme a un solo formulario?

R: Para dirigirlo a un solo formulario, utilice este fragmento. Tendrá que actualizar el 584 para que coincida con su propio ID de formulario. Para encontrar el ID de su formulario, consulte este 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 );