Riferimento REST API
Configurazione di base
URL di base: {site_url}/wp-json/wu/v2/
Autenticazione: API Key e Secret (HTTP Basic Auth o parametri URL)
Autenticazione
Abilita API
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
Ottieni le credenziali API
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Metodi di autenticazione
HTTP Basic Auth (consigliato):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
Parametri URL:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Endpoint principali
1. API Clienti
Route di base: /customers
Ottieni tutti i clienti
GET /wu/v2/customers
Ottieni un singolo cliente
GET /wu/v2/customers/{id}
Crea cliente
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Aggiorna cliente
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Elimina cliente
DELETE /wu/v2/customers/{id}
2. API Siti
Route di base: /sites
Crea sito
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 Membership
Route di base: /memberships
Crea Membership
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 Prodotti
Route di base: /products
Ottieni tutti i prodotti
GET /wu/v2/products
5. API Pagamenti
Route di base: /payments
Crea pagamento
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 Domini
Route di base: /domains
Mappa dominio
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Endpoint di registrazione
L'endpoint /register fornisce un flusso completo di checkout/registrazione:
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"
}
}
Risposta:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Endpoint tenant sovrani
Ultimate Multisite: Multi-Tenancy 1.2.0 aggiunge la copertura REST per tenant sovrani per integrazioni che effettuano provisioning, ispezionano o verificano tenant isolati.
Il payload esatto della richiesta dipende dalla funzionalità host abilitata, ma le integrazioni devono aspettarsi questi gruppi di endpoint:
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}
Usa l'endpoint di bootstrap per preparare registro tenant, database, filesystem e stato di routing. Usa gli endpoint di stato migrazione e verifica prima di deviare il traffico di produzione. Usa l'endpoint di eliminazione per lo smantellamento sovrano, in modo che le credenziali del database vengano rimosse tramite il flusso di pulizia dell'addon.
Le risposte tipiche dello stato di migrazione includono:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
Considera ready: false come un blocco pre-lancio. Controlla i dettagli della verifica, risolvi il problema di binding dell'host del database, coda, provisioning utente o routing, quindi riprova la verifica.
Risposte di errore
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Paginazione e filtri
Parametri query:
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Parametri comuni:
per_page- Elementi per pagina (predefinito: 20, max: 100)page- Numero di paginasearch- Termine di ricercaorderby- Campo di ordinamentoorder- Direzione di ordinamento (asc/desc)status- Filtra per statodate_created- Filtra per intervallo di date