Documentation · Documentation technique

Actions AJAX

Ce document répertorie les points de terminaison AJAX enregistrés par le plugin ADP Car Market Hub via admin-ajax.php, y compris le nonce attendu, la capacité WordPress qui protège chaque gestionnaire et une brève description des paramètres et de la réponse.

Quand utiliser ce document

Lisez ce document si vous devez :

  • Comprendre comment le front-end interagit avec le plugin sans rechargement complet de la page (liste des modèles, disponibilité des essais routiers, abonnement aux alertes de recherche).
  • Suivre quel bouton d'administration déclenche quelle tâche en arrière-plan.
  • Intégrer ou tester une action AJAX spécifique.
  • Auditer le modèle de sécurité (capacité + nonce) d'un gestionnaire AJAX d'administration.

Pour les points de terminaison REST HTTP, voir REST API Endpoints.

Aperçu

Toutes les actions sont enregistrées via les crochets standard de WordPress wp_ajax_<action> (utilisateurs connectés) et, le cas échéant, wp_ajax_nopriv_<action> (visiteurs anonymes), et sont servies depuis wp-admin/admin-ajax.php.

Le plugin suit le modèle standard :

  1. Lire le paramètre de requête/POST action.
  2. Vérifier le nonce de la requête avec check_ajax_referer( '<action>', 'nonce' ).
  3. Vérifier la capacité de l'utilisateur (actions d'administration uniquement).
  4. Nettoyer les entrées.
  5. Retourner du JSON via wp_send_json_success() ou wp_send_json_error().

La capacité utilisée pour presque tous les gestionnaires réservés à l'administration est manage_as24_imports (la constante Plugin::CAP_MANAGE). Voir Security And Capabilities pour la cartographie complète des capacités.

Actions AJAX publiques (front-end)

Ces actions sont enregistrées à la fois avec wp_ajax_ et wp_ajax_nopriv_ afin que les visiteurs anonymes puissent les appeler.

as24ci_get_models

Retourne la liste des modèles de véhicules pour une marque donnée, utilisée par les listes déroulantes en cascade marque/modèle dans le filtre de recherche.

  • Méthode : GET.
  • Nonce : as24ci_get_models (nom du paramètre nonce).
  • Paramètres : make (chaîne).
  • Réponse : { "success": true, "data": { "models": [...], "cached": bool } }.
  • Mise en cache : Les résultats sont mis en cache dans des transients indexés par la valeur normalisée de la marque pendant 10 minutes. Le cache est vidé automatiquement une fois les importations terminées.

as24ci_get_test_drive_slots

Retourne les créneaux horaires d'essai routier disponibles pour une date de calendrier donnée.

  • Méthode : GET.
  • Nonce : as24ci_test_drive_slots (nom du paramètre nonce).
  • Paramètres : date au format Y-m-d.
  • Réponse : { "success": true, "data": { "slots": ["09:00", "09:30", ...] } }. Un tableau vide est retourné pour les dates invalides, les jours d'exclusion, les mauvais jours de la semaine ou les dates passées.

as24ci_search_agent_subscribe

Crée un abonnement d'alerte de recherche afin que le visiteur reçoive des notifications par e-mail lorsque des véhicules correspondants sont importés.

  • Méthode : POST.
  • Nonce : as24ci_search_agent (nom du paramètre nonce).
  • Paramètres : email plus les champs de recherche enregistrée criteria.
  • Réponse : Enveloppe JSON de succès/erreur.

Actions AJAX d'administration

Toutes les actions d'administration requièrent la capacité manage_as24_imports sauf indication contraire. Les appels sans cette capacité retournent un code HTTP 403 avec wp_send_json_error(). Les appels sans nonce valide sont rejetés par check_ajax_referer().

Déclencheurs d'importation et de file d'attente

ActionNonceObjectif
as24ci_trigger_import_nowas24ci_trigger_import_nowExécute l'importation planifiée standard à la demande. Retourne la même charge utile success, message et counts que le point de terminaison REST d'importation cron. Retourne un code HTTP 429 lorsqu'une importation est déjà en cours.
as24ci_trigger_image_queue_nowas24ci_trigger_image_queue_nowTraite un lot d'images en attente de la file d'attente d'images différées.
as24ci_clear_image_queueas24ci_clear_image_queueSupprime toutes les images en attente de la file d'attente sans les importer.
as24ci_trigger_ai_queue_nowas24ci_trigger_ai_queue_nowTraite un lot de générations d'Assistant IA en attente. Retourne un code HTTP 400 lorsque la fonctionnalité d'Assistant IA est désactivée.

Assistant d'importation par lot

L'assistant par lot permet aux administrateurs d'importer un ensemble de Listing IDs par petites étapes pour éviter les dépassements de temps d'exécution (timeouts).

ActionNonceObjectif
as24ci_batch_preflightas24ci_batch_wizard (Options::BATCH_NONCE_ACTION)Valide la configuration, récupère les annonces pour les vendeurs configurés et prépare une tâche. Retourne un code HTTP 404 lorsqu'aucune annonce n'est trouvée, 400 lorsqu'aucun Seller ID n'est configuré.
as24ci_batch_stepas24ci_batch_wizardTraite une étape de la tâche par lot active.
as24ci_batch_abortas24ci_batch_wizardAnnule une tâche par lot en cours.
as24ci_start_import_jobas24ci_import_jobDémarre une tâche d'importation par annonce pour une liste fournie manuellement de listing_ids.
as24ci_step_import_jobas24ci_import_jobTraite l'étape suivante d'une tâche d'importation par annonce active.

Gestion des leads

ActionNonceObjectif
as24ci_update_lead_statusas24ci_update_lead_statusMet à jour le statut du flux de travail d'une publication de lead (lead_id, status). Retourne une erreur lorsque les paramètres sont manquants ou que la mise à jour échoue.

Analyse

ActionNonceObjectif
as24ci_purge_analyticsas24ci_purge_analyticsTronque les données d'analyse collectées à la demande. Journalisé pour audit.

Assistant IA

ActionNonceObjectif
as24ci_generate_ai_assistantas24ci_ai_generateGénère du contenu textuel assisté par IA pour une publication de véhicule.

Une action d'administration distincte non-AJAX (?as24ci_action=manual_ai_generate) expose un flux de génération manuelle unique protégé par un nonce par publication (as24ci_manual_ai_generate_<post_id>) et la capacité edit_post pour cette publication spécifique.

Onglet Support

L'onglet d'administration Help & Support expose trois actions AJAX, chacune sécurisée par manage_as24_imports et un nonce dédié :

ActionNonce
as24ci_ai_support_chatas24ci_ai_support_chat
as24ci_contact_supportas24ci_contact_support
as24ci_ai_kb_maintenanceas24ci_ai_kb_maintenance

Observateur de concurrents (supprimé)

La fonctionnalité d'observateur de concurrents a été supprimée. Il n'y a pas d'action AJAX active pour actualiser les prix des concurrents ; la comparaison des prix du marché est fournie par le Market Hub / Hub API.

Appeler une action AJAX

Les conventions standard de WordPress s'appliquent. Depuis le front-end :

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

Les scripts mis en file d'attente du plugin reçoivent déjà les bons nonces via wp_localize_script() / wp_add_inline_script(). Lors de l'appel d'une action depuis une intégration personnalisée, générez le nonce côté serveur et passez-le à votre script.

Notes opérationnelles

  • Toutes les actions non publiques retournent un code HTTP 403 avec { "success": false, "data": { "message": "Permission denied." } } lorsque la vérification de capacité échoue.
  • Les échecs de nonce sont gérés par check_ajax_referer() et entraînent un 403 avec la réponse d'erreur de nonce standard de WordPress.
  • Les gestionnaires d'administration à exécution longue (importations, traitement de la file d'attente) sont conçus pour retourner rapidement ; le travail plus lourd s'exécute via le planificateur et la file d'attente. Voir Cron Events And Scheduler et Image Importer And Queue.
  • Le cache de la liste des modèles est partagé entre les visiteurs connectés et anonymes ; un seul vidage au moment de l'importation maintient la cohérence pour les deux publics.
  • Les actions front-end évitent intentionnellement d'utiliser les capacités des utilisateurs afin que les visiteurs anonymes puissent utiliser le filtre de recherche et la réservation d'essais routiers. L'authentification repose sur le nonce spécifique à l'action.

Dépannage

  • Corps de réponse -1 ou 0 — modes d'échec AJAX classiques de WordPress. Vérifiez l'onglet réseau du navigateur pour le code de réponse : -1 signifie généralement un nonce invalide, 0 signifie généralement un nom d'action non enregistré (la casse est importante).
  • Permission denied. (HTTP 403) — l'utilisateur actuel ne dispose pas de la capacité requise. Vérifiez que l'utilisateur possède la capacité manage_as24_imports ou un rôle qui l'inclut.
  • Liste de modèles vide lors de l'appel de as24ci_get_models — soit aucun modèle n'est importé pour la marque fournie, soit le paramètre de marque est vide / n'est pas un terme de taxonomie connu.
  • No seller IDs configured. depuis l'assistant par lot — ouvrez l'onglet API et ajoutez au moins un Seller ID avant de relancer.
  • Liste de modèles obsolète après une importation — appelez Ajax::clear_models_cache() (l'importateur le fait déjà à chaque exécution réussie) ; vérifiez le stockage des transients si votre plugin de cache d'objets surcharge les transients.

Documents connexes