Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Descrizione

L'azione wpforms_process_validate_richtext esegue la validazione sul campo modulo Rich Text quando il modulo viene inviato.

Parametri

$field_id
(int) ID del campo.
$field_submit
(array) Valore originale non sanificato inviato per il campo.
$form_data
(array) Impostazioni/dati del modulo elaborati, preparati per l'uso successivo.

Origine

wpforms/includes/fields/class-base.php

Maggiori Informazioni

L'azione viene applicata a un array per il campo modulo Rich Text. Questa funzione può essere utilizzata per tutti i campi modulo do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Ad esempio, per utilizzarla per un campo Email, useresti do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

È importante notare che i valori dei campi non vengono sanificati fino a un momento successivo nell'elaborazione, in wpforms_process_format_{$field_type}.il

Esempi

Puoi usare questa azione per scansionare il Rich Text per un elenco di parole che vorresti bloccare l'invio del modulo, come volgarità, oppure potresti usare questa azione per cercare determinate parole che attiverebbero un'altra azione come l'impostazione di un valore in un campo nascosto sul tuo modulo che puoi filtrare dalle voci.

In questo esempio, cercheremo eventuali volgarità in questo campo. Se ci sono volgarità, il modulo visualizzerà un errore e non verrà inviato.

/*
 * Check the paragraph text field for profanity.
 *
 * @link https://wpforms.com/developers/wpforms_process_validate_richtext/
 *
 * @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.
*/

    // Optional, you can limit to specific forms. Below, we restrict output to form #3382.
    if ( absint( $form_data[ 'id' ] ) !== 3382 ) {
        return $field_id;
    }

function wpf_dev_profanity_filter_rich_text( $field_id, $field_submit, $form_data ) {
    //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_richtext', 'wpf_dev_profanity_filter_rich_text', 10, 3 );

Articoli di riferimento