Resumo da IA
Descrição
O wpforms_process_complete é acionada no final do processamento (bem-sucedido) da entrada do formulário.
Parâmetros
- $campos
- (array) Valores/propriedades do campo de entrada higienizados.
- $entrada
- (array) Original $_POST global.
- $form_data
- (array) Configurações/dados de formulários processados, preparados para serem usados posteriormente.
- $entry_id
- (int) ID da entrada. Retornará 0 se o armazenamento de entradas estiver desativado ou se estiver usando o WPForms Lite.
Fonte
wpforms/includes/class-process.php
Mais informações
O wpforms_process_complete é acionado no final do processamento do formulário. Ele só é acionado se a entrada for bem-sucedida e não contiver erros. O salvamento da entrada no banco de dados e o envio das notificações por e-mail são feitos antes da execução desse gancho.
Uma escolha popular ao criar integrações de API personalizadas ou precisar executar qualquer tipo de ação depois que uma entrada é enviada com sucesso (por exemplo, enviar uma notificação de e-mail personalizada, criar uma postagem ou conta de usuário etc.).
Uma versão alternativa desse gancho está disponível para limitar facilmente por ID de formulário, wpforms_process_complete_{$form_id}.
Observação importante: se estiver processando e precisar retornar um erro e impedir o processamento do formulário, use o gancho wpforms_process.
Exemplos
Para obter um exemplo, consulte Integração do formulário de contato com serviços externos, de Bill Erickson.
Lembre-se apenas de alterar o ID do formulário de 5 para o ID do formulário que você está segmentando.
/**
* 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 );