> ## 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: Cek Usia WooCommerce

> Plugin KYC tanpa kode untuk WordPress & WooCommerce dari Didit. Mulai $0.33 per KYC penuh, $10 gratis/bulan, tanpa kontrak.

Tambahkan Verifikasi Identitas Didit dan pembatasan usia ke situs WordPress atau toko WooCommerce mana pun. Plugin ini bekerja sebagai proksi backend yang aman: kunci API Anda tetap berada di server. Plugin juga menyediakan shortcode, gerbang checkout WooCommerce, dan hook pengembang sehingga Anda dapat menambahkan verifikasi tanpa menulis JavaScript.

## Prasyarat

* WordPress 6.0 atau lebih baru
* PHP 7.4 atau lebih baru
* Akun [Didit Console](https://business.didit.me)

## Langkah 1: Dapatkan kredensial Didit Anda

1. Daftar atau masuk di **[business.didit.me](https://business.didit.me)**
2. Buka **API & Webhooks** dan salin **Kunci API** Anda
3. Buka **Alur kerja**, buat atau pilih alur kerja, lalu salin **ID Alur Kerja**

> [!NOTE]
>
> Anda dapat menggunakan **URL UniLink** untuk melihat pratinjau alur verifikasi tanpa kunci API.
> Gunakan mode **API Session** dengan kunci API dan ID alur kerja untuk gerbang konten dan persyaratan verifikasi WooCommerce.
> Menyelesaikan UniLink saja tidak membuka konten yang dilindungi atau menyetujui pesanan.

## Langkah 2: Pasang plugin

1. Unduh `didit-verify-0.3.4.zip` dari **[rilis 0.3.4](https://github.com/didit-protocol/plugin-wordpress/releases/tag/v0.3.4)**
2. Di admin WordPress Anda, buka **Plugins → Add New → Upload Plugin**
3. Pilih file ZIP yang sudah diunduh lalu klik **Install Now**
4. Klik **Aktifkan**

> [!NOTE]
>
> Didit Verify juga tercantum di [WordPress.org](https://wordpress.org/plugins/didit-verify/).
> Periksa versinya sebelum memasang: gunakan 0.3.4 atau yang lebih baru untuk perilaku verifikasi dengan konfirmasi server seperti yang dijelaskan di sini.
> Mulai dari 0.3.4, akses ke konten yang dilindungi dicabut ketika verifikasi yang disetujui kemudian ditolak, kedaluwarsa, atau kembali ke peninjauan.
> Jika direktori memuat versi yang lebih lama, pasang ZIP rilis di atas.

> [!WARNING]
>
> Setelah memperbarui dari versi yang lebih lama dari 0.3.2, pengguna yang persetujuan sebelumnya tidak dikonfirmasi oleh server harus memverifikasi ulang sebelum mengakses konten yang dilindungi atau menyelesaikan checkout yang memerlukan verifikasi.

## Langkah 3: Konfigurasikan plugin

Buka **Settings → Didit Verify**.

### Pilih mode Anda

| Mode | Paling cocok untuk | Yang Anda butuhkan |
| - | - | - |
| **UniLink** | Pengujian cepat | Hanya URL UniLink dari alur kerja Anda |
| **API Session** (direkomendasikan) | Penggunaan produksi | ID Alur Kerja + Kunci API |

**Untuk UniLink:** Atur Mode ke "UniLink", tempel URL Anda, lalu simpan.

**Untuk API Session:** Atur Mode ke "API Session", masukkan ID Alur Kerja dan Kunci API Anda, lalu simpan.

> [!NOTE]
>
> Kunci API disimpan dengan aman di server Anda dan tidak pernah ditampilkan kepada pengunjung.

### Konfigurasikan opsi sesi (hanya mode API)

Berikut pengaturan opsional yang memberi Anda kontrol lebih besar:

* **Data Vendor**: Menautkan setiap verifikasi ke pengguna tertentu di dasbor Didit Anda, sehingga Anda dapat melacak siapa yang telah diverifikasi. Default-nya adalah WordPress User ID (misalnya `wp-42`). Anda juga dapat memilih User Email, awalan kustom, atau menonaktifkannya.
* **URL callback**: Halaman di situs Anda tempat pengguna dialihkan setelah verifikasi. Didit menambahkan `verificationSessionId` dan `status` sebagai parameter kueri.
* **Callback Method**: Perangkat mana yang menangani pengalihan: `initiator` (perangkat yang memulai), `completer` (perangkat yang menyelesaikan), atau `both`.
* **Bahasa**: Pilih dari 54 bahasa atau biarkan otomatis mendeteksi dari peramban.

### Konfigurasikan opsi tampilan

* **Display Mode**: Modal (overlay pop-up) atau Embedded (sebaris di halaman)
* **Close Button**: Tampilkan atau sembunyikan tombol X pada modal
* **Exit Confirmation**: Tampilkan dialog "Anda yakin?" saat menutup
* **Tutup otomatis**: Menutup modal secara otomatis ketika verifikasi selesai
* **Debug Logging**: Mencatat event SDK ke konsol peramban (untuk pemecahan masalah)

### Sesuaikan tombol

Di bawah **Button Appearance**, Anda dapat mengubah:

* Teks tombol dan teks sukses
* Warna latar belakang dan warna teks
* Radius border, padding, dan ukuran font

Pratinjau langsung akan diperbarui secara real time saat Anda mengubah nilai.

## Langkah 4: Tambahkan verifikasi ke situs Anda

### Untuk toko WooCommerce

1. Di **Settings → Didit Verify → WooCommerce**, centang **Require identity verification at checkout**
2. Pilih di mana bagian verifikasi muncul:
   * Bagian atas halaman checkout
   * Setelah rincian penagihan
   * Setelah catatan pesanan
   * Sebelum "Place Order" (direkomendasikan)
3. Secara opsional pilih **Product Scope**: semua produk (default), hanya produk yang dipilih, atau semua produk kecuali produk yang dipilih.
   Tandai produk dengan kotak centang **Didit verification** di bawah **Product data → Advanced** pada editor produk.
   Keranjang yang berisi setidaknya satu produk yang memerlukan verifikasi akan mewajibkannya.
   Cakupan ini berlaku untuk mode checkout maupun mode setelah pembelian.
4. Secara opsional ubah **Judul Bagian**, **Checkout Message** dan **Post-purchase Message** di bawah **Settings → Didit Verify → WooCommerce**; kolom yang kosong menggunakan teks default
5. Secara opsional aktifkan **Send Billing Data** untuk mengirim otomatis nama, email, telepon, dan alamat pelanggan ke Didit untuk pengisian otomatis dan validasi silang

> [!NOTE]
>
> Kode negara otomatis dikonversi dari format alpha-2 WooCommerce ke format alpha-3 yang diwajibkan Didit.

Pelanggan harus menerima keputusan **Disetujui** yang dikonfirmasi server sebelum dapat membuat pesanan.
Ini berlaku untuk checkout klasik maupun checkout blok.
Plugin memeriksa bahwa sesi tersebut milik pembeli saat ini dan belum pernah digunakan untuk pesanan lain.
ID sesi disimpan ke pesanan sebagai referensi.

Jika Anda memilih **After purchase**, pesanan tetap ditahan sampai server mengonfirmasi persetujuan.
Pelanggan tamu dapat melakukan verifikasi dari halaman pesanan menggunakan kunci pesanan yang valid.
Konfigurasikan URL webhook dan rahasia yang ditampilkan di **Settings → Didit Verify** agar pembaruan status yang ditandatangani dapat melepaskan pesanan yang disetujui.

### Untuk halaman WordPress mana pun

Tambahkan shortcode ini ke halaman atau postingan mana pun:

```
[didit_verify]
```

Tombol verifikasi akan muncul, dengan gaya sesuai pengaturan Button Appearance Anda.

Anda dapat mengganti teks per halaman:

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

Atau paksa penggunaan mode Embedded pada halaman tertentu:

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

## Langkah 5: Batasi konten hanya untuk pengguna terverifikasi (opsional)

Tampilkan atau sembunyikan konten berdasarkan status verifikasi:

Pembatasan konten memerlukan pengguna yang sudah login dan persetujuan yang dikonfirmasi melalui mode API Session.
Callback browser dan parameter kueri pengalihan tidak memberikan akses.

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

Pengguna yang belum terverifikasi akan melihat pesan dan tombol verifikasi. Anda dapat menyesuaikan pesannya:

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

Tampilkan status verifikasi pengguna di mana saja:

```
[didit_status]
```

Menampilkan "Identity Verified" atau "Not Verified" untuk pengguna yang sudah login.

## Memeriksa status verifikasi

| Lokasi | Cara |
| - | - |
| **Admin panel** | **Users → All Users**: kolom "Didit" menampilkan ✓ untuk pengguna terverifikasi |
| **Pesanan WooCommerce** | ID sesi Didit muncul di detail pesanan |
| **Shortcode** | `[didit_status]` menampilkan status di halaman mana pun |

## Pemecahan masalah

| Masalah | Solusi |
| - | - |
| "Creating session..." macet | Pastikan Workflow ID dan kunci API Anda benar di **Settings → Didit Verify** |
| Modal tidak terbuka | Pastikan halaman berisi `[didit_verify]` atau verifikasi checkout WooCommerce diaktifkan |
| Antarmuka verifikasi dalam bahasa yang salah | Ubah pengaturan **Bahasa** di **Session Options** |
| Perlu debug | Aktifkan **Debug Logging** di Display Options, lalu buka konsol browser (F12) untuk melihat event SDK |

## Keamanan

Plugin bertindak sebagai proxy backend yang aman. Kunci API Anda tidak pernah sampai ke browser. Setiap permintaan sesi dilindungi oleh:

1. **CSRF nonce**: permintaan harus berasal dari situs WordPress Anda
2. **Persyaratan login**: hanya pengguna terdaftar yang dapat membuat sesi (dapat dikonfigurasi)
3. **Batas laju**: 10 sesi/jam per pengguna, 3/jam per alamat IP untuk tamu
4. **Sanitasi input**: semua kolom dicantumkan dalam daftar izin dan disanitasi di sisi server

Pembuatan sesi mengikat verifikasi ke pembeli atau pesanan saat ini.
Plugin mengonfirmasi keputusan dengan API Didit atau webhook terverifikasi sebelum menandai pengguna atau pesanan sebagai disetujui.
Checkout tamu dapat membuat sesi saat verifikasi diperlukan, meskipun persyaratan login umum diaktifkan.
Verifikasi setelah pembelian juga memerlukan kunci pesanan yang valid.

***

## Untuk pengembang

### Hook PHP

Plugin memicu tindakan WordPress yang dapat di-hook oleh plugin atau tema lain:

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

### Event JavaScript

Event DOM dikirim saat verifikasi selesai:

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

### Periksa verifikasi di PHP

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

Gunakan helper ini untuk menyertakan pemeriksaan konfirmasi server.
Jangan berikan akses dari metadata pengguna lama atau event browser `didit:complete` saja.

## Sumber daya

* [Kode sumber plugin (GitHub)](https://github.com/didit-protocol/plugin-wordpress)
* [Dokumentasi API Didit](https://docs.didit.me/id.md)
* [Didit Console](https://business.didit.me)
* [Referensi API Create Session](https://docs.didit.me/id/sessions-api/create-session.md)


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