Dokumentation · Technische Dokumentation

Speicherung von Optionen und Einstellungen

Dieses Dokument beschreibt, wie das ADP Car Market Hub-Plugin seine Einstellungen speichert: welche Schlüssel verwendet werden, wo sie in der Datenbank liegen und wie die Werte vom Plugin gelesen und geschrieben werden.

Wann Sie dieses Dokument lesen sollten

Lesen Sie dieses Dokument, wenn Sie:

  • Eine bestimmte Plugin-Einstellung in wp_options finden müssen.
  • Verstehen möchten, welche Option eine bestimmte Funktionssteuerung steuert.
  • Ein Backup, eine Umgebungsmigration oder ein Staging-to-Production-Deployment planen, das Plugin-Einstellungen enthält.
  • Eine benutzerdefinierte Integration erstellen, die eine Plugin-Option von ausserhalb des Plugin-Codes liest.

Für die zugrunde liegenden Tabellen und Entitäten siehe Database Schema und Data Model.

Übersicht

Alle vom Benutzer konfigurierbaren Einstellungen werden als Standard-WordPress-Optionen in der Tabelle wp_options gespeichert. Das Plugin führt keine separate Einstellungstabelle.

Optionsschlüssel sind als Konstanten in der Klasse AS24CI\Options definiert, sodass:

  • Die Schlüssel an genau einer Stelle im Quellcode existieren.
  • Die Deinstallationsroutine die vollständige Optionsliste automatisch aus AS24CI\Options::get_all_keys() ableiten kann.
  • Code, der eine Einstellung liest oder schreibt, sich auf die Konstante beziehen kann, anstatt die rohe Zeichenkette zu wiederholen.

Die meisten Einstellungen sind skalar (String, Integer, Boolean codiert als 0/1). Einige wenige sind Arrays (z. B. Seller-IDs, Mapping-Overrides, Layout-Zonen, Social-Share-Netzwerke). Arrays werden unter Verwendung der Standard-Optionsserialisierung von WordPress gespeichert.

Namenskonventionen

Alle Plugin-Optionsschlüssel beginnen mit dem Präfix as24ci_. Subsystem-Präfixe gruppieren verwandte Einstellungen:

  • as24ci_design_*, as24ci_archive_*, as24ci_single_*, as24ci_fav_*, as24ci_comp_* — Design- und Typografie-Einstellungen.
  • as24ci_cron_*, as24ci_image_queue* — Scheduler und Bildwarteschlange.
  • as24ci_lead_* — Kontaktformular, Einwilligung und E-Mail-Vorlagen.
  • as24ci_ai_* — AI Assistant.
  • as24ci_analytics_* — Analytics und Einwilligung.
  • as24ci_test_drive_* — Probefahrt-Buchung.
  • as24ci_envkv_* — Deutsche EnVKV / WLTP-Betriebskostenkonfiguration.
  • as24ci_lm_*, as24ci_layout_* — Layout Manager-Zonen und Archiv-Layout.
  • as24ci_feature_* — Funktionssteuerungen für optionale Subsysteme.

Das vollständige Inventar der Optionsschlüssel ist die öffentliche Liste, die von AS24CI\Options::get_all_keys() zurückgegeben wird.



Kategorien von Einstellungen

Die Options-Klasse definiert weit über hundert Konstanten. Die folgende Liste gruppiert sie nach Verwendungszweck. Wo ein Standardwert im Code dokumentiert ist (konstanter Standardwert, add_option() in seed_safe_defaults() oder inline get_option(..., $default)-Aufrufe), ist dieser angegeben. Überprüfen Sie jeden vom Standard abweichenden Wert vor der Veröffentlichung anhand der aktuellen Plugin-Version.

API und Authentifizierung

Verwendet von AS24CI\Client, um mit der AutoScout24-API zu kommunizieren.

  • as24ci_base_url (Options::BASE_URL) — API-Basis-URL.
  • as24ci_token_url (Options::TOKEN_URL) — OAuth-Token-URL.
  • as24ci_seller_ids (Options::SELLER_IDS) — kommagetrennte Liste von Verkäufer-IDs (Seller ID).
  • as24ci_client_id (Options::CLIENT_ID) — OAuth Client ID.
  • as24ci_client_secret (Options::CLIENT_SECRET) — OAuth Client Secret.
  • as24ci_token_audience (Options::TOKEN_AUDIENCE) — OAuth Audience-Parameter.
  • as24ci_default_currency (Options::DEFAULT_CURRENCY) — Standard-ISO-4217-Währungscode (bei der Aktivierung als EUR hinterlegt).

Diese Werte sind für jeden Import erforderlich und sollten vertraulich behandelt werden. Sie werden Nicht-Administratoren nicht angezeigt.

Importer-Verhalten

Verwendet von AS24CI\Importer und AS24CI\Image_Importer.

  • as24ci_default_post_status (Options::DEFAULT_POST_STATUS) — Status, der neu importierten Fahrzeugen zugewiesen wird. Als draft hinterlegt, damit Administratoren die Mappings vor der Veröffentlichung überprüfen können.
  • as24ci_default_post_author (Options::DEFAULT_POST_AUTHOR) — Standard-Autoren-Benutzer-ID.
  • as24ci_import_images (Options::IMPORT_IMAGES) — ob Bilder importiert werden sollen.
  • as24ci_max_images (Options::MAX_IMAGES) — maximale Anzahl von Bildern pro Fahrzeug. Als 30 hinterlegt. Ein Wert von 0 wird vom Importer als unbegrenzt behandelt; der Bild-Importer setzt das Limit zusätzlich defensiv durch.
  • as24ci_convert_to_webp (Options::CONVERT_TO_WEBP) — importierte Bilder in WebP konvertieren.
  • as24ci_webp_quality (Options::WEBP_QUALITY) — WebP-Qualität (1–100; standardmässig 80, falls nicht festgelegt).
  • as24ci_full_sync (Options::FULL_SYNC) — wenn aktiviert, werden Fahrzeuge, die in der API nicht mehr vorhanden sind, nach jedem Import gelöscht. Als 0 hinterlegt.
  • as24ci_verbose_logging (Options::VERBOSE_LOGGING) — ausführliche Pro-Fahrzeug- / Pro-Bild-Protokollzeilen.
  • as24ci_mapping_overrides (Options::MAPPING_OVERRIDES) — Array von Label- und Sichtbarkeits-Overrides pro AS24-Feld.

Scheduler und Automatisierung

Verwendet von AS24CI\Scheduler und AS24CI\Cron_Endpoint.

  • as24ci_auto_import_enabled (Options::AUTO_IMPORT_ENABLED).
  • as24ci_cron_schedule (Options::CRON_SCHEDULE) — einer von hourly, as24ci_every_6_hours, twicedaily, daily, as24ci_custom. Standard: hourly.
  • as24ci_cron_start_time (Options::CRON_START_TIME) — Startzeit für tägliche / halbtägliche Zeitpläne in HH:MM (24 h, WordPress Website-Zeitzone). Standard: 06:00.
  • as24ci_cron_custom_minutes (Options::CRON_CUSTOM_MINUTES) — Intervall für den benutzerdefinierten Zeitplan. Minimum: 15. Standard: 30.
  • as24ci_cron_mode (Options::CRON_MODE) — wp-cron oder server-cron.
  • as24ci_cron_token (Options::CRON_TOKEN) — Token für den REST Cron-Import-Endpunkt.
  • as24ci_cron_max_vehicles (Options::CRON_MAX_VEHICLES) — Fahrzeug-Limit pro Cron-Durchlauf. 0 = unbegrenzt.
  • as24ci_cron_image_queue (Options::CRON_IMAGE_QUEUE) — Bild-Warteschlangen-Modus während Cron-Durchläufen aktivieren. Standard: 1.
  • as24ci_image_queue (Options::IMAGE_QUEUE_DATA) — persistente Payload für die ausstehende Bild-Warteschlange.
  • as24ci_image_queue_last_run (Options::IMAGE_QUEUE_LAST_RUN) — Statistiken des letzten Durchlaufs des Bild-Warteschlangen-Workers.
  • as24ci_last_run_time (Options::LAST_RUN_TIME) — Unix-Timestamp des letzten abgeschlossenen Imports.
  • as24ci_last_run_status (Options::LAST_RUN_STATUS) — Zähler-Array { inserted, updated, skipped, errors, sync_deleted }.
  • as24ci_last_external_cron_run (Options::LAST_EXTERNAL_CRON_RUN) — Unix-Timestamp des letzten erfolgreichen externen Cron-Pings.

Standardseiten und Lebenszyklus

  • as24ci_create_default_pages (Options::CREATE_DEFAULT_PAGES) — ob die Seiten für Fahrzeuge / Vergleichen / Favoriten bei der Aktivierung erstellt werden sollen.
  • as24ci_page_archive_id, as24ci_page_compare_id, as24ci_page_favorites_id — IDs der bei der Aktivierung erstellten Seiten.
  • as24ci_delete_data_on_uninstall (Options::DELETE_DATA_ON_UNINSTALL) — wenn auf 1 gesetzt, löscht die Deinstallationsroutine Fahrzeuge, Leads, importierte Anhänge und die bei der Aktivierung erstellten Seiten.
  • as24ci_caps_version (Options::CAPS_VERSION) — Capability-Migrations-Marker.
  • as24ci_db_version (Options::DB_VERSION) — Daten-/Schema-Migrations-Marker.

Schema-Marker für benutzerdefinierte Tabellen

  • as24ci_vehicles_db_version — Schema-Version der as24_vehicles-Tabelle.
  • as24ci_search_agent_db_version — Schema-Version der as24ci_search_agents-Tabelle.
  • as24ci_content_studio_db_version — gemeinsame Schema-Version der as24ci_content_studio_jobs- und as24ci_content_studio_assets-Tabellen.
  • as24ci_analytics_db_version — Schema-Version der as24ci_analytics-Tabelle (Konstante AS24CI\Analytics::DB_VERSION_KEY).

Feature-Toggles

Alle Feature-Toggles befinden sich auf AS24CI\Options::FEATURE_*. Standardwerte werden bei der Aktivierung durch AS24CI\Plugin::seed_safe_defaults() hinterlegt:

  • Standardmässig aktiviert: FEATURE_SCHEMA, FEATURE_SOCIAL_SHARE, FEATURE_FAVORITES, FEATURE_COMPARE, FEATURE_PDF_DATASHEET, FEATURE_SITEMAP, FEATURE_DASHBOARD_WIDGET, FEATURE_LAZY_LOADING, FEATURE_BULK_ACTIONS, FEATURE_EXPORT, FINANCING_ENABLED, LAYOUT_MANAGER_ENABLED. FEATURE_SEARCH_AGENT hat keinen explizit hinterlegten Standardwert, aber seine Prüfung zum Registrierungszeitpunkt behandelt alles andere als '0' als aktiviert, sodass es standardmässig aktiv ist.
  • Standardmässig deaktiviert aus Sicherheits-/Compliance-Gründen: ANALYTICS_ENABLED, REST_API_ENABLED, AI_ASSISTANT_ENABLED, TEST_DRIVE_ENABLED.

Die vollständige Liste der Toggles und ihre Semantik ist im Klassen-Docblock für jede Konstante dokumentiert.

Lead-Formular und E-Mail

Verwendet von AS24CI\Contact_Form und AS24CI\Leads_CPT.

  • as24ci_lead_recipient_email — Empfänger-E-Mail überschreiben.
  • as24ci_lead_field_* (Name/E-Mail/Telefon/Nachricht) — Formularfelder anzeigen/ausblenden. Standardwert ist 1.
  • as24ci_lead_consent_enabled, as24ci_lead_consent_text, as24ci_lead_privacy_url — Konfiguration der Einverständnis-Checkbox.
  • as24ci_lead_msg_success, as24ci_lead_msg_error — benutzerdefinierte Benutzernachrichten.
  • as24ci_lead_email_subject_dealer, as24ci_lead_email_subject_customer, as24ci_lead_email_template_dealer, as24ci_lead_email_template_customer — E-Mail-Vorlagen mit Platzhalter-Unterstützung.

Analytics

  • as24ci_analytics_enabled — Hauptschalter. Standard: 0.
  • as24ci_analytics_retention_days — Aufbewahrungszeitraum in Tagen. Standard: 180.
  • as24ci_analytics_bi_enabled — BI / erweitertes Event-Tracking.
  • as24ci_analytics_require_consent — wenn 1, blockiert das Tracking, bis ein externes Einwilligungssignal über den as24ci_analytics_consent_check-Filter eingeht.
  • as24ci_analytics_filter_minimization — Freitext-Suchwerte aus den Analytics-Payloads entfernen. Standard: 1.
  • as24ci_analytics_privacy_jurisdictionauto, gdpr, dsgvo, revdsg, uk_gdpr oder generic.

AI Assistant

  • as24ci_ai_assistant_enabled (Options::AI_ASSISTANT_ENABLED).
  • as24ci_ai_assistant_language, as24ci_ai_assistant_tone, as24ci_ai_assistant_max_length, as24ci_ai_assistant_custom_prompt.
  • as24ci_ai_assistant_auto_generate, as24ci_ai_gen_alt_text, as24ci_ai_gen_seo, as24ci_ai_extract_highlights.

Die KI-Funktionen nutzen eine verwaltete Google Gemini-Konfiguration. Die fest codierten Gemini-Schlüssel-/Modell-Konstanten auf AS24CI\Ai_Config wurden entfernt; Ai_Config ist jetzt eine dünne Fassade (get_managed_gemini_api_key() / get_effective_model()), die den Gemini-Schlüssel des Kunden aus den verschlüsselten Zugangsdaten bezieht, die von der API Platform synchronisiert und von AS24CI\Ai_Credential_Manager verwaltet werden (Laufzeitmodell ist immer Ai_Credential_Manager::PRIMARY_MODEL). In wp_options existiert keine Option für Anbieter, Modell oder API-Schlüssel, und der Schlüssel wird in der Admin-Benutzeroberfläche niemals angezeigt; die Bereitstellung der Kunden-KI erfolgt nach der Installation Server-zu-Server durch AD Promotion.

Probefahrtbuchung

Verwendet von AS24CI\Test_Drive.

  • as24ci_test_drive_enabled — Hauptschalter. Standard: 0.
  • as24ci_test_drive_available_days — Array von ISO-Wochentagsnummern (1=Mon … 7=Son).
  • as24ci_test_drive_start_time, as24ci_test_drive_end_time — Zeitfenster (HH:MM, 24 h). Standardwerte: 08:00 / 18:00.
  • as24ci_test_drive_slot_duration — Slot-Länge in Minuten. Standard: 30.
  • as24ci_test_drive_blackout_dates — Array von Y-m-d-Strings.

Webhooks, REST API und externe Dienste

  • as24ci_webhook_url_new_lead, as24ci_webhook_url_new_import, as24ci_webhook_secret.
  • as24ci_rest_api_enabled (Options::REST_API_ENABLED).
  • as24ci_hub_api_key, as24ci_hub_target_market — Market Hub-Integration (Standard-Zielmarkt: DE).
  • as24ci_locations — Array von Garagen-Standorten (Autoload AUS; wird nur auf einzelnen Fahrzeugseiten und im Admin-Tab für Standorte geladen).

Lizenzierung und verwalteter Zugriff

Verwendet von AS24CI\License_Manager. Diese enthalten den Lizenzstatus und die Feature-Rechte der ADP Car Market Hub API Platform:

  • as24ci_license_plan, as24ci_license_status, as24ci_license_last_error, as24ci_license_support_until, as24ci_license_expires_at, as24ci_license_installation_uid, as24ci_license_normalized_domain (Konstanten Options::LICENSE_*).
  • Der Status der Feature-Rechte steuert die operativen Pfade (Import/Schreiben) und die KI-Pfade; er wird durch den täglichen as24ci_license_refresh-Cron und durch den eingehenden Endpunkt für das Lizenzaktualisierungssignal aktualisiert.

CMH Team

Verwendet von AS24CI\Team (optionsbasierte Speicherung, spiegelt Locations wider):

  • as24ci_team_members (Options::TEAM_MEMBERS) — Array von Verkaufskontakten (keine WordPress-Benutzerkonten erforderlich).
  • as24ci_team_location_defaults, as24ci_team_standards, as24ci_team_rules — unterstützende Konfiguration.

Content Studio

Die Schlüssel für das Content Studio sind auf AS24CI\Content_Studio_Options definiert (nicht auf AS24CI\Options) und werden explizit an die Deinstallationsliste angehängt:

  • as24ci_content_studio_db_version — gemeinsame Schema-Version der beiden Content Studio-Tabellen.
  • as24ci_content_studio_google_api_key, as24ci_content_studio_default_language, as24ci_content_studio_default_tone, as24ci_content_studio_brand_voice, as24ci_content_studio_disclaimer_text, as24ci_content_studio_compliance_notes.

Layout Manager und Archiv-Layout

  • as24ci_layout_manager_enabled — Hauptschalter. Als 1 (aktiviert) durch seed_safe_defaults() hinterlegt.
  • as24ci_lm_zone_* — Layout-Arrays pro Zone für Suchfilter, Archiv-Karten, Einzelansicht Hauptbereich/Sidebar/Fussbereich, Vergleichen und Favoriten.
  • as24ci_lm_block_<id> — Feldkonfiguration pro Block.
  • as24ci_layout_archive_columns — 1–4. Standard: 3.
  • as24ci_archive_default_sortdate_desc, price_asc, price_desc oder mileage_asc.
  • as24ci_archive_per_page — Fahrzeuge pro Seite. Standard: 24.
  • as24ci_archive_list_excerpt_length — Zeichen des Auszugs in der Listenansicht (0–500). Standard: 75.
  • as24ci_layout_search_filters, as24ci_layout_single_main, as24ci_layout_single_sidebar, as24ci_layout_single_bottom — geordnete Arrays von Block-Schlüsseln mit dokumentierten Standardlisten.

Design und Typografie

as24ci_design_* plus die seitenspezifischen Typografie-Optionen as24ci_single_*, as24ci_archive_*, as24ci_fav_* und as24ci_comp_*. Sie steuern das Farbschema, die Schriftarten, Layouts, Badges und Galerieoptionen, die im Admin-Tab Design & Styles bereitgestellt werden. Die vollständige Liste ist als Konstanten auf AS24CI\Options aufgeführt.

EnVKV / WLTP

Für die Konformität auf dem deutschen Markt, verwendet vom EnVKV-Betriebskostenrechner auf einzelnen Fahrzeugseiten.

  • as24ci_envkv_year — Referenzjahr (Standard 2024).
  • as24ci_envkv_price_petrol, as24ci_envkv_price_diesel, as24ci_envkv_price_electric — Kraftstoff-/Strompreise.
  • as24ci_envkv_co2_price_low, as24ci_envkv_co2_price_med, as24ci_envkv_co2_price_high — CO₂-Kosten pro Tonne.
  • as24ci_envkv_show_costs_100km — Betriebskosten anzeigen (Standard no).

Schritt-für-Schritt-Anleitung

Die Einstellungs-Benutzeroberfläche des Plugins ist der unterstützte Weg, um Optionen zu ändern. Die folgenden Punkte beschreiben den unterstützten Lebenszyklus.

  1. Erste Einrichtung. Bei der Aktivierung schreibt seed_safe_defaults() eine konservative Reihe von Standardwerten mittels add_option(). Bestehende Werte werden niemals überschrieben. Öffnen Sie den entsprechenden Admin-Tab, um die Standardwerte vor dem Go-Live zu überprüfen.
  2. Tägliche Änderungen. Bearbeiten Sie die Einstellungen im entsprechenden Admin-Tab (Importer, Automation, Design & Styles, Mapping, AI Assistant usw.). Änderungen werden über die WordPress Settings API gespeichert.
  3. Backups. Standardmässige WordPress-Datenbank-Backups erfassen alle Plugin-Optionen, da sie sich in wp_options befinden. Es ist kein zusätzliches Backup erforderlich.
  4. Umgebungsmigrationen. Wenn Sie eine Website zwischen Umgebungen verschieben, kopieren Sie die entsprechenden as24ci_*-Zeilen zusammen mit dem Rest von wp_options. Behandeln Sie as24ci_client_id, as24ci_client_secret, as24ci_cron_token und das Webhook-Secret (as24ci_webhook_secret) als vertraulich. Beachten Sie, dass bei Installationen, die auf die Datenversion 5 migriert wurden, diese umkehrbaren Secrets AES-256-GCM-verschlüsselt und das Cron-Token gehasht gespeichert werden (siehe Migrationsschritt 5 in Plugin Bootstrap And Lifecycle). Der verwaltete Gemini-Schlüssel wird nicht in wp_options gespeichert; er wird Server-zu-Server von der API Platform synchronisiert (verschlüsselt gehalten von AS24CI\Ai_Credential_Manager) und wird nicht bei Datenbankverschiebungen migriert.
  5. Zurücksetzen einer Einstellung. Löschen Sie die Option (oder verwenden Sie die Schaltfläche zum Zurücksetzen im Admin-Tab, sofern vorhanden). Das Plugin greift dann auf den für diese Einstellung dokumentierten Standardwert zurück.


Konfigurationsreferenz

Verwenden Sie AS24CI\Options::get_all_keys() (zurückgegeben durch Reflexion auf der Klasse) für die massgebliche, vollständige Liste der Optionsschlüssel bei jeder Plugin-Version. Die obige Liste ist zur Referenz gruppiert; neue Konstanten, die zu Options hinzugefügt werden, werden automatisch in die Deinstallationsbereinigung einbezogen.

Betriebliche Hinweise

  • Alle Optionslesevorgänge im Plugin-Code laufen über get_option() mit einem dokumentierten Standardwert, sodass sich fehlende Zeilen genauso verhalten wie frisch installierte Standardwerte.
  • Eine kleine Anzahl von Optionen ist absichtlich auf autoload = false gesetzt, um die Tabelle der automatisch geladenen Optionen klein zu halten. Bemerkenswerte Beispiele sind as24ci_image_queue, as24ci_image_queue_last_run und as24ci_locations.
  • seed_safe_defaults() wird als Teil von Migrationsschritt 4 erneut ausgeführt, damit bestehende Installationen alle neuen sicheren Standardwerte erhalten, ohne dass vom Administrator geänderte Werte überschrieben werden.
  • Multisite-Installationen speichern Optionen pro Website. Die Deinstallationsroutine iteriert über jede Website via switch_to_blog().

Fehlerbehebung

  • Eine Einstellung wird nach dem Upgrade zurückgesetzt. Das Plugin überschreibt bei Upgrades niemals bestehende Optionswerte. Überprüfen Sie, ob die Änderung gespeichert wurde (die Optionszeile existiert in wp_options) und dass kein Konfigurationsmanagement-Tool einen älteren Wert wiederherstellt.
  • Änderungen am Cron-Zeitplan werden ignoriert. Der Scheduler plant WP-Cron nur dann neu, wenn seine Methode reschedule() aufgerufen wird. Verwenden Sie den Tab "Import & Limits", um den neuen Zeitplan zu speichern, anstatt die Option direkt zu bearbeiten.
  • Eine Migration setzt unerwartet eine Option zurück. Nur der Wert ANALYTICS_REQUIRE_CONSENT wird durch Migrationsschritt 2 absichtlich normalisiert (erzwungen auf 0). Alle anderen Einstellungen bleiben durch die Migrationsschritte erhalten.
  • Veraltete oder grosse automatisch geladene Daten. Überprüfen Sie die Grösse der automatisch geladenen Optionen in wp_options und deaktivieren Sie das automatische Laden für alle benutzerdefinierten Plugin-Optionen, die Sie möglicherweise hinzugefügt haben und die grosse Arrays speichern.

Zugehörige Dokumente