Descrição
Ação que é acionada durante o processamento da entrada do formulário, após a validação inicial do campo ter sido aprovada.
Parâmetros
- $campos
- array Valores/propriedades do campo de entrada sanitizados.
- $entrada
- array Original $_POST global.
- $form_data
- array Configurações/dados do formulário.
Fonte
wpforms/includes/class-process.php
Mais informações
O wpforms_process
é acionada no final do processamento da entrada do formulário. Ela é executada após todos os campos iniciais do formulário terem sido validados e higienizados.
Esse gancho deve ser usado quando a ação precisar potencialmente retornar um erro e interromper o processamento do formulário (consulte Exemplos abaixo para obter detalhes).
Exemplos: verificar se uma conta de usuário existe ou validar dados para um gateway de pagamento.
Lembre-se de que o processamento do formulário ainda pode ser interrompido/prevenido após o disparo desse gancho, por outro código que use o mesmo gancho.
Consulte a observação abaixo sobre outro gancho semelhante que é acionado depois que toda a validação é aprovada.
Observação importante: se você estiver processando e não precisar de validação ou precisar do ID do registro, consulte wpforms_process_complete.
Exemplos
No código de exemplo, você verá que primeiro verificamos o ID do formulário para garantir que ele corresponda ao formulário que está sendo direcionado. Em seguida, verificamos um campo específico (pelo ID do campo) para ver se ele está vazio.
Lembre-se apenas de alterar o ID do formulário de 5
para corresponder ao seu ID de formulário e altere o '4'
para corresponder ao seu ID de campo.
/** * Action that fires during form entry processing after initial field validation. * * @link https://wpforms.com/developers/wpforms_process/ * * @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( $fields, $entry, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #5. if ( absint( $form_data[ 'id' ] ) !== 5 ) { return $fields; } // check the field ID 4 to see if it's empty and if it is, run the error if(empty( $fields[4][ 'value' ]) ) { // Add to global errors. This will stop form entry from being saved to the database. // Uncomment the line below if you need to display the error above the form. // wpforms()->process->errors[ $form_data[ 'id' ] ][ 'header' ] = esc_html__( 'Some error occurred.', 'plugin-domain' ); // Check the field ID 4 and show error message at the top of form and under the specific field wpforms()->process->errors[ $form_data[ 'id' ] ] [ '4' ] = esc_html__( 'Some error occurred.', 'plugin-domain' ); // Add additional logic (what to do if error is not displayed) } } add_action( 'wpforms_process', 'wpf_dev_process', 10, 3 );
PERGUNTAS FREQUENTES
P: Como eu poderia direcionar isso para dois formulários diferentes?
R: Se você quiser usar essa função somente para alguns formulários, mas não para todos, basta usar o símbolo em PHP que significa "ou".
Por exemplo, no snippet acima, você pode ver if ( absint( $form_data[ 'id' ] ) !== 5 )
isso significa simplesmente que só executaremos esse snippet no ID do formulário 5. Mas e se tivéssemos alguns formulários diferentes nos quais quiséssemos que isso fosse executado?
Há algumas opções. Vamos examinar cada uma delas a seguir.
1) Uso de várias funções
Se você quiser apenas duplicar a função, dê a ela um novo nome e atualize o número de ID do formulário. Você copiaria e colaria a função inteira e, em seguida, alteraria esse nome wpf_dev_process
para algo único no início e no final da função. Essa não é a maneira mais limpa, pois adicionará muitas linhas extras ao seu arquivo de funções, mas é mais fácil de ler e ainda é eficaz.
2) Adicionar os IDs de formulário adicionais
A maneira mais fácil é usar apenas a instrução PHP or
e adicione os números de ID adicionais. O símbolo PHP para ou é ||and no formulário ID 7, você deve if ( absint( $form_data[ 'id' ] ) !== 5 || $form_data[ 'id' ] ) !== 7)
.
Artigos de referência
- Como validar um campo de URL de mídia social em seu formulário
- Como restringir números em um campo de formulário de texto de linha única
- Como fornecer uma restrição de idade no campo de formulário Datepicker
- Como comparar duas datas no mesmo formulário
- Como adicionar validação de campo de CEP em seus formulários
- Como realizar comparações de campos em seus WPForms
- Como adicionar validação de campo de endereço para o Authorize.net