Documentation · Documentation technique

Stockage des options et des réglages

Ce document décrit comment le plugin ADP Car Market Hub stocke ses réglages : quelles clés sont utilisées, où elles résident dans la base de données et comment les valeurs sont lues et écrites par le plugin.

Quand utiliser ce document

Lisez ce document si vous devez :

  • Localiser un réglage spécifique du plugin dans wp_options.
  • Comprendre quelle option pilote l'activation d'une fonctionnalité particulière.
  • Planifier une sauvegarde, une migration d'environnement ou un déploiement de pré-production vers la production incluant les réglages du plugin.
  • Créer une intégration personnalisée qui lit une option du plugin depuis l'extérieur du code du plugin.

Pour les tables et entités sous-jacentes, consultez le Database Schema et le Data Model.

Aperçu

Tous les réglages configurables par l'utilisateur sont stockés sous forme d'options WordPress standards dans la table wp_options. Le plugin ne gère pas de table de réglages distincte.

Les clés d'option sont définies comme des constantes sur la classe AS24CI\Options afin que :

  • Les clés n'existent qu'à un seul endroit dans le code source.
  • La routine de désinstallation puisse dériver automatiquement la liste complète des options à partir de AS24CI\Options::get_all_keys().
  • Le code qui lit ou écrit un réglage puisse faire référence à la constante au lieu de répéter la chaîne brute.

La plupart des réglages sont scalaires (chaîne, entier, booléen encodé sous la forme 0/1). Quelques-uns sont des tableaux (par exemple les Seller IDs, les surcharges de mapping, les zones de mise en page, les réseaux de partage social). Les tableaux sont stockés en utilisant la sérialisation d'option par défaut de WordPress.

Conventions de nommage

Toutes les clés d'option du plugin commencent par le préfixe as24ci_. Des préfixes de sous-système groupent les réglages associés :

  • as24ci_design_*, as24ci_archive_*, as24ci_single_*, as24ci_fav_*, as24ci_comp_* — réglages de design et de typographie.
  • as24ci_cron_*, as24ci_image_queue* — planificateur et file d'attente d'images.
  • as24ci_lead_* — formulaire de contact, consentement et modèles d'e-mail.
  • as24ci_ai_* — AI Assistant.
  • as24ci_analytics_* — analyses et consentement.
  • as24ci_test_drive_* — réservation d'essai routier.
  • as24ci_envkv_* — configuration allemande EnVKV / WLTP des coûts d'utilisation.
  • as24ci_lm_*, as24ci_layout_* — zones du Layout Manager et mise en page des archives.
  • as24ci_feature_* — commutateurs de fonctionnalités pour les sous-systèmes optionnels.

L'inventaire complet des clés d'option est la liste publique retournée par AS24CI\Options::get_all_keys().


Catégories de réglages

La classe Options définit bien plus d'une centaine de constantes. La liste ci-dessous les regroupe par objectif. Lorsqu'une valeur par défaut est documentée dans le code (constante par défaut, add_option() dans seed_safe_defaults(), ou appels en ligne get_option(..., $default)), elle est indiquée. Vérifiez toute valeur non par défaut par rapport à la version actuelle du plugin avant de publier.

API et authentification

Utilisé par AS24CI\Client pour communiquer avec l'API AutoScout24.

  • as24ci_base_url (Options::BASE_URL) — URL de base de l'API.
  • as24ci_token_url (Options::TOKEN_URL) — URL du jeton OAuth.
  • as24ci_seller_ids (Options::SELLER_IDS) — liste d'identifiants de vendeurs séparés par des virgules.
  • as24ci_client_id (Options::CLIENT_ID) — Client ID OAuth.
  • as24ci_client_secret (Options::CLIENT_SECRET) — secret client OAuth.
  • as24ci_token_audience (Options::TOKEN_AUDIENCE) — paramètre d'audience OAuth.
  • as24ci_default_currency (Options::DEFAULT_CURRENCY) — code de devise ISO 4217 par défaut (initialisé à EUR lors de l'activation).

Ces valeurs sont requises pour que toute importation fonctionne et doivent être traitées comme confidentielles. Elles ne sont pas affichées aux non-administrateurs.

Comportement de l'importateur

Utilisé par AS24CI\Importer et AS24CI\Image_Importer.

  • as24ci_default_post_status (Options::DEFAULT_POST_STATUS) — statut attribué aux véhicules nouvellement importés. Initialisé à draft afin que les administrateurs puissent vérifier les mappings avant de publier.
  • as24ci_default_post_author (Options::DEFAULT_POST_AUTHOR) — ID d'utilisateur de l'auteur par défaut.
  • as24ci_import_images (Options::IMPORT_IMAGES) — s'il faut importer les images.
  • as24ci_max_images (Options::MAX_IMAGES) — nombre maximum d'images par véhicule. Initialisé à 30. Une valeur de 0 est traitée comme une absence de limite par l'importateur ; l'importateur d'images applique en outre la limite de manière défensive.
  • as24ci_convert_to_webp (Options::CONVERT_TO_WEBP) — convertir les images importées en WebP.
  • as24ci_webp_quality (Options::WEBP_QUALITY) — qualité WebP (1–100 ; par défaut à 80 si non défini).
  • as24ci_full_sync (Options::FULL_SYNC) — lorsqu'activé, les véhicules qui ne sont plus présents dans l'API sont supprimés après chaque importation. Initialisé à 0.
  • as24ci_verbose_logging (Options::VERBOSE_LOGGING) — lignes de journal détaillées par véhicule / par image.
  • as24ci_mapping_overrides (Options::MAPPING_OVERRIDES) — tableau de surcharges de libellés et de visibilité par champ AS24.

Planificateur et automatisation

Utilisé par AS24CI\Scheduler et AS24CI\Cron_Endpoint.

  • as24ci_auto_import_enabled (Options::AUTO_IMPORT_ENABLED).
  • as24ci_cron_schedule (Options::CRON_SCHEDULE) — l'un des éléments suivants : hourly, as24ci_every_6_hours, twicedaily, daily, as24ci_custom. Par défaut : hourly.
  • as24ci_cron_start_time (Options::CRON_START_TIME) — heure de début pour les planifications quotidiennes / bi-quotidiennes dans HH:MM (24 h, fuseau horaire du site WordPress). Par défaut : 06:00.
  • as24ci_cron_custom_minutes (Options::CRON_CUSTOM_MINUTES) — intervalle pour la planification personnalisée. Minimum : 15. Par défaut : 30.
  • as24ci_cron_mode (Options::CRON_MODE) — wp-cron ou server-cron.
  • as24ci_cron_token (Options::CRON_TOKEN) — jeton pour le point de terminaison REST cron-import.
  • as24ci_cron_max_vehicles (Options::CRON_MAX_VEHICLES) — limite de véhicules par exécution de cron. 0 = illimité.
  • as24ci_cron_image_queue (Options::CRON_IMAGE_QUEUE) — activer le mode file d'attente d'images pendant les exécutions de cron. Par défaut : 1.
  • as24ci_image_queue (Options::IMAGE_QUEUE_DATA) — charge utile persistante de la file d'attente d'images en attente.
  • as24ci_image_queue_last_run (Options::IMAGE_QUEUE_LAST_RUN) — statistiques de la dernière exécution du worker de file d'attente d'images.
  • as24ci_last_run_time (Options::LAST_RUN_TIME) — horodatage Unix de la dernière importation terminée.
  • as24ci_last_run_status (Options::LAST_RUN_STATUS) — tableau de compteurs { inserted, updated, skipped, errors, sync_deleted }.
  • as24ci_last_external_cron_run (Options::LAST_EXTERNAL_CRON_RUN) — horodatage Unix du dernier ping cron externe réussi.

Pages par défaut et cycle de vie

  • as24ci_create_default_pages (Options::CREATE_DEFAULT_PAGES) — s'il faut créer les pages Cars / Compare / Favorites lors de l'activation.
  • as24ci_page_archive_id, as24ci_page_compare_id, as24ci_page_favorites_id — ID des pages créées lors de l'activation.
  • as24ci_delete_data_on_uninstall (Options::DELETE_DATA_ON_UNINSTALL) — lorsqu'il est défini sur 1, la routine de désinstallation supprime les véhicules, les leads, les pièces jointes importées et les pages créées lors de l'activation.
  • as24ci_caps_version (Options::CAPS_VERSION) — marqueur de migration des capacités.
  • as24ci_db_version (Options::DB_VERSION) — marqueur de migration des données/schéma.

Marqueurs de schéma de table personnalisée

  • as24ci_vehicles_db_version — version de schéma de la table as24_vehicles.
  • as24ci_search_agent_db_version — version de schéma de la table as24ci_search_agents.
  • as24ci_content_studio_db_version — version de schéma partagée des tables as24ci_content_studio_jobs et as24ci_content_studio_assets.
  • as24ci_analytics_db_version — version de schéma de la table as24ci_analytics (constante AS24CI\Analytics::DB_VERSION_KEY).

Boutons de bascule des fonctionnalités

Tous les boutons de bascule des fonctionnalités résident sur AS24CI\Options::FEATURE_*. Les valeurs par défaut sont initialisées par AS24CI\Plugin::seed_safe_defaults() lors de l'activation :

  • Activé par défaut : 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 n'a pas de valeur par défaut explicitement initialisée, mais sa vérification au moment de l'enregistrement traite tout ce qui est autre que '0' comme activé, il est donc effectivement activé par défaut.
  • Désactivé par défaut pour des raisons de sécurité/conformité : ANALYTICS_ENABLED, REST_API_ENABLED, AI_ASSISTANT_ENABLED, TEST_DRIVE_ENABLED.

La liste complète des boutons de bascule et leur sémantique est documentée dans le bloc de documentation de classe pour chaque constante.

Formulaire de lead et e-mail

Utilisé par AS24CI\Contact_Form et AS24CI\Leads_CPT.

  • as24ci_lead_recipient_email — surcharger l'e-mail du destinataire.
  • as24ci_lead_field_* (nom/e-mail/téléphone/message) — afficher/masquer les champs du formulaire. Par défaut à 1.
  • as24ci_lead_consent_enabled, as24ci_lead_consent_text, as24ci_lead_privacy_url — configuration de la case à cocher de consentement.
  • as24ci_lead_msg_success, as24ci_lead_msg_error — messages utilisateur personnalisés.
  • as24ci_lead_email_subject_dealer, as24ci_lead_email_subject_customer, as24ci_lead_email_template_dealer, as24ci_lead_email_template_customer — modèles d'e-mails avec prise en charge des espaces réservés.

Analyse

  • as24ci_analytics_enabled — bouton de bascule principal. Par défaut : 0.
  • as24ci_analytics_retention_days — fenêtre de rétention en jours. Par défaut : 180.
  • as24ci_analytics_bi_enabled — BI / suivi étendu des événements.
  • as24ci_analytics_require_consent — lorsque 1, bloque le suivi jusqu'à ce qu'un signal de consentement externe arrive via le filtre as24ci_analytics_consent_check.
  • as24ci_analytics_filter_minimization — supprimer les valeurs de recherche en texte libre des charges utiles d'analyse. Par défaut : 1.
  • as24ci_analytics_privacy_jurisdictionauto, gdpr, dsgvo, revdsg, uk_gdpr ou 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.

Les fonctionnalités d'IA utilisent une configuration Google Gemini gérée. Les constantes de clé/modèle Gemini codées en dur sur AS24CI\Ai_Config ont été supprimées ; Ai_Config est désormais une fine façade (get_managed_gemini_api_key() / get_effective_model()) qui extrait la clé Gemini du client à partir de l'identifiant chiffré synchronisé par l'API Platform et géré par AS24CI\Ai_Credential_Manager (le modèle d'exécution est toujours Ai_Credential_Manager::PRIMARY_MODEL). Aucune option de fournisseur, de modèle ou de clé API n'existe dans wp_options, et la clé n'est jamais affichée dans l'interface d'administration ; le provisionnement de l'IA du client est effectué de serveur à serveur par AD Promotion après l'installation.

Réservation d'essai routier

Utilisé par AS24CI\Test_Drive.

  • as24ci_test_drive_enabled — bouton de bascule principal. Par défaut : 0.
  • as24ci_test_drive_available_days — tableau de numéros de jours ISO (1=Lun … 7=Dim).
  • as24ci_test_drive_start_time, as24ci_test_drive_end_time — fenêtre horaire (HH:MM, 24 h). Valeurs par défaut 08:00 / 18:00.
  • as24ci_test_drive_slot_duration — durée du créneau en minutes. Par défaut : 30.
  • as24ci_test_drive_blackout_dates — tableau de chaînes Y-m-d.

Webhooks, REST API et services externes

  • 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 — intégration Market Hub (marché cible par défaut : DE).
  • as24ci_locations — tableau d'emplacements de concessions (chargement automatique désactivé ; chargé uniquement sur les pages de véhicules individuels et l'onglet d'administration Emplacements).

Licences et accès géré

Utilisé par AS24CI\License_Manager. Ceux-ci contiennent l'état de la licence de l'API Platform ADP Car Market Hub et les droits d'accès aux fonctionnalités :

  • 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 (constantes Options::LICENSE_*).
  • L'état des droits d'accès aux fonctionnalités conditionne les chemins opérationnels (importation/écriture) et d'IA ; il est actualisé par le cron quotidien as24ci_license_refresh et par le point de terminaison entrant de signal d'actualisation de licence.

CMH Team

Utilisé par AS24CI\Team (stockage basé sur les options, reflétant Locations) :

  • as24ci_team_members (Options::TEAM_MEMBERS) — tableau de contacts commerciaux (aucun compte d'utilisateur WordPress requis).
  • as24ci_team_location_defaults, as24ci_team_standards, as24ci_team_rules — configuration de support.

Content Studio

Les clés de Content Studio sont définies sur AS24CI\Content_Studio_Options (et non AS24CI\Options) et sont ajoutées explicitement à la liste de désinstallation :

  • as24ci_content_studio_db_version — version de schéma partagée des deux tables Content Studio.
  • 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 et mise en page des archives

  • as24ci_layout_manager_enabled — bouton de bascule principal. Initialisé à 1 (activé) par seed_safe_defaults().
  • as24ci_lm_zone_* — tableaux de mise en page par zone pour les filtres de recherche, les cartes d'archives, la page individuelle principale/barre latérale/bas, la comparaison et les favoris.
  • as24ci_lm_block_<id> — configuration des champs par bloc.
  • as24ci_layout_archive_columns — 1–4. Par défaut : 3.
  • as24ci_archive_default_sortdate_desc, price_asc, price_desc ou mileage_asc.
  • as24ci_archive_per_page — véhicules par page. Par défaut : 24.
  • as24ci_archive_list_excerpt_length — caractères de l'extrait dans la vue en liste (0–500). Par défaut : 75.
  • as24ci_layout_search_filters, as24ci_layout_single_main, as24ci_layout_single_sidebar, as24ci_layout_single_bottom — tableaux ordonnés de clés de blocs avec des listes par défaut documentées.

Design et typographie

as24ci_design_* plus les options de typographie spécifiques aux pages as24ci_single_*, as24ci_archive_*, as24ci_fav_* et as24ci_comp_*. Elles pilotent la palette de couleurs, les polices, les mises en page, les badges et les options de galerie exposés dans l'onglet d'administration Design & Styles. La liste complète est énumérée sous forme de constantes sur AS24CI\Options.

EnVKV / WLTP

Pour la conformité au marché allemand, utilisé par le calculateur de coûts d'utilisation EnVKV sur les pages de véhicules individuels.

  • as24ci_envkv_year — année de référence (par défaut 2024).
  • as24ci_envkv_price_petrol, as24ci_envkv_price_diesel, as24ci_envkv_price_electric — prix du carburant/de l'électricité.
  • as24ci_envkv_co2_price_low, as24ci_envkv_co2_price_med, as24ci_envkv_co2_price_high — coût du CO₂ par tonne.
  • as24ci_envkv_show_costs_100km — afficher les coûts d'utilisation (par défaut no).

Instructions étape par étape

L'interface utilisateur des réglages du plugin est la méthode prise en charge pour modifier les options. Les éléments ci-dessous décrivent le cycle de vie pris en charge.

  1. Première configuration. Lors de l'activation, seed_safe_defaults() écrit un ensemble conservateur de valeurs par défaut à l'aide de add_option(). Les valeurs existantes ne sont jamais écrasées. Ouvrez l'onglet d'administration correspondant pour vérifier les valeurs par défaut avant la mise en production.
  2. Modifications quotidiennes. Modifiez les réglages dans l'onglet d'administration correspondant (Importateur, Automatisation, Design & Styles, Mapping, AI Assistant, etc.). Les modifications sont enregistrées via l'API Settings de WordPress.
  3. Sauvegardes. Les sauvegardes de base de données standard de WordPress capturent toutes les options du plugin car elles résident dans wp_options. Aucune sauvegarde supplémentaire n'est requise.
  4. Migrations d'environnement. Lors du déplacement d'un site entre des environnements, copiez les lignes as24ci_* correspondantes avec le reste de wp_options. Traitez as24ci_client_id, as24ci_client_secret, as24ci_cron_token et le secret du webhook (as24ci_webhook_secret) comme confidentiels. Notez que sur les installations migrées vers la version de données 5, ces secrets réversibles sont stockés chiffrés en AES-256-GCM et le jeton cron est stocké haché (voir l'étape de migration 5 dans Plugin Bootstrap And Lifecycle). La clé Gemini gérée n'est pas stockée dans wp_options ; elle est synchronisée de serveur à serveur par l'API Platform (conservée chiffrée par AS24CI\Ai_Credential_Manager) et n'est pas migrée lors des déplacements de base de données.
  5. Réinitialisation d'un réglage. Supprimez l'option (ou utilisez le bouton de réinitialisation de l'onglet d'administration lorsqu'il est fourni). Le plugin reviendra à la valeur par défaut documentée pour ce réglage.


Référence de configuration

Utilisez AS24CI\Options::get_all_keys() (renvoyé par réflexion sur la classe) pour obtenir la liste faisant autorité et complète des clés d'option pour n'importe quelle version du plugin. La liste ci-dessus est regroupée pour référence ; les nouvelles constantes ajoutées à Options sont automatiquement incluses dans le nettoyage lors de la désinstallation.

Notes opérationnelles

  • Toutes les lectures d'options dans le code du plugin passent par get_option() avec une valeur par défaut documentée, de sorte que les lignes manquantes se comportent de la même manière que les valeurs par défaut fraîchement installées.
  • Un petit nombre d'options sont intentionnellement autoload = false afin de maintenir la table des options chargées automatiquement (autoloaded) à une taille réduite. Les exemples notables incluent as24ci_image_queue, as24ci_image_queue_last_run et as24ci_locations.
  • seed_safe_defaults() s'exécute à nouveau dans le cadre de l'étape de migration 4 afin que les installations existantes reçoivent toutes les nouvelles valeurs par défaut sécurisées sans écraser les valeurs modifiées par l'administrateur.
  • Les installations multisites stockent les options par site. La routine de désinstallation parcourt chaque site via switch_to_blog().

Dépannage

  • Un réglage est rétabli après une mise à niveau. Le plugin n'écrase jamais les valeurs d'option existantes lors des mises à niveau. Vérifiez que la modification a bien été enregistrée (la ligne d'option existe dans wp_options) et qu'aucun outil de gestion de configuration ne restaure une valeur plus ancienne.
  • Les modifications de planification Cron sont ignorées. Le planificateur ne replanifie WP-Cron que lorsque sa méthode reschedule() est appelée. Utilisez l'onglet Importations et limites pour enregistrer la nouvelle planification plutôt que de modifier directement l'option.
  • Une migration réinitialise une option de manière inattendue. Seule la valeur ANALYTICS_REQUIRE_CONSENT est intentionnellement normalisée par l'étape de migration 2 (forcée à 0). Tous les autres réglages sont préservés par les étapes de migration.
  • Données chargées automatiquement obsolètes ou volumineuses. Inspectez la taille des options chargées automatiquement dans wp_options et désactivez l'autoload pour toutes les options personnalisées du plugin que vous auriez pu ajouter et qui stockent de grands tableaux.

Documents connexes