> ## 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.

# Plugin KYC WordPress : vérification de l'âge WooCommerce

> Plugin Didit pour WordPress et WooCommerce : identité, âge et KYC sans code. Dès $0.33 par KYC complet, $10 gratuits/mois, sans engagement.

Ajoutez la vérification d'identité Didit et le contrôle de l'âge à n'importe quel site WordPress ou boutique WooCommerce. L'extension fonctionne comme un proxy backend sécurisé : votre clé API reste sur le serveur, et elle fournit des shortcodes, un contrôle du paiement WooCommerce et des hooks développeur, afin d'intégrer la vérification sans écrire de JavaScript.

## Prérequis

* WordPress 6.0 ou version ultérieure
* PHP 7.4 ou version ultérieure
* Un compte [Didit Console](https://business.didit.me)

## Étape 1 : Obtenez vos identifiants Didit

1. Créez un compte ou connectez-vous sur **[business.didit.me](https://business.didit.me)**
2. Accédez à **API et Webhooks** et copiez votre **Clé API**
3. Accédez à **Workflows**, créez ou sélectionnez un workflow, puis copiez l'**ID du workflow**

> [!NOTE]
>
> Vous pouvez utiliser une **URL UniLink** pour prévisualiser le parcours de vérification sans clés API.
> Utilisez le mode **Session API** avec une clé API et un ID de workflow pour les contrôles de contenu et les exigences de vérification WooCommerce.
> Une finalisation UniLink seule ne débloque pas le contenu protégé et n'approuve pas une commande.

## Étape 2 : Installez l'extension

1. Téléchargez `didit-verify-0.3.4.zip` depuis la **[version 0.3.4](https://github.com/didit-protocol/plugin-wordpress/releases/tag/v0.3.4)**
2. Dans l'administration de WordPress, accédez à **Extensions → Ajouter → Téléverser une extension**
3. Choisissez le fichier ZIP téléchargé, puis cliquez sur **Installer maintenant**
4. Cliquez sur **Activer**

> [!NOTE]
>
> Didit Verify est également référencée sur [WordPress.org](https://wordpress.org/plugins/didit-verify/).
> Vérifiez la version avant l'installation : utilisez la 0.3.4 ou une version ultérieure pour bénéficier du comportement de vérification confirmé par le serveur décrit ici.
> À partir de la 0.3.4, l'accès au contenu protégé est révoqué lorsqu'une vérification approuvée est ensuite refusée, expire ou repasse en examen.
> Si le répertoire propose une version plus ancienne, installez le ZIP de version ci-dessus.

> [!WARNING]
>
> Après une mise à niveau depuis une version antérieure à la 0.3.2, les utilisateurs dont l'approbation précédente n'a pas été confirmée par le serveur doivent effectuer une nouvelle vérification avant d'accéder au contenu protégé ou de finaliser un paiement qui exige une vérification.

## Étape 3 : Configurez l'extension

Accédez à **Paramètres → Didit Verify**.

### Choisissez votre mode

| Mode | Idéal pour | Ce dont vous avez besoin |
| - | - | - |
| **UniLink** | Tests rapides | Uniquement l'URL UniLink de votre workflow |
| **Session API** (recommandé) | Usage en production | ID du workflow + clé API |

**Pour UniLink :** définissez le mode sur « UniLink », collez votre URL, puis enregistrez.

**Pour Session API :** définissez le mode sur « Session API », saisissez l'ID de votre workflow et votre clé API, puis enregistrez.

> [!NOTE]
>
> La clé API est stockée de manière sécurisée sur votre serveur et n'est jamais exposée aux visiteurs.

### Configurez les options de session (mode API uniquement)

Ces paramètres facultatifs vous donnent un contrôle plus fin :

* **Données du vendeur** : lie chaque vérification à un utilisateur précis dans votre tableau de bord Didit, afin de savoir qui s'est vérifié. Par défaut, il s'agit de l'ID utilisateur WordPress (par exemple `wp-42`). Vous pouvez aussi choisir l'e-mail de l'utilisateur, un préfixe personnalisé ou désactiver cette option.
* **URL de rappel** : une page de votre site vers laquelle les utilisateurs sont redirigés après la vérification. Didit ajoute `verificationSessionId` et `status` comme paramètres de requête.
* **Méthode de rappel** : l'appareil qui gère la redirection : `initiator` (l'appareil qui a démarré la session), `completer` (l'appareil qui la termine) ou `both` (les deux).
* **Langue** : choisissez parmi 54 langues ou laissez la détection automatique à partir du navigateur.

### Configurez les options d'affichage

* **Mode d'affichage** : Modal (fenêtre superposée) ou Intégré (directement dans la page)
* **Bouton de fermeture** : affiche ou masque la croix sur la fenêtre modale
* **Confirmation de sortie** : affiche une boîte de dialogue « Êtes-vous sûr ? » lors de la fermeture
* **Fermeture automatique** : ferme automatiquement la fenêtre modale lorsque la vérification se termine
* **Journalisation de débogage** : consigne les événements du SDK dans la console du navigateur (pour le dépannage)

### Personnalisez le bouton

Sous **Apparence du bouton**, vous pouvez modifier :

* le texte du bouton et le texte affiché en cas de réussite
* la couleur d'arrière-plan et la couleur du texte
* le rayon de bordure, l'espacement intérieur et la taille de police

Un aperçu en direct se met à jour en temps réel à mesure que vous modifiez les valeurs.

## Étape 4 : Ajoutez la vérification à votre site

### Pour les boutiques WooCommerce

1. Dans **Paramètres → Didit Verify → WooCommerce**, cochez **Exiger la vérification d'identité au paiement**
2. Choisissez l'emplacement de la section de vérification :
   * En haut de la page de paiement
   * Après les détails de facturation
   * Après les notes de commande
   * Avant « Passer la commande » (recommandé)
3. Vous pouvez éventuellement choisir un **Périmètre des produits** : tous les produits (par défaut), uniquement les produits sélectionnés, ou tous les produits sauf les produits sélectionnés.
   Marquez les produits avec la case **Vérification Didit** sous **Données produit → Avancé** dans l'éditeur de produit.
   Un panier contenant au moins un produit nécessitant une vérification exige cette vérification.
   Le périmètre s'applique à la fois au paiement et au mode d'après-achat.
4. Vous pouvez modifier le **Titre de section**, le **Message de paiement** et le **Message après achat** sous **Paramètres → Didit Verify → WooCommerce** ; les champs vides utilisent le texte par défaut.
5. Vous pouvez activer **Envoyer les données de facturation** pour transmettre automatiquement le nom, l'e-mail, le téléphone et l'adresse du client à Didit, afin de préremplir les champs et de procéder à une validation croisée.

> [!NOTE]
>
> Les codes pays sont automatiquement convertis du format alpha-2 de WooCommerce vers le format alpha-3 requis par Didit.

Les clients doivent recevoir une décision « **Approuvé** » confirmée par le serveur avant de pouvoir passer une commande.
Cela s'applique au paiement classique comme au paiement par blocs.
Le plugin vérifie que la session appartient à l'acheteur actuel et qu'elle n'a pas déjà été utilisée pour une autre commande.
L'ID de session est enregistré dans la commande à des fins de référence.

Si vous choisissez **Après achat**, la commande reste en attente jusqu'à ce que le serveur confirme l'approbation.
Les clients invités peuvent se vérifier depuis la page de la commande à l'aide de sa clé de commande valide.
Configurez l'URL du webhook et le secret affichés dans **Paramètres → Didit Verify** afin que les mises à jour de statut signées puissent libérer les commandes approuvées.

### Pour n'importe quelle page WordPress

Ajoutez ce shortcode à n'importe quelle page ou article :

```
[didit_verify]
```

Un bouton de vérification apparaîtra, avec le style défini dans vos paramètres d'Apparence du bouton.

Vous pouvez remplacer le texte page par page :

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

Ou forcer le mode intégré sur une page précise :

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

## Étape 5 : Restreindre le contenu aux utilisateurs vérifiés (facultatif)

Afficher ou masquer du contenu selon l'état de vérification :

Les restrictions de contenu exigent un utilisateur connecté et une approbation confirmée via le mode API Session.
Les callbacks du navigateur et les paramètres de requête de redirection n'accordent pas d'accès.

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

Les utilisateurs non vérifiés voient un message et un bouton de vérification. Vous pouvez personnaliser le message :

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

Affichez l'état de vérification de l'utilisateur à n'importe quel endroit :

```
[didit_status]
```

Affiche « Identité vérifiée » ou « Non vérifiée » pour l'utilisateur connecté.

## Vérifier l'état de la vérification

| Emplacement | Méthode |
| - | - |
| **Panneau d'administration** | **Users → All Users** : une colonne « Didit » affiche ✓ pour les utilisateurs vérifiés |
| **Commandes WooCommerce** | L'identifiant de session Didit apparaît dans les détails de la commande |
| **Shortcode** | `[didit_status]` affiche l'état sur n'importe quelle page |

## Dépannage

| Problème | Solution |
| - | - |
| « Création de la session... » ne se termine pas | Vérifiez que votre ID de workflow et votre clé API sont corrects dans **Settings → Didit Verify** |
| La modale ne s'ouvre pas | Vérifiez que la page contient `[didit_verify]` ou que la vérification au paiement WooCommerce est activée |
| Interface de vérification dans la mauvaise langue | Modifiez le paramètre **Langue** dans **Session Options** |
| Besoin de déboguer | Activez **Debug Logging** dans **Display Options**, puis ouvrez la console du navigateur (F12) pour voir les événements du SDK |

## Sécurité

Le plugin agit comme un proxy sécurisé côté serveur. Votre clé API n'atteint jamais le navigateur. Chaque requête de session est protégée par :

1. **Nonce CSRF** : les requêtes doivent provenir de votre site WordPress
2. **Exigence de connexion** : seuls les utilisateurs enregistrés peuvent créer des sessions (configurable)
3. **Limitation de débit** : 10 sessions/heure par utilisateur, 3/heure par IP pour les invités
4. **Assainissement des entrées** : tous les champs sont filtrés par liste blanche et assainis côté serveur

La création de session lie la vérification à l'acheteur ou à la commande en cours.
Le plugin confirme les décisions auprès de l'API Didit ou via un webhook vérifié avant de marquer un utilisateur ou une commande comme approuvé.
Le passage en caisse en tant qu'invité peut créer une session lorsque la vérification est requise, même si l'exigence de connexion générale est activée.
La vérification après achat exige également une clé de commande valide.

***

## Pour les développeurs

### Hooks PHP

Le plugin déclenche des actions WordPress auxquelles d'autres plugins ou thèmes peuvent se connecter :

```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);
```

### Événement JavaScript

Un événement DOM est émis lorsque la vérification se termine :

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

### Vérifier la vérification en PHP

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

Utilisez cette fonction utilitaire pour inclure le contrôle de confirmation côté serveur.
N'accordez pas d'accès à partir des métadonnées utilisateur héritées ou du seul événement `didit:complete` du navigateur.

## Ressources

* [Code source du plugin (GitHub)](https://github.com/didit-protocol/plugin-wordpress)
* [Documentation de l'API Didit](https://docs.didit.me/fr.md)
* [Console Didit](https://business.didit.me)
* [Référence de l'API Create Session](https://docs.didit.me/fr/sessions-api/create-session.md)


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