<html lang="es-es" dir="ltr"><head></head><body>### [wpforms_process](https://wpforms.com/developers/wpforms_process/)

**Publicado:** 12 de febrero de 2021
**Autor:** Equipo Editorial

**Extracto:** Acción que se dispara durante el procesamiento de entradas del formulario, después de que la validación inicial de los campos haya sido superada.


**Contenido:**

## Descripción

Acción que se dispara durante el procesamiento de entradas del formulario, después de que la validación inicial de los campos haya sido superada.

## Parámetros

$fields*array* Valores/propiedades de los campos de entrada saneados.$entry*array* El global $\_POST original.$form\_data*array* Configuración/datos del formulario.## Fuente

`wpforms/includes/class-process.php`

## Más Información

La acción `wpforms_process` se dispara hacia el final del procesamiento de entradas del formulario. Se ejecuta después de que todos los campos iniciales del formulario hayan sido validados y saneados.

Este hook debe usarse cuando la acción potencialmente necesite devolver un error y detener el procesamiento del formulario (ver **Ejemplos** a continuación para más detalles).

Ejemplos: verificar si existe una cuenta de usuario o validar datos para una pasarela de pago.

Recuerda que el procesamiento del formulario aún puede detenerse/evitarse después de que este hook se dispare, por otro código que use el mismo hook.

Ver la nota a continuación sobre otro hook similar que se dispara después de que se superan **todas** las validaciones.

**Nota importante:** Si estás realizando el procesamiento y no necesitas validación o necesitas el ID de la entrada, consulta [wpforms\_process\_complete](https://wpforms.com/developers/wpforms_process_complete/ "wpforms_process_complete").

## Ejemplos

En el código de ejemplo, verás que primero comprobamos el ID del formulario para asegurarnos de que coincide con el formulario que se está dirigiendo. Luego, comprobamos un campo específico (por el ID del campo) para ver si está vacío.

Solo recuerda cambiar el ID del formulario de `5` para que coincida con tu ID de formulario y cambiar el `'4'` para que coincida con tu ID de campo.

```

/**
 * Acción que se dispara durante el procesamiento de entradas del formulario después de la validación inicial de los campos.
 *
 * @link   https://wpforms.com/developers/wpforms_process/
 *
 * @param  array  $fields    Valores/propiedades saneados de los campos de entrada.
 * @param  array  $entry     El global $_POST original.
 * @param  array  $form_data Datos y configuración del formulario.
 */

function wpf_dev_process( $fields, $entry, $form_data ) {
     
    // Opcional, puedes limitar a formularios específicos. A continuación, restringimos la salida al
    // formulario #5.
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return $fields;
    }
     
    // Comprueba el ID del campo 4 para ver si está vacío y, si lo está, genera el error    
    if(empty( $fields[4][ 'value' ]) ) 
        {
            // Añadir a errores globales. Esto evitará que la entrada del formulario se guarde en la base de datos.
            // Descomenta la línea de abajo si necesitas mostrar el error encima del formulario.
            // wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] [ 'header' ] = esc_html__( 'Ocurrió un error.', 'plugin-domain' );    
 
            // Comprueba el ID del campo 4 y muestra el mensaje de error en la parte superior del formulario y debajo del campo específico
               wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] [ '4' ] = esc_html__( 'Ocurrió un error.', 'plugin-domain' );
 
            // Añadir lógica adicional (qué hacer si el error no se muestra)
        }
    }
add_action( 'wpforms_process', 'wpf_dev_process', 10, 3 );
```

## Preguntas Frecuentes

#### P: ¿Cómo podría dirigir esto a dos formularios diferentes?

**R:** Si deseas usar esta función solo para algunos formularios pero no para todos, solo necesitas usar el símbolo en PHP que significa “**o**“.

Por ejemplo, en el fragmento anterior, puedes ver `if ( absint( $form_data[ 'id' ] ) !== 5 )`, esto simplemente significa que solo ejecutaremos ese fragmento en el formulario con ID **5**. Pero, ¿qué pasa si teníamos algunos formularios diferentes en los que queríamos que esto se ejecutara?

Hay un par de opciones, veamos cada opción a continuación.

###### 1) Usando funciones múltiples

Si quisieras duplicar la función, dale un nuevo nombre a la función y actualiza el número del ID del formulario. Copiarías y pegarías toda la función y luego cambiarías este nombre `wpf_dev_process` por algo único al principio y al final de la función. Esta no es la forma más limpia, ya que agregará muchas líneas adicionales a tu archivo de funciones, pero es más fácil de leer y sigue siendo efectiva.

###### 2) Añadiendo los IDs de formulario adicionales

La forma más fácil es simplemente usar la declaración PHP `or` y agregar los números de ID adicionales. El símbolo PHP para **o** es **||y** el ID del formulario 7, tendrías `if ( absint( $form_data[ 'id' ] ) !== 5 || $form_data[ 'id' ] ) !== 7)`.

## Artículos de Referencia

- [Cómo validar un campo de URL de redes sociales en tu formulario](https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/ "Cómo validar un campo de URL de redes sociales en tu formulario")
- [Cómo restringir números en un campo de formulario de texto de una sola línea](https://wpforms.com/developers/how-to-restrict-numbers-in-a-single-line-text-form-field/ "Cómo restringir números en un campo de formulario de texto de una sola línea")
- [Cómo proporcionar una restricción de edad en el campo de formulario Datepicker](https://wpforms.com/developers/how-to-provide-an-age-restriction-on-the-datepicker-form-field/ "Cómo proporcionar una restricción de edad en el campo de formulario Datepicker")
- [Cómo comparar dos fechas en el mismo formulario](https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/ "Cómo comparar dos fechas en el mismo formulario")
- [Cómo agregar validación de campo de código postal en tus formularios](https://wpforms.com/developers/how-to-add-zip-code-field-validation-on-your-forms/ "Cómo agregar validación de campo de código postal en tus formularios")
- [Cómo realizar comparaciones de campos dentro de tus WPForms](https://wpforms.com/developers/how-to-perform-field-comparisons-within-your-wpforms/ "Cómo realizar comparaciones de campos dentro de tus WPForms")
- [Cómo agregar validación de campo de dirección para Authorize.net](https://wpforms.com/developers/how-to-add-address-field-validation-for-authorize-net/ "Cómo agregar validación de campo de dirección para Authorize.net")

**Categorías:** Action Hooks

**Etiquetas:** Procesamiento de Entradas, PHP

---</body></html>