Referencia de REST API
Configuración base
URL base: {site_url}/wp-json/wu/v2/
Autenticación: clave de API y secreto (HTTP Basic Auth o parámetros de URL)
Autenticación
Habilitar API
// Enable API in Ultimate Multisite settings or programmatically
wu_save_setting('enable_api', true);
Obtener credenciales de API
$api_key = wu_get_setting('api_key');
$api_secret = wu_get_setting('api_secret');
Métodos de autenticación
HTTP Basic Auth (recomendado):
curl -u "api_key:api_secret" https://yoursite.com/wp-json/wu/v2/customers
Parámetros de URL:
curl "https://yoursite.com/wp-json/wu/v2/customers?api_key=your_key&api_secret=your_secret"
Puntos de conexión principales
1. API de clientes
Ruta base: /customers
Obtener todos los clientes
GET /wu/v2/customers
Obtener un solo cliente
GET /wu/v2/customers/{id}
Crear cliente
POST /wu/v2/customers
Content-Type: application/json
{
"user_id": 123,
"email_verification": "verified",
"type": "customer",
"has_trialed": false,
"vip": false
}
Actualizar cliente
PUT /wu/v2/customers/{id}
Content-Type: application/json
{
"vip": true,
"extra_information": "VIP customer notes"
}
Eliminar cliente
DELETE /wu/v2/customers/{id}
2. API de sitios
Ruta base: /sites
Crear sitio
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 de membresías
Ruta base: /memberships
Crear membresía
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 de productos
Ruta base: /products
Obtener todos los productos
GET /wu/v2/products
5. API de pagos
Ruta base: /payments
Crear pago
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 de dominios
Ruta base: /domains
Mapear dominio
POST /wu/v2/domains
Content-Type: application/json
{
"domain": "custom-domain.com",
"customer_id": 5,
"primary_domain": 1,
"stage": "domain-mapping"
}
Punto de conexión de registro
El punto de conexión /register proporciona un flujo completo de checkout/registro:
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"
}
}
Respuesta:
{
"customer": { ... },
"membership": { ... },
"payment": { ... },
"site": { "id": 123 }
}
Puntos de conexión de inquilino soberano
Ultimate Multisite: Multi-Tenancy 1.2.0 añade cobertura REST de inquilinos soberanos para integraciones que aprovisionan, inspeccionan o verifican inquilinos aislados.
La carga útil exacta de la solicitud depende de la capacidad del host habilitada, pero las integraciones deben esperar estos grupos de puntos de conexión:
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 el punto de conexión de bootstrap para preparar el registro del inquilino, la base de datos, el sistema de archivos y el estado de enrutamiento. Usa los puntos de conexión de estado de migración y verificación antes de cambiar el tráfico de producción. Usa el punto de conexión de eliminación para el desmontaje soberano, de modo que las credenciales de la base de datos se eliminen mediante el flujo de limpieza del addon.
Las respuestas típicas de estado de migración incluyen:
{
"site_id": 123,
"isolation_model": "sovereign",
"database_host": "localhost",
"verification": {
"no_legacy": "passed",
"sovereign_push": "passed",
"tenant_users": "passed"
},
"ready": true
}
Trata ready: false como un bloqueo previo al lanzamiento. Revisa los detalles de verificación, corrige el enlace del host de la base de datos, la cola, el aprovisionamiento de usuarios o el problema de enrutamiento y, a continuación, vuelve a intentar la verificación.
Respuestas de error
{
"code": "wu_rest_invalid_parameter",
"message": "Invalid parameter value",
"data": {
"status": 400,
"params": {
"email": "Invalid email format"
}
}
}
Paginación y filtrado
Parámetros de consulta:
GET /wu/v2/customers?per_page=20&page=2&search=john&status=active
Parámetros comunes:
per_page- Elementos por página (predeterminado: 20, máx.: 100)page- Número de páginasearch- Término de búsquedaorderby- Campo de ordenaciónorder- Dirección de ordenación (asc/desc)status- Filtrar por estadodate_created- Filtrar por rango de fechas