Documentation · Documentation technique
Stockage et traitement des leads
Ce document décrit comment le plugin ADP Car Market Hub capture les soumissions de formulaires de contact et de demandes d'essai, où elles sont stockées, comment le statut de leur flux de travail est géré et quels e-mails automatisés sont envoyés.
Quand utiliser ce document
Lisez ce document si vous devez :
- Comprendre le schéma et le cycle de vie d'un lead généré par le formulaire de contact du plugin.
- Mapper les données de lead vers un CRM externe via l'écran d'administration des leads ou les champs post-meta
_as24ci_lead_*. - Diagnostiquer des notifications manquantes ou des statuts de flux de travail bloqués.
- Migrer des leads entre différents environnements.
Pour les points de terminaison REST/AJAX entrants, voir REST API Endpoints et AJAX Actions. Pour les notifications sortantes, voir Webhooks.
Aperçu
Les leads sont stockés sous forme de publications du type de publication personnalisé (CPT) as24ci_lead, implémenté dans AS24CI\Leads_CPT. Le CPT est enregistré comme public => false, show_ui => false et show_in_rest => false, de sorte qu'il n'est pas exposé sur le front-end ni à l'API REST de WordPress. L'onglet d'administration Leads fournit un tableau de liste personnalisé pour la visualisation, la recherche, les modifications de statut et la suppression.
Chaque soumission passe par le formulaire de contact (AS24CI\Contact_Form), qui :
- Valide et assainit les entrées du formulaire.
- Envoie l'e-mail de notification au concessionnaire et l'e-mail de confirmation au client (en utilisant soit les modèles personnalisés configurés, soit les valeurs par défaut intégrées).
- Appelle
Leads_CPT::save_lead()pour enregistrer un nouvel enregistrement de lead. - Enregistre un événement d'analyse
lead_sentlorsqu'un ID de véhicule est présent.
Champs de publication des leads
Leads_CPT::save_lead() écrit les clés méta suivantes :
| Clé méta | Source | Assainisseur |
|---|---|---|
_as24ci_lead_name | Formulaire Nom | sanitize_text_field |
_as24ci_lead_email | Formulaire E-mail | sanitize_email |
_as24ci_lead_phone | Formulaire Téléphone | sanitize_text_field |
_as24ci_lead_message | Formulaire Message | wp_kses_post |
_as24ci_lead_vehicle_id | ID de publication du véhicule | absint |
_as24ci_lead_vehicle_title | Titre du véhicule au moment de la soumission | sanitize_text_field |
_as24ci_lead_vehicle_listing_id | Identifiant de l'annonce source | sanitize_text_field |
_as24ci_lead_vehicle_url | Permalien du véhicule | sanitize_url |
_as24ci_lead_source_url | Référent HTTP ou URL du véhicule | sanitize_url |
_as24ci_lead_date | Horodatage de soumission UTC (Y-m-d H:i:s) | — |
_as24ci_lead_email_sent | 1 lorsque les deux e-mails ont été envoyés, sinon 0 | — |
_as24ci_lead_status | Statut du flux de travail (par défaut new) | — |
_as24ci_lead_appointment_date | Date de l'essai routier (Y-m-d ou Y-m-d H:i) | Vérification stricte du format |
_as24ci_lead_is_test_drive | 1 lorsque le formulaire est une demande d'essai | — |
Le post_title est défini sur le nom du contact et post_status est publish.
Flux de travail des statuts
Leads_CPT définit quatre statuts de flux de travail :
| Constante | Slug | Libellé par défaut |
|---|---|---|
STATUS_NEW | new | Nouveau |
STATUS_CONTACTED | contacted | Contacté |
STATUS_CLOSED | closed | Clôturé |
STATUS_SPAM | spam | Indésirable |
get_lead_status() renvoie le statut stocké, avec pour valeur par défaut new lorsque la méta est manquante ou non reconnue. update_lead_status() rejette les valeurs inconnues.
L'action de modification de statut d'administration est exposée via le gestionnaire AJAX as24ci_update_lead_status (habilitation : manage_as24_imports, jeton de sécurité : as24ci_update_lead_status).
Instructions étape par étape
Pour examiner et traiter un lead :
- Ouvrez l'onglet d'administration Leads.
- Utilisez la zone de recherche pour filtrer par nom, e-mail, ID d'annonce ou titre de véhicule (correspondance côté serveur
LIKEavec les clés méta correspondantes). - Utilisez la liste déroulante des statuts pour filtrer par
new,contacted,closedouspam. - Ouvrez un lead pour afficher ses détails, puis modifiez le statut au fur et à mesure de l'avancement du flux de travail.
- Utilisez l'action de suppression pour retirer définitivement un lead. L'enregistrement est supprimé via
wp_delete_post( $id, true ); il n'y a pas d'étape de corbeille pouras24ci_lead.
Comportement des e-mails
Deux e-mails sont envoyés par soumission :
- Notification concessionnaire — envoyée à l'adresse configurée dans
as24ci_lead_recipient_email. Utilise le format HTML et inclut les détails du véhicule, du client et du message. Un modèle personnalisé peut être configuré via les réglages d'administration des Leads. - Confirmation client — envoyée à l'adresse e-mail du visiteur. Dispose de modèles distincts pour les demandes standard et les réservations d'essais routiers, et prend en charge un modèle personnalisé stocké dans l'option
as24ci_lead_email_template_customer.
Les deux e-mails utilisent wp_mail(). La méta _as24ci_lead_email_sent enregistre si les deux messages ont été envoyés avec succès (les valeurs de retour booléennes de wp_mail() sont combinées avec un opérateur ET).
Référence de configuration
| Clé d'option | Objectif |
|---|---|
as24ci_lead_recipient_email | Adresse du destinataire pour l'e-mail de notification du concessionnaire. |
as24ci_lead_email_template_customer | Modèle HTML personnalisé facultatif pour la confirmation du client. |
D'autres options de modèle pour l'e-mail côté concessionnaire peuvent être exposées dans l'onglet d'administration Leads. Vérifiez la liste exacte par rapport à la version actuelle du plugin avant de publier des textes destinés aux clients.
Notes opérationnelles
- Le CPT n'est volontairement pas exposé dans l'API REST ou l'éditeur de blocs ; considérez l'onglet Leads de l'administration WP comme l'unique interface utilisateur.
wp_count_posts( 'as24ci_lead' )est utilisé par le widget du tableau de bord pour afficher le nombre total de leads.- Les leads sont écrits à partir de la même requête HTTP que celle qui a traité la soumission du formulaire. Un échec de
wp_mail()n'empêche pas le stockage du lead ; le drapeau_as24ci_lead_email_sentreflète uniquement le statut de l'e-mail. - L'événement d'analyse
lead_sentest uniquement enregistré lorsqu'unvehicle_idvalide est présent dans la soumission. - Intégration des webhooks : un webhook sortant
new_leadest connecté en interne sur l'actionas24ci_lead_saved. Vérifiez dans la version actuelle du plugin si cette action est déclenchée au moment de la sauvegarde du lead avant de vous y fier pour des intégrations de production.
Dépannage
- Le lead est enregistré mais aucun e-mail n'arrive — vérifiez la méta
_as24ci_lead_email_sent. Si elle est0,wp_mail()a échoué. Vérifiez la configuration SMTP/messagerie et l'adresse du destinataire. - Le lead de demande d'essai n'a pas de date de rendez-vous — le rendez-vous est uniquement stocké lorsque l'entrée correspond à
Y-m-d H:iouY-m-det représente une date réelle du calendrier. Les dates mal saisies sont ignorées silencieusement pour maintenir la cohérence de l'enregistrement du lead. - Les modifications de statut sont annulées au rechargement — confirmez que la mise à jour du statut AJAX a renvoyé
success. Un403indique que l'utilisateur n'a pas les droitsmanage_as24_imports; un400/Invalid parameterssignifie que l'ID du lead ou le statut était manquant ou invalide. - La recherche ne renvoie aucun résultat malgré un contenu correspondant — les recherches utilisent
LIKEpar rapport à quatre clés méta spécifiques. Les termes de recherche qui n'apparaissent que dans le corps du message ne sont pas indexés. - Les totaux de leads sur le widget du tableau de bord semblent incorrects — le décompte est basé uniquement sur le statut
publish. Les leads marqués comme indésirables restentpublishmais avec_as24ci_lead_status = spam.