Documentatie · Technische documentatie

AJAX-acties

Dit document bevat een overzicht van de AJAX-endpoints die door de ADP Car Market Hub-plugin worden geregistreerd via admin-ajax.php, inclusief de verwachte nonce, de WordPress-capability die elke handler beveiligt en een korte beschrijving van de parameters en respons.

Wanneer u dit document moet gebruiken

Lees dit document als u het volgende wilt doen:

  • Begrijpen hoe de frontend communiceert met de plugin zonder volledige pagina-reloads (modellijst, beschikbaarheid van proefritten, abonnement op zoekagent).
  • Traceren welke admin-knop welke achtergrondtaak activeert.
  • Integreren met of testen tegen een specifieke AJAX-actie.
  • Het beveiligingsmodel (capability + nonce) van een admin-AJAX-handler controleren.

Zie voor HTTP REST-endpoints REST API Endpoints.

Overzicht

Alle acties worden geregistreerd via de standaard wp_ajax_<action>- (ingelogde gebruikers) en, indien van toepassing, wp_ajax_nopriv_<action>-hooks (anonieme bezoekers) van WordPress, en worden afgehandeld via wp-admin/admin-ajax.php.

De plugin volgt het standaardpatroon:

  1. Lees de query-/POST-parameter action.
  2. Verifieer de nonce van het verzoek met check_ajax_referer( '<action>', 'nonce' ).
  3. Verifieer de capability van de gebruiker (alleen voor admin-acties).
  4. Schoon de invoer op (sanitisation).
  5. Retourneer JSON via wp_send_json_success() of wp_send_json_error().

De capability die voor vrijwel alle admin-only handlers wordt gebruikt is manage_as24_imports (de constante Plugin::CAP_MANAGE). Zie Security And Capabilities voor de volledige capability-map.

Publieke (frontend) AJAX-acties

Deze acties zijn geregistreerd met zowel wp_ajax_ als wp_ajax_nopriv_, zodat anonieme bezoekers ze kunnen aanroepen.

as24ci_get_models

Retourneert de lijst met voertuigmodellen voor een bepaald merk, gebruikt door de gecascadeerde merk/model-dropdowns in het zoekfilter.

  • Methode: GET.
  • Nonce: as24ci_get_models (parameternaam nonce).
  • Parameters: make (string).
  • Respons: { "success": true, "data": { "models": [...], "cached": bool } }.
  • Caching: Resultaten worden gedurende 10 minuten gecached in transients met de genormaliseerde merkwaarde als sleutel. De cache wordt automatisch geleegd nadat de imports zijn voltooid.

as24ci_get_test_drive_slots

Retourneert de beschikbare tijdsloten voor een proefrit op een bepaalde kalenderdatum.

  • Methode: GET.
  • Nonce: as24ci_test_drive_slots (parameternaam nonce).
  • Parameters: date in Y-m-d-indeling.
  • Respons: { "success": true, "data": { "slots": ["09:00", "09:30", ...] } }. Er wordt een lege array geretourneerd voor ongeldige datums, uitgesloten dagen, verkeerde weekdagen of datums in het verleden.

as24ci_search_agent_subscribe

Maakt een abonnement op een zoekagent aan, zodat de bezoeker e-mailmeldingen ontvangt wanneer er overeenkomstige voertuigen worden geïmporteerd.

  • Methode: POST.
  • Nonce: as24ci_search_agent (parameternaam nonce).
  • Parameters: email plus de opgeslagen zoekvelden criteria.
  • Respons: JSON success/error-envelope.

Admin AJAX-acties

Alle admin-acties vereisen de capability manage_as24_imports tenzij anders vermeld. Aanroepen zonder deze capability retourneren HTTP 403 met wp_send_json_error(). Aanroepen zonder een geldige nonce worden geweigerd door check_ajax_referer().

Import- en wachtrij-triggers

ActieNonceDoel
as24ci_trigger_import_nowas24ci_trigger_import_nowVoert de standaard geplande import op aanvraag uit. Retourneert dezelfde success-, message- en counts-payload als het cron-import REST-endpoint. Retourneert HTTP 429 wanneer er al een import actief is.
as24ci_trigger_image_queue_nowas24ci_trigger_image_queue_nowVerwerkt één batch met openstaande afbeeldingen uit de uitgestelde afbeeldingenwachtrij.
as24ci_clear_image_queueas24ci_clear_image_queueVerwijdert alle openstaande afbeeldingen uit de wachtrij zonder ze te importeren.
as24ci_trigger_ai_queue_nowas24ci_trigger_ai_queue_nowVerwerkt één batch met openstaande AI Assistant-generaties. Retourneert HTTP 400 wanneer de AI Assistant-functie is uitgeschakeld.

Batch-importwizard

De batch-wizard stelt beheerders in staat om een reeks Listing IDs in kleine stappen te importeren om time-outs te voorkomen.

ActieNonceDoel
as24ci_batch_preflightas24ci_batch_wizard (Options::BATCH_NONCE_ACTION)Valideert de configuratie, haalt advertenties op voor de geconfigureerde verkopers en bereidt een taak voor. Retourneert HTTP 404 wanneer er geen advertenties worden gevonden, en 400 wanneer er geen Seller IDs zijn geconfigureerd.
as24ci_batch_stepas24ci_batch_wizardVerwerkt één stap van de actieve batch-taak.
as24ci_batch_abortas24ci_batch_wizardBreekt een actieve batch-taak af.
as24ci_start_import_jobas24ci_import_jobStart een importtaak per voertuig voor een handmatig opgegeven lijst met listing_ids.
as24ci_step_import_jobas24ci_import_jobVerwerkt de volgende stap van een actieve importtaak per voertuig.

Leadbeheer

ActieNonceDoel
as24ci_update_lead_statusas24ci_update_lead_statusWerkt de workflow-status van een lead-post bij (lead_id, status). Retourneert een foutmelding wanneer parameters ontbreken of het bijwerken mislukt.

Analytics

ActieNonceDoel
as24ci_purge_analyticsas24ci_purge_analyticsVerwijdert verzamelde analytics-gegevens op aanvraag. Wordt gelogd voor controle (audit).

AI Assistant

ActieNonceDoel
as24ci_generate_ai_assistantas24ci_ai_generateGenereert door AI ondersteunde tekstinhoud voor een voertuig-post.

Een afzonderlijke niet-AJAX admin-actie (?as24ci_action=manual_ai_generate) biedt een eenmalige handmatige generatieworkflow die is beveiligd met een nonce per post (as24ci_manual_ai_generate_<post_id>) en de capability edit_post voor die specifieke post.

Support-tabblad

Het admin-tabblad Help & Support biedt drie AJAX-acties, elk beveiligd door manage_as24_imports en een specifieke nonce:

ActieNonce
as24ci_ai_support_chatas24ci_ai_support_chat
as24ci_contact_supportas24ci_contact_support
as24ci_ai_kb_maintenanceas24ci_ai_kb_maintenance

Competitor watcher (verwijderd)

De Competitor Watcher-functie is verwijderd. Er is geen actieve AJAX-actie voor het vernieuwen van prijzen van concurrenten; marktprijsvergelijking wordt geleverd door de Market Hub / Hub API.

Een AJAX-actie aanroepen

De standaard WordPress-conventies zijn van toepassing. Vanaf de 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

De in de wachtrij geplaatste scripts van de plugin ontvangen de juiste nonces al via wp_localize_script() / wp_add_inline_script(). Wanneer u een actie aanroept vanuit een aangepaste integratie, genereer de nonce dan aan de serverzijde en geef deze door aan uw script.

Operationele opmerkingen

  • Alle niet-publieke acties retourneren HTTP 403 met { "success": false, "data": { "message": "Permission denied." } } wanneer de capability-controle mislukt.
  • Nonce-fouten worden afgehandeld door check_ajax_referer() en resulteren in een 403 met de standaard WordPress nonce-foutrespons.
  • Langlopende admin-handlers (imports, wachtrijverwerking) zijn ontworpen om snel te retourneren; zwaarder werk wordt uitgevoerd via de scheduler en wachtrij. Zie Cron Events And Scheduler en Image Importer And Queue.
  • De modellijst-cache wordt gedeeld tussen ingelogde en anonieme bezoekers; een eenmalige opschoning tijdens de import houdt beide doelgroepen synchroon.
  • Frontend-acties vermijden bewust het gebruik van gebruikerscapabilities, zodat anonieme bezoekers het zoekfilter en de proefritboeking kunnen gebruiken. De authenticatie is gebaseerd op de actiespecifieke nonce.

Probleemoplossing

  • -1 of 0 respons-body — klassieke WordPress AJAX-foutmodi. Controleer het netwerktabblad van de browser voor de responscode: -1 betekent meestal een ongeldige nonce, 0 betekent meestal een niet-geregistreerde actienaam (hoofdlettergevoelig).
  • Permission denied. (HTTP 403) — de huidige gebruiker beschikt niet over de vereiste capability. Controleer of de gebruiker de capability manage_as24_imports heeft of een rol die deze bevat.
  • Lege modellijst bij het aanroepen van as24ci_get_models — ofwel er zijn geen modellen geïmporteerd voor het opgegeven merk, of de parameter merk is leeg / geen bekende taxonomie-term.
  • No seller IDs configured. vanuit de batch-wizard — open het API-tabblad en voeg ten minste één Seller ID toe voordat u de wizard opnieuw uitvoert.
  • Verouderde modellijst na een import — roep Ajax::clear_models_cache() aan (de importeur doet dit al bij elke succesvolle run); controleer de transient-opslag als uw object cache-plugin transients overschrijft.

Gerelateerde documenten