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

Parâmetros

$fields
(array) Valores/propriedades dos campos de envio sanitizados.
$entry
(array) Variável global $_POST original.
$form_data
(array) Configurações/dados do formulário processados, preparados para uso posterior.
$entry_id
(int) ID do envio. Retornará 0 se o armazenamento de envios estiver desativado ou usando WPForms Lite.

Fonte

wpforms/includes/class-process.php

Mais Informações

O hook wpforms_process_complete é disparado no final do processamento do formulário. Ele só é disparado se o envio foi bem-sucedido e não continha erros. O salvamento do envio no banco de dados e o envio das notificações por e-mail são feitos antes da execução deste hook.

Uma escolha popular ao construir integrações de API personalizadas ou quando for necessário executar qualquer tipo de ação após um envio ser submetido com sucesso (por exemplo, enviar uma notificação por e-mail personalizada, criar uma postagem ou conta de usuário, 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 você estiver processando e precisar retornar um erro e impedir o processamento do formulário, use o hook wpforms_process em vez disso.

Exemplos

Como exemplo, veja a integração de seu formulário de contato 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 você está visando.

/**
 * 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 Envio do WPForms