Saltar al contenido principal

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ágina
  • search - Término de búsqueda
  • orderby - Campo de ordenación
  • order - Dirección de ordenación (asc/desc)
  • status - Filtrar por estado
  • date_created - Filtrar por rango de fechas