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_optionslokalisieren 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 außerhalb des Plugin-Codes liest.
Für die zugrunde liegenden Tabellen und Entitäten siehe Datenbankschema und Datenmodell.
Ü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 kodiert als 0/1).
Einige wenige sind Arrays (z. B. Händler-IDs, Mapping-Überschreibungen, 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_*– KI-Assistent.as24ci_analytics_*– Analytics und Einwilligung.as24ci_test_drive_*– Probefahrtbuchung.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 Verzeichnis der Optionsschlüssel ist die öffentliche Liste, die von AS24CI\Options::get_all_keys() zurückgegeben wird.
Kategorien von Einstellungen
Die Klasse Options definiert weit über hundert Konstanten. Die folgende Liste gruppiert sie nach Verwendungszweck. Soweit ein Standardwert im Code dokumentiert ist (Konstanten-Standardwert, add_option() in seed_safe_defaults() oder Inline-get_option(..., $default)-Aufrufe), ist dieser angegeben. Überprüfen Sie jeden abweichenden Wert vor der Veröffentlichung anhand der aktuellen Plugin-Version.
API und Authentifizierung
Wird von AS24CI\Client verwendet, 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 Händler-IDs.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 alsEURinitialisiert).
Diese Werte sind für jeden Import zwingend erforderlich und sollten vertraulich behandelt werden. Sie werden Nicht-Administratoren nicht angezeigt.
Verhalten des Importers
Wird von AS24CI\Importer und AS24CI\Image_Importer verwendet.
as24ci_default_post_status(Options::DEFAULT_POST_STATUS) — Status, der neu importierten Fahrzeugen zugewiesen wird. Alsdraftinitialisiert, damit Administratoren die Zuordnungen 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) — Legt fest, ob Bilder importiert werden sollen.as24ci_max_images(Options::MAX_IMAGES) — Maximale Anzahl von Bildern pro Fahrzeug. Initialisiert als30. Ein Wert von0wird vom Importer als unbegrenzt behandelt; der Bild-Importer erzwingt das Limit zusätzlich defensiv.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äßig80, falls nicht festgelegt).as24ci_full_sync(Options::FULL_SYNC) — Wenn aktiviert, werden Fahrzeuge, die nicht mehr in der API vorhanden sind, nach jedem Import gelöscht. Initialisiert als0.as24ci_verbose_logging(Options::VERBOSE_LOGGING) — Ausführliche Protokollzeilen pro Fahrzeug / pro Bild.as24ci_mapping_overrides(Options::MAPPING_OVERRIDES) — Array von Label- und Sichtbarkeitsüberschreibungen pro AS24-Feld.
Scheduler und Automatisierung
Wird von AS24CI\Scheduler und AS24CI\Cron_Endpoint verwendet.
as24ci_auto_import_enabled(Options::AUTO_IMPORT_ENABLED).as24ci_cron_schedule(Options::CRON_SCHEDULE) — Einer vonhourly,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 inHH:MM(24 Std., 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-cronoderserver-cron.as24ci_cron_token(Options::CRON_TOKEN) — Token für den REST-Cron-Import-Endpunkt.as24ci_cron_max_vehicles(Options::CRON_MAX_VEHICLES) — Fahrzeug-Obergrenze pro Cron-Durchlauf.0= unbegrenzt.as24ci_cron_image_queue(Options::CRON_IMAGE_QUEUE) — Bild-Warteschlangenmodus während Cron-Durchläufen aktivieren. Standard:1.as24ci_image_queue(Options::IMAGE_QUEUE_DATA) — Persistente Nutzlast der ausstehenden 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) — Legt fest, ob die Seiten „Fahrzeuge“, „Vergleichen“ und „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 auf1gesetzt, löscht die Deinstallationsroutine Fahrzeuge, Leads, importierte Anhänge und die bei der Aktivierung erstellten Seiten.as24ci_caps_version(Options::CAPS_VERSION) — Marker für die Berechtigungsmigration.as24ci_db_version(Options::DB_VERSION) — Marker für die Daten-/Schema-Migration.
Schema-Marker für benutzerdefinierte Tabellen
as24ci_vehicles_db_version— Schema-Version der Tabelleas24_vehicles.as24ci_search_agent_db_version— Schema-Version der Tabelleas24ci_search_agents.as24ci_content_studio_db_version— Gemeinsame Schema-Version der Tabellenas24ci_content_studio_jobsundas24ci_content_studio_assets.as24ci_analytics_db_version— Schema-Version der Tabelleas24ci_analytics(KonstanteAS24CI\Analytics::DB_VERSION_KEY).
Funktions-Toggles
Alle Funktions-Toggles befinden sich in AS24CI\Options::FEATURE_*. Standardwerte werden bei der Aktivierung durch AS24CI\Plugin::seed_safe_defaults() initialisiert:
- Standardmäßig 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_AGENThat keinen explizit initialisierten Standardwert, aber seine Prüfung zum Registrierungszeitpunkt behandelt alles außer'0'als aktiviert, sodass es standardmäßig aktiv ist. - Standardmäßig 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-Dokumentationsblock für jede Konstante dokumentiert.
Lead-Formular und E-Mail
Wird von AS24CI\Contact_Form und AS24CI\Leads_CPT verwendet.
as24ci_lead_recipient_email— Empfänger-E-Mail-Adresse überschreiben.as24ci_lead_field_*(Name/E-Mail/Telefon/Nachricht) — Formularfelder ein-/ausblenden. Standardmäßig1.as24ci_lead_consent_enabled,as24ci_lead_consent_text,as24ci_lead_privacy_url— Konfiguration der Einwilligungskontrollkästchen.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.
Analysen
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— Wenn1, wird das Tracking blockiert, bis ein externes Einwilligungssignal über den Filteras24ci_analytics_consent_checkeingeht.as24ci_analytics_filter_minimization— Freitext-Suchwerte aus den Analyse-Nutzdaten entfernen. Standard:1.as24ci_analytics_privacy_jurisdiction—auto,gdpr,dsgvo,revdsg,uk_gdprodergeneric.
KI-Assistent
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.
KI-Funktionen nutzen eine verwaltete Google Gemini-Konfiguration. Die fest im Code hinterlegten Gemini-Schlüssel-/Modell-Konstanten in AS24CI\Ai_Config wurden entfernt; Ai_Config ist jetzt eine schlanke Fassade (get_managed_gemini_api_key() / get_effective_model()), die den Gemini-Schlüssel des Kunden aus den verschlüsselten Anmeldedaten bezieht, die von der API-Plattform 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 niemals in der Admin-Benutzeroberfläche angezeigt; die Bereitstellung der Kunden-KI erfolgt nach der Installation Server-zu-Server durch AD Promotion.
Probefahrtbuchung
Wird von AS24CI\Test_Drive verwendet.
as24ci_test_drive_enabled— Hauptschalter. Standard:0.as24ci_test_drive_available_days— Array von ISO-Wochentagsnummern (1=Mo … 7=So).as24ci_test_drive_start_time,as24ci_test_drive_end_time— Zeitfenster (HH:MM, 24 Std.). Standardwerte:08:00/18:00.as24ci_test_drive_slot_duration— Slot-Länge in Minuten. Standard:30.as24ci_test_drive_blackout_dates— Array vonY-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 Autohaus-Standorten (Autoload AUS; wird nur auf einzelnen Fahrzeugseiten und im Admin-Tab „Standorte“ geladen).
Lizenzierung und verwalteter Zugriff
Wird von AS24CI\License_Manager verwendet. Diese enthalten den Lizenzstatus und die Funktionsrechte der ADP Car Market Hub-API-Plattform:
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(KonstantenOptions::LICENSE_*).- Der Status der Funktionsrechte steuert die operativen Pfade (Import/Schreiben) und KI-Pfade; er wird durch den täglichen
as24ci_license_refresh-Cron und den eingehenden Endpunkt für das Lizenzaktualisierungssignal aktualisiert.
CMH Team
Wird von AS24CI\Team verwendet (optionsbasierte Speicherung, spiegelt Locations wider):
as24ci_team_members(Options::TEAM_MEMBERS) — Array von Vertriebskontakten (keine WordPress-Benutzerkonten erforderlich).as24ci_team_location_defaults,as24ci_team_standards,as24ci_team_rules— Unterstützende Konfiguration.
Content Studio
Content Studio-Schlüssel sind in AS24CI\Content_Studio_Options (nicht AS24CI\Options) definiert 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. Initialisiert als1(ein) durchseed_safe_defaults().as24ci_lm_zone_*— Layout-Arrays pro Zone für Suchfilter, Archivkarten, Einzelansicht Hauptbereich/Sidebar/unten, Vergleichen und Favoriten.as24ci_lm_block_<id>— Feldkonfiguration pro Block.as24ci_layout_archive_columns— 1–4. Standard:3.as24ci_archive_default_sort—date_desc,price_asc,price_descodermileage_asc.as24ci_archive_per_page— Fahrzeuge pro Seite. Standard:24.as24ci_archive_list_excerpt_length— Zeichen aus dem Auszug 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 Blockschlü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 in 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 (Standard2024).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 (Standardno).
Schritt-für-Schritt-Anleitung
Die Einstellungs-Benutzeroberfläche des Plugins ist der empfohlene Weg, um Optionen zu ändern. Die folgenden Punkte beschreiben den unterstützten Lebenszyklus.
- Ersteinrichtung. Bei der Aktivierung schreibt
seed_safe_defaults()einen konservativen Satz von Standardwerten unter Verwendung vonadd_option(). Bestehende Werte werden niemals überschrieben. Öffnen Sie den entsprechenden Admin-Tab, um die Standardwerte zu überprüfen, bevor Sie live gehen. - Tägliche Änderungen. Bearbeiten Sie die Einstellungen im entsprechenden Admin-Tab (Importer, Automatisierung, Design & Styles, Mapping, KI-Assistent usw.). Änderungen werden über die WordPress-Settings-API gespeichert.
- Backups. Standardmäßige WordPress-Datenbank-Backups erfassen alle Plugin-Optionen, da sie in
wp_optionsliegen. Es ist kein zusätzliches Backup erforderlich. - Umgebungsmigrationen. Wenn Sie eine Website zwischen Umgebungen verschieben, kopieren Sie die relevanten
as24ci_*-Zeilen zusammen mit dem Rest vonwp_options. Behandeln Sieas24ci_client_id,as24ci_client_secret,as24ci_cron_tokenund 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 und Lebenszyklus). Der verwaltete Gemini-Schlüssel wird nicht inwp_optionsgespeichert; er wird Server-zu-Server von der API-Plattform synchronisiert (verschlüsselt gehalten vonAS24CI\Ai_Credential_Manager) und wird bei Datenbankverschiebungen nicht mitmigriert. - 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 fällt 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 maßgebliche, 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 = falsegesetzt, um die Tabelle der automatisch geladenen Optionen klein zu halten. Bemerkenswerte Beispiele sindas24ci_image_queue,as24ci_image_queue_last_runundas24ci_locations. seed_safe_defaults()wird als Teil von Migrationsschritt 4 erneut ausgeführt, damit bestehende Installationen alle neuen sicheren Standardwerte erhalten, ohne vom Administrator geänderte Werte zu überschreiben.- Multisite-Installationen speichern Optionen pro Website. Die Deinstallationsroutine iteriert jede Website über
switch_to_blog().
Fehlerbehebung
- Eine Einstellung wird nach dem Upgrade zurückgesetzt. Das Plugin überschreibt bei Upgrades niemals vorhandene 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 neu, wenn seine Methode
reschedule()aufgerufen wird. Verwenden Sie den Reiter „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_CONSENTwird durch Migrationsschritt 2 absichtlich normalisiert (erzwungen auf0). Alle anderen Einstellungen bleiben durch die Migrationsschritte erhalten. - Veraltete oder große automatisch geladene Daten. Überprüfen Sie die Größe der automatisch geladenen Optionen in
wp_optionsund deaktivieren Sie das automatische Laden für alle benutzerdefinierten Plugin-Optionen, die Sie möglicherweise hinzugefügt haben und die große Arrays speichern.