مرجع REST API
پیکربندی پایه
URL پایه: {site_url}/wp-json/wu/v2/
احراز هویت: API Key و Secret (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- فیلتر بر اساس بازه تاریخ