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é àEURlors 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é àdraftafin 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 de0est 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 à80si 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 dansHH: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-cronouserver-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 sur1, 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 tableas24_vehicles.as24ci_search_agent_db_version— version de schéma de la tableas24ci_search_agents.as24ci_content_studio_db_version— version de schéma partagée des tablesas24ci_content_studio_jobsetas24ci_content_studio_assets.as24ci_analytics_db_version— version de schéma de la tableas24ci_analytics(constanteAS24CI\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_AGENTn'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— lorsque1, bloque le suivi jusqu'à ce qu'un signal de consentement externe arrive via le filtreas24ci_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_jurisdiction—auto,gdpr,dsgvo,revdsg,uk_gdprougeneric.
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éfaut08: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înesY-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(constantesOptions::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_refreshet 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é) parseed_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_sort—date_desc,price_asc,price_descoumileage_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éfaut2024).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éfautno).
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.
- Première configuration. Lors de l'activation,
seed_safe_defaults()écrit un ensemble conservateur de valeurs par défaut à l'aide deadd_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. - 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.
- 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. - Migrations d'environnement. Lors du déplacement d'un site entre des environnements, copiez les lignes
as24ci_*correspondantes avec le reste dewp_options. Traitezas24ci_client_id,as24ci_client_secret,as24ci_cron_tokenet 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 danswp_options; elle est synchronisée de serveur à serveur par l'API Platform (conservée chiffrée parAS24CI\Ai_Credential_Manager) et n'est pas migrée lors des déplacements de base de données. - 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 = falseafin de maintenir la table des options chargées automatiquement (autoloaded) à une taille réduite. Les exemples notables incluentas24ci_image_queue,as24ci_image_queue_last_runetas24ci_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_CONSENTest 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_optionset désactivez l'autoload pour toutes les options personnalisées du plugin que vous auriez pu ajouter et qui stockent de grands tableaux.