Elementor Pro kann Formulare durch den die eingebaute Formularfunktion erzeugen. Man benötigt kein weiteres Plugin, um Formulareingaben per Mail zu versenden. Leider kommt „out of the Box“ bei diesen Formularen recht viel SPAM an.
Elementor scheint auch nicht die Kommentar-Sperrliste (im WordPress unter /wp-admin/options-discussion.php) zu berücksichtigen und Plugins wie Antispam Bee werden ebenfalls nicht berücksichtigt.
Antispam-Lösungen für Elementor
Wenn man nun Google nutzt um zu schauen, was der Markt nun anbietet findet man häufig den Einsatz von Google reCAPTCHA V3, das setzt wieder Third-Party-Cookies voraus (und das Laden von Daten in Teilen aus den USA (www.google.com und www.gstatic.com)), das wieder eine Einwilligung mittels Consent-Tool (also ein weiteres kostenpflichtiges Plugin wie Borlabs etc.). Kein Problem, ist für mich aber ein wenig mit Kanonen auf Spatzen geschossen. Die meisten SPAM-Mails sind doch recht einfach aussortiert.
DSGVO-konformes Antispam-Plugin für Elementor
Daher habe ich ein kleines Snippet geschrieben, das alle Elementor Formulare beim absenden einmal prüft und SPAM mittels der Kommentar-Sperrliste filtert.
<?php
add_action( 'elementor_pro/forms/validation', function( $record, $ajax_handler ) {
$blackwords = explode("\n",get_option( 'disallowed_keys' ));
// Error Messages
$error_msg = [
'de-DE' => 'Das Feld enthält unzulässige Wörter',
'en-GB' => 'The field contains blacklisted words!'
];
$lang = get_bloginfo('language');
// Set Fallbacklang
if($error_msg[$lang] == null) {
$lang = 'en-GB';
}
// Get all Filds
$raw_fields = $record->get( 'fields' );
// Iterate fields
foreach ( $raw_fields as $id => $field ) {
// Check filed for blacklisted words
foreach($blackwords as $blackword) {
$regex = '/('.$blackword.')/i';
if (preg_match($regex, $field['value'], $matches, PREG_OFFSET_CAPTURE, 0)) {
$ajax_handler->add_error( $field['id'], $error_msg[$lang] );
}
}
}
return;
}, 10, 2 );
Honeypot für Elementor-Formulare
Darüber hinaus gibt es die Möglichkeit sog. Honeypot-Felder im Formular zu integrieren.
Auch wenn die meisten Bots diese Felder wirksam umgehen können, rudimentärster SPAM wird auch so abgehalten. Von daher ebenfalls eine kleine Hilfe im Kampf gegen den SPAM.
2 Antworten
Hi, danke für die Infos!! Wo füge ich denn den Code ein?
Liebe Grüße
Hallo Leon, einfach per Code Snippets-Plugin oder in die functions.php vom Theme falls Du etwas eigenes nutzt.