Snippet: FluentForms E-Mail Blacklist

Snippet: Fluent Forms E-Mail Blacklist

Ich empfehle gerne das Formular-Plugin Fluent Forms, weil es g├╝nstig ist und die besten Features bietet. Nun hat mich ein Kunde gefragt, wie er gewisse Domains f├╝r die Eintragung in die erstellten Formulare sperren kann.

Wie erstelle ich eine E-Mail-Blacklist f├╝r FluentForms?

Load WordPress Sites in as fast as 37ms!

Im folgenden Howto lernst du, wie du mittels Code-Plugin oder der functions.php-Datei und einem kleinen St├╝ck Code eine E-Mail-Blacklist, f├╝r das Plugin FluentForms erstellst.

Achtung: F├╝hre vorher unbedingt ein Backup aus! Kleinste Fehler k├Ânnen deine Website zerst├Âren.

Sperre E-Mail-Adressen f├╝r Fluent Forms

Das Feature, E-Mail-Adressen zu sperren, wird sicher noch direkt in das Plugin kommen. Solange ist der Umweg ├╝ber ein Code-Snippet kein Problem f├╝r uns.

Nutze den folgenden Code, um Domains f├╝r FluentForms zu sperren.

Der Code

<?php

// FluentForms - E-Mail Blacklist
// Need help: https://bloggerpilot.com/snippet-fluentforms-e-mail-blacklist/

add_filter('fluentform_validate_input_item_input_email', function ($error, $field, $formData, $fields, $form) {

  // Die zu sperrenden E-Mail-Domains
  $blacklistDomains = ['gmail.com', 'hotmail.com', 'test.com'];
  
  // Du kannst deine Fehlermeldung hier bearbeiten
  $errorMessage = 'Die angegebene E-Mail-Dom├Ąne wird nicht akzeptiert.';

  $fieldName = $field['name'];

  if (empty($formData[$fieldName])) {
    return $error;
  }

  $valueArray = explode('@', $formData[$fieldName]);
  $inputDomain = array_pop($valueArray);

  if (in_array($inputDomain, $blacklistDomains)) {
    return [$errorMessage];
  }
  
  return $error;
}, 10, 5);

Das Code-Snippet kurz erkl├Ąrt:

Mit einem WordPress-Filter wird die im Formular ├╝bergebene E-Mail-Adresse ├╝berpr├╝ft und bei ├ťbereinstimmung mit dem Array $blacklistDomains wird das Absenden gesperrt.

  • $blacklistDomains: Gib hier die Domains in einfachen Anf├╝hrungszeichen und durch Komma getrennt ein.
  • $errorMessage: Diese Nachricht wird im Formular angezeigt, wenn der Benutzer eine der gesperrten Domains nutzt.

Alternative Downloads des Codes:

Nutze ein Snippet-Plugin

Das Snippet f├╝r FluentForms im WPCodeBox- Plugin.
Das Snippet f├╝r FluentForms im WPCodeBox- Plugin.

Am einfachsten kannst du kleine Snippets ├╝ber ein Code-Snippet-Plugin einf├╝gen und aktivieren. Daf├╝r kannst du wahlweise Code Snippets oder WPCodeBox nutzen.

Ich habe fast alle Standard-Einstellungen f├╝r diesen Code belassen, nur „Frontend“ habe ich die Ausf├╝hrung ausgew├Ąhlt.

In die functions.php einf├╝gen

F├╝ge den Code in die functions.php Datei deines Child Themes ein.
F├╝ge den Code in die functions.php Datei deines Child Themes ein.

Wenn du WordPress schon l├Ąnger nutzt, verwaltest du deine Snippets vielleicht lieber in der functions.php Datei deines Child Themes.

Das kannst du direkt in WordPress unter Design > Theme-Datei-Editor > functions.php machen, oder ├╝ber FTP und mit dem Texteditor deiner Wahl.

Fazit

Mit der E-Mail-Blacklist f├╝r Fluent Forms k├Ânnen wir nun Domains von unseren Formularen ausschlie├čen und uns damit vor Spam-Eintr├Ągen sch├╝tzen.

Eine andere Anwendungsm├Âglichkeit ist, dass nur Firmen-E-Mails gesammelt werden sollen. Daf├╝r sperrst du einfach alle kostenlosen E-Mail-Dienste wie gmail.com, hotmail.com und live.com.

Es gibt einige M├Âglichkeiten, wie du das umsetzen kannst. Entweder direkt im Plugin oder ├╝ber die functions.php Datei des Child Themes oder aber ├╝ber ein Code-Snippet-Plugin. Wichtig ist dabei, dass man vorher unbedingt eine Sicherung erstellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht ver├Âffentlicht. Erforderliche Felder sind mit * markiert