¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Descripción

El filtro wpforms_process_filter se activa después de la validación de todos los campos y el formato de los datos.

Parámetros

$fields
(array) Valores/propiedades de los campos de entrada saneados.
$entry
(array) Global $_POST original.
$form_data
(array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.

Origen

wpforms/includes/class-process.php

Más Información

El filtro se activa al final, una vez validado el campo y formateados los datos.

Ejemplos

Recuerda cambiar el ID de tu formulario de 817 al ID del formulario que estás intentando alcanzar.

Este ejemplo comprobará si hay un campo de Calificaciones en este formulario en particular y, si el usuario no completa este campo, la calificación se establecerá por defecto en 0.

/**
 * Fires after all field validation and formatting data.
 *
 * @link  https://wpforms.com/developers/wpforms_process_filter/
 *
 * @param  array  $fields     Sanitized entry field values/properties.
 * @param  array  $entry      Original $_POST global.
 * @param  array  $form_data  Form data and settings.
 *
 * @return array 
 */

function wpf_dev_process_filter( $fields, $entry, $form_data ) {
	
	$form_id = 817; // Change form ID
	
	// Bail early if form ID does not match
	if ( $form_data[ 'id' ] != $form_id ) {
		return $fields;
	}
	
	foreach ( $fields as $field ) {
		
		// If field type is rating and it is empty, assign a value of 0
		if ( $field[ 'type' ] == 'rating' && empty( $field[ 'value' ] ) ) {
			
			$fields[$field[ 'id' ]][ 'value' ] = 0;
			
		}
		
	}
	
	return $fields;
     
}
add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter', 10, 3 );

Otro ejemplo podría ser cuando el tutorial de Mostrar valores se ha implementado para guardar el valor en lugar de la etiqueta.

/**
 * Save choices `values` instead of `labels` for the fields with `Show values` option enabled.
 *
 * @link   https://wpforms.com/developers/wpforms_process_filter/
 *
 * @param  array  $fields    Sanitized entry field. values/properties.
 * @param  array  $entry     Original $_POST global.
 * @param  array  $form_data Form data and settings.
 */

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

Artículos de Referencia