Beschreibung

Die wpforms_process_validate_richtext Aktion löst die Validierung der Reichhaltiger Text Formularfeld, wenn das Formular abgeschickt wird.

Parameter

$feld_id
(int) Feld-ID.
$field_submit
(array) Ursprünglicher roher/unsanierter Feldwert, der für das Feld übermittelt wurde.
$form_data
(Array) Verarbeitete Formulareinstellungen/Daten, die für die spätere Verwendung vorbereitet sind.

Quelle

wpforms/includes/fields/class-base.php

Mehr Informationen

Die Aktion wird auf ein Array angewendet für Reichhaltiger Text Formularfeld. Diese Funktion kann für alle Formularfelder verwendet werden do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ).

Zum Beispiel, um dies für eine E-Mail Feld, würden Sie verwenden do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ).

Es ist wichtig zu beachten, dass die Feldwerte erst später in der Verarbeitung bereinigt werden, bei wpforms_process_format_{$field_type}.die

Beispiele

Sie können diese Aktion verwenden, um den Rich Text nach einer Liste von Wörtern zu durchsuchen, die Sie für das Senden des Formulars sperren möchten, wie z. B. Schimpfwörter, oder Sie können diese Aktion verwenden, um nach bestimmten Wörtern zu suchen, die eine andere Aktion auslösen, wie z. B. das Setzen eines Wertes in einem verborgenen Feld Ihres Formulars, das Sie aus den Einträgen filtern können.

In diesem Beispiel werden wir nach Schimpfwörtern in diesem Feld suchen. Wenn es ein Schimpfwort gibt, wird das Formular einen Fehler anzeigen und nicht gesendet.

/*
 * 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 );

Referenzartikel