Vuelvo al ataque con el mismo problema que tuve conversando con Pepe.
El tema es el siguiente...tengo configurado mi WC para que puedan comprar como invitado, pero cuando un cliente ya ha comprado en el pasado y no lo recuerda..., al rellenar los datos en el checkout, cuando le da a finalizar compra la página le hará un scroll hacia la parte superior indicando que ya hay una cuenta existente con esa dirección de correo. Literalmente el mesaje de error de Woocommerce es este:
Si os fijáis el final de la frase es un enlace, cuyo código html es el siguiente (lo veo inspeccionando con el botón derecho): <a href="#" class="showlogin">Por favor, accede.</a>
Es decir, ese enlace de Por favor, accede debería desplegar hacia abajo mostrando los campos de usuario y contraseña del cliente, para que sin salir de la página acceda.
Pues bien, yo nunca ví esto, encima utilizo el tema Storefront.
Pepe me facilitó un fragmento de código que podía parchear el problema, de manera que aunque el cliente ya estuviera registrado le dejaría realizar el pedido sin mostrar ningún mensaje de error. Hasta ahí bien, pero..., ahora, tras utilizarlo unos días me veo con otro problema y es que esos pedidos que deja realizar no los vincula a la cuenta del cliente ya creada, por lo que si el cliente entra en su cuenta no los ve.
El fragmento de código es este:
add_filter( 'woocommerce_checkout_posted_data', 'we_filter_checkout_posted_data', 10, 1 );
function we_filter_checkout_posted_data( $data ) {
$email = $data['billing_email'];
if ( email_exists( $email ) ) $data['createaccount'] = 0;
return $data;
}
Necesito o bien que funcione el mensaje de error desplegando ese enlace y muestre los campos de ingreso de los datos del cliente. O bien un fragmento de código que cree una cuenta de usuario si no existe, deje realizar el pedido aunque sea un cliente registtrado y que vincule toso los pedidos en su cuenta.
Adjunto capturas para un mejor entendimiento.
Contenido solo visible a usuarios registrados
Pepe tienes que inventarte todos lo campos del checkout (hacer el pedido como invitado), excepto la dirección de email, que debes de poner esta: clientecomprasweb@yahoo.com
Cómo es una cuenta que ya está registrada te aparecerá el aviso de acceder y cuando le des verás que no hace nada. Sin embargo en la captura de arriba podrás comprobar que en esa página de despiega el formulario de inicio de sesión
Pepe tienes que inventarte todos lo campos del checkout (hacer el pedido como invitado), excepto la dirección de email, que debes de poner esta: clientecomprasweb@yahoo.com
Cómo es una cuenta que ya está registrada te aparecerá el aviso de acceder y cuando le des verás que no hace nada. Sin embargo en la captura de arriba podrás comprobar que en esa página de despiega el formulario de inicio de sesión
COMPORTAMIENTO CORRECTO ESTE (PÁGINA WEB HECHA EN WOOCOMMERCE COMO LA MÍA):
COMPORTAMIENTO INCORRECTO DE MI WEB (NO SE ABRE EL FORMULARIO CUANDO PIDE ACCEDER XQ DETECTA UNA CUENTA YA REGISTRADA):
Hola Tomas.
Al parecer es un problema de la plantilla de Storefront que está reportado:
-> https://github.com/woocommerce/woocommerce/issues/28024
Las únicas soluciones son las que te hemos propuesto, con el código anterior que te ofreci o bien con la traducción que realizaste.
Hay que esperar a ver si lo solucionan con alguna actualización
Un Saludo
Muchas gracias Pepe, por lo menos al final conseguí que entendieras cual era mi problema.
Pues nada, a esperar, pero este comportamiento me lo viene haciendo ya siglos. Menos mal que es la plantilla por defecto que más compatibilidad tiene con WC, que si llega a ser otra...
Muchísimas gracias por vuestra colaboración y ayuda.
Salu2!!!!
Que tal Tomás,
Daremos por cerrada la consulta pero tu aporte es muy valioso para el contenido del foro
Cualquier otra duda que tengas estaremos atentos
Saludos!