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.

Zum Plugin-Download