Atenção!

Este artigo contém código PHP e destina-se a desenvolvedores. Oferecemos este código como uma cortesia, mas não fornecemos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação extra, consulte o tutorial do WPBeginner sobre como adicionar código personalizado.

Dispensar

Descrição

A ação wpforms_process_before é disparada após o botão de envio de um formulário ser clicado, mas antes que os dados do formulário sejam validados ou limpos.

Parâmetros

$entry
(array) Dados da entrada não validados.
$form_data
(array) Configurações/dados do formulário processados, preparados para uso posterior.

Fonte

wpforms/includes/class-process.php

Mais Informações

A ação é disparada quase imediatamente após o botão de envio do formulário ser clicado, antes que a validação ocorra para a entrada. Como os dados da entrada ainda não foram validados ou limpos neste ponto de pré-processamento, este hook deve ser usado com cautela.

Os trechos abaixo mostram mais detalhes sobre os parâmetros incluídos neste hook (que cada um inclui uma opção de filtro adicional).

$entry = apply_filters( 'wpforms_process_before_filter', $entry, $form_data );

$form_data = apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry );

Talvez você queira armazenar todas as entradas do formulário em um CRM e marcá-las como 'falha' até que sejam totalmente processadas. Em seguida, usando um dos hooks posteriores, você poderia remover essa tag 'falha' e atualizá-la com 'concluído'.

Apenas lembre-se que este hook é usado antes que os dados sejam validados, então use este hook com cautela.

Exemplos

Apenas lembre-se de alterar o ID do formulário de 5 para corresponder ao ID específico do formulário em que você deseja executar seu código. Ou remova-o completamente se quiser executar isso em todos os seus WPForms.

/**
 * This action fires almost immediately after the form’s submit button is clicked, before validation takes place for the entry.
 *
 * @link  https://wpforms.com/developers/wpforms_process_before/
 *
 * @param array  $entry     Unvalidated entry data.
 * @param array  $form_data Form data and settings.
 */

function wpf_dev_process_before( $entry, $form_data ) {

	// Only run on my form with ID = 5
	if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return;
    } 

	// place your custom code here
}
add_action( 'wpforms_process_before', 'wpf_dev_process_before', 10, 2 );