> ## 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: verificació d'edat WooCommerce

> Plugin de Didit per a WordPress i WooCommerce: verificació d'identitat i KYC sense codi. Des de $0.33 per KYC complet; $10 gratis al mes.

Afegeix la verificació d'identitat de Didit i el control d'edat a qualsevol lloc de WordPress o botiga de WooCommerce. El plugin funciona com un proxy segur al servidor: la teva clau d'API es queda al servidor. A més, inclou shortcodes, un control de pagament per a WooCommerce i hooks per a desenvolupadors, de manera que pots incorporar la verificació sense escriure JavaScript.

## Requisits previs

* WordPress 6.0 o superior
* PHP 7.4 o superior
* Un compte de la [Consola de Didit](https://business.didit.me)

## Pas 1: obtén les credencials de Didit

1. Registra't o inicia sessió a **[business.didit.me](https://business.didit.me)**
2. Ves a **API & Webhooks** i copia la teva **API Key**
3. Ves a **Workflows**, crea o selecciona un flux de treball i copia el **Workflow ID**

> [!NOTE]
>
> Pots utilitzar una **URL d'UniLink** per previsualitzar el flux de verificació sense claus d'API.
> Fes servir el mode **API Session** amb una clau d'API i un ID del flux de treball per als controls de contingut i els requisits de verificació de WooCommerce.
> La finalització d'UniLink per si sola no desbloqueja el contingut protegit ni aprova una comanda.

## Pas 2: instal·la el plugin

1. Descarrega `didit-verify-0.3.4.zip` des de la **[versió 0.3.4](https://github.com/didit-protocol/plugin-wordpress/releases/tag/v0.3.4)**
2. Al panell d'administració de WordPress, ves a **Complements → Afegeix nou → Puja un complement**
3. Tria el fitxer ZIP descarregat i fes clic a **Instal·la ara**
4. Fes clic a **Activa**

> [!NOTE]
>
> Didit Verify també apareix a [WordPress.org](https://wordpress.org/plugins/didit-verify/).
> Comprova la versió abans d'instal·lar-lo: fes servir la 0.3.4 o una de posterior per al comportament de verificació confirmat pel servidor que es descriu aquí.
> Des de la 0.3.4, l'accés al contingut protegit es revoca quan una verificació aprovada es rebutja més tard, caduca o torna a revisió.
> Si el directori té una versió anterior, instal·la el ZIP de la versió indicada més amunt.

> [!WARNING]
>
> Després d'actualitzar des d'una versió anterior a la 0.3.2, els usuaris amb una aprovació anterior no confirmada pel servidor han de tornar a verificar-se abans d'accedir al contingut protegit o de completar un procés de compra que requereixi verificació.

## Pas 3: configura el plugin

Ves a **Configuració → Didit Verify**.

### Tria el mode

| Mode | Ideal per a | Què necessites |
| - | - | - |
| **UniLink** | Proves ràpides | Només la URL d'UniLink del teu flux de treball |
| **API Session** (recomanat) | Ús en producció | Workflow ID + API Key |

**Per a UniLink:** estableix el Mode a "UniLink", enganxa la teva URL i desa.

**Per a API Session:** estableix el Mode a "API Session", introdueix el teu Workflow ID i la teva API Key, i desa.

> [!NOTE]
>
> La clau d'API s'emmagatzema de manera segura al teu servidor i mai no es mostra als visitants.

### Configura les opcions de sessió (només en mode API)

Són opcions optatives que et donen més control:

* **Vendor Data**: vincula cada verificació a un usuari concret del teu tauler de Didit, perquè puguis saber qui s'ha verificat. El valor per defecte és l'ID d'usuari de WordPress (per exemple, `wp-42`). També pots triar l'adreça de correu electrònic de l'usuari, un prefix personalitzat o desactivar-ho.
* **Callback URL**: una pàgina del teu lloc a la qual es redirigeixen els usuaris després de la verificació. Didit afegeix `verificationSessionId` i `status` com a paràmetres de consulta.
* **Callback Method**: quin dispositiu gestiona la redirecció: `initiator` (el dispositiu que l'ha iniciat), `completer` (el dispositiu que la completa) o `both` (tots dos).
* **Language**: tria entre 54 idiomes o deixa que es detecti automàticament des del navegador.

### Configura les opcions de visualització

* **Display Mode**: Modal (finestra emergent superposada) o Embedded (integrada a la pàgina)
* **Close Button**: mostra o amaga el botó X del modal
* **Exit Confirmation**: mostra un diàleg "Estàs segur?" en tancar
* **Auto-close**: tanca automàticament el modal quan es completa la verificació
* **Debug Logging**: registra els esdeveniments del SDK a la consola del navegador (per resoldre problemes)

### Personalitza el botó

A **Button Appearance**, pots canviar:

* El text del botó i el text d'èxit
* El color de fons i el color del text
* El radi de la vora, el farciment i la mida de la lletra

Una previsualització en directe s'actualitza en temps real quan canvies els valors.

## Pas 4: afegeix la verificació al teu lloc

### Per a botigues WooCommerce

1. A **Configuració → Didit Verify → WooCommerce**, marca **Require identity verification at checkout**
2. Tria on apareix la secció de verificació:
   * A la part superior de la pàgina de pagament
   * Després de les dades de facturació
   * Després de les notes de la comanda
   * Abans de "Place Order" (recomanat)
3. Opcionalment, tria un **Product Scope**: tots els productes (el valor per defecte), només els productes seleccionats, o tots els productes excepte els seleccionats.
   Marca els productes amb la casella **Didit verification** a **Product data → Advanced** de l'editor de productes.
   Un carret que contingui almenys un producte que necessiti verificació la requereix.
   L'abast s'aplica tant al pagament com als modes posteriors a la compra.
4. Opcionalment, edita el **Section Title**, el **Checkout Message** i el **Post-purchase Message** a **Configuració → Didit Verify → WooCommerce**; els camps buits fan servir el text per defecte
5. Opcionalment, activa **Send Billing Data** per enviar automàticament a Didit el nom, el correu electrònic, el telèfon i l'adreça del client, per omplir-los prèviament i validar-los creuadament

> [!NOTE]
>
> Els codis de país es converteixen automàticament del format alpha-2 de WooCommerce al format alpha-3 que requereix Didit.

Els clients han de rebre una decisió **Approved** confirmada pel servidor abans de poder fer una comanda.
Això s'aplica tant al pagament clàssic com al pagament per blocs.
El plugin comprova que la sessió pertany al comprador actual i que no s'ha utilitzat ja per a una altra comanda.
L'ID de la sessió es desa a la comanda com a referència.

Si tries **After purchase**, la comanda queda en espera fins que el servidor confirmi l'aprovació.
Els clients convidats es poden verificar des de la pàgina de la comanda fent servir la seva clau de comanda vàlida.
Configura la URL i el secret del webhook que es mostren a **Configuració → Didit Verify** perquè les actualitzacions d'estat signades puguin alliberar les comandes aprovades.

### Per a qualsevol pàgina de WordPress

Afegeix aquest shortcode a qualsevol pàgina o entrada:

```
[didit_verify]
```

Apareixerà un botó de verificació amb l'estil definit a la configuració de Button Appearance.

Pots substituir el text a cada pàgina:

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

O forçar el mode integrat en una pàgina concreta:

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

## Pas 5: Restringeix el contingut a usuaris verificats (opcional)

Mostra o amaga el contingut segons l'estat de verificació:

Les restriccions de contingut requereixen un usuari que hagi iniciat sessió i una aprovació confirmada mitjançant el mode API Session.
Els callbacks del navegador i els paràmetres de consulta de redirecció no concedeixen accés.

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

Els usuaris no verificats veuen un missatge i un botó de verificació. Pots personalitzar el missatge:

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

Mostra l'estat de verificació de l'usuari en qualsevol lloc:

```
[didit_status]
```

Mostra "Identitat verificada" o "No verificada" per a l'usuari que ha iniciat sessió.

## Comprovació de l'estat de verificació

| On | Com |
| - | - |
| **Panell d'administració** | **Users → All Users** — una columna "Didit" mostra ✓ per als usuaris verificats |
| **Comandes de WooCommerce** | L'ID de sessió de Didit apareix als detalls de la comanda |
| **Shortcode** | `[didit_status]` mostra l'estat a qualsevol pàgina |

## Resolució de problemes

| Incidència | Solució |
| - | - |
| "Creating session..." es queda penjat | Comprova que el teu Workflow ID i la teva clau d'API són correctes a **Configuració → Didit Verify** |
| El modal no s'obre | Assegura't que la pàgina contingui `[didit_verify]` o que la verificació del procés de pagament de WooCommerce estigui activada |
| La interfície de verificació està en un idioma incorrecte | Canvia la configuració d'**Idioma** a **Session Options** |
| Cal depurar | Activa **Debug Logging** a **Display Options** i, després, obre la consola del navegador (F12) per veure els esdeveniments de l'SDK |

## Seguretat

El plugin actua com a proxy de backend segur. La teva clau d'API mai arriba al navegador. Cada sol·licitud de sessió està protegida per:

1. **CSRF nonce** — les sol·licituds han de procedir del teu lloc de WordPress
2. **Requisit d'inici de sessió** — només els usuaris registrats poden crear sessions (configurable)
3. **Límit de freqüència** — 10 sessions/hora per usuari, 3/hora per adreça per als visitants
4. **Sanitització de l'entrada** — tots els camps s'inclouen en una llista blanca i es sanititzen al servidor

La creació de la sessió vincula la verificació al comprador o a la comanda actual.
El plugin confirma les decisions amb l'API de Didit o amb un webhook verificat abans d'aprovar l'usuari o la comanda.
El procés de pagament com a visitant pot crear una sessió quan es requereix verificació, fins i tot si el requisit general d'inici de sessió està activat.
La verificació posterior a la compra també requereix una clau de comanda vàlida.

***

## Per a desenvolupadors

### Hooks de PHP

El plugin dispara accions de WordPress a les quals altres plugins o temes es poden connectar:

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

### Esdeveniment de JavaScript

Es dispara un esdeveniment del DOM quan acaba la verificació:

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

### Comprovar la verificació en PHP

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

Fes servir aquesta funció auxiliar per incloure la comprovació de la confirmació del servidor.
No concedeixis accés només a partir de les metadades antigues de l'usuari o de l'esdeveniment `didit:complete` del navegador.

## Recursos

* [Codi font del plugin (GitHub)](https://github.com/didit-protocol/plugin-wordpress)
* [Documentació de l'API de Didit](https://docs.didit.me/ca.md)
* [Didit Console](https://business.didit.me)
* [Referència de l'API Create Session](https://docs.didit.me/ca/sessions-api/create-session.md)


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