Descrição
O wpforms_process_complete
A ação dispara no final do processamento (bem sucedido) da entrada do formulário.
Parâmetros
- $campos
- (matriz) Valores/propriedades do campo de entrada higienizados.
- $entrada
- (array) Original $_POST global.
- $form_data
- (matriz) Definições/dados de formulários processados, preparados para serem utilizados posteriormente.
- $entry_id
- (int) ID da entrada. Devolverá 0 se o armazenamento de entradas estiver desativado ou se estiver a utilizar o WPForms Lite.
Fonte
wpforms/includes/class-process.php
Mais informações
O wpforms_process_complete
O hook é ativado no final do processamento do formulário. Só é ativado se a entrada for bem sucedida e não contiver erros. A gravação da entrada na base de dados e o envio das notificações por correio eletrónico são efectuados antes da execução deste gancho.
Uma escolha popular para criar integrações de API personalizadas ou para executar qualquer tipo de ação depois de uma entrada ser submetida com êxito (por exemplo, enviar uma notificação por correio eletrónico personalizada, criar uma publicação ou uma conta de utilizador, etc.).
Está disponível uma versão alternativa deste gancho para limitar facilmente por ID de formulário, wpforms_process_complete_{$form_id}
.
Nota importante: Se estiver a processar e precisar de poder devolver um erro e impedir o processamento do formulário, utilize o hook wpforms_process.
Exemplos
Para um exemplo, consulte o artigo de Bill Erickson Integrar o seu formulário de contacto com serviços externos.
Lembre-se apenas de alterar o ID do formulário de 5
para o ID do formulário que está a visar.
/** * 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 );