<html lang="pt-pt" dir="ltr"><head></head><body>### [wpforms_process_filter](https://wpforms.com/developers/wpforms_process_filter/)

**Publicado:** 22 de abril de 2020
**Autor:** Equipa Editorial

**Excerto:** O wpforms_process_filter é acionado após toda a validação de campos e formatação de dados.


**Conteúdo:**

## Descrição

O `wpforms_process_filter` é acionado após toda a validação de campos e formatação de dados.

## Parâmetros

$fields*(array)* Valores/propriedades dos campos de entrada sanitizados.$entry*(array)* Variável global $_POST original.$form\_data*(array)* Configurações/dados do formulário processados, preparados para serem usados posteriormente.## Origem

`wpforms/includes/class-process.php`

## Mais Informações

O filtro é acionado no final, uma vez que a validação e formatação dos dados dos campos.

## Exemplos

Lembre-se de alterar o ID do seu formulário de **817** para o ID do formulário que está a visar.

Este exemplo irá verificar se existe um campo de Classificação neste formulário específico e, se o utilizador não preencher este campo, irá definir a classificação para 0.

```

/**
 * Aciona após toda a validação de campos e formatação de dados.
 *
 * @link  https://wpforms.com/developers/wpforms_process_filter/
 *
 * @param  array  $fields     Valores/propriedades dos campos de entrada sanitizados.
 * @param  array  $entry      Variável global $_POST original.
 * @param  array  $form_data  Dados e configurações do formulário.
 *
 * @return array 
 */

function wpf_dev_process_filter( $fields, $entry, $form_data ) {
	
	$form_id = 817; // Alterar ID do formulário
	
	// Sair antecipadamente se o ID do formulário não corresponder
	if ( $form_data[ 'id' ] != $form_id ) {
		return $fields;
	}
	
	foreach ( $fields as $field ) {
		
		// Se o tipo de campo for classificação e estiver vazio, atribua um valor de 0
		if ( $field[ 'type' ] == 'rating' &amp;&amp; empty( $field[ 'value' ] ) ) {
			
			$fields[$field[ 'id' ]][ 'value' ] = 0;
			
		}
		
	}
	
	return $fields;
     
}
add_filter( 'wpforms_process_filter', 'wpf_dev_process_filter', 10, 3 );
```

Outro exemplo pode ser quando o tutorial [Mostrar Valores](https://wpforms.com/developers/add-field-values-for-dropdown-checkboxes-and-multiple-choice-fields/ "Como Adicionar Valores de Campo para Campos de Dropdown, Checkbox e Escolha Múltipla") foi implementado para guardar o `valor` em vez do rótulo.

```

/**
 * Guarda as escolhas `valores` em vez de `rótulos` para os campos com a opção `Mostrar valores` ativada.
 *
 * @link   https://wpforms.com/developers/wpforms_process_filter/
 *
 * @param  array  $fields    Campos de entrada sanitizados. valores/propriedades.
 * @param  array  $entry     Variável global $_POST original.
 * @param  array  $form_data Dados e configurações do formulário.
 */

function wpf_dev_process_filter_choices_values( $fields, $entry, $form_data ) {

	if ( ! is_array( $fields ) ) {
		return $fields;
	}

	foreach ( $fields as $field_id =&gt; $field ) {
		if (
			isset( $field[ 'type' ] ) &amp;&amp;
			in_array( $field[ 'type' ], [ 'checkbox', 'radio', 'select' ], true ) &amp;&amp;
			! 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 );

```

## Artigos de Referência

- [Como Incrementar uma Contagem em Cada Submissão de Formulário](https://wpforms.com/developers/how-to-increment-a-count-on-each-form-submission/ "Como Incrementar uma Contagem em Cada Submissão de Formulário")
- [Como Armazenar o Endereço IP Não em Cache num Campo Oculto](https://wpforms.com/developers/how-to-store-the-non-cached-ip-address-into-a-hidden-field/ "Como Armazenar o Endereço IP Não em Cache num Campo Oculto")

**Categorias:** Filtros Hooks

**Etiquetas:** PHP

---</body></html>