---
title: WHMCS
---

# WHMCS

Offizielles CaptchaLa-Addon-Modul für WHMCS. Fügt dem WHMCS-Kundenbereich CAPTCHA-Verifizierung hinzu — Anmeldung, Registrierung, Passwort-Zurücksetzung, Kontaktformular, Ticket-Einreichung und Warenkorb-Checkout — ohne dass Code geschrieben werden muss.

Anders als ein einfaches Site-Key-Widget ist jede Challenge durch einen **serverseitig ausgestellten Einmal-Token** abgesichert (Anti-Replay), und es werden keine Drittanbieter-Tracker geladen.

## Was es abdeckt

Jede Oberfläche unten ist ein eigener Schalter in den Einstellungen des Moduls — aktivieren Sie ausschließlich diejenigen, die Sie schützen möchten.

- Anmeldung
- Registrierung
- Passwort-Zurücksetzung
- Kontaktformular
- Ticket-Einreichung
- Warenkorb-Checkout

## Voraussetzungen

- WHMCS 8.x und 9.x (getestet gegen den Kundenbereich 8.3 und 9.0; funktioniert mit den Themes `six` und `twenty-one`, mit oder ohne Friendly URLs)
- PHP 8.0+ (WHMCS 9.0 selbst erfordert PHP 8.2+)
- Ein CaptchaLa-Konto — holen Sie sich Ihren **App Key** + **App Secret** unter [`dash.captcha.la`](https://dash.captcha.la)

## Installation

### 1. Modul installieren

1. Laden Sie das neueste `whmcs-x.y.z.zip` aus den [Releases](https://github.com/Captcha-La/captchala-whmcs/releases) herunter.
2. Entpacken Sie es in Ihr **WHMCS-Stammverzeichnis**. Dies fügt `modules/addons/captchala/` hinzu.
3. Gehen Sie im WHMCS-Admin zu **Setup → Addon Modules**, suchen Sie **CaptchaLa** und klicken Sie auf **Activate**.

### 2. Konfigurieren

Klicken Sie auf **Configure**, dann:

1. Fügen Sie Ihren **App Key** und Ihr **App Secret** ein.
2. Wählen Sie einen **Widget mode** und ein **Theme**.
3. Aktivieren Sie die Formulare, die geschützt werden sollen.
4. Klicken Sie auf **Save Changes**.

Öffnen Sie die Seite **CaptchaLa** in der Admin-Seitenleiste, um einen Live-Verbindungstest gegen das Dashboard auszuführen.

::: tip
Falls das Widget nach der Aktivierung nicht erscheint, speichern Sie die Moduleinstellungen einmal erneut — WHMCS registriert die `hooks.php` eines Moduls nur, wenn dieses (neu) aktiviert/gespeichert wird.
:::

## Konfiguration

Alle Einstellungen finden sich unter **Setup → Addon Modules → CaptchaLa → Configure**.

| Einstellung | Typ | Standard | Beschreibung |
| --- | --- | --- | --- |
| App Key | string | — | Öffentlicher Schlüssel aus dem CaptchaLa-Dashboard. Erforderlich. |
| App Secret | string | — | Server-Geheimnis, zum Ausstellen und Validieren von Tokens verwendet. Erforderlich; niemals an den Browser ausgegeben. |
| Widget mode | enum | `popup` | `popup` (Auslöserleiste → Vollbild-Challenge), `float` (Inline-Panel), `embed` (Inline-Checkbox), `bind` (unsichtbar, fängt das Absenden ab). |
| Theme | enum | `default` | Farb-Preset: `default`, `dark`, `slate`, `emerald`, `amber`, `rose`. |
| Language | string | `auto` | BCP-47-Code (z. B. `en`, `zh`, `de`) oder `auto`, um dem Browser zu folgen. |
| Protect login | bool | on | Wendet die Challenge auf die Anmeldung im Kundenbereich an. |
| Protect registration | bool | on | Wendet die Challenge auf die Registrierung neuer Konten an. |
| Protect password reset | bool | on | Wendet die Challenge auf das Formular zur Passwort-Zurücksetzung an. |
| Protect contact form | bool | off | Wendet die Challenge auf das Kontaktformular an. |
| Protect ticket submission | bool | off | Wendet die Challenge auf den finalen Schritt der Ticket-Einreichung an. |
| Protect cart checkout | bool | off | Wendet die Challenge auf den Warenkorb-Checkout an. |
| Skip for logged-in users | bool | on | Wendet keine Challenge auf Besucher an, die bereits eine Kundensitzung haben. |
| Failure message | string | — | Nachricht, die bei fehlgeschlagener Verifizierung angezeigt wird. |

## Wie es funktioniert

Auf jeder geschützten Formularseite stellt das Modul einen frischen **Server-Token (`sct_`)** aus dem Dashboard aus, der auf die Aktion dieses Formulars beschränkt ist, und rendert das daran gebundene Widget. Nachdem der Besucher die Challenge gelöst hat, schreibt das SDK einen **Einmal-Pass-Token (`pt_`)** in das Formular. Beim Absenden validiert das Modul diesen `pt_` serverseitig, bevor WHMCS das Formular verarbeitet; Replays und Aktions-Abweichungen werden abgewiesen.

Ist das Dashboard vorübergehend nicht erreichbar, **schlägt das Modul offen fehl** (lässt das Absenden durch), sodass Ihr Kundenbereich niemals durch einen vorgelagerten Aussetzer ausgesperrt wird.

## FAQ

**Ist das Modul kostenlos?**

Ja. Das Modul ist kostenlos. Der kostenlose CaptchaLa-Tarif deckt 10.000 Verifizierungen pro Monat ab — kostenpflichtige Tarife greifen nur, wenn Sie mehr Volumen benötigen.

**Funktioniert es sowohl auf WHMCS 8 als auch 9?**

Ja — getestet auf dem Kundenbereich 8.3 und 9.0, mit den Themes `six` und `twenty-one`, mit oder ohne Friendly URLs.

**Das Widget erscheint nicht.**

Speichern Sie die Moduleinstellungen einmal erneut (Configure → Save Changes). WHMCS registriert die `hooks.php` nur, wenn das Modul (neu) aktiviert/gespeichert wird.

## Quelle

- Modul-Repository: [`github.com/Captcha-La/captchala-whmcs`](https://github.com/Captcha-La/captchala-whmcs)
- Issues / Feature-Wünsche: gegen das obige Repository einreichen
- Verwandt: [Web-SDK](/de/web-sdk) · [PHP-Server-SDK](/de/sdk/server-php) · [API-Referenz](/de/api-reference)
