¡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_entry_save se dispara cuando una entrada se guarda en la base de datos.

Parámetros

$fields
(array) Valores/propiedades de los campos de entrada saneados.
$entry
(array) Global $_POST original.
$id_formulario
(int) ID del formulario.
$form_data
(array) Configuración/datos del formulario procesados, preparados para ser utilizados más adelante.

Origen

wpforms/includes/class-process.php

Más Información

La acción se dispara después de que la entrada se ha procesado correctamente al guardarse en la base de datos. El evento de confirmación y el correo electrónico de notificación se activan después de que este hook se haya ejecutado.

A continuación se muestra el contexto en el que se ejecuta el hook wpforms_process_entry_save.

Este hook también se utiliza en wpforms/pro/wpforms-pro.php, que carga características y funcionalidades específicas de la versión de pago del plugin.

/**
 * @param  array $fields
 * @param  array $entry
 * @param  int   $form_id
 * @param  array $form_data
 *
 * @return int
 */

public function entry_save( $fields, $entry, $form_id, $form_data = '' ) {

	do_action( 'wpforms_process_entry_save', $fields, $entry, $form_id, $form_data );

	return $this->entry_id;
}

Ejemplos

Podrías usar fácilmente esta acción para activar algo cuando las entradas se guarden en la base de datos.

Solo recuerda cambiar el ID del formulario de 5 para que coincida con el ID específico del formulario en el que deseas ejecutar tu código. Eliminar esta comprobación ejecutaría el código para todos los formularios.

/**
 * Action that fires when an entry is saved to the database.
 *
 * @link  https://wpforms.com/developers/wpforms_process_entry_save/
 *
 * @param array  $fields    Sanitized entry field. values/properties.
 * @param array  $entry     Original $_POST global.
 * @param int    $form_id   Form ID. 
 * @param array  $form_data Form data and settings.
 */

function wpf_dev_process_entry_save( $fields, $entry, $form_id, $form_data ) {
 
    // Only run on my form with ID = 5
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
            return $fields;
        } 
 
    // Example checking for the Yes value of a checkbox field (ID 6) and if yes, we'll then run our code
    if($fields[6][ 'value' ] === 'Yes') {
		
	// run some code here

	}
}
add_action( 'wpforms_process_entry_save', 'wpf_dev_process_entry_save', 10, 4 );

Si necesitas ayuda sobre dónde encontrar los IDs de tus formularios y campos, por favor revisa este tutorial.

Artículos de Referencia

Cómo Sobrescribir Entradas de Usuarios que Ya Han Enviado un Formulario