Descripción
En wpforms_process_complete
se dispara al final del procesamiento (correcto) de la entrada del formulario.
Parámetros
- $campos
- (array) Valores/propiedades del campo de entrada saneados.
- $entrada
- (array) Original $_POST global.
- $form_data
- (array) Ajustes/datos del formulario procesados, preparados para su uso posterior.
- $entry_id
- (int) ID de entrada. Devolverá 0 si el almacenamiento de entradas está deshabilitado o usando WPForms Lite.
Fuente
wpforms/includes/class-process.php
Más información
En wpforms_process_complete
se activa al final del procesamiento del formulario. Sólo se activa si la entrada se ha realizado correctamente y no contiene errores. El almacenamiento de la entrada en la base de datos y el envío de las notificaciones por correo electrónico se realizan antes de que se ejecute este gancho.
Una opción popular cuando se crean integraciones API personalizadas o se necesita realizar cualquier tipo de acción después de que una entrada se envíe correctamente (por ejemplo, enviar una notificación personalizada por correo electrónico, crear una entrada o una cuenta de usuario, etc.).
Existe una versión alternativa de este hook para limitar fácilmente por ID de formulario, wpforms_process_complete_{$form_id}
.
Nota importante: Si está realizando un procesamiento y necesita poder devolver un error y evitar el procesamiento del formulario, utilice en su lugar el hook wpforms_process.
Ejemplos
Para ver un ejemplo , consulte Integración del formulario de contacto con servicios externos, de Bill Erickson.
Sólo recuerda cambiar tu ID de formulario de 5
al ID del formulario al que te diriges.
/** * 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 );