KI-Zusammenfassung
Möchten Sie die Sicherheit Ihrer Webformulare verbessern? Mit einem einfachen PHP-Snippet können Sie die Übermittlung von bestimmten Domains direkt im Textfeld Ihres Formulars effektiv blockieren. In diesem Tutorial führen wir Sie Schritt für Schritt durch die Implementierung dieser Funktion, um sicherzustellen, dass Ihre Formulare vor Spam und bösartigen Übermittlungen geschützt bleiben.
Erstellung des Formulars
Wir beginnen mit der Erstellung eines neuen Formulars. Unser Formular ist nur ein einfaches Kontaktformular, in dem wir die Benutzer nach ihrem Namen, ihrer E-Mail-Adresse und weiteren Kommentaren fragen, die sie hinzufügen möchten.
Für unser Beispielformular fügen wir die Formularfelder Name, E-Mail, Absatztext und Benutzerdefinierte Captcha (für zusätzliche Sicherheit) hinzu.

Wenn Sie Hilfe benötigen, sehen Sie sich bitte unseren hilfreichen Leitfaden zur Erstellung eines neuen Formulars an.
Domains blockieren
Nun ist es an der Zeit, unsere Snippets hinzuzufügen. Informationen zur Funktionsweise und zum Speicherort von Snippets finden Sie in diesem Tutorial.
Absatztextfeld
/**
* Block domains inside the Paragraph Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_textarea( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_textarea' , 'wpf_dev_prevent_domains_textarea', 10, 3 );
Dieses Snippet durchsucht das Formularfeld Absatztext nach einer Kombination der im preg_match angezeigten Wörter und blockiert die Formularübermittlung, wenn eine Übereinstimmung gefunden wird.

Einzeiliges Textfeld
Sie können die gleiche Funktionalität genauso einfach auch für das Feld Einzeiliger Text verwenden. Das Snippet wird fast identisch sein, mit Ausnahme des Filter-Namens.
/**
* Block domains inside the Single Line Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_text( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_text' , 'wpf_dev_prevent_domains_text', 10, 3 );
Und das ist alles, was Sie brauchen! Möchten Sie auch anstößige Wörter in diesen Feldern blockieren? Sehen Sie sich unser Tutorial So blockieren Sie Formularübermittlungen mit anstößigen Wörtern an.
Referenzaktionen
FAQ
F: Kann ich dies im Rich-Text-Formularfeld verwenden?
A: Absolut! Hier ist das Snippet für das Rich-Text-Formularfeld.
/**
* Block domains inside the Rich Text
*
* @link https://wpforms.com/developers/how-to-block-domains-from-your-text-fields/
*/
function wpf_dev_prevent_domains_richtext( $field_id, $field_submit, $form_data ) {
if ( preg_match( '/www.|.com|.net|.org|.co.uk/', $field_submit ) ) {
wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'This is not allowed.', 'plugin-domain' );
}
}
add_action( 'wpforms_process_validate_richtext' , 'wpf_dev_prevent_domains_richtext', 10, 3 );
F: Wie kann ich dies auf andere Felder anwenden?
A: Fast jedes Feld verfügt über eine Art von Validierung. Die meisten Felder verwenden do_action( wpforms_process_validate_{$field_type}, $field_id, $field_submit, $form_data ). Sie würden nur _{$field_type} durch den Feldtyp ersetzen.