Riassunto AI
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 di invio sanificati.
- $entry
- array Globale $_POST originale.
- $form_data
- array Impostazioni/dati del modulo.
Origine
wpforms/includes/class-process.php
Maggiori 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 dover restituire un errore e interrompere l'elaborazione del modulo (vedere gli 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 l'attivazione di questo hook, da altro codice che utilizza lo stesso hook.
Vedere la nota di seguito 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 della convalida o dell'ID dell'invio, vedi 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 corrispondere al tuo ID modulo e cambiare '4' per corrispondere al tuo ID campo.
/**
* Action that fires during form entry processing after initial field validation.
*
* @link https://wpforms.com/developers/wpforms_process/
*
* @param array $fields Sanitized entry field. values/properties.
* @param array $entry Original $_POST global.
* @param array $form_data Form data and settings.
*/
function wpf_dev_process( $fields, $entry, $form_data ) {
// Optional, you can limit to specific forms. Below, we restrict output to
// form #5.
if ( absint( $form_data[ 'id' ] ) !== 5 ) {
return $fields;
}
// check the field ID 4 to see if it's empty and if it is, run the error
if(empty( $fields[4][ 'value' ]) )
{
// Add to global errors. This will stop form entry from being saved to the database.
// Uncomment the line below if you need to display the error above the form.
// wpforms()->process->errors[ $form_data[ 'id' ] ][ 'header' ] = esc_html__( 'Some error occurred.', 'plugin-domain' );
// Check the field ID 4 and show error message at the top of form and under the specific field
wpforms()->process->errors[ $form_data[ 'id' ] ] [ '4' ] = esc_html__( 'Some error occurred.', 'plugin-domain' );
// Add additional logic (what to do if error is not displayed)
}
}
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, dai alla funzione un nuovo nome e aggiorna 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 modulo aggiuntivi
Il modo più semplice è usare l'istruzione PHP or e aggiungere i numeri ID aggiuntivi. Il simbolo PHP per o è ||e ID modulo 7, faresti if ( absint( $form_data[ 'id' ] ) !== 5 || $form_data[ 'id' ] ) !== 7).
Articoli di riferimento
- Come convalidare un campo URL di social media nel tuo modulo
- Come limitare i numeri in un campo modulo di testo a riga singola
- Come fornire una restrizione di età sul campo modulo Datepicker
- Come confrontare due date nello stesso modulo
- Come aggiungere la convalida del campo CAP (Codice di Avviamento Postale) ai tuoi moduli
- Come eseguire confronti di campi all'interno del tuo WPForms
- Come aggiungere la convalida dei campi di indirizzo per Authorize.net