> ## 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 प्लगइन: WooCommerce आयु जाँच

> Didit का WordPress और WooCommerce प्लगइन बिना कोड के पहचान सत्यापन, आयु गेटिंग और KYC देता है। पूर्ण KYC जाँच $0.33 से, $10 निःशुल्क/माह, कोई अनुबंध नहीं।

Didit पहचान सत्यापन और आयु-आधारित गेटिंग को किसी भी WordPress साइट या WooCommerce स्टोर में जोड़ें। यह प्लगइन एक सुरक्षित बैकएंड प्रॉक्सी के रूप में काम करता है: आपकी API कुंजी सर्वर पर ही रहती है। इसमें शॉर्टकोड, WooCommerce चेकआउट गेट और डेवलपर हुक दिए गए हैं, ताकि आप JavaScript लिखे बिना सत्यापन जोड़ सकें।

## पूर्वापेक्षाएँ

* WordPress 6.0 या उससे ऊपर
* PHP 7.4 या उससे ऊपर
* एक [Didit Console](https://business.didit.me) खाता

## चरण 1: अपने Didit क्रेडेंशियल प्राप्त करें

1. **[business.didit.me](https://business.didit.me)** पर साइन अप करें या लॉग इन करें
2. **API & Webhooks** पर जाएँ और अपनी **API Key** कॉपी करें
3. **Workflows** पर जाएँ, एक वर्कफ़्लो बनाएँ या चुनें, और उसका **Workflow ID** कॉपी करें

> [!NOTE]
>
> आप API कुंजियों के बिना सत्यापन प्रवाह का पूर्वावलोकन करने के लिए **UniLink URL** का उपयोग कर सकते हैं।
> सामग्री गेट और WooCommerce सत्यापन आवश्यकताओं के लिए API कुंजी और वर्कफ़्लो ID के साथ **API Session** मोड का उपयोग करें।
> अकेले UniLink पूरा होने से सुरक्षित सामग्री अनलॉक नहीं होती और न ही कोई ऑर्डर स्वीकृत होता है।

## चरण 2: प्लगइन इंस्टॉल करें

1. **[0.3.4 release](https://github.com/didit-protocol/plugin-wordpress/releases/tag/v0.3.4)** से `didit-verify-0.3.4.zip` डाउनलोड करें
2. अपने WordPress एडमिन में **Plugins → Add New → Upload Plugin** पर जाएँ
3. डाउनलोड की गई ZIP फ़ाइल चुनें और **Install Now** पर क्लिक करें
4. **सक्रिय करें** पर क्लिक करें

> [!NOTE]
>
> Didit Verify [WordPress.org](https://wordpress.org/plugins/didit-verify/) पर भी सूचीबद्ध है।
> इंस्टॉल करने से पहले संस्करण जाँच लें: यहाँ वर्णित सर्वर-पुष्टि वाले सत्यापन व्यवहार के लिए 0.3.4 या उसके बाद का संस्करण उपयोग करें।
> 0.3.4 से, जब कोई स्वीकृत सत्यापन बाद में अस्वीकृत हो जाता है, समाप्त हो जाता है या समीक्षा में वापस चला जाता है, तो सुरक्षित सामग्री तक पहुँच रद्द कर दी जाती है।
> यदि डायरेक्टरी में पुराना संस्करण है, तो ऊपर दी गई रिलीज़ ZIP इंस्टॉल करें।

> [!WARNING]
>
> 0.3.2 से पुराने संस्करण से अपग्रेड करने के बाद, जिन उपयोगकर्ताओं की पिछली स्वीकृति सर्वर द्वारा पुष्ट नहीं हुई थी, उन्हें सुरक्षित सामग्री तक पहुँचने या सत्यापन आवश्यक चेकआउट पूरा करने से पहले फिर से सत्यापन करना होगा।

## चरण 3: प्लगइन कॉन्फ़िगर करें

**Settings → Didit Verify** पर जाएँ।

### अपना मोड चुनें

| मोड | किसके लिए सबसे अच्छा | आपको क्या चाहिए |
| - | - | - |
| **UniLink** | त्वरित परीक्षण | केवल आपके वर्कफ़्लो का UniLink URL |
| **API Session** (अनुशंसित) | प्रोडक्शन उपयोग | वर्कफ़्लो ID + API Key |

**UniLink के लिए:** मोड को "UniLink" पर सेट करें, अपना URL चिपकाएँ और सहेजें।

**API Session के लिए:** मोड को "API Session" पर सेट करें, अपना वर्कफ़्लो ID और API Key दर्ज करें और सहेजें।

> [!NOTE]
>
> API कुंजी आपके सर्वर पर सुरक्षित रूप से संग्रहीत रहती है और विज़िटरों के सामने कभी उजागर नहीं होती।

### सत्र विकल्प कॉन्फ़िगर करें (केवल API मोड)

ये वैकल्पिक सेटिंग्स हैं जो आपको अधिक नियंत्रण देती हैं:

* **विक्रेता डेटा** — हर सत्यापन को आपके Didit डैशबोर्ड में किसी विशिष्ट उपयोगकर्ता से जोड़ता है, ताकि आप ट्रैक कर सकें कि किसने सत्यापन किया। डिफ़ॉल्ट WordPress User ID है (जैसे `wp-42`)। आप User Email या कस्टम प्रीफ़िक्स चुन सकते हैं, या इसे बंद कर सकते हैं।
* **कॉलबैक URL** — आपकी साइट का एक पेज जहाँ सत्यापन के बाद उपयोगकर्ताओं को रीडायरेक्ट किया जाता है। Didit `verificationSessionId` और `status` को क्वेरी पैरामीटर के रूप में जोड़ता है।
* **Callback Method** — कौन सा डिवाइस रीडायरेक्ट संभालता है: `initiator` (वह डिवाइस जिसने शुरू किया), `completer` (वह डिवाइस जो पूरा करता है), या `both`।
* **भाषा** — 54 भाषाओं में से चुनें, या ब्राउज़र से अपने आप पहचानने दें।

### डिस्प्ले विकल्प कॉन्फ़िगर करें

* **Display Mode** — Modal (पॉपअप ओवरले) या Embedded (पेज पर इनलाइन)
* **Close Button** — मोडल पर X बटन दिखाएँ या छिपाएँ
* **Exit Confirmation** — बंद करते समय "क्या आप निश्चित हैं?" डायलॉग दिखाएँ
* **Auto-close** — सत्यापन पूरा होने पर मोडल अपने आप बंद करें
* **Debug Logging** — SDK इवेंट्स को ब्राउज़र कंसोल में लॉग करें (समस्या निवारण के लिए)

### बटन कस्टमाइज़ करें

**Button Appearance** के अंतर्गत आप ये बदल सकते हैं:

* बटन का टेक्स्ट और सफलता संदेश का टेक्स्ट
* बैकग्राउंड रंग और टेक्स्ट रंग
* बॉर्डर रेडियस, पैडिंग और फ़ॉन्ट आकार

मान बदलते ही लाइव प्रीव्यू तुरंत अपडेट हो जाता है।

## चरण 4: अपनी साइट पर सत्यापन जोड़ें

### WooCommerce स्टोर के लिए

1. **Settings → Didit Verify → WooCommerce** में **Require identity verification at checkout** को चेक करें
2. चुनें कि सत्यापन सेक्शन कहाँ दिखे:
   * चेकआउट पेज के ऊपर
   * बिलिंग विवरण के बाद
   * ऑर्डर नोट्स के बाद
   * "Place Order" से पहले (अनुशंसित)
3. वैकल्पिक रूप से **Product Scope** चुनें: सभी उत्पाद (डिफ़ॉल्ट), केवल चयनित उत्पाद, या चयनित उत्पादों को छोड़कर सभी उत्पाद।
   उत्पाद संपादक में **Product data → Advanced** के अंतर्गत **Didit verification** चेकबॉक्स से वे उत्पाद चिह्नित करें जिन्हें सत्यापन चाहिए।
   यदि कार्ट में कम से कम एक ऐसा उत्पाद है जिसे सत्यापन चाहिए, तो सत्यापन आवश्यक होता है।
   यह स्कोप चेकआउट और खरीद के बाद, दोनों मोड पर लागू होता है।
4. वैकल्पिक रूप से **Settings → Didit Verify → WooCommerce** के अंतर्गत **अनुभाग शीर्षक**, **Checkout Message** और **Post-purchase Message** संपादित करें; खाली फ़ील्ड डिफ़ॉल्ट टेक्स्ट का उपयोग करते हैं।
5. वैकल्पिक रूप से **Send Billing Data** सक्षम करें, ताकि ग्राहक का नाम, ईमेल, फ़ोन और पता अपने आप Didit को भेजा जाए। इससे फ़ील्ड पहले से भरे जा सकते हैं और उनकी क्रॉस-वैलिडेशन हो सकती है।

> [!NOTE]
>
> देश के कोड WooCommerce के alpha-2 फ़ॉर्मैट से अपने आप Didit के आवश्यक alpha-3 फ़ॉर्मैट में बदल दिए जाते हैं।

ग्राहकों को ऑर्डर देने से पहले सर्वर द्वारा पुष्टि किया गया **स्वीकृत** निर्णय प्राप्त करना होगा।
यह क्लासिक और ब्लॉक, दोनों चेकआउट पर लागू होता है।
प्लगइन जाँचता है कि सत्र वर्तमान खरीदार का है और किसी अन्य ऑर्डर के लिए पहले से उपयोग नहीं हुआ है।
सत्र ID संदर्भ के लिए ऑर्डर में सहेजी जाती है।

यदि आप **After purchase** चुनते हैं, तो जब तक सर्वर स्वीकृति की पुष्टि नहीं करता, ऑर्डर होल्ड पर रहता है।
अतिथि ग्राहक अपनी वैध ऑर्डर कुंजी का उपयोग करके ऑर्डर पेज से सत्यापन कर सकते हैं।
हस्ताक्षरित स्थिति अपडेट स्वीकृत ऑर्डर को होल्ड से हटा सकें, इसके लिए **Settings → Didit Verify** में दिखाए गए webhook URL और सीक्रेट को कॉन्फ़िगर करें।

### किसी भी WordPress पेज के लिए

किसी भी पेज या पोस्ट में यह शॉर्टकोड जोड़ें:

```
[didit_verify]
```

आपकी Button Appearance सेटिंग्स के अनुसार स्टाइल किया गया एक सत्यापन बटन दिखाई देगा।

आप प्रति पेज टेक्स्ट बदल सकते हैं:

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

या किसी विशिष्ट पेज पर embedded मोड अनिवार्य रूप से लागू कर सकते हैं:

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

## चरण 5: केवल सत्यापित उपयोगकर्ताओं तक सामग्री सीमित करें (वैकल्पिक)

सत्यापन स्थिति के आधार पर सामग्री दिखाएँ या छिपाएँ:

कंटेंट गेट के लिए लॉग-इन उपयोगकर्ता और API सत्र मोड के ज़रिए पुष्ट की गई स्वीकृति ज़रूरी है।
ब्राउज़र कॉलबैक और रीडायरेक्ट क्वेरी पैरामीटर पहुँच नहीं देते।

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

असत्यापित उपयोगकर्ताओं को एक संदेश और सत्यापन बटन दिखते हैं। आप संदेश को अपनी ज़रूरत के अनुसार बदल सकते हैं:

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

उपयोगकर्ता की सत्यापन स्थिति कहीं भी दिखाएँ:

```
[didit_status]
```

लॉग-इन उपयोगकर्ता के लिए "पहचान सत्यापित" या "सत्यापित नहीं" दिखाता है।

## सत्यापन स्थिति की जाँच करना

| कहाँ | कैसे |
| - | - |
| **एडमिन पैनल** | **Users → All Users**: "Didit" कॉलम सत्यापित उपयोगकर्ताओं के लिए ✓ दिखाता है |
| **WooCommerce ऑर्डर** | Didit सत्र ID ऑर्डर के विवरण में दिखता है |
| **शॉर्टकोड** | `[didit_status]` किसी भी पेज पर स्थिति दिखाता है |

## समस्या निवारण

| समस्या | समाधान |
| - | - |
| "Creating session..." अटक जाए | जाँचें कि **Settings → Didit Verify** में आपकी वर्कफ़्लो ID और API कुंजी सही हैं |
| मोडल नहीं खुलता | सुनिश्चित करें कि पेज में `[didit_verify]` मौजूद हो या WooCommerce चेकआउट सत्यापन सक्षम हो |
| सत्यापन UI गलत भाषा में | **Session Options** में **Language** सेटिंग बदलें |
| डीबग करने की ज़रूरत हो | **Display Options** में **Debug Logging** सक्षम करें, फिर SDK इवेंट देखने के लिए ब्राउज़र कंसोल (F12) खोलें |

## सुरक्षा

प्लगइन एक सुरक्षित बैकएंड प्रॉक्सी के रूप में काम करता है। आपकी API कुंजी कभी ब्राउज़र तक नहीं पहुँचती। हर सत्र अनुरोध इन उपायों से सुरक्षित रहता है:

1. **CSRF nonce**: अनुरोध आपकी WordPress साइट से ही आने चाहिए
2. **लॉग-इन आवश्यकता**: केवल पंजीकृत उपयोगकर्ता सत्र बना सकते हैं (कॉन्फ़िगर किया जा सकता है)
3. **रेट लिमिट**: प्रति उपयोगकर्ता 10 सत्र/घंटा, अतिथियों के लिए प्रति IP 3/घंटा
4. **इनपुट सैनिटाइज़ेशन**: सभी फ़ील्ड सर्वर-साइड पर अनुमति-सूची से जाँचे और सैनिटाइज़ किए जाते हैं

सत्र निर्माण सत्यापन को वर्तमान ग्राहक या ऑर्डर से जोड़ता है।
प्लगइन किसी उपयोगकर्ता या ऑर्डर को स्वीकृत चिह्नित करने से पहले Didit API या सत्यापित webhook से निर्णय की पुष्टि करता है।
सत्यापन आवश्यक होने पर अतिथि चेकआउट भी सत्र बना सकता है, भले ही सामान्य लॉग-इन आवश्यकता सक्षम हो।
खरीद के बाद का सत्यापन भी एक वैध ऑर्डर कुंजी माँगता है।

***

## डेवलपर्स के लिए

### PHP हुक्स

प्लगइन WordPress कार्रवाइयाँ ट्रिगर करता है, जिन्हें अन्य प्लगइन या थीम हुक कर सकते हैं:

```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 इवेंट

सत्यापन पूरा होने पर एक DOM इवेंट डिस्पैच होता है:

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

### PHP में सत्यापन की जाँच करें

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

सर्वर-पुष्टि जाँच शामिल करने के लिए इस सहायक फ़ंक्शन का उपयोग करें।
केवल लीगेसी उपयोगकर्ता मेटाडेटा या ब्राउज़र के `didit:complete` इवेंट के आधार पर पहुँच न दें।

## संसाधन

* [प्लगइन सोर्स कोड (GitHub)](https://github.com/didit-protocol/plugin-wordpress)
* [Didit API दस्तावेज़](https://docs.didit.me/hi.md)
* [Didit Console](https://business.didit.me)
* [Create Session API संदर्भ](https://docs.didit.me/hi/sessions-api/create-session.md)


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