Resumo de IA
Descrição
A ação wpforms_process_validate_name executa a validação no campo Nome quando o formulário é submetido, antes de qualquer valor de campo ser sanitizado.
| parâmetro | tipo | descrição |
|---|---|---|
$field_id | string|int | ID do campo como uma string numérica. |
$field_submit | mixed | Valor do campo submetido (dados brutos). Uma string quando o formato do campo é Simples, ou um array com as chaves primeiro, meio e último para os formatos Primeiro Último e Primeiro Meio Último. |
$form_data | matriz | Dados do formulário. |
Mais Informações
A ação é executada dentro de WPForms_Process::process(). Após a execução dos hooks wpforms_process_before, o método percorre cada campo em $form_data['fields'] e executa esta ação uma vez por campo com o valor bruto de $_POST. O ficheiro encontra-se em includes/, pelo que o hook é executado tanto no Lite como no Pro.
Este hook é uma instância de do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data ). A mesma chamada executa wpforms_process_validate_email para o campo Email e wpforms_process_validate_text para o campo Texto de Linha Única.
A validação própria do campo Nome é executada nesta mesma ação. WPForms_Field::__construct() em includes/fields/class-base.php adiciona o método validate() de cada campo na prioridade 10 com três argumentos. Para o campo Nome, esse método apenas impõe a configuração Obrigatório: uma string não vazia para o formato Simples, ou valores de primeiro e último não vazios para os outros formatos. Outras verificações ficam ao seu critério.
Para rejeitar uma submissão, escreva uma mensagem para wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ]. Qualquer erro definido durante este loop para o processamento antes de a entrada ser guardada. Os valores não são sanitizados até que wpforms_process_format_{$field_type} seja executado mais tarde, portanto, trate $field_submit como entrada não confiável.
Origem
wpforms/includes/class-process.php
Exemplo
Bloqueia uma lista de nomes de submeter um formulário. Lida tanto com o formato Simples (uma string) como com os formatos Primeiro Último (um array) e mostra o erro no campo.
/**
* Block specific names from submitting the form.
*
* @link https://wpforms.com/developers/wpforms_process_validate_name/
*
* @param string|int $field_id Field ID as a numeric string.
* @param mixed $field_submit Submitted field value (raw data).
* @param array $form_data Form data.
*/
function wpf_dev_block_name_validation( $field_id, $field_submit, $form_data ) {
// Only run on the form with ID 143 and the Name field with ID 10. Remember to change both IDs to match your form.
if ( absint( $form_data['id'] ) !== 143 || absint( $field_id ) !== 10 ) {
return;
}
// The Simple format submits a string. First Last and First Middle Last submit an array.
if ( is_array( $field_submit ) ) {
$submitted_name = implode( ' ', array_filter( [ $field_submit['first'] ?? '', $field_submit['middle'] ?? '', $field_submit['last'] ?? '' ] ) );
} else {
$submitted_name = (string) $field_submit;
}
// Add the names to block.
$blocked_names = [
'John Doe',
'Jane Doe',
];
foreach ( $blocked_names as $name ) {
if ( preg_match( '/\b' . preg_quote( $name, '/' ) . '\b/i', $submitted_name ) ) {
wpforms()->obj( 'process' )->errors[ $form_data['id'] ][ $field_id ] = esc_html__( 'This name cannot be used to submit the form.', 'wpforms' );
return;
}
}
}
add_action( 'wpforms_process_validate_name', 'wpf_dev_block_name_validation', 10, 3 );




