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

**Pubblicato:** 12 febbraio 2021
**Autore:** Team Editoriale

**Estratto:** Azione che si attiva durante l'elaborazione dell'invio del modulo, dopo che la convalida iniziale dei campi è stata superata.


**Contenuto:**

## Descrizione

Azione che si attiva durante l'elaborazione dell'invio del modulo, dopo che la convalida iniziale dei campi è stata superata.

## Parametri

$fields*array* Valori/proprietà dei campi inviati e sanificati.$entry*array* Globale $\_POST originale.$form\_data*array* Impostazioni/dati del modulo.## Sorgente

`wpforms/includes/class-process.php`

## Ulteriori Informazioni

L'azione `wpforms_process` si attiva verso la fine dell'elaborazione dell'invio del modulo. Viene eseguita dopo che tutti i campi iniziali del modulo sono stati convalidati e sanificati.

Questo hook dovrebbe essere utilizzato quando l'azione potrebbe potenzialmente dover restituire un errore e interrompere l'elaborazione del modulo (vedere **Esempi** di seguito per i dettagli).

Esempi: verificare se un account utente esiste o convalidare i dati per un gateway di pagamento.

Ricorda che l'elaborazione del modulo può ancora essere interrotta/impedita dopo che questo hook è stato attivato, da altro codice che utilizza lo stesso hook.

Vedere la nota seguente su un altro hook simile che si attiva dopo che **tutta** la convalida è stata superata.

**Nota importante:** Se stai eseguendo l'elaborazione e non hai bisogno di convalida o dell'ID dell'invio, vedi [wpforms\_process\_complete](https://wpforms.com/developers/wpforms_process_complete/ "wpforms_process_complete").

## Esempi

Nell'esempio di codice, vedrai che stiamo prima controllando l'ID del modulo per assicurarci che corrisponda al modulo di destinazione. Poi stiamo controllando un campo specifico (per ID del campo) per vedere se è vuoto.

Ricorda solo di cambiare l'ID del modulo da `5` per farlo corrispondere al tuo ID del modulo e cambiare `'4'` per farlo corrispondere al tuo ID del campo.

```

/**
 * Azione che si attiva durante l'elaborazione dell'invio del modulo dopo la convalida iniziale dei campi.
 *
 * @link   https://wpforms.com/developers/wpforms_process/
 *
 * @param  array  $fields    Valori/proprietà dei campi inviati e sanificati.
 * @param  array  $entry     Globale $_POST originale.
 * @param  array  $form_data Dati e impostazioni del modulo.
 */

function wpf_dev_process( $fields, $entry, $form_data ) {
     
    // Opzionale, puoi limitare a moduli specifici. Di seguito, limitiamo l'output
    // al modulo #5.
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return $fields;
    }
     
    // controlla l'ID del campo 4 per vedere se è vuoto e, in caso affermativo, genera l'errore    
    if(empty( $fields[4][ 'value' ]) ) 
        {
            // Aggiungi agli errori globali. Questo impedirà il salvataggio dell'invio del modulo nel database.
            // Decommenta la riga seguente se devi visualizzare l'errore sopra il modulo.
            // wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] [ 'header' ] = esc_html__( 'Si è verificato un errore.', 'plugin-domain' );    
 
            // Controlla l'ID del campo 4 e mostra il messaggio di errore in cima al modulo e sotto il campo specifico
               wpforms()-&gt;process-&gt;errors[ $form_data[ 'id' ] ] [ '4' ] = esc_html__( 'Si è verificato un errore.', 'plugin-domain' );
 
            // Aggiungi logica aggiuntiva (cosa fare se l'errore non viene visualizzato)
        }
    }
add_action( 'wpforms_process', 'wpf_dev_process', 10, 3 );
```

## FAQ

#### D: Come posso indirizzare questo per due moduli diversi?

**R:** Se vuoi usare questa funzione solo per alcuni moduli ma non per tutti, devi solo usare il simbolo in PHP che significa “**o**“.

Ad esempio, nello snippet sopra, puoi vedere `if ( absint( $form_data[ 'id' ] ) !== 5 )`, questo significa semplicemente che eseguiremo quello snippet solo sull'ID del modulo **5**. Ma cosa succede se avessimo alcuni moduli diversi su cui volevamo eseguirlo?

Ci sono un paio di opzioni, diamo un'occhiata a ciascuna opzione di seguito.

###### 1) Utilizzo di funzioni multiple

Se volessi semplicemente duplicare la funzione, dare alla funzione un nuovo nome e aggiornare il numero dell'ID del modulo. Copieresti e incolleresti l'intera funzione e poi cambieresti questo nome `wpf_dev_process` in qualcosa di univoco all'inizio e alla fine della funzione. Questo non è il modo più pulito poiché aggiungerà molte righe extra al tuo file di funzioni, ma è più facile da leggere ed è comunque efficace.

###### 2) Aggiunta degli ID dei moduli aggiuntivi

Il modo più semplice è usare l'istruzione PHP `or` e aggiungere i numeri ID aggiuntivi. Il simbolo PHP per **o** è **||e** l'ID del modulo 7, useresti `if ( absint( $form_data[ 'id' ] ) !== 5 || $form_data[ 'id' ] ) !== 7)`.

## Articoli di riferimento

- [Come convalidare un campo URL di social media nel tuo modulo](https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/ "Come convalidare un campo URL di social media nel tuo modulo")
- [Come limitare i numeri in un campo modulo di testo a riga singola](https://wpforms.com/developers/how-to-restrict-numbers-in-a-single-line-text-form-field/ "Come limitare i numeri in un campo modulo di testo a riga singola")
- [Come fornire una restrizione di età sul campo modulo Datepicker](https://wpforms.com/developers/how-to-provide-an-age-restriction-on-the-datepicker-form-field/ "Come fornire una restrizione di età sul campo modulo Datepicker")
- [Come confrontare due date nello stesso modulo](https://wpforms.com/developers/how-to-compare-two-dates-in-the-same-form/ "Come confrontare due date nello stesso modulo")
- [Come aggiungere la convalida del campo CAP in i tuoi moduli WPForms](https://wpforms.com/developers/how-to-add-zip-code-field-validation-on-your-forms/ "Come aggiungere la convalida del campo CAP in i tuoi moduli WPForms")
- [Come eseguire confronti di campi all'interno dei tuoi WPForms](https://wpforms.com/developers/how-to-perform-field-comparisons-within-your-wpforms/ "Come eseguire confronti di campi all'interno dei tuoi WPForms")
- [Come aggiungere la convalida del campo indirizzo per Authorize.net](https://wpforms.com/developers/how-to-add-address-field-validation-for-authorize-net/ "Come aggiungere la convalida del campo indirizzo per Authorize.net")

**Categorie:** Action Hooks

**Tag:** Elaborazione Invii, PHP

---</body></html>