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:
- Lees de query-/POST-parameter
action. - Verifieer de nonce van het verzoek met
check_ajax_referer( '<action>', 'nonce' ). - Verifieer de capability van de gebruiker (alleen voor admin-acties).
- Schoon de invoer op (sanitisation).
- Retourneer JSON via
wp_send_json_success()ofwp_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(parameternaamnonce). - 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(parameternaamnonce). - Parameters:
dateinY-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(parameternaamnonce). - Parameters:
emailplus de opgeslagen zoekveldencriteria. - 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
| Actie | Nonce | Doel |
|---|---|---|
as24ci_trigger_import_now | as24ci_trigger_import_now | Voert 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_now | as24ci_trigger_image_queue_now | Verwerkt één batch met openstaande afbeeldingen uit de uitgestelde afbeeldingenwachtrij. |
as24ci_clear_image_queue | as24ci_clear_image_queue | Verwijdert alle openstaande afbeeldingen uit de wachtrij zonder ze te importeren. |
as24ci_trigger_ai_queue_now | as24ci_trigger_ai_queue_now | Verwerkt éé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.
| Actie | Nonce | Doel |
|---|---|---|
as24ci_batch_preflight | as24ci_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_step | as24ci_batch_wizard | Verwerkt één stap van de actieve batch-taak. |
as24ci_batch_abort | as24ci_batch_wizard | Breekt een actieve batch-taak af. |
as24ci_start_import_job | as24ci_import_job | Start een importtaak per voertuig voor een handmatig opgegeven lijst met listing_ids. |
as24ci_step_import_job | as24ci_import_job | Verwerkt de volgende stap van een actieve importtaak per voertuig. |
Leadbeheer
| Actie | Nonce | Doel |
|---|---|---|
as24ci_update_lead_status | as24ci_update_lead_status | Werkt de workflow-status van een lead-post bij (lead_id, status). Retourneert een foutmelding wanneer parameters ontbreken of het bijwerken mislukt. |
Analytics
| Actie | Nonce | Doel |
|---|---|---|
as24ci_purge_analytics | as24ci_purge_analytics | Verwijdert verzamelde analytics-gegevens op aanvraag. Wordt gelogd voor controle (audit). |
AI Assistant
| Actie | Nonce | Doel |
|---|---|---|
as24ci_generate_ai_assistant | as24ci_ai_generate | Genereert 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:
| Actie | Nonce |
|---|---|
as24ci_ai_support_chat | as24ci_ai_support_chat |
as24ci_contact_support | as24ci_contact_support |
as24ci_ai_kb_maintenance | as24ci_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
403met{ "success": false, "data": { "message": "Permission denied." } }wanneer de capability-controle mislukt. - Nonce-fouten worden afgehandeld door
check_ajax_referer()en resulteren in een403met 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
-1of0respons-body — klassieke WordPress AJAX-foutmodi. Controleer het netwerktabblad van de browser voor de responscode:-1betekent meestal een ongeldige nonce,0betekent meestal een niet-geregistreerde actienaam (hoofdlettergevoelig).Permission denied.(HTTP 403) — de huidige gebruiker beschikt niet over de vereiste capability. Controleer of de gebruiker de capabilitymanage_as24_importsheeft 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.