> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# WordPress KYC-Plugin: Altersverifizierung für WooCommerce

> Didit bietet ein WordPress- & WooCommerce-Plugin für Identitäts- & Altersverifizierung ohne Code. Ab $0.33 pro KYC-Prüfung, $10 gratis/Monat.

Fügen Sie jeder WordPress-Website oder jedem WooCommerce-Shop die Didit-Identitätsverifizierung und Altersprüfung hinzu. Das Plugin fungiert als sicherer Backend-Proxy – Ihr API-Schlüssel verbleibt auf dem Server – und stellt Shortcodes, eine WooCommerce-Checkout-Sperre sowie Entwickler-Hooks bereit, sodass Sie Verifizierungen ganz ohne JavaScript einbinden können.

## Voraussetzungen

* WordPress 6.0 oder höher
* PHP 7.4 oder höher
* Ein Konto in der [Didit Console](https://business.didit.me)

## Schritt 1: Rufen Sie Ihre Didit-Zugangsdaten ab

1. Registrieren Sie sich oder melden Sie sich unter **[business.didit.me](https://business.didit.me)** an
2. Gehen Sie zu **API & Webhooks** und kopieren Sie Ihren **API-Schlüssel**
3. Gehen Sie zu **Workflows**, erstellen oder wählen Sie einen Workflow aus und kopieren Sie die **Workflow-ID**

> [!NOTE]
>
> Sie können eine **UniLink-URL** verwenden, um eine Vorschau des Verifizierungsablaufs ohne API-Schlüssel anzuzeigen.
> Verwenden Sie den Modus **API Session** mit einem API-Schlüssel und einer Workflow-ID für Inhaltssperren und WooCommerce-Verifizierungsanforderungen.
> Der Abschluss über UniLink allein reicht nicht aus, um geschützte Inhalte freizuschalten oder eine Bestellung zu genehmigen.

## Schritt 2: Installieren Sie das Plugin

1. Laden Sie `didit-verify-0.3.4.zip` aus dem **[Release 0.3.4](https://github.com/didit-protocol/plugin-wordpress/releases/tag/v0.3.4)** herunter
2. Gehen Sie in Ihrem WordPress-Adminbereich zu **Plugins → Installieren → Plugin hochladen**
3. Wählen Sie die heruntergeladene ZIP-Datei aus und klicken Sie auf **Jetzt installieren**
4. Klicken Sie auf **Aktivieren**

> [!NOTE]
>
> Didit Verify ist auch auf [WordPress.org](https://wordpress.org/plugins/didit-verify/) gelistet.
> Überprüfen Sie vor der Installation die Version: Verwenden Sie Version 0.3.4 oder neuer für das hier beschriebene serverbestätigte Verhalten bei Verifizierungen.
> Ab Version 0.3.4 wird der Zugriff auf geschützte Inhalte widerrufen, wenn eine genehmigte Verifizierung nachträglich abgelehnt wird, abläuft oder erneut in Prüfung geht.
> Falls das Verzeichnis eine ältere Version enthält, installieren Sie die oben verlinkte Release-ZIP-Datei.

> [!WARNING]
>
> Nach einem Upgrade von einer Version vor 0.3.2 müssen sich Benutzer, deren vorherige Genehmigung nicht vom Server bestätigt wurde, erneut verifizieren, bevor sie auf geschützte Inhalte zugreifen oder einen Checkout mit erforderlicher Verifizierung abschließen können.

## Schritt 3: Konfigurieren Sie das Plugin

Gehen Sie zu **Einstellungen → Didit Verify**.

### Wählen Sie Ihren Modus

| Modus | Ideal für | Was Sie benötigen |
| - | - | - |
| **UniLink** | Schnelle Tests | Nur die UniLink-URL aus Ihrem Workflow |
| **API Session** (empfohlen) | Produktion | Workflow-ID + API-Schlüssel |

**Für UniLink:** Setzen Sie den Modus auf „UniLink“, fügen Sie Ihre URL ein und speichern Sie.

**Für API Session:** Setzen Sie den Modus auf „API Session“, geben Sie Ihre Workflow-ID und Ihren API-Schlüssel ein und speichern Sie.

> [!NOTE]
>
> Der API-Schlüssel wird sicher auf Ihrem Server gespeichert und für Besucher niemals offengelegt.

### Sitzungsoptionen konfigurieren (nur im API-Modus)

Dies sind optionale Einstellungen, die Ihnen mehr Kontrolle bieten:

* **Anbieterdaten** — Verknüpft jede Verifizierung mit einem bestimmten Benutzer in Ihrem Didit-Dashboard, sodass Sie nachverfolgen können, wer sich verifiziert hat. Standard ist die WordPress-Benutzer-ID (z. B. `wp-42`). Sie können auch die Benutzer-E-Mail, ein benutzerdefiniertes Präfix wählen oder die Option deaktivieren.
* **Callback-URL** — Eine Seite auf Ihrer Website, zu der Benutzer nach der Verifizierung weitergeleitet werden. Didit hängt `verificationSessionId` und `status` als Abfrageparameter an.
* **Callback-Methode** — Welches Gerät die Weiterleitung verarbeitet: `initiator` (das Gerät, das gestartet hat), `completer` (das Gerät, das abschließt) oder `both`.
* **Sprache** — Wählen Sie aus 54 Sprachen oder lassen Sie die Sprache automatisch anhand des Browsers erkennen.

### Anzeigeoptionen konfigurieren

* **Anzeigemodus** — Modal (Popup-Overlay) oder Eingebettet (inline auf der Seite)
* **Schließen-Schaltfläche** — Die Schließen-Schaltfläche (X) im Modal anzeigen oder ausblenden
* **Schließen bestätigen** — Einen Bestätigungsdialog („Sind Sie sicher?“) beim Schließen anzeigen
* **Automatisch schließen** — Das Modal nach Abschluss der Verifizierung automatisch schließen
* **Debug-Protokollierung** — SDK-Ereignisse in der Browser-Konsole protokollieren (zur Fehlerbehebung)

### Schaltfläche anpassen

Unter **Erscheinungsbild der Schaltfläche** können Sie Folgendes anpassen:

* Text der Schaltfläche und Text bei erfolgreichem Abschluss
* Hintergrundfarbe und Textfarbe
* Rahmenradius, Innenabstand und Schriftgröße

Eine Live-Vorschau wird in Echtzeit aktualisiert, sobald Sie Werte ändern.

## Schritt 4: Verifizierung zu Ihrer Website hinzufügen

### Für WooCommerce-Shops

1. Aktivieren Sie unter **Einstellungen → Didit Verify → WooCommerce** die Option **Identitätsverifizierung beim Checkout voraussetzen**
2. Wählen Sie aus, wo der Verifizierungsabschnitt angezeigt werden soll:
   * Am Anfang der Checkout-Seite
   * Nach den Rechnungsdetails
   * Nach den Bestellhinweisen
   * Vor „Zahlungspflichtig bestellen“ (empfohlen)
3. Wählen Sie optional einen **Produktumfang**: Alle Produkte (Standard), nur ausgewählte Produkte oder alle Produkte außer den ausgewählten Produkten.
   Markieren Sie Produkte mit der Checkbox **Didit-Verifizierung** unter **Produktdaten → Erweitert** im Produkteditor.
   Befindet sich mindestens ein Produkt im Warenkorb, das eine Verifizierung erfordert, wird die Verifizierung vorausgesetzt.
   Der Umfang gilt sowohl für den Checkout-Modus als auch für den Modus nach dem Kauf.
4. Passen Sie optional den **Abschnittstitel**, die **Checkout-Nachricht** und die **Nachricht nach dem Kauf** unter **Einstellungen → Didit Verify → WooCommerce** an; leere Felder verwenden den Standardtext
5. Aktivieren Sie optional **Rechnungsdaten senden**, um Name, E-Mail-Adresse, Telefonnummer und Adresse des Kunden automatisch an Didit zu übermitteln, damit diese vorausgefüllt und gegengeprüft werden können

> [!NOTE]
>
> Ländercodes werden automatisch aus dem Alpha-2-Format von WooCommerce in das von Didit benötigte Alpha-3-Format konvertiert.

Kunden müssen eine vom Server bestätigte Entscheidung mit dem Status **„Genehmigt“** erhalten, bevor sie eine Bestellung aufgeben können.
Dies gilt sowohl für den klassischen als auch für den blockbasierten Checkout.
Das Plugin prüft, ob die Sitzung zum aktuellen Käufer gehört und nicht bereits für eine andere Bestellung verwendet wurde.
Die Sitzungs-ID wird zur Referenz in der Bestellung gespeichert.

Wenn Sie **Nach dem Kauf** wählen, bleibt die Bestellung zurückgestellt, bis der Server die Genehmigung bestätigt.
Gastkunden können sich über die Bestellseite mit dem gültigen Bestellschlüssel der Bestellung verifizieren.
Konfigurieren Sie die unter **Einstellungen → Didit Verify** angezeigte Webhook-URL und das gemeinsame Geheimnis, damit signierte Statusaktualisierungen genehmigte Bestellungen freigeben können.

### Für jede WordPress-Seite

Fügen Sie diesen Shortcode zu einer beliebigen Seite oder einem Beitrag hinzu:

```
[didit_verify]
```

Es erscheint eine Verifizierungsschaltfläche, die gemäß Ihren Einstellungen unter „Erscheinungsbild der Schaltfläche“ gestaltet ist.

Sie können den Text für einzelne Seiten überschreiben:

```
[didit_verify text="Verify Now" success_text="Done!"]
```

Oder erzwingen Sie den eingebetteten Modus auf einer bestimmten Seite:

```
[didit_verify mode="embedded"]
```

## Schritt 5: Inhalte auf verifizierte Benutzer beschränken (optional)

Inhalte basierend auf dem Verifizierungsstatus anzeigen oder ausblenden:

Inhaltsbeschränkungen erfordern einen angemeldeten Benutzer und eine über den API-Sitzungsmodus bestätigte Genehmigung.
Browser-Callbacks und Weiterleitungs-Query-Parameter gewähren keinen Zugriff.

```
[didit_gate]
This content is only visible to verified users.
[/didit_gate]
```

Nicht verifizierte Benutzer sehen eine Nachricht und eine Verifizierungsschaltfläche. Sie können die Nachricht anpassen:

```
[didit_gate message="Please verify to continue."]Secret content here.[/didit_gate]
```

Den Verifizierungsstatus des Benutzers an beliebiger Stelle anzeigen:

```
[didit_status]
```

Zeigt „Identity Verified“ oder „Not Verified“ für den angemeldeten Benutzer an.

## Verifizierungsstatus prüfen

| Wo | Wie |
| - | - |
| **Admin-Panel** | **Benutzer → Alle Benutzer** — eine „Didit“-Spalte zeigt ✓ für verifizierte Benutzer |
| **WooCommerce-Bestellungen** | Die Didit-Sitzungs-ID erscheint in den Bestelldetails |
| **Shortcode** | `[didit_status]` zeigt den Status auf jeder beliebigen Seite an |

## Fehlerbehebung

| Problem | Lösung |
| - | - |
| „Creating session...“ bleibt hängen | Überprüfen Sie unter **Einstellungen → Didit Verify**, ob Ihre Workflow-ID und Ihr API-Schlüssel korrekt sind |
| Modal öffnet sich nicht | Stellen Sie sicher, dass die Seite `[didit_verify]` enthält oder die WooCommerce-Checkout-Verifizierung aktiviert ist |
| Verifizierungs-UI in falscher Sprache | Ändern Sie die Einstellung **Sprache** in den **Sitzungsoptionen** |
| Debugging erforderlich | Aktivieren Sie **Debug Logging** in den Anzeigeoptionen und öffnen Sie die Browser-Konsole (F12), um SDK-Ereignisse zu sehen |

## Sicherheit

Das Plugin fungiert als sicherer Backend-Proxy. Ihr API-Schlüssel gelangt niemals in den Browser. Jede Sitzungsanfrage wird geschützt durch:

1. **CSRF-Nonce** — Anfragen müssen von Ihrer WordPress-Website stammen
2. **Anmeldeerfordernis** — nur registrierte Benutzer können Sitzungen erstellen (konfigurierbar)
3. **Rate-Limiting** — 10 Sitzungen/Stunde pro Benutzer, 3/Stunde pro Adresse für Gäste
4. **Eingabebereinigung** — alle Felder werden serverseitig auf eine Positivliste gesetzt und bereinigt

Die Sitzungserstellung verknüpft die Verifizierung mit dem aktuellen Käufer oder der aktuellen Bestellung.
Das Plugin bestätigt Entscheidungen mit der Didit-API oder einem verifizierten Webhook, bevor ein Benutzer oder eine Bestellung als genehmigt markiert wird.
Beim Gast-Checkout kann eine Sitzung erstellt werden, wenn eine Verifizierung erforderlich ist, selbst wenn das allgemeine Anmeldeerfordernis aktiviert ist.
Die Verifizierung nach dem Kauf erfordert zudem einen gültigen Bestellschlüssel.

***

## Für Entwickler

### PHP-Hooks

Das Plugin löst WordPress-Aktionen aus, in die sich andere Plugins oder Themes einklinken können:

```php theme={null}
// When a user completes verification
add_action('didit_verification_completed', function ($user_id, $session_id, $status) {
    // Update CRM, send email, grant access, etc.
}, 10, 3);

// When a user cancels verification
add_action('didit_verification_cancelled', function ($user_id, $session_id) {
    // Log cancellation
}, 10, 2);

// When a session is created server-side
add_action('didit_session_created', function ($url, $user_id, $vendor_data) {
    // Log, notify, etc.
}, 10, 3);
```

### JavaScript-Ereignis

Ein DOM-Ereignis wird ausgelöst, wenn die Verifizierung abgeschlossen ist:

```javascript theme={null}
document.addEventListener('didit:complete', function (e) {
    console.log('Result:', e.detail); // { type, session }
});
```

### Verifizierung in PHP prüfen

```php theme={null}
$is_verified = Didit_Verify::init()->is_user_verified($user_id);
```

Verwenden Sie diesen Helper, um die serverseitige Bestätigungsprüfung einzubeziehen.
Gewähren Sie den Zugriff nicht allein anhand veralteter Benutzermetadaten oder des browserseitigen Ereignisses `didit:complete`.

## Ressourcen

* [Plugin-Quellcode (GitHub)](https://github.com/didit-protocol/plugin-wordpress)
* [Didit-API-Dokumentation](https://docs.didit.me/de.md)
* [Didit Console](https://business.didit.me)
* [API-Referenz zur Sitzungserstellung](https://docs.didit.me/de/sessions-api/create-session.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.