Descrizione
Il wpforms_process_validate_text
lancia la validazione dell'azione Testo a riga singola quando il modulo viene inviato.
Parametri
- $campo_id
- (int) ID del campo.
- $campo_submit
- (array) Valore originale del campo grezzo/non sanificato inviato per il campo.
- $form_data
- (array) Impostazioni/dati del modulo elaborati, preparati per essere utilizzati in seguito.
Fonte
wpforms/includes/fields/class-base.php
Ulteriori informazioni
L'azione viene applicata a un array per Testo a riga singola campo del modulo. Questa funzione può essere utilizzata per tutti i campi del modulo do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data )
.
Ad esempio, per utilizzare questo metodo per un file Email si utilizza il campo do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data )
.
È importante notare che i valori dei campi non sono sanificati se non in un secondo momento dell'elaborazione, al punto wpforms_process_format_{$field_type}
.
Esempi
È possibile utilizzare questa azione per scansionare il Testo a riga singola alla ricerca di qualsiasi elemento da convalidare prima dell'invio del modulo.
In questo esempio, cercheremo eventuali bestemmie in questo campo. Se c'è una bestemmia, il modulo visualizzerà un errore e non verrà inviato.
/* * Check the single line text field for profanity. * * @link https://wpforms.com/developers/wpforms_process_validate_text/ * * @param int $field_id Field ID. * @param array $field_submit Unsanitized field value submitted for the field. * @param array $form_data Form data and settings. */ function wpf_dev_profanity_filter_single_text( $field_id, $field_submit, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form ID #1423. if ( absint( $form_data[ 'id' ] ) !== 1423 ) { return; } //Create your list of profanity words separated by commas $blocked_words = array( 'badword1', 'badword2' ); foreach( $blocked_words as $word ) { if(strpos($field_submit, $word) !== FALSE ) { wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'No profanity allowed.', 'wpforms' ); return; } } } add_action( 'wpforms_process_validate_text', 'wpf_dev_profanity_filter_single_text', 10, 3 );