Resumo de IA
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 );