Dokumentation
WordPress Integration
Widget im Frontend + Verify beim Submit. Unterstützt CF7 und WPForms.
Widget Einbindung
Script einmal laden (z.B. im Theme Header oder per Plugin).
Du kannst das Widget global einbinden. Es hängt sich an Formulare (oder nur an data-smartcaptcha Formulare, wenn du das nutzt).
html
<script
src="https://app.smartcaptcha.de/widget.js"
data-sitekey="sk_..."
data-action="contact"
defer
></script>
Tipp
Secret bleibt immer serverseitig (wp-config ENV / Options / Server Config).
Verify Funktion
Einmal definieren, dann in CF7/WPForms Hooks nutzen.
php
<?php
function smartcaptcha_verify_token(string $token, string $sid, string $action = 'contact'): bool {
$apiBase = 'https://app.smartcaptcha.de';
$siteKey = 'sk_...';
$secret = 'sec_...';
$resp = wp_remote_post($apiBase . '/v1/verify', [
'timeout' => 6,
'headers' => [ 'Content-Type' => 'application/json' ],
'body' => wp_json_encode([
'siteKey' => $siteKey,
'secret' => $secret,
'token' => $token,
'sid' => $sid, // Feld smartcaptcha_sid aus dem Formular
'action' => $action, // wie data-action im Widget
]),
]);
if (is_wp_error($resp)) return false;
$code = wp_remote_retrieve_response_code($resp);
$body = json_decode((string) wp_remote_retrieve_body($resp), true) ?: [];
return ($code === 200) && !empty($body['ok']);
}
Fail-closed
Bei fehlendem Token oder Verify-Error → blocken (empfohlen).
Contact Form 7 (CF7)
Submission blocken und Fehlermeldung ausgeben.
Hook: wpcf7_validate oder wpcf7_before_send_mail. In validate kannst du sauber eine Message setzen.
Kurz-Konzept
Token aus $_POST['smartcaptcha_token'] lesen → verify → bei false Validation Fehler.
WPForms
Validate Hook nutzen und Submission verhindern.
Hook: wpforms_process / wpforms_process_validate.
Kurz-Konzept
Wenn verify false → wpforms()->process->errors setzen.
WordPress-Plugin herunterladen
Das Plugin schützt Contact Form 7 und WPForms ohne eigenen Code. Du lädst es nach der Anmeldung im Dashboard unter „Websites & Keys“ herunter.