Snippet: FluentForms E-Mail Blacklist

Snippet: Fluent Forms E-Mail Blacklist

M├Âchtest du mehr zum Thema Fluentforms Blacklist erfahren?

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?

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

Version 1: F├╝r alle FluentForms Formulare

<?php

// FluentForms - E-Mail Blacklist - All Forms
// 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);

Version 2: Alternative f├╝r nur bestimmte FluentForms

<?php

// FluentForms - E-Mail Blacklist - Specific Forms
// 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 ID(s) des Formulars
  $targetFormId = [13,14];

  // Die zu sperrenden E-Mail-Domains
  $blacklistDomains = ['gmail.com', 'hotmail.com', 'test.com'];
  
  // Du kannst deine Fehlermeldung hier bearbeiten
  $errorMessage = 'Geben Sie hier bitte eine gesch├Ąftliche Mail-Adresse ein.';

  if (!in_array($form->id, $targetFormId)) {
    return $error;
  }

  $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.

Offenlegung Werbelinks: Mit einem Stern (*) gekennzeichnete Links und Buttons sind sogenannte Affiliate-Links. BloggerPilot bekommt bei einem Kauf eine Provision, die sich jedoch nicht auf den Endpreis auswirkt. Es ist uns wichtig zu betonen, dass dies keinen Einfluss auf unsere Bewertung oder Meinung hat.

Schreibe einen Kommentar

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