Atenção!

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

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

Ignorar

Descrição

A ação wpforms_process_entry_save é executada quando um registo é guardado na base de dados.

Parâmetros

$fields
(array) Valores/propriedades dos campos de entrada higienizados.
$entrada
(array) Variável global $_POST original.
$id_formulario
(int) ID do formulário.
$form_data
(array) Configurações/dados do formulário processados, preparados para serem usados posteriormente.

Origem

wpforms/includes/class-process.php

Mais Informações

A ação é executada após o registo ter sido processado com sucesso quando o registo é guardado na base de dados. O evento de confirmação e o e-mail de notificação são acionados após a execução deste hook.

Abaixo está o contexto em que o hook wpforms_process_entry_save é executado.

Este hook é também utilizado em wpforms/pro/wpforms-pro.php, que carrega funcionalidades específicas da versão paga do plugin.

/**
 * @param  array $fields
 * @param  array $entry
 * @param  int   $form_id
 * @param  array $form_data
 *
 * @return int
 */

public function entry_save( $fields, $entry, $form_id, $form_data = '' ) {

	do_action( 'wpforms_process_entry_save', $fields, $entry, $form_id, $form_data );

	return $this->entry_id;
}

Exemplos

Poderia facilmente usar esta ação para acionar algo quando os registos são guardados na base de dados.

Apenas lembre-se de alterar o ID do formulário de 5 para corresponder ao ID específico do formulário no qual deseja executar o seu código. Remover esta verificação executaria para todos os formulários.

/**
 * Action that fires when an entry is saved to the database.
 *
 * @link  https://wpforms.com/developers/wpforms_process_entry_save/
 *
 * @param array  $fields    Sanitized entry field. values/properties.
 * @param array  $entry     Original $_POST global.
 * @param int    $form_id   Form ID. 
 * @param array  $form_data Form data and settings.
 */

function wpf_dev_process_entry_save( $fields, $entry, $form_id, $form_data ) {
 
    // Only run on my form with ID = 5
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
            return $fields;
        } 
 
    // Example checking for the Yes value of a checkbox field (ID 6) and if yes, we'll then run our code
    if($fields[6][ 'value' ] === 'Yes') {
		
	// run some code here

	}
}
add_action( 'wpforms_process_entry_save', 'wpf_dev_process_entry_save', 10, 4 );

Se precisar de ajuda sobre onde encontrar os IDs dos seus formulários e campos, por favor reveja este tutorial.

Artigos de Referência

Como Sobrescrever Entradas de Utilizadores que Já Enviaram um Formulário