¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Descripción

La acción wpforms_process_complete se dispara al final del procesamiento (exitoso) de una entrada del formulario.

Parámetros

$fields
(array) Valores/propiedades de los campos de entrada saneados.
$entry
(array) Global $_POST original.
$form_data
(array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.
$entry_id
(int) ID de la entrada. Devolverá 0 si el almacenamiento de entradas está deshabilitado o se está utilizando WPForms Lite.

Origen

wpforms/includes/class-process.php

Más Información

El hook wpforms_process_complete se dispara al final del procesamiento del formulario. Solo se dispara si la entrada fue exitosa y no contuvo errores. El guardado 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 hook.

Una opción popular al crear integraciones de API personalizadas o al necesitar realizar cualquier tipo de acción después de que una entrada se envía correctamente (por ejemplo, enviar una notificación por correo electrónico personalizada, crear una publicación o una cuenta de usuario, etc.).

Hay disponible 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 el hook wpforms_process en su lugar.

Ejemplos

Como ejemplo, vea la guía de Bill Erickson: Integración de su formulario de contacto con servicios externos.

Solo recuerde cambiar el ID de su formulario de 5 al ID de formulario que está dirigiendo.

/**
 * 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 );

Artículos de Referencia

Cómo añadir un año a la fecha de entrada de WPForms