Documentazione · Risoluzione dei problemi
Errori di email e lead
Questo documento copre i problemi relativi al modulo di richiesta informazioni sul veicolo, al modulo di prenotazione del test drive, all'invio di email, alla gestione dei lead e alle impostazioni di notifica nel plugin ADP Car Market Hub.
Quando usare questo documento
Leggere questo documento quando:
- I visitatori inviano il modulo di contatto ma non arriva alcuna email di notifica al concessionario o al destinatario configurato.
- I visitatori non ricevono un'email di conferma dopo aver inviato una richiesta.
- L'invio del modulo sembra andare a buon fine (il visitatore vede un messaggio di successo) ma nessun lead viene salvato nell'amministrazione.
- Il modulo restituisce un messaggio di errore o reindirizza a uno stato di errore.
- L'invio del modulo è bloccato dalla protezione antispam.
- Le notifiche email vengono inviate al destinatario errato.
- Gli oggetti delle email personalizzati o i modelli del corpo del testo con segnaposto non vengono visualizzati correttamente.
- La casella di controllo del consenso è mancante o il modulo non può essere inviato.
Panoramica
Il modulo di contatto integrato del plugin elabora le richieste di informazioni sui veicoli e le richieste di test drive inviate dai visitatori del sito. Quando viene inviato un modulo valido:
- Viene inviata un'email di notifica al destinatario del concessionario.
- Viene inviata un'email di conferma al visitatore (il lead).
- I dettagli del lead vengono salvati come custom post WordPress (
as24ci_lead) e possono essere esaminati nella sezione Leads dell'amministrazione del plugin. - Viene tracciato un evento di analisi del lead (se l'analytics è abilitata).
Entrambe le email vengono inviate utilizzando la funzione wp_mail() di WordPress. La consegna dipende dalla configurazione della posta del sito, che può utilizzare la funzione mail() integrata di PHP o un plugin SMTP di terze parti.
Protezione antispam
Il modulo utilizza due livelli di protezione:
- Campo Honeypot: nel modulo è incluso un campo nascosto denominato
website. Se un bot lo compila, l'invio viene trattato come andato a buon fine dal punto di vista del visitatore, ma viene scartato silenziosamente senza inviare alcuna email. - Limitazione della frequenza (Rate limiting): viene applicato un limite massimo di 5 invii per indirizzo IP in una finestra di 5 minuti utilizzando un transient di WordPress. Gli invii oltre questo limite reindirizzano il visitatore a uno stato di errore.
Risoluzione del destinatario
L'email di notifica al concessionario viene inviata al primo indirizzo valido trovato in questa catena di priorità:
- Override globale (impostazione
LEAD_RECIPIENT_EMAIL): uno o più indirizzi email separati da virgole configurati nelle impostazioni del plugin. Tutti gli indirizzi validi in questo elenco ricevono la notifica. - Email del profilo del venditore: un indirizzo email personalizzato memorizzato nel campo user meta
as24ci_seller_emailper l'utente associato al veicolo. - Email dell'autore di WordPress: l'indirizzo email dell'utente di WordPress assegnato come autore del post del veicolo.
- Fallback email dell'amministratore: l'email dell'amministratore del sito di WordPress (opzione
admin_email).
Requisiti preliminari
- Almeno un post di veicolo è pubblicato affinché il modulo possa essere associato ad esso.
- Il sito è in grado di inviare email. Verificare utilizzando Strumenti → Stato del sito o un plugin di test per email transazionali.
- Per la consegna SMTP: un plugin SMTP (come WP Mail SMTP) è configurato con credenziali valide.
Passaggi diagnostici
Passaggio 1: Confermare che l'invio delle email funzioni
Prima di indagare specificamente sul plugin, confermare che WordPress sia in grado di inviare email in generale:
- Utilizzare un plugin come WP Mail SMTP (o qualsiasi strumento di test email di WordPress) per inviare un'email di prova.
- Se l'email di prova non viene ricevuta, il problema riguarda la configurazione del trasporto della posta, non il plugin. Configurare un plugin SMTP o contattare il proprio provider di hosting.
Passaggio 2: Verificare che il lead sia stato salvato
Anche quando l'invio dell'email fallisce, il plugin salva il lead nel database (a meno che l'invio del modulo non sia stato bloccato dall'honeypot o dal limitatore di frequenza):
- Andare alla sezione Leads dell'amministrazione del plugin.
- Trovare il lead più recente e confermare che i dettagli siano presenti (nome, email, veicolo).
- Controllare il campo
email_sent. Se mostra0, la chiamata awp_mail()ha restituito false per una o entrambe le email. - Se non esiste alcuna voce di lead, il modulo non è stato inviato affatto, è stato intercettato dall'honeypot, oppure il salvataggio del CPT
as24ci_leadè fallito (controllare il registro degli errori PHP).
Passaggio 3: Verificare l'indirizzo email del destinatario
- Andare alle impostazioni del plugin e cercare Lead recipient email (l'override globale).
- Se questo campo è vuoto, il plugin ricorre all'email del profilo del venditore o all'email di WordPress dell'autore del post.
- Verificare che l'indirizzo del destinatario risolto sia un indirizzo email valido e recapitabile controllando:
- Il valore nell'impostazione del destinatario del lead del plugin.
- Lo user meta
as24ci_seller_emailper l'utente venditore (se applicabile). - L'email dell'account utente di WordPress per l'autore del post. - L'email dell'amministratore di WordPress (Settings → General → Administration Email Address).
Passaggio 4: Controllare i filtri email e le cartelle spam
- Chiedere al destinatario previsto di controllare la cartella spam o posta indesiderata.
- Le email inviate da WordPress utilizzando
mail()di PHP spesso mancano di una corretta autenticazione SPF/DKIM e vengono frequentemente contrassegnate come spam. L'installazione e la configurazione di un plugin SMTP migliorano significativamente la recapitabilità. - Se si utilizza SMTP, confermare che le credenziali siano corrette e che il provider SMTP non stia bloccando il dominio o l'indirizzo IP del server.
Passaggio 5: Esaminare lo stato di errore del modulo
Se il modulo reindirizza a un messaggio di errore (l'URL contiene as24ci_contact_ok=0), le cause probabili sono:
- Campi obbligatori non validi o mancanti: il modulo richiede un ID veicolo valido, un nome non vuoto e un indirizzo email valido. Se il campo del messaggio è abilitato (impostazione predefinita), è richiesto anche un messaggio non vuoto.
- Limite di frequenza superato: più di 5 invii dallo stesso indirizzo IP in una finestra di 5 minuti. Il visitatore deve attendere prima di inviare nuovamente.
- Chiamata a wp_mail() fallita: entrambe le email hanno restituito false. Il lead viene comunque salvato ma al visitatore viene mostrato lo stato di errore.
Per determinare quale causa si applica, esaminare l'elenco dei lead nell'amministrazione per vedere se è stata creata una voce e controllare il campo email_sent.
Passaggio 6: Controllare la casella di controllo del consenso
Se il modulo non può essere inviato perché è richiesta la casella di controllo del consenso:
- Confermare che l'opzione Require consent sia abilitata nelle impostazioni del plugin (impostazione predefinita: abilitata).
- Confermare che il testo dell'etichetta del consenso sia impostato correttamente.
- Se è configurato l'URL di una pagina sulla privacy, confermare che il collegamento nell'etichetta del consenso punti alla pagina corretta.
- Il modulo convalida il campo del consenso sul lato server. Se un visitatore non lo seleziona, l'invio viene rifiutato e viene reindirizzato allo stato di errore.
Passaggio 7: Verificare i modelli di email personalizzati
Se sono configurati oggetti personalizzati o modelli di corpo HTML (nelle impostazioni email del plugin), verificare che:
- Il modello sia HTML valido.
- I token segnaposto utilizzino il formato corretto:
{placeholder_name}con parentesi graffe. I segnaposto supportati sono: -{customer_name}-{customer_email}-{customer_phone}-{customer_message}-{vehicle_title}-{vehicle_url}-{vehicle_price}-{dealer_name}-{listing_id}-{appointment_date} - Se è configurato un modello personalizzato ma un segnaposto è digitato in modo errato, questo apparirà come testo letterale
{placeholder_name}nell'email inviata. - Se il campo del modello personalizzato è vuoto, il plugin utilizza il suo modello HTML integrato come fallback.
Passaggio 8: Richieste di test drive
Gli invii del modulo di test drive seguono lo stesso percorso di codice delle richieste standard con una convalida aggiuntiva:
- Devono essere selezionati sia una data che una fascia oraria. Se uno dei due manca o la data è nel passato, l'invio ricade in una richiesta di contatto standard.
- La fascia oraria deve essere una delle fasce disponibili restituite dall'API di disponibilità del test drive. Se non ci sono fasce disponibili per la data selezionata, la convalida della fascia fallisce.
- L'oggetto e il corpo dell'email per gli invii di test drive utilizzano un testo predefinito diverso rispetto alle richieste standard ("Test drive request" rispetto a "Vehicle inquiry").
Riferimento per la configurazione
| Impostazione | Descrizione |
|---|---|
| Lead recipient email | Override globale per il destinatario della notifica. Separato da virgole per indirizzi multipli. Se vuoto, viene utilizzata l'email del venditore o dell'autore. |
| Show Name field | Controlla se mostrare il campo del nome (impostazione predefinita: mostrato; sempre obbligatorio). |
| Show Email field | Controlla se mostrare il campo dell'email (impostazione predefinita: mostrato; sempre obbligatorio). |
| Show Phone field | Controlla se mostrare il campo del telefono (impostazione predefinita: mostrato; non obbligatorio). |
| Show Message field | Controlla se mostrare il campo del messaggio (impostazione predefinita: mostrato). |
| Require Message | Quando il campo del messaggio è mostrato, un messaggio vuoto impedisce l'invio. |
| Require consent | Quando abilitato, il visitatore deve selezionare la casella di controllo del consenso (impostazione predefinita: abilitato). |
| Consent label text | Testo personalizzato per l'etichetta della casella di controllo del consenso. |
| Privacy page URL | URL della pagina della privacy policy, collegata dall'etichetta del consenso. |
| Success message | Testo personalizzato mostrato dopo un invio andato a buon fine. |
| Error message | Testo personalizzato mostrato quando l'invio fallisce. |
| Dealer email subject | Oggetto personalizzato per la notifica al concessionario. Supporta i segnaposto. |
| Customer email subject | Oggetto personalizzato per la conferma al visitatore. Supporta i segnaposto. |
| Dealer email template | Corpo HTML personalizzato per la notifica al concessionario. Supporta i segnaposto. |
| Customer email template | Corpo HTML personalizzato per la conferma al visitatore. Supporta i segnaposto. |
Note operative
- Sia la notifica al concessionario che la conferma al visitatore vengono inviate utilizzando
wp_mail(). Se una delle due chiamate restituisce false, il modulo reindirizza allo stato di errore. Il lead viene comunque salvato in ogni caso. - L'intestazione
Reply-Todell'email di notifica al concessionario è impostata sul nome e sull'indirizzo email del visitatore, in modo che il concessionario possa rispondere direttamente al visitatore dal proprio client di posta. - La limitazione della frequenza utilizza un transient di WordPress associato a un hash SHA-256 dell'indirizzo IP del visitatore e al salt di autenticazione di WordPress. L'hash impedisce che l'IP venga memorizzato in testo normale. Il limite è di 5 invii per IP ogni 5 minuti.
- Il campo honeypot è nascosto tramite CSS nei modelli del plugin. Se un plugin di sicurezza o di prestazioni rimuove gli stili inline o blocca determinate classi CSS, il campo honeypot potrebbe diventare visibile ai visitatori reali. Testare il modulo dopo aver abilitato i plugin di sicurezza.
- I lead sono memorizzati in un custom post type non pubblico (
as24ci_lead) con statonew,contacted,closedospam. Sono visibili solo nella sezione Leads dell'amministrazione del plugin, non nell'elenco pubblico dei post di WordPress. - Il plugin non memorizza il contenuto delle email o gli indirizzi IP completi nel database. Il record del lead memorizza il nome del contatto, l'email, il telefono, il messaggio, il riferimento del veicolo, la data di invio e lo stato di consegna dell'email.
Risoluzione dei problemi
| Sintomo | Causa probabile | Verifica |
|---|---|---|
| Nessuna email ricevuta dal concessionario | Invio tramite wp_mail() fallito o email contrassegnata come spam | Invia un'email di prova tramite WordPress; controlla la cartella spam; configura SMTP |
| Nessuna email di conferma ricevuta dal visitatore | Stesso errore di invio tramite wp_mail() | Controlla l'elenco dei lead per verificare la presenza di email_sent = 0; verifica SMTP |
| Lead non salvato | Honeypot attivato o salvataggio del CPT fallito | Controlla se esiste una voce di lead; esamina il registro degli errori PHP |
| Il modulo mostra un errore dopo l'invio | Campi obbligatori mancanti, limite di frequenza superato o errore di wp_mail() | Controlla il parametro URL as24ci_contact_ok=0; esamina l'elenco dei lead |
| Impossibile inviare il modulo (consenso) | Casella di controllo del consenso non selezionata | Il visitatore deve spuntare il consenso; verifica se il consenso è richiesto nelle impostazioni |
| L'email va al destinatario errato | Risoluzione del destinatario che reindirizza al fallback | Imposta l'override globale nell'impostazione dell'email del destinatario del lead |
Il segnaposto {vehicle_title} viene visualizzato come testo letterale | Errore di battitura nel template personalizzato | Verifica l'ortografia del segnaposto nel template email personalizzato |
| Il limite di frequenza blocca gli invii legittimi | L'IP sta inviando troppe richieste | Attendi 5 minuti; se il problema persiste, controlla la presenza di NAT condiviso o proxy |
| Data della prova su strada non accettata | Data nel passato o formato non valido | Verifica che il visitatore selezioni una data futura nel formato corretto |
| Orario della prova su strada non accettato | Fascia oraria non disponibile o formato non valido | Verifica che le fasce orarie siano configurate; la fascia oraria deve essere disponibile per la data selezionata |