Documentación · Documentación técnica
Acciones AJAX
Este documento enumera los endpoints AJAX registrados por el plugin
ADP Car Market Hub a través de admin-ajax.php, incluyendo el
nonce esperado, la capacidad de WordPress que protege cada controlador
y una breve descripción de los parámetros y la respuesta.
Cuándo utilizar este documento
Lea este documento si necesita:
- Comprender cómo interactúa el frontend con el plugin sin recargas completas de la página (lista de modelos, disponibilidad de pruebas de conducción, suscripción al agente de búsqueda).
- Rastrear qué botón de administración activa cada tarea en segundo plano.
- Integrar o realizar pruebas con una acción AJAX específica.
- Auditar el modelo de seguridad (capacidad + nonce) de un controlador AJAX de administración.
Para los endpoints REST HTTP, consulte Endpoints de la API REST.
Descripción general
Todas las acciones se registran a través de los ganchos estándar de WordPress
wp_ajax_<action> (usuarios conectados) y, cuando corresponda,
wp_ajax_nopriv_<action> (visitantes anónimos), y se
sirven desde wp-admin/admin-ajax.php.
El plugin sigue el patrón estándar:
- Leer el parámetro de consulta/POST
action. - Verificar el nonce de la solicitud con
check_ajax_referer( '<action>', 'nonce' ). - Verificar la capacidad del usuario (solo acciones de administración).
- Desinfectar las entradas.
- Devolver JSON a través de
wp_send_json_success()owp_send_json_error().
La capacidad utilizada para casi todos los controladores exclusivos de administración es
manage_as24_imports (la constante Plugin::CAP_MANAGE). Consulte
Seguridad y capacidades para ver el
mapa completo de capacidades.
Acciones AJAX públicas (frontend)
Estas acciones se registran tanto con wp_ajax_ como con
wp_ajax_nopriv_ para que los visitantes anónimos puedan llamarlas.
as24ci_get_models
Devuelve la lista de modelos de vehículos para una marca determinada, utilizada por los desplegables en cascada de marca/modelo en el filtro de búsqueda.
- Método: GET.
- Nonce:
as24ci_get_models(nombre del parámetrononce). - Parámetros:
make(cadena de texto). - Respuesta:
{ "success": true, "data": { "models": [...], "cached": bool } }. - Caché: Los resultados se almacenan en caché en transients identificados por el valor de marca normalizado durante 10 minutos. La caché se purga automáticamente después de que se completen las importaciones.
as24ci_get_test_drive_slots
Devuelve las franjas horarias disponibles para pruebas de conducción para una fecha de calendario determinada.
- Método: GET.
- Nonce:
as24ci_test_drive_slots(nombre del parámetrononce). - Parámetros:
dateen formatoY-m-d. - Respuesta:
{ "success": true, "data": { "slots": ["09:00", "09:30", ...] } }. Se devuelve un array vacío para fechas no válidas, días de exclusión, días de la semana incorrectos o fechas pasadas.
as24ci_search_agent_subscribe
Crea una suscripción de agente de búsqueda para que el visitante reciba notificaciones por correo electrónico cuando se importen vehículos que coincidan.
- Método: POST.
- Nonce:
as24ci_search_agent(nombre del parámetrononce). - Parámetros:
emailmás los campos de búsqueda guardadacriteria. - Respuesta: Envoltorio JSON de éxito/error.
Acciones AJAX de administración
Todas las acciones de administración requieren la capacidad manage_as24_imports
a menos que se indique lo contrario. Las llamadas sin la capacidad devuelven HTTP
403 con wp_send_json_error(). Las llamadas sin un nonce válido son
rechazadas por check_ajax_referer().
Activadores de importación y cola
| Acción | Nonce | Propósito |
|---|---|---|
as24ci_trigger_import_now | as24ci_trigger_import_now | Ejecuta la importación programada estándar bajo demanda. Devuelve la misma carga útil success, message y counts que el endpoint REST de importación por cron. Devuelve HTTP 429 cuando ya se está ejecutando una importación. |
as24ci_trigger_image_queue_now | as24ci_trigger_image_queue_now | Procesa un lote de imágenes pendientes de la cola de imágenes diferidas. |
as24ci_clear_image_queue | as24ci_clear_image_queue | Borra todas las imágenes pendientes de la cola sin importarlas. |
as24ci_trigger_ai_queue_now | as24ci_trigger_ai_queue_now | Procesa un lote de generaciones pendientes del AI Assistant. Devuelve HTTP 400 cuando la función AI Assistant está desactivada. |
Asistente de importación por lotes
El asistente por lotes permite a los administradores importar un conjunto de Listing IDs en pequeños pasos para evitar tiempos de espera (timeouts).
| Acción | Nonce | Propósito |
|---|---|---|
as24ci_batch_preflight | as24ci_batch_wizard (Options::BATCH_NONCE_ACTION) | Valida la configuración, obtiene los anuncios para los vendedores configurados y prepara una tarea. Devuelve HTTP 404 cuando no se encuentran anuncios, 400 cuando no hay Seller IDs configurados. |
as24ci_batch_step | as24ci_batch_wizard | Procesa un paso de la tarea por lotes activa. |
as24ci_batch_abort | as24ci_batch_wizard | Aborta una tarea por lotes en curso. |
as24ci_start_import_job | as24ci_import_job | Inicia una tarea de importación por anuncio para una lista de listing_ids proporcionada manualmente. |
as24ci_step_import_job | as24ci_import_job | Procesa el siguiente paso de una tarea de importación por anuncio activa. |
Gestión de leads
| Acción | Nonce | Propósito |
|---|---|---|
as24ci_update_lead_status | as24ci_update_lead_status | Actualiza el estado del flujo de trabajo de una publicación de lead (lead_id, status). Devuelve un error cuando faltan los parámetros o falla la actualización. |
Analytics
| Acción | Nonce | Propósito |
|---|---|---|
as24ci_purge_analytics | as24ci_purge_analytics | Trunca los datos de analítica recopilados bajo demanda. Se registra para auditoría. |
AI Assistant
| Acción | Nonce | Propósito |
|---|---|---|
as24ci_generate_ai_assistant | as24ci_ai_generate | Genera contenido de texto asistido por IA para una publicación de vehículo. |
Una acción de administración independiente que no es AJAX (?as24ci_action=manual_ai_generate)
expone un flujo de generación manual de un solo uso protegido por un
nonce por publicación (as24ci_manual_ai_generate_<post_id>) y la capacidad edit_post
para esa publicación específica.
Pestaña de soporte
La pestaña de administración Help & Support expone tres acciones AJAX, cada una
protegida por manage_as24_imports y un nonce dedicado:
| Acción | Nonce |
|---|---|
as24ci_ai_support_chat | as24ci_ai_support_chat |
as24ci_contact_support | as24ci_contact_support |
as24ci_ai_kb_maintenance | as24ci_ai_kb_maintenance |
Observador de competidores (eliminado)
La función Competitor Watcher ha sido eliminada. No hay ninguna acción AJAX activa para actualizar los precios de la competencia; la comparación de precios de mercado la proporciona Market Hub / Hub API.
Llamar a una acción AJAX
Se aplican las convenciones estándar de WordPress. Desde el frontend:
POST /wp-admin/admin-ajax.php
Content-Type: application/x-www-form-urlencoded
action=as24ci_get_models&nonce=<wp_create_nonce('as24ci_get_models')>&make=Audi
Los scripts en cola del plugin ya reciben los nonces correctos
a través de wp_localize_script() / wp_add_inline_script(). Al
llamar a una acción desde una integración personalizada, genere el nonce
en el lado del servidor y páselo a su script.
Notas operativas
- Todas las acciones no públicas devuelven HTTP
403con{ "success": false, "data": { "message": "Permission denied." } }cuando falla la comprobación de capacidad. - Los fallos de nonce son gestionados por
check_ajax_referer()y dan como resultado un403con la respuesta de error de nonce estándar de WordPress. - Los controladores de administración de larga ejecución (importaciones, procesamiento de colas) están diseñados para responder con prontitud; el trabajo más pesado se ejecuta a través del programador y la cola. Consulte Eventos de Cron y programador y Cola e importador de imágenes.
- La caché de la lista de modelos se comparte entre los visitantes conectados y los anónimos; una única purga en el momento de la importación mantiene a ambas audiencias coherentes.
- Las acciones del frontend evitan intencionadamente el uso de capacidades de usuario para que los visitantes anónimos puedan utilizar el filtro de búsqueda y la reserva de pruebas de conducción. La autenticación se basa en el nonce específico de la acción.
Resolución de problemas
- Cuerpo de respuesta
-1o0— modos clásicos de fallo de AJAX en WordPress. Compruebe la pestaña de red del navegador para ver el código de respuesta:-1normalmente significa un nonce no válido,0normalmente significa un nombre de acción no registrado (las mayúsculas y minúsculas importan). Permission denied.(HTTP 403) — el usuario actual carece de la capacidad requerida. Verifique que el usuario tenga la capacidadmanage_as24_importso un rol que la incluya.- Lista de modelos vacía al llamar a
as24ci_get_models— o bien no se han importado modelos para la marca proporcionada, o el parámetro de marca está vacío / no es un término de taxonomía conocido. No seller IDs configured.desde el asistente por lotes — abra la pestaña de la API y añada al menos un Seller ID antes de volver a ejecutar.- Lista de modelos desactualizada después de una importación — llame a
Ajax::clear_models_cache()(el importador ya hace esto en cada ejecución exitosa); compruebe el almacenamiento de transients si su plugin de caché de objetos anula los transients.