Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Beschreibung

Die wpforms_process_validate_richtext Aktion löst die Validierung für das Rich Text Formularfeld aus, wenn das Formular gesendet wird.

Parameter

$field_id
(int) Feld-ID.
$field_submit
(array) Ursprünglicher, unbereinigter Feldwert, der für das Feld übermittelt wurde.
$form_data
(array) Verarbeitete Formulareinstellungen/Daten, die zur späteren Verwendung vorbereitet sind.

Quelle

wpforms/includes/fields/class-base.php

Weitere Informationen

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

Um dies beispielsweise für ein E-Mail-Feld zu verwenden, würden Sie do_action( wpforms_process_validate_email, $field_id, $field_submit, $form_data ) verwenden.

Es ist wichtig zu beachten, dass Feldwerte erst später im Verarbeitungsprozess unter wpforms_process_format_{$field_type} bereinigt werden.die

Beispiele

Sie können diese Aktion verwenden, um das Rich Text nach einer Liste von Wörtern zu durchsuchen, die Sie blockieren möchten, damit das Formular nicht gesendet wird, wie z. B. Schimpfwörter, oder Sie könnten 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 versteckten Feld Ihres Formulars, das Sie aus den Einträgen herausfiltern können.

In diesem Beispiel suchen wir nach Schimpfwörtern in diesem Feld. Wenn Schimpfwörter vorhanden sind, zeigt das Formular einen Fehler an und sendet nicht.

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