Documentación · Resolución de problemas
Errores de correo electrónico y de leads
Este documento cubre los problemas relacionados con el formulario de consulta de vehículos, el formulario de reserva de pruebas de conducción, el envío de correos electrónicos, la gestión de leads y los ajustes de notificación en el plugin ADP Car Market Hub.
Cuándo utilizar este documento
Lea este documento cuando:
- Los visitantes envían el formulario de contacto pero no llega ningún correo electrónico de notificación al concesionario o al destinatario configurado.
- Los visitantes no reciben un correo electrónico de confirmación después de enviar una consulta.
- El envío del formulario parece tener éxito (el visitante ve un mensaje de éxito) pero no se guarda ningún lead en la administración.
- El formulario devuelve un mensaje de error o redirige a un estado de error.
- El envío del formulario es bloqueado por la protección contra spam.
- Las notificaciones por correo electrónico se envían al destinatario incorrecto.
- Los asuntos de correo electrónico personalizados o las plantillas de cuerpo con marcadores de posición no se procesan correctamente.
- Falta la casilla de verificación de consentimiento o no se puede enviar el formulario.
Descripción general
El formulario de contacto integrado del plugin procesa las consultas de vehículos y las solicitudes de prueba de conducción enviadas por los visitantes del sitio. Cuando se envía un formulario válido:
- Se envía un correo electrónico de notificación al destinatario del concesionario.
- Se envía un correo electrónico de confirmación al visitante (el lead).
- Los detalles del lead se guardan como un custom post (
as24ci_lead) de WordPress y se pueden revisar en la sección de Leads de la administración del plugin. - Se realiza el seguimiento de un evento de analítica de lead (si la analítica está habilitada).
Ambos correos electrónicos se envían utilizando la función wp_mail() de WordPress. La entrega depende de la configuración de correo del sitio, que puede utilizar la función integrada mail() de PHP o un plugin de SMTP de terceros.
Protección contra spam
El formulario utiliza dos capas de protección:
- Campo honeypot: se incluye en el formulario un campo oculto llamado
website. Si un bot lo rellena, el envío se trata como exitoso desde la perspectiva del visitante, pero se descarta silenciosamente sin enviar ningún correo electrónico. - Límite de frecuencia (rate limiting): se aplica un máximo de 5 envíos por dirección IP en un intervalo de 5 minutos utilizando un transient de WordPress. Los envíos que superen este límite redirigen al visitante a un estado de error.
Resolución del destinatario
El correo electrónico de notificación al concesionario se envía a la primera dirección válida que se encuentre en esta cadena de prioridad:
- Anulación global (ajuste
LEAD_RECIPIENT_EMAIL): una o más direcciones de correo electrónico separadas por comas configuradas en los ajustes del plugin. Todas las direcciones válidas de esta lista reciben la notificación. - Correo electrónico del perfil del vendedor: una dirección de correo electrónico personalizada almacenada en el campo de metadatos de usuario
as24ci_seller_emailpara el usuario asociado con el vehículo. - Correo electrónico del autor de WordPress: la dirección de correo electrónico del usuario de WordPress asignado como autor de la entrada del vehículo.
- Correo electrónico de administración de respaldo: el correo electrónico del administrador del sitio de WordPress (opción
admin_email).
Requisitos previos
- Al menos una entrada de vehículo publicada con la que se pueda asociar el formulario.
- El sitio puede enviar correos electrónicos. Verifíquelo utilizando Herramientas → Salud del sitio o un plugin de prueba de correo electrónico transaccional.
- Para la entrega por SMTP: un plugin de SMTP (como WP Mail SMTP) configurado con credenciales válidas.
Pasos de diagnóstico
Paso 1: Confirmar que el envío de correos electrónicos funciona
Antes de investigar el plugin específicamente, confirme que WordPress puede enviar correos electrónicos en absoluto:
- Utilice un plugin como WP Mail SMTP (o cualquier herramienta de prueba de correo electrónico de WordPress) para enviar un correo electrónico de prueba.
- Si no se recibe el correo electrónico de prueba, el problema está en la configuración del transporte de correo, no en el plugin. Configure un plugin de SMTP o póngase en contacto con su proveedor de hosting.
Paso 2: Comprobar que el lead se ha guardado
Incluso cuando falla el envío del correo electrónico, el plugin guarda el lead en la base de datos (a menos que el envío del formulario haya sido bloqueado por el honeypot o el limitador de frecuencia):
- Vaya a la sección Leads de la administración del plugin.
- Busque el lead más reciente y confirme que los detalles están presentes (nombre, correo electrónico, vehículo).
- Compruebe el campo
email_sent. Si muestra0, la llamada awp_mail()devolvió false para uno o ambos correos electrónicos. - Si no existe ninguna entrada de lead, o bien el formulario no se envió en absoluto, fue capturado por el honeypot, o el CPT
as24ci_leadno se pudo guardar (compruebe el registro de errores de PHP).
Paso 3: Verificar la dirección de correo electrónico del destinatario
- Vaya a los ajustes del plugin y busque Lead recipient email (la anulación global).
- Si este campo está vacío, el plugin recurre al correo electrónico del perfil del vendedor o al correo electrónico de WordPress del autor de la entrada.
- Verifique que la dirección del destinatario resuelta sea una dirección de correo electrónico válida y entregable comprobando:
- El valor en el ajuste del destinatario de leads del plugin.
- Los metadatos de usuario
as24ci_seller_emailpara el usuario vendedor (si corresponde). - La cuenta de correo electrónico del usuario de WordPress para el autor de la entrada. - El correo electrónico de administración de WordPress (Settings → General → Administration Email Address).
Paso 4: Comprobar el filtrado de correo electrónico y las carpetas de spam
- Pida al destinatario previsto que compruebe su carpeta de spam o correo no deseado.
- El correo electrónico enviado desde WordPress utilizando
mail()de PHP a menudo carece de una autenticación SPF/DKIM adecuada y con frecuencia se marca como spam. Instalar y configurar un plugin de SMTP mejora significativamente la entregabilidad. - Si utiliza SMTP, confirme que las credenciales son correctas y que el proveedor de SMTP no está bloqueando el dominio o la dirección IP del servidor.
Paso 5: Investigar el estado de error del formulario
Si el formulario redirige a un mensaje de error (la URL contiene as24ci_contact_ok=0), las causas probables son:
- Campos obligatorios no válidos o ausentes: el formulario requiere un ID de vehículo válido, un nombre no vacío y una dirección de correo electrónico válida. Si el campo de mensaje está habilitado (por defecto), también se requiere un mensaje no vacío.
- Límite de frecuencia excedido: más de 5 envíos desde la misma dirección IP en un intervalo de 5 minutos. El visitante debe esperar antes de volver a enviarlo.
- Fallo de wp_mail(): ambos correos electrónicos devolvieron false. El lead se sigue guardando, pero se muestra el estado de error al visitante.
Para determinar qué causa se aplica, revise la lista de administración de leads para ver si se creó una entrada y compruebe el campo email_sent.
Paso 6: Comprobar la casilla de verificación de consentimiento
Si el formulario no se puede enviar porque se requiere la casilla de verificación de consentimiento:
- Confirme que la opción Require consent está habilitada en los ajustes del plugin (por defecto: habilitada).
- Confirme que el texto de la etiqueta de consentimiento está configurado correctamente.
- Si se ha configurado una URL de página de privacidad, confirme que el enlace en la etiqueta de consentimiento apunta a la página correcta.
- El formulario valida el campo de consentimiento en el lado del servidor. Si un visitante no lo marca, el envío se rechaza y se le redirige al estado de error.
Paso 7: Verificar las plantillas de correo electrónico personalizadas
Si se han configurado líneas de asunto o plantillas de cuerpo HTML personalizadas (en los ajustes de correo electrónico del plugin), compruebe que:
- La plantilla es HTML válido.
- Los marcadores de posición utilizan el formato correcto:
{placeholder_name}con llaves. Los marcadores de posición admitidos son: -{customer_name}-{customer_email}-{customer_phone}-{customer_message}-{vehicle_title}-{vehicle_url}-{vehicle_price}-{dealer_name}-{listing_id}-{appointment_date} - Si se configura una plantilla personalizada pero un marcador de posición está mal escrito, aparecerá como el texto literal
{placeholder_name}en el correo electrónico enviado. - Si el campo de la plantilla personalizada está vacío, el plugin utiliza su plantilla HTML integrada como respaldo.
Paso 8: Solicitudes de prueba de conducción
Los envíos del formulario de prueba de conducción siguen la misma ruta de código que las consultas estándar con una validación adicional:
- Se deben seleccionar tanto una fecha como una franja horaria. Si falta alguna de las dos o la fecha es pasada, el envío recurre a una consulta de contacto estándar.
- La franja horaria debe ser una de las franjas disponibles devueltas por la API de disponibilidad de pruebas de conducción. Si no hay franjas disponibles para la fecha seleccionada, la validación de la franja falla.
- La línea de asunto y el cuerpo del correo electrónico para los envíos de pruebas de conducción utilizan un texto predeterminado diferente al de las consultas estándar ("Test drive request" frente a "Vehicle inquiry").
Referencia de configuración
| Ajuste | Descripción |
|---|---|
| Lead recipient email | Anulación global para el destinatario de la notificación. Separado por comas para múltiples direcciones. Si está vacío, se utiliza el correo electrónico del vendedor o del autor. |
| Show Name field | Controla si se muestra el campo de nombre (por defecto: se muestra; siempre obligatorio). |
| Show Email field | Controla si se muestra el campo de correo electrónico (por defecto: se muestra; siempre obligatorio). |
| Show Phone field | Controla si se muestra el campo de teléfono (por defecto: se muestra; no obligatorio). |
| Show Message field | Controla si se muestra el campo de mensaje (por defecto: se muestra). |
| Require Message | Cuando se muestra el campo de mensaje, un mensaje vacío impide el envío. |
| Require consent | Cuando está habilitado, el visitante debe marcar la casilla de verificación de consentimiento (por defecto: habilitado). |
| Consent label text | Texto personalizado para la etiqueta de la casilla de verificación de consentimiento. |
| Privacy page URL | URL de la página de política de privacidad, enlazada desde la etiqueta de consentimiento. |
| Success message | Texto personalizado que se muestra tras un envío exitoso. |
| Error message | Texto personalizado que se muestra cuando falla el envío. |
| Dealer email subject | Línea de asunto personalizada para la notificación al concesionario. Admite marcadores de posición. |
| Customer email subject | Línea de asunto personalizada para la confirmación al visitante. Admite marcadores de posición. |
| Dealer email template | Cuerpo HTML personalizado para la notificación al concesionario. Admite marcadores de posición. |
| Customer email template | Cuerpo HTML personalizado para la confirmación al visitante. Admite marcadores de posición. |
Notas operativas
- Tanto la notificación al concesionario como la confirmación al visitante se envían utilizando
wp_mail(). Si cualquiera de las llamadas devuelve false, el formulario redirige al estado de error. El lead se sigue guardando de todos modos. - La cabecera
Reply-Todel correo electrónico de notificación al concesionario se establece con el nombre y la dirección de correo electrónico del visitante, de modo que el concesionario puede responder directamente al visitante desde su cliente de correo electrónico. - El límite de frecuencia utiliza un transient de WordPress asociado a un hash SHA-256 de la dirección IP del visitante y el auth salt de WordPress. El hash evita que la IP se almacene en texto plano. El límite es de 5 envíos por IP cada 5 minutos.
- El campo honeypot está oculto por CSS en las plantillas del plugin. Si un plugin de rendimiento o seguridad elimina los estilos en línea o bloquea ciertas clases CSS, el campo honeypot puede volverse visible para los visitantes reales. Pruebe el formulario después de activar plugins de seguridad.
- Los leads se almacenan en un tipo de contenido personalizado no público (
as24ci_lead) con el estadonew,contacted,closedospam. Solo son visibles en la sección de Leads de la administración del plugin, no en la lista pública de entradas de WordPress. - El plugin no almacena el contenido del correo electrónico ni las direcciones IP completas en la base de datos. El registro del lead almacena el nombre del contacto, el correo electrónico, el teléfono, el mensaje, la referencia del vehículo, la fecha de envío y el estado de entrega del correo electrónico.
Resolución de problemas
| Síntoma | Causa probable | Comprobación |
|---|---|---|
| El distribuidor no recibe ningún correo electrónico | Fallo de wp_mail() o correo marcado como spam | Envíe un correo electrónico de prueba de WordPress; revise la carpeta de spam; configure el SMTP |
| El visitante no recibe el correo de confirmación | El mismo fallo de wp_mail() | Revise la lista de leads para email_sent = 0; verifique el SMTP |
| El lead no se guarda | Se activó el honeypot o falló el guardado del CPT | Compruebe si existe una entrada de lead; revise el registro de errores de PHP |
| El formulario muestra un error tras el envío | Faltan campos obligatorios, límite de frecuencia superado o fallo de wp_mail() | Compruebe el parámetro de URL as24ci_contact_ok=0; revise la lista de leads |
| No se puede enviar el formulario (consentimiento) | Casilla de consentimiento no marcada | El visitante debe marcar el consentimiento; verifique si el consentimiento es obligatorio en los ajustes |
| El correo electrónico va al destinatario equivocado | La resolución del destinatario resuelve al valor de respaldo (fallback) | Establezca una invalidación global en el ajuste de correo electrónico del destinatario del lead |
El marcador de posición {vehicle_title} se muestra como texto literal | Error tipográfico en la plantilla personalizada | Verifique la ortografía del marcador de posición en la plantilla de correo electrónico personalizada |
| El límite de frecuencia bloquea envíos legítimos | La IP está enviando demasiadas solicitudes | Espere 5 minutos; si persiste, compruebe si hay un NAT compartido o un proxy |
| No se acepta la fecha de la prueba de conducción | Fecha en el pasado o formato no válido | Verifique que el visitante seleccione una fecha futura en el formato correcto |
| No se acepta la hora de la prueba de conducción | Franja horaria no disponible o formato no válido | Verifique que las franjas horarias estén configuradas; la franja debe estar disponible para la fecha seleccionada |