Lewati ke konten utama

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.

Respons Error

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

Paginasi dan Pemfilteran

Parameter Kueri:

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

Parameter umum:

  • per_page - Item per halaman (default: 20, maks: 100)
  • page - Nomor halaman
  • search - Istilah pencarian
  • orderby - Field pengurutan
  • order - Arah pengurutan (asc/desc)
  • status - Filter berdasarkan status
  • date_created - Filter berdasarkan rentang tanggal