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 :
- Lire le paramètre de requête/POST
action. - Vérifier le nonce de la requête avec
check_ajax_referer( '<action>', 'nonce' ). - Vérifier la capacité de l'utilisateur (actions d'administration uniquement).
- Nettoyer les entrées.
- Retourner du JSON via
wp_send_json_success()ouwp_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ètrenonce). - 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ètrenonce). - Paramètres :
dateau formatY-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ètrenonce). - Paramètres :
emailplus les champs de recherche enregistréecriteria. - 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
| Action | Nonce | Objectif |
|---|---|---|
as24ci_trigger_import_now | as24ci_trigger_import_now | Exé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_now | as24ci_trigger_image_queue_now | Traite un lot d'images en attente de la file d'attente d'images différées. |
as24ci_clear_image_queue | as24ci_clear_image_queue | Supprime toutes les images en attente de la file d'attente sans les importer. |
as24ci_trigger_ai_queue_now | as24ci_trigger_ai_queue_now | Traite 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).
| Action | Nonce | Objectif |
|---|---|---|
as24ci_batch_preflight | as24ci_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_step | as24ci_batch_wizard | Traite une étape de la tâche par lot active. |
as24ci_batch_abort | as24ci_batch_wizard | Annule une tâche par lot en cours. |
as24ci_start_import_job | as24ci_import_job | Démarre une tâche d'importation par annonce pour une liste fournie manuellement de listing_ids. |
as24ci_step_import_job | as24ci_import_job | Traite l'étape suivante d'une tâche d'importation par annonce active. |
Gestion des leads
| Action | Nonce | Objectif |
|---|---|---|
as24ci_update_lead_status | as24ci_update_lead_status | Met à 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
| Action | Nonce | Objectif |
|---|---|---|
as24ci_purge_analytics | as24ci_purge_analytics | Tronque les données d'analyse collectées à la demande. Journalisé pour audit. |
Assistant IA
| Action | Nonce | Objectif |
|---|---|---|
as24ci_generate_ai_assistant | as24ci_ai_generate | Gé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é :
| Action | Nonce |
|---|---|
as24ci_ai_support_chat | as24ci_ai_support_chat |
as24ci_contact_support | as24ci_contact_support |
as24ci_ai_kb_maintenance | as24ci_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
403avec{ "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 un403avec 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
-1ou0— modes d'échec AJAX classiques de WordPress. Vérifiez l'onglet réseau du navigateur pour le code de réponse :-1signifie généralement un nonce invalide,0signifie 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_importsou 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.