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

So erstellen Sie eine globale Denylist

Übersicht

Möchten Sie eine globale Sperrliste auf Domain-Ebene einrichten, die für alle Ihre Formulare gilt? Das Erstellen einer solchen Liste garantiert, dass alle zuvor als Spam markierten E-Mails über eine einzige, einheitliche Funktion universell für alle Ihre WPForms blockiert werden.

Standardmäßig können Sie mit der Zulassungs- oder Sperrliste Domains für jedes Formular einfach mit *@bad-domain.com blockieren. Weitere Informationen zum Einrichten einer Zulassungs- oder Sperrliste finden Sie in diesem hilfreichen Leitfaden.

Das Hauptziel dieses Tutorials ist es jedoch, eine globale Liste zu erstellen, wodurch die Notwendigkeit einzelner Bearbeitungen in jedem Formular entfällt. Durch die Nutzung der Fähigkeiten von PHP wird die Erstellung einer solchen Liste zu einem einfachen und schnellen Prozess, wie wir in diesem Tutorial demonstrieren werden!

Hinzufügen des Snippets

Nun ist es an der Zeit, den Snippet zu unserer Website hinzuzufügen und die Liste nach den zu blockierenden Domainnamen anzupassen. Kopieren und fügen Sie diesen Snippet einfach auf Ihrer Website ein.

Wenn Sie Hilfe benötigen, wie und wo Sie Snippets zu Ihrer Website hinzufügen können, lesen Sie bitte dieses Tutorial.

/*
 * Global denylist for domains on all WPForms.
 *
 * @link https://wpforms.com/developers/how-to-create-a-global-denylist/
*/
 
function wpf_dev_blacklist_global_domains( $field_id, $field_submit, $form_data ) {
 
    // Find the domain name, anything after the @ symbol
    $domain          = substr( strrchr( $field_submit, "@" ), 1 );
 
    // Add the domains here, separated by commas
    $blacklist       = array( 'deny.com', 'nope.com' );
 
    // Customize the error message that will be shown 
    if( in_array( $domain, $blacklist ) ) { 
        wpforms()->process->errors[ $form_data[ 'id' ] ][ $field_id ] = esc_html__( 'We apologize, this domain is not accepted.', 'wpforms' );
        return;
    }
}
add_action('wpforms_process_validate_email', 'wpf_dev_blacklist_global_domains', 10, 3 );

Dieser Snippet prüft den in das E-Mail-Feld eingegebenen Domainnamen und gleicht ihn mit der globalen Liste ab, die Sie in diesem Snippet erstellt haben. Domainnamen können im Format [email protected] aufgeführt werden. Jede Domain wird jedoch in einfache Anführungszeichen gesetzt und dann durch ein Komma getrennt.

Wenn ein Benutzer versucht, diese Domain einzugeben und das Formular abzuschickt, wird er eine Fehlermeldung sehen.

Mit diesem Snippet können Sie ganz einfach eine globale Sperrliste erstellen

Und das ist alles! Sie haben erfolgreich eine globale Sperrliste für alle Ihre WPForms erstellt. Möchten Sie auch anstößige Sprache in Ihren Formularen blockieren? Sehen Sie sich unser Tutorial an: So blockieren Sie Formularübermittlungen mit anstößiger Sprache.

Aktionsreferenz: wpforms_process_validate_email