Descripción

En wpforms_process_filter se dispara después de toda la validación de campos y datos de formato.

Parámetros

$campos
(array) Valores/propiedades del campo de entrada saneados.
$entrada
(array) Original $_POST global.
$form_data
(array) Ajustes/datos del formulario procesados, preparados para su uso posterior.

Fuente

wpforms/includes/class-process.php

Más información

El filtro se dispara al final de la validación del campo y el formateo de los datos.

Ejemplos

Acuérdate de cambiar el ID del formulario 817 por el ID del formulario al que te diriges.

Este ejemplo buscará si hay un campo de Valoración en este formulario en particular y si el usuario no completa este campo, por defecto la valoración será 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 Mostrar valores se ha implementado para guardar el value 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