Dokumentation · Technische Dokumentation

AJAX-Aktionen

Dieses Dokument listet die AJAX-Endpunkte auf, die vom ADP Car Market Hub-Plugin über admin-ajax.php registriert werden, einschließlich des erwarteten Nonce, der WordPress-Berechtigung, die den jeweiligen Handler schützt, und einer kurzen Beschreibung der Parameter und Antworten.

Wann Sie dieses Dokument verwenden sollten

Lesen Sie dieses Dokument, wenn Sie Folgendes tun müssen:

  • Verstehen, wie das Frontend ohne vollständiges Neuladen der Seite mit dem Plugin interagiert (Modellliste, Probefahrt-Verfügbarkeit, Suchauftrags-Abonnement).
  • Nachverfolgen, welche Admin-Schaltfläche welchen Hintergrundjob auslöst.
  • Eine Integration oder Tests für eine bestimmte AJAX-Aktion durchführen.
  • Das Sicherheitsmodell (Berechtigung + Nonce) eines Admin-AJAX-Handlers überprüfen.

Für HTTP-REST-Endpunkte siehe REST-API-Endpunkte.

Übersicht

Alle Aktionen werden über die standardmäßigen Hooks wp_ajax_<action> (für angemeldete Benutzer) und, falls zutreffend, wp_ajax_nopriv_<action> (für anonyme Besucher) von WordPress registriert und über wp-admin/admin-ajax.php bereitgestellt.

Das Plugin folgt dem Standardmuster:

  1. Auslesen des Query-/POST-Parameters action.
  2. Verifizieren des Request-Nonce mit check_ajax_referer( '<action>', 'nonce' ).
  3. Verifizieren der Benutzerberechtigung (nur bei Admin-Aktionen).
  4. Bereinigen der Eingaben (Sanitisation).
  5. Rückgabe von JSON über wp_send_json_success() oder wp_send_json_error().

Die Berechtigung, die für fast alle reinen Admin-Handler verwendet wird, ist manage_as24_imports (die Konstante Plugin::CAP_MANAGE). Siehe Sicherheit und Berechtigungen für die vollständige Berechtigungsübersicht.

Öffentliche (Frontend-) AJAX-Aktionen

Diese Aktionen sind sowohl mit wp_ajax_ als auch mit wp_ajax_nopriv_ registriert, sodass anonyme Besucher sie aufrufen können.

as24ci_get_models

Gibt die Liste der Fahrzeugmodelle für eine bestimmte Marke zurück. Dies wird für die kaskadierenden Marken-/Modell-Dropdowns im Suchfilter verwendet.

  • Methode: GET.
  • Nonce: as24ci_get_models (Parametername nonce).
  • Parameter: make (String).
  • Antwort: { "success": true, "data": { "models": [...], "cached": bool } }.
  • Caching: Die Ergebnisse werden in Transients, die nach dem normalisierten Markenwert benannt sind, für 10 Minuten zwischengespeichert. Der Cache wird nach Abschluss von Importen automatisch geleert.

as24ci_get_test_drive_slots

Gibt die verfügbaren Zeitfenster für Probefahrten an einem bestimmten Kalenderdatum zurück.

  • Methode: GET.
  • Nonce: as24ci_test_drive_slots (Parametername nonce).
  • Parameter: date im Format Y-m-d.
  • Antwort: { "success": true, "data": { "slots": ["09:00", "09:30", ...] } }. Bei ungültigen Daten, blockierten Tagen, falschen Wochentagen oder in der Vergangenheit liegenden Daten wird ein leeres Array zurückgegeben.

as24ci_search_agent_subscribe

Erstellt ein Suchauftrags-Abonnement, damit der Besucher E-Mail-Benachrichtigungen erhält, wenn passende Fahrzeuge importiert werden.

  • Methode: POST.
  • Nonce: as24ci_search_agent (Parametername nonce).
  • Parameter: email plus die gespeicherten Suchfelder criteria.
  • Antwort: JSON-Erfolgs-/Fehler-Umschlag (Envelope).

Admin-AJAX-Aktionen

Alle Admin-Aktionen erfordern die Berechtigung manage_as24_imports, sofern nicht anders angegeben. Aufrufe ohne diese Berechtigung geben HTTP 403 mit wp_send_json_error() zurück. Aufrufe ohne gültigen Nonce werden von check_ajax_referer() abgewiesen.

Import- und Warteschlangen-Auslöser

AktionNonceZweck
as24ci_trigger_import_nowas24ci_trigger_import_nowFührt den standardmäßigen geplanten Import bei Bedarf aus. Gibt dieselben Nutzdaten für success, message und counts zurück wie der Cron-Import-REST-Endpunkt. Gibt HTTP 429 zurück, wenn bereits ein Import läuft.
as24ci_trigger_image_queue_nowas24ci_trigger_image_queue_nowVerarbeitet einen Batch ausstehender Bilder aus der verzögerten Bildwarteschlange.
as24ci_clear_image_queueas24ci_clear_image_queueLöscht alle ausstehenden Bilder aus der Warteschlange, ohne sie zu importieren.
as24ci_trigger_ai_queue_nowas24ci_trigger_ai_queue_nowVerarbeitet einen Batch ausstehender Generierungen des KI-Assistenten. Gibt HTTP 400 zurück, wenn die Funktion des KI-Assistenten deaktiviert ist.

Batch-Import-Assistent

Der Batch-Assistent ermöglicht es Administratoren, eine Reihe von Inserats-IDs in kleinen Schritten zu importieren, um Timeouts zu vermeiden.

AktionNonceZweck
as24ci_batch_preflightas24ci_batch_wizard (Options::BATCH_NONCE_ACTION)Validiert die Konfiguration, ruft Inserate für die konfigurierten Händler ab und bereitet einen Job vor. Gibt HTTP 404 zurück, wenn keine Inserate gefunden werden, und 400, wenn keine Händler-IDs konfiguriert sind.
as24ci_batch_stepas24ci_batch_wizardVerarbeitet einen Schritt des aktiven Batch-Jobs.
as24ci_batch_abortas24ci_batch_wizardBricht einen laufenden Batch-Job ab.
as24ci_start_import_jobas24ci_import_jobStartet einen Import-Job pro Inserat für eine manuell übergebene Liste von listing_ids.
as24ci_step_import_jobas24ci_import_jobVerarbeitet den nächsten Schritt eines aktiven Import-Jobs pro Inserat.

Lead-Verwaltung

AktionNonceZweck
as24ci_update_lead_statusas24ci_update_lead_statusAktualisiert den Workflow-Status eines Lead-Beitrags (lead_id, status). Gibt einen Fehler zurück, wenn Parameter fehlen oder die Aktualisierung fehlschlägt.

Analysen

AktionNonceZweck
as24ci_purge_analyticsas24ci_purge_analyticsLöscht gesammelte Analysedaten bei Bedarf unwiderruflich. Wird zur Überprüfung protokolliert.

KI-Assistent

AktionNonceZweck
as24ci_generate_ai_assistantas24ci_ai_generateGeneriert KI-gestützte Textinhalte für einen Fahrzeugbeitrag.

Eine separate Non-AJAX-Admin-Aktion (?as24ci_action=manual_ai_generate) stellt einen manuellen Einmal-Generierungs-Workflow bereit, der durch einen beitragsbezogenen Nonce (as24ci_manual_ai_generate_<post_id>) und die Berechtigung edit_post für diesen spezifischen Beitrag geschützt ist.

Support-Tab

Der Admin-Tab Hilfe & Support stellt drei AJAX-Aktionen bereit, die jeweils durch manage_as24_imports und einen dedizierten Nonce geschützt sind:

AktionNonce
as24ci_ai_support_chatas24ci_ai_support_chat
as24ci_contact_supportas24ci_contact_support
as24ci_ai_kb_maintenanceas24ci_ai_kb_maintenance

Mitbewerber-Beobachter (entfernt)

Die Funktion „Mitbewerber-Beobachter“ wurde entfernt. Es gibt keine aktive AJAX-Aktion mehr zum Aktualisieren von Mitbewerberpreisen; der Marktpreisvergleich wird über das Market Hub / Hub-API bereitgestellt.

Aufrufen einer AJAX-Aktion

Es gelten die standardmäßigen WordPress-Konventionen. Vom Frontend aus:

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

Die in die Warteschlange eingereihten Skripte des Plugins erhalten bereits die korrekten Nonces über wp_localize_script() / wp_add_inline_script(). Wenn Sie eine Aktion aus einer benutzerdefinierten Integration heraus aufrufen, generieren Sie den Nonce serverseitig und übergeben Sie ihn an Ihr Skript.

Betriebshinweise

  • Alle nicht-öffentlichen Aktionen geben HTTP 403 mit { "success": false, "data": { "message": "Permission denied." } } zurück, wenn die Berechtigungsprüfung fehlschlägt.
  • Nonce-Fehler werden von check_ajax_referer() verarbeitet und führen zu einem 403 mit der standardmäßigen WordPress-Nonce-Fehlerantwort.
  • Zeitintensive Admin-Handler (Importe, Warteschlangenverarbeitung) sind so konzipiert, dass sie schnell antworten; schwerere Arbeiten laufen über den Scheduler und die Warteschlange. Siehe Cron-Events und Scheduler und Bild-Importer und Warteschlange.
  • Der Modelllisten-Cache wird von angemeldeten und anonymen Besuchern gemeinsam genutzt; eine einzige Leerung zum Importzeitpunkt hält die Daten für beide Zielgruppen konsistent.
  • Frontend-Aktionen verzichten bewusst auf Benutzerberechtigungen, damit anonyme Besucher den Suchfilter und die Probefahrtbuchung nutzen können. Die Authentifizierung basiert auf dem aktionsspezifischen Nonce.

Fehlerbehebung

  • Antwort-Body ist -1 oder 0 – klassische WordPress-AJAX-Fehlermodi. Überprüfen Sie den Netzwerk-Tab des Browsers auf den Antwortcode: -1 bedeutet in der Regel ein ungültiger Nonce, 0 bedeutet in der Regel ein nicht registrierter Aktionsname (Groß-/Kleinschreibung beachten).
  • Permission denied. (HTTP 403) – dem aktuellen Benutzer fehlt die erforderliche Berechtigung. Stellen Sie sicher, dass der Benutzer die Berechtigung manage_as24_imports oder eine Rolle besitzt, die diese enthält.
  • Leere Modellliste beim Aufruf von as24ci_get_models – entweder wurden keine Modelle für die angegebene Marke importiert oder der Marken-Parameter ist leer / kein bekannter Taxonomie-Begriff.
  • No seller IDs configured. aus dem Batch-Assistenten – öffnen Sie den API-Tab und fügen Sie mindestens eine Händler-ID hinzu, bevor Sie den Vorgang erneut ausführen.
  • Veraltete Modellliste nach einem Import – rufen Sie Ajax::clear_models_cache() auf (der Importer tut dies bereits bei jedem erfolgreichen Durchlauf); überprüfen Sie den Transient-Speicher, falls Ihr Object-Cache-Plugin Transients überschreibt.

Verwandte Dokumente