Referensi REST API
Konfigurasi Dasar
URL Dasar: {site_url}/wp-json/wu/v2/
Autentikasi: API Key & Secret (HTTP Basic Auth atau Parameter URL)
Autentikasi
Aktifkan API
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
Dapatkan Kredensial API
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Metode Autentikasi
HTTP Basic Auth (Direkomendasikan):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
Parameter URL:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Titik Akhir Inti
1. API Pelanggan
Rute Dasar: /customers
Dapatkan Semua Pelanggan
GET /wu/v2/customers
Dapatkan Satu Pelanggan
GET /wu/v2/customers/{id}
Buat Pelanggan
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Perbarui Pelanggan
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Hapus Pelanggan
DELETE /wu/v2/customers/{id}
2. API Situs
Rute Dasar: /sites
Buat Situs
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 Keanggotaan
Rute Dasar: /memberships
Buat Keanggotaan
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 Produk
Rute Dasar: /products
Dapatkan Semua Produk
GET /wu/v2/products
5. API Pembayaran
Rute Dasar: /payments
Buat Pembayaran
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 Domain
Rute Dasar: /domains
Petakan Domain
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Titik Akhir Pendaftaran
Titik akhir /register menyediakan alur checkout/pendaftaran lengkap:
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"
}
}
Respons:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Titik Akhir Tenant Berdaulat
Ultimate Multisite: Multi-Tenancy 1.2.0 menambahkan cakupan REST tenant berdaulat untuk integrasi yang menyediakan, memeriksa, atau memverifikasi tenant terisolasi.
Payload permintaan yang tepat bergantung pada kapabilitas host yang diaktifkan, tetapi integrasi harus mengharapkan grup titik akhir berikut:
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}
Gunakan titik akhir bootstrap untuk menyiapkan registri tenant, database, filesystem, dan status routing. Gunakan titik akhir status migrasi dan verifikasi sebelum mengalihkan traffic produksi. Gunakan titik akhir penghapusan untuk pembongkaran berdaulat agar kredensial database dihapus melalui alur pembersihan addon.
Respons status migrasi yang umum mencakup:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
Perlakukan ready: false sebagai penghambat pra-peluncuran. Periksa detail verifikasi, perbaiki binding host database, antrean, penyediaan pengguna, atau masalah routing, lalu coba ulang verifikasi.