Documentatie · Technische documentatie

Opslag van opties en instellingen

Dit document beschrijft hoe de ADP Car Market Hub-plugin zijn instellingen opslaat: welke sleutels worden gebruikt, waar ze zich in de database bevinden en hoe de waarden door de plugin worden gelezen en geschreven.

Wanneer u dit document moet gebruiken

Lees dit document als u:

  • Een specifieke plugin-instelling wilt vinden in wp_options.
  • Wilt begrijpen welke optie een specifieke functie-schakelaar (feature toggle) aanstuurt.
  • Een back-up, omgevingsmigratie of staging-naar-productie-implementatie plant die plugin-instellingen bevat.
  • Een aangepaste integratie wilt bouwen die een plugin-optie uitleest van buiten de plugin-code.

Zie voor de onderliggende tabellen en entiteiten het Database Schema en het Data Model.

Overzicht

Alle door de gebruiker configureerbare instellingen worden opgeslagen als standaard WordPress-opties in de wp_options-tabel. De plugin onderhoudt geen aparte tabel voor instellingen.

Optiesleutels zijn gedefinieerd als constanten in de klasse AS24CI\Options, zodat:

  • De sleutels op exact één plaats in de broncode bestaan.
  • De de-installatieroutine de volledige optielijst automatisch kan afleiden uit AS24CI\Options::get_all_keys().
  • Code die een instelling leest of schrijft, kan verwijzen naar de constante in plaats van de ruwe string te herhalen.

De meeste instellingen zijn scalair (string, integer, boolean gecodeerd als 0/1). Een paar zijn arrays (bijvoorbeeld Seller IDs, mapping-overrides, lay-outzones, social-share-netwerken). Arrays worden opgeslagen met behulp van de standaard optieserialisatie van WordPress.

Naamgevingsconventies

Alle optiesleutels van de plugin beginnen met het voorvoegsel as24ci_. Subsysteemvoorvoegsels groeperen gerelateerde instellingen:

  • as24ci_design_*, as24ci_archive_*, as24ci_single_*, as24ci_fav_*, as24ci_comp_* — ontwerp- en typografie-instellingen.
  • as24ci_cron_*, as24ci_image_queue* — planner en afbeeldingenwachtrij.
  • as24ci_lead_* — contactformulier, toestemming en e-mailsjablonen.
  • as24ci_ai_* — AI Assistant.
  • as24ci_analytics_* — analytics en toestemming.
  • as24ci_test_drive_* — proefritboeking.
  • as24ci_envkv_* — Duitse EnVKV / WLTP-configuratie voor lopende kosten.
  • as24ci_lm_*, as24ci_layout_* — Layout Manager-zones en archieflay-out.
  • as24ci_feature_* — feature toggles voor optionele subsystemen.

De volledige inventaris van optiesleutels is de openbare lijst die wordt geretourneerd door AS24CI\Options::get_all_keys().



Categorieën instellingen

De klasse Options definieert ruim honderd constanten. De onderstaande lijst groepeert ze op basis van hun doel. Waar een standaardwaarde in de code is gedocumenteerd (constante standaardwaarde, add_option() in seed_safe_defaults(), of inline get_option(..., $default)-aanroepen), wordt deze vermeld. Controleer elke niet-standaardwaarde met de huidige plugin-versie voordat u deze publiceert.

API en authenticatie

Gebruikt door AS24CI\Client om te communiceren met de AutoScout24 API.

  • as24ci_base_url (Options::BASE_URL) — API-basis-URL.
  • as24ci_token_url (Options::TOKEN_URL) — OAuth-token-URL.
  • as24ci_seller_ids (Options::SELLER_IDS) — door komma's gescheiden lijst van verkoper-ID's.
  • 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) — standaard ISO 4217-valutacode (ingesteld als EUR bij activering).

Deze waarden zijn vereist voor de werking van elke import en moeten als vertrouwelijk worden behandeld. Ze worden niet getoond aan niet-beheerders.

Gedrag van de importer

Gebruikt door AS24CI\Importer en AS24CI\Image_Importer.

  • as24ci_default_post_status (Options::DEFAULT_POST_STATUS) — status die wordt toegewezen aan nieuw geïmporteerde voertuigen. Ingesteld als draft zodat beheerders de mappings kunnen controleren voordat ze worden gepubliceerd.
  • as24ci_default_post_author (Options::DEFAULT_POST_AUTHOR) — standaard gebruikers-ID van de auteur.
  • as24ci_import_images (Options::IMPORT_IMAGES) — of afbeeldingen moeten worden geïmporteerd.
  • as24ci_max_images (Options::MAX_IMAGES) — maximaal aantal afbeeldingen per voertuig. Ingesteld als 30. Een waarde van 0 wordt door de importer behandeld als onbeperkt; de afbeeldingen-importer handhaaft de limiet bovendien defensief.
  • as24ci_convert_to_webp (Options::CONVERT_TO_WEBP) — geïmporteerde afbeeldingen converteren naar WebP.
  • as24ci_webp_quality (Options::WEBP_QUALITY) — WebP-kwaliteit (1–100; standaard ingesteld op 80 indien niet ingevuld).
  • as24ci_full_sync (Options::FULL_SYNC) — indien ingeschakeld, worden voertuigen die niet meer in de API aanwezig zijn na elke import verwijderd. Ingesteld als 0.
  • as24ci_verbose_logging (Options::VERBOSE_LOGGING) — gedetailleerde logregels per voertuig / per afbeelding.
  • as24ci_mapping_overrides (Options::MAPPING_OVERRIDES) — array van label- en zichtbaarheidsoverschrijvingen per AS24-veld.

Planner en automatisering

Gebruikt door AS24CI\Scheduler en AS24CI\Cron_Endpoint.

  • as24ci_auto_import_enabled (Options::AUTO_IMPORT_ENABLED).
  • as24ci_cron_schedule (Options::CRON_SCHEDULE) — een van hourly, as24ci_every_6_hours, twicedaily, daily, as24ci_custom. Standaard: hourly.
  • as24ci_cron_start_time (Options::CRON_START_TIME) — starttijd voor dagelijkse / tweemaal daagse schema's in HH:MM (24 uur, WordPress tijdzone van de site). Standaard: 06:00.
  • as24ci_cron_custom_minutes (Options::CRON_CUSTOM_MINUTES) — interval voor het aangepaste schema. Minimum: 15. Standaard: 30.
  • as24ci_cron_mode (Options::CRON_MODE) — wp-cron of server-cron.
  • as24ci_cron_token (Options::CRON_TOKEN) — token voor het REST cron-import-eindpunt.
  • as24ci_cron_max_vehicles (Options::CRON_MAX_VEHICLES) — voertuiglimiet per cron-run. 0 = onbeperkt.
  • as24ci_cron_image_queue (Options::CRON_IMAGE_QUEUE) — afbeeldingswachtrij-modus inschakelen tijdens cron-runs. Standaard: 1.
  • as24ci_image_queue (Options::IMAGE_QUEUE_DATA) — persistente payload voor de wachtrij van openstaande afbeeldingen.
  • as24ci_image_queue_last_run (Options::IMAGE_QUEUE_LAST_RUN) — statistieken van de laatste run van de afbeeldingswachtrij-worker.
  • as24ci_last_run_time (Options::LAST_RUN_TIME) — Unix-timestamp van de laatst voltooide import.
  • as24ci_last_run_status (Options::LAST_RUN_STATUS) — array met tellingen { inserted, updated, skipped, errors, sync_deleted }.
  • as24ci_last_external_cron_run (Options::LAST_EXTERNAL_CRON_RUN) — Unix-timestamp van de laatste succesvolle externe cron-ping.

Standaardpagina's en levenscyclus

  • as24ci_create_default_pages (Options::CREATE_DEFAULT_PAGES) — of de pagina's Auto's / Vergelijken / Favorieten moeten worden aangemaakt bij activering.
  • as24ci_page_archive_id, as24ci_page_compare_id, as24ci_page_favorites_id — ID's van de bij activering aangemaakte pagina's.
  • as24ci_delete_data_on_uninstall (Options::DELETE_DATA_ON_UNINSTALL) — wanneer ingesteld op 1, verwijdert de de-installatieroutine voertuigen, leads, geïmporteerde bijlagen en de bij activering aangemaakte pagina's.
  • as24ci_caps_version (Options::CAPS_VERSION) — marker voor de migratie van rechten.
  • as24ci_db_version (Options::DB_VERSION) — marker voor data-/schemamigratie.

Schemamarkers voor aangepaste tabellen

  • as24ci_vehicles_db_version — schemaversie van de as24_vehicles-tabel.
  • as24ci_search_agent_db_version — schemaversie van de as24ci_search_agents-tabel.
  • as24ci_content_studio_db_version — gedeelde schemaversie van de as24ci_content_studio_jobs- en as24ci_content_studio_assets-tabellen.
  • as24ci_analytics_db_version — schemaversie van de as24ci_analytics-tabel (constante AS24CI\Analytics::DB_VERSION_KEY).

Functieschakelaars

Alle functieschakelaars bevinden zich op AS24CI\Options::FEATURE_*. Standaardwaarden worden bij activering ingesteld door AS24CI\Plugin::seed_safe_defaults():

  • Standaard ingeschakeld: 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 heeft geen expliciet ingestelde standaardwaarde, maar de controle tijdens registratie behandelt alles behalve '0' als ingeschakeld, waardoor deze standaard effectief aan staat.
  • Standaard uitgeschakeld vanwege veiligheid/naleving: ANALYTICS_ENABLED, REST_API_ENABLED, AI_ASSISTANT_ENABLED, TEST_DRIVE_ENABLED.

De volledige lijst met schakelaars en hun betekenis is gedocumenteerd in het klasse-docblock voor elke constante.

Leadformulier en e-mail

Gebruikt door AS24CI\Contact_Form en AS24CI\Leads_CPT.

  • as24ci_lead_recipient_email — e-mailadres van de ontvanger overschrijven.
  • as24ci_lead_field_* (naam/e-mail/telefoon/bericht) — formuliervelden tonen/verbergen. Standaard ingesteld op 1.
  • as24ci_lead_consent_enabled, as24ci_lead_consent_text, as24ci_lead_privacy_url — configuratie van het toestemmingsselectievakje.
  • as24ci_lead_msg_success, as24ci_lead_msg_error — aangepaste gebruikersberichten.
  • as24ci_lead_email_subject_dealer, as24ci_lead_email_subject_customer, as24ci_lead_email_template_dealer, as24ci_lead_email_template_customer — e-mailsjablonen met ondersteuning voor tijdelijke aanduidingen (placeholders).

Analytics

  • as24ci_analytics_enabled — hoofdschakelaar. Standaard: 0.
  • as24ci_analytics_retention_days — bewaartermijn in dagen. Standaard: 180.
  • as24ci_analytics_bi_enabled — BI / uitgebreide gebeurtenistracking.
  • as24ci_analytics_require_consent — wanneer 1, blokkeert dit tracking totdat een extern toestemmingssignaal binnenkomt via het as24ci_analytics_consent_check-filter.
  • as24ci_analytics_filter_minimization — vrije tekstzoekwaarden verwijderen uit analytics-payloads. Standaard: 1.
  • as24ci_analytics_privacy_jurisdictionauto, gdpr, dsgvo, revdsg, uk_gdpr of 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.

AI-functies maken gebruik van een beheerde Google Gemini-configuratie. De hardgecodeerde Gemini sleutel-/modelconstanten op AS24CI\Ai_Config zijn verwijderd; Ai_Config is nu een dunne facade (get_managed_gemini_api_key() / get_effective_model()) die de Gemini-sleutel van de klant ophaalt uit de gecodeerde inloggegevens die zijn gesynchroniseerd door het API-platform en worden beheerd door AS24CI\Ai_Credential_Manager (het runtime-model is altijd Ai_Credential_Manager::PRIMARY_MODEL). Er bestaat geen optie voor provider, model of API-sleutel in wp_options, en de sleutel wordt nooit getoond in de beheerinterface; de AI-provisioning voor de klant wordt na installatie server-to-server voltooid door AD Promotion.

Proefrit boeken

Gebruikt door AS24CI\Test_Drive.

  • as24ci_test_drive_enabled — hoofdschakelaar. Standaard: 0.
  • as24ci_test_drive_available_days — array van ISO-dagnummers (1=ma … 7=zo).
  • as24ci_test_drive_start_time, as24ci_test_drive_end_time — tijdvenster (HH:MM, 24 uur). Standaardwaarden 08:00 / 18:00.
  • as24ci_test_drive_slot_duration — lengte van het tijdslot in minuten. Standaard: 30.
  • as24ci_test_drive_blackout_dates — array van Y-m-d-strings.

Webhooks, REST API en externe diensten

  • 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-integratie (standaard doelmarkt: DE).
  • as24ci_locations — array van dealerlocaties (autoload UIT; wordt alleen geladen op individuele voertuigpagina's en het tabblad Locaties in het beheerpaneel).

Licenties en beheerde toegang

Gebruikt door AS24CI\License_Manager. Deze bevatten de licentiestatus en functierechten van het 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 (constanten Options::LICENSE_*).
  • De status van functierechten regelt de operationele (import/schrijf) en AI-paden; deze wordt ververst door de dagelijkse as24ci_license_refresh cron en door het inkomende eindpunt voor het verversen van licenties.

CMH Team

Gebruikt door AS24CI\Team (op opties gebaseerde opslag, die Locations spiegelt):

  • as24ci_team_members (Options::TEAM_MEMBERS) — array van verkoopcontacten (geen WordPress-gebruikersaccounts vereist).
  • as24ci_team_location_defaults, as24ci_team_standards, as24ci_team_rules — ondersteunende configuratie.

Content Studio

Content Studio-sleutels zijn gedefinieerd op AS24CI\Content_Studio_Options (niet AS24CI\Options) en worden expliciet toegevoegd aan de de-installatielijst:

  • as24ci_content_studio_db_version — gedeelde schemaversie van de twee 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 en archieflay-out

  • as24ci_layout_manager_enabled — hoofdschakelaar. Ingesteld als 1 (aan) door seed_safe_defaults().
  • as24ci_lm_zone_* — lay-out-arrays per zone voor zoekfilters, archiefkaarten, enkele hoofd-/zijbalk/onderkant, vergelijken en favorieten.
  • as24ci_lm_block_<id> — veldconfiguratie per blok.
  • as24ci_layout_archive_columns — 1–4. Standaard: 3.
  • as24ci_archive_default_sortdate_desc, price_asc, price_desc of mileage_asc.
  • as24ci_archive_per_page — voertuigen per pagina. Standaard: 24.
  • as24ci_archive_list_excerpt_length — tekens van het samenvattingsfragment in de lijstweergave (0–500). Standaard: 75.
  • as24ci_layout_search_filters, as24ci_layout_single_main, as24ci_layout_single_sidebar, as24ci_layout_single_bottom — geordende arrays van bloksleutels met gedocumenteerde standaardlijsten.

Ontwerp en typografie

as24ci_design_* plus de paginaspecifieke typografie-opties as24ci_single_*, as24ci_archive_*, as24ci_fav_* en as24ci_comp_*. Deze sturen het kleurenschema, de lettertypen, lay-outs, badges en galerij-opties aan die beschikbaar zijn in het beheerderstabblad Design & Styles. De volledige lijst is opgenomen als constanten op AS24CI\Options.

EnVKV / WLTP

Voor naleving van de Duitse wetgeving, gebruikt door de EnVKV-calculator voor lopende kosten op individuele voertuigpagina's.

  • as24ci_envkv_year — referentiejaar (standaard 2024).
  • as24ci_envkv_price_petrol, as24ci_envkv_price_diesel, as24ci_envkv_price_electric — brandstof-/elektriciteitsprijzen.
  • as24ci_envkv_co2_price_low, as24ci_envkv_co2_price_med, as24ci_envkv_co2_price_high — CO₂-kosten per ton.
  • as24ci_envkv_show_costs_100km — lopende kosten weergeven (standaard no).

Stapsgewijze instructies

De instellingeninterface van de plugin is de ondersteunde manier om opties te wijzigen. De onderstaande punten beschrijven de ondersteunde levenscyclus.

  1. Eerste installatie. Bij activering schrijft seed_safe_defaults() een behoudende set standaardwaarden met behulp van add_option(). Bestaande waarden worden nooit overschreven. Open het relevante beheerderstabblad om de standaardwaarden te controleren voordat u live gaat.
  2. Dagelijkse wijzigingen. Bewerk instellingen in het bijbehorende beheerderstabblad (Importer, Automation, Design & Styles, Mapping, AI Assistant, etc.). Wijzigingen worden opgeslagen via de WordPress Settings API.
  3. Back-ups. Standaard WordPress-databaseback-ups slaan alle plugin-opties op omdat deze zich in wp_options bevinden. Er is geen aanvullende back-up vereist.
  4. Omgevingsmigraties. Kopieer bij het verplaatsen van een site tussen omgevingen de relevante as24ci_*-rijen mee met de rest van wp_options. Behandel as24ci_client_id, as24ci_client_secret, as24ci_cron_token en het webhook-geheim (as24ci_webhook_secret) als vertrouwelijk. Let op dat bij installaties die zijn gemigreerd naar dataversie 5 deze omkeerbare geheimen AES-256-GCM-gecodeerd worden opgeslagen en het cron-token gehasht wordt opgeslagen (zie migratiestap 5 in Plugin Bootstrap And Lifecycle). De beheerde Gemini-sleutel wordt niet opgeslagen in wp_options; deze wordt server-to-server gesynchroniseerd door het API-platform (gecodeerd bewaard door AS24CI\Ai_Credential_Manager) en wordt niet gemigreerd via databaseverhuizingen.
  5. Een instelling resetten. Verwijder de optie (of gebruik de resetknop van het beheerderstabblad indien aanwezig). De plugin valt dan terug op de standaardwaarde die voor die instelling is gedocumenteerd.

Configuration reference

Gebruik AS24CI\Options::get_all_keys() (geretourneerd door reflectie op de class) voor de gezaghebbende, volledige lijst van optiesleutels bij elke plugin-versie. De bovenstaande lijst is gegroepeerd ter referentie; nieuwe constanten die aan Options worden toegevoegd, worden automatisch opgenomen in de opschoonactie bij het deïnstalleren.

Operational notes

  • Alle optie-uitlezingen in de plugin-code verlopen via get_option() met een gedocumenteerde standaardwaarde, zodat ontbrekende rijen zich hetzelfde gedragen als vers geïnstalleerde standaardwaarden.
  • Een klein aantal opties is opzettelijk autoload = false om de tabel met automatisch geladen opties klein te houden. Opvallende voorbeelden zijn as24ci_image_queue, as24ci_image_queue_last_run en as24ci_locations.
  • seed_safe_defaults() wordt opnieuw uitgevoerd als onderdeel van migratiestap 4, zodat bestaande installaties eventuele nieuwe veilige standaardwaarden ontvangen zonder door de beheerder gewijzigde waarden te overschrijven.
  • Multisite-installaties slaan opties per site op. De deïnstallatieroutine loopt door elke site via switch_to_blog().

Troubleshooting

  • Een instelling keert terug naar de oude waarde na een upgrade. De plugin overschrijft nooit bestaande optiewaarden tijdens upgrades. Controleer of de wijziging is opgeslagen (de optierij bestaat in wp_options) en dat er geen configuratiebeheertool is die een oudere waarde herstelt.
  • Wijzigingen in het Cron-schema worden genegeerd. De planner herprogrammeert WP-Cron alleen wanneer de methode reschedule() wordt aangeroepen. Gebruik het tabblad Import & Limieten om het nieuwe schema op te slaan in plaats van de optie rechtstreeks te bewerken.
  • Een migratie reset onverwacht een optie. Alleen de waarde van ANALYTICS_REQUIRE_CONSENT wordt opzettelijk genormaliseerd door migratiestap 2 (gedwongen naar 0). Alle andere instellingen blijven behouden door de migratiestappen.
  • Verouderde of grote automatisch geladen gegevens. Inspecteer de grootte van de automatisch geladen opties in wp_options en schakel automatisch laden uit voor eventuele aangepaste plugin-opties die u hebt toegevoegd en die grote arrays opslaan.