KI-Zusammenfassung
Beschreibung
Die wpforms_process_validate_text Aktion löst die Validierung für das Formularfeld Single Line Text 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 Formularfeld Single Line Text 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 in der Verarbeitung unter wpforms_process_format_{$field_type} bereinigt werden.
Beispiele
Sie können diese Aktion verwenden, um den Single Line Text auf alles zu überprüfen, was vor dem Senden des Formulars validiert werden soll.
In diesem Beispiel suchen wir nach anstößiger Sprache in diesem Feld. Wenn anstößige Sprache vorhanden ist, zeigt das Formular einen Fehler an und wird nicht gesendet.
/*
* 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 );