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_complete é executada no final do processamento (bem-sucedido) de um registo de formulário.

Parâmetros

$fields
(array) Valores/propriedades dos campos de entrada higienizados.
$entrada
(array) Variável global $_POST original.
$form_data
(array) Configurações/dados do formulário processados, preparados para serem usados posteriormente.
$entry_id
(int) ID do registo. Retornará 0 se o armazenamento de registos estiver desativado ou se estiver a usar o WPForms Lite.

Origem

wpforms/includes/class-process.php

Mais Informações

O hook wpforms_process_complete é executado no final do processamento do formulário. Só é executado se o registo foi bem-sucedido e não continha erros. O registo é guardado na base de dados e as notificações por e-mail são enviadas antes da execução deste hook.

Uma escolha popular ao criar integrações de API personalizadas ou quando é necessário executar qualquer tipo de ação após um registo ser submetido com sucesso (por exemplo, enviar uma notificação por e-mail personalizada, criar uma publicação ou conta de utilizador, etc.).

Uma versão alternativa deste hook está disponível para limitar facilmente por ID de formulário, wpforms_process_complete_{$form_id}.

Nota importante: Se estiver a realizar o processamento e precisar de poder retornar um erro e impedir o processamento do formulário, utilize o hook wpforms_process em vez disso.

Exemplos

Para um exemplo, veja a Integração do seu formulário de contacto com serviços externos de Bill Erickson.

Apenas lembre-se de alterar o ID do seu formulário de 5 para o ID do formulário que está a ter como alvo.

/**
 * This will fire at the very end of a (successful) form entry.
 *
 * @link  https://wpforms.com/developers/wpforms_process_complete/
 *
 * @param array  $fields    Sanitized entry field values/properties.
 * @param array  $entry     Original $_POST global.
 * @param array  $form_data Form data and settings.
 * @param int    $entry_id  Entry ID. Will return 0 if entry storage is disabled or using WPForms Lite.
 */

function wpf_dev_process_complete( $fields, $entry, $form_data, $entry_id ) {
     
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #5.
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return;
    }
	
	// Get the full entry object
	$entry = wpforms()->entry->get( $entry_id );

	// Fields are in JSON, so we decode to an array
	$entry_fields = json_decode( $entry->fields, true );

	// Check to see if user selected 'yes' for callback
	if($entry_fields[6][ 'value' ] === 'Yes') {
		// Set the hidden field to 'Needs Callback' to filter through entries
		$entry_fields[7][ 'value' ] = 'Needs Callback';
	}

	// Convert back to json
	$entry_fields = json_encode( $entry_fields );

	// Save changes
	wpforms()->entry->update( $entry_id, array( 'fields' => $entry_fields ), '', '', array( 'cap' => false ) );

}
add_action( 'wpforms_process_complete', 'wpf_dev_process_complete', 10, 4 );

Artigos de Referência

Como Adicionar um Ano à Data de Registo do WPForms