דלג לתוכן הראשי

מדריך REST API

תצורת בסיס

Base URL: {site_url}/wp-json/wu/v2/ אימות: מפתח API וסוד (HTTP Basic Auth או פרמטרים ב-URL)

אימות

הפעלת API

// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);

קבלת פרטי גישה ל-API

$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');

שיטות אימות

HTTP Basic Auth (מומלץ):

curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers

פרמטרים ב-URL:

curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"

נקודות קצה מרכזיות

1. API לקוחות

נתיב בסיס: /customers

קבלת כל הלקוחות

GET /wu/v2/customers

קבלת לקוח יחיד

GET /wu/v2/customers/{id}

יצירת לקוח

POST /wu/v2/customers
Content-Type: application/json

{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}

עדכון לקוח

PUT /wu/v2/customers/{id}
Content-Type: application/json

{
"vip": true,
"extra_information": "VIP customer notes"
}

מחיקת לקוח

DELETE /wu/v2/customers/{id}

2. API אתרים

נתיב בסיס: /sites

יצירת אתר

POST /wu/v2/sites
Content-Type: application/json

{
"customer_id": 5,
"membership_id": 10,
"domain": "example.com",
"path": "/",
"title": "My New Site",
"template_id": 1,
"type": "customer_owned"
}

3. API חברויות

נתיב בסיס: /memberships

יצירת חברות

POST /wu/v2/memberships
Content-Type: application/json

{
"customer_id": 5,
"plan_id": 3,
"status": "active",
"gateway": "stripe",
"gateway_subscription_id": "sub_1234567890",
"auto_renew": true
}

4. API מוצרים

נתיב בסיס: /products

קבלת כל המוצרים

GET /wu/v2/products

5. API תשלומים

נתיב בסיס: /payments

יצירת תשלום

POST /wu/v2/payments
Content-Type: application/json

{
"customer_id": 5,
"membership_id": 10,
"status": "completed",
"gateway": "stripe",
"gateway_payment_id": "pi_1234567890",
"total": 29.99,
"currency": "USD"
}

6. API דומיינים

נתיב בסיס: /domains

מיפוי דומיין

POST /wu/v2/domains
Content-Type: application/json

{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}

נקודת קצה להרשמה

נקודת הקצה /register מספקת תהליך תשלום/הרשמה מלא:

POST /wu/v2/register
Content-Type: application/json

{
"customer": {
"username": "newuser",
"password": "securepass123",
"email": "[email protected]"
},
"products": ["basic-plan"],
"duration": 1,
"duration_unit": "month",
"auto_renew": true,
"site": {
"site_url": "mynewsite",
"site_title": "My New Site",
"template_id": 1
},
"payment": {
"status": "completed"
},
"membership": {
"status": "active"
}
}

תגובה:

{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}

נקודות קצה לדיירים ריבוניים

Ultimate Multisite: Multi-Tenancy 1.2.0 מוסיף כיסוי REST לדיירים ריבוניים עבור אינטגרציות שמקצות, בודקות או מאמתות דיירים מבודדים.

מטען הבקשה המדויק תלוי ביכולת המארח המופעלת, אך אינטגרציות צריכות לצפות לקבוצות נקודות הקצה האלה:

POST /wu/v2/tenants/{site_id}/bootstrap
GET /wu/v2/tenants/{site_id}/migration-status
POST /wu/v2/tenants/{site_id}/verify
DELETE /wu/v2/tenants/{site_id}

השתמשו בנקודת הקצה של bootstrap כדי להכין את מצב מרשם הדיירים, מסד הנתונים, מערכת הקבצים והניתוב. השתמשו בנקודות הקצה של מצב ההגירה והאימות לפני החלפת תעבורת הייצור. השתמשו בנקודת הקצה למחיקה עבור פירוק ריבוני כדי שפרטי הגישה למסד הנתונים יוסרו דרך תהליך הניקוי של התוסף.

תגובות אופייניות של מצב הגירה כוללות:

{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}

התייחסו אל ready: false כחסם טרום-השקה. בדקו את פרטי האימות, תקנו את קישור מארח מסד הנתונים, התור, הקצאת המשתמשים או בעיית הניתוב, ואז נסו שוב את האימות.

תגובות שגיאה

{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}

עימוד וסינון

פרמטרי שאילתה:

GET /wu/v2/customers?per_page=20&page=2&search=john&status=active

פרמטרים נפוצים:

  • per_page - פריטים לעמוד (ברירת מחדל: 20, מקסימום: 100)
  • page - מספר עמוד
  • search - מונח חיפוש
  • orderby - שדה מיון
  • order - כיוון מיון (asc/desc)
  • status - סינון לפי סטטוס
  • date_created - סינון לפי טווח תאריכים