Avisos
Vaciar todo

[Resuelto] Enlace Showlogin  

Página 1 / 2
 
Tomás
 Tomás
Reputable Member

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.

Por favor, accede

 

Contenido solo visible a usuarios registrados

Respondido : 21/11/2023 10:10 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Tomás. 

Puedes enviarnos un usuario cliente de prueba existente que podamos revisar y probar lo que sucede cuando se intenta compra un producto? de esta forma podemos revisarlo con maypr detalle. 

Un Saludo 

Respondido : 21/11/2023 10:54 pm

Tomás
 Tomás
Reputable Member

@karen

El tema es...., que no veo el momento porque a todas horas tengo clientes y lo tengo solucionado con una parche de momento.

Lo ideal sería el fragmento de código que me pasó Pepe, pero vinculando los pedidos a la cuenta que ya tiene asociada a WC. Existe ese fragmento?

El que me pasó 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;

}

Resuelve muy bien el que el cliente pueda finalizar el pedido sin mostrar el mensaje de error que ya existe una cuenta. Sin embargo, los pedidos en su cuenta no aparecen.

 

Espero haberme explicado bien.

Respondido : 22/11/2023 11:37 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Tomas.

El código que te indique no afecta a lo que comentas, ese codigo solo revisa si hay algún cliente con esa cuenta, si el cliente existe no le pide que acceda, rellena los datos con los del cliente.

De todas formas lo estoy probando y veo que puedo realizar el pedido teniendo ya una cuenta y no aparece ese aviso:

screenshot waterluxe osmosis.es 2023.11.22 16 27 04

 

Un Saludo

Respondido : 22/11/2023 3:29 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Tomás
 Tomás
Reputable Member

@pepesoler

Hola Pepe, el aviso sale justo después de pulsar el botón de realizar el pedido, mientras no. Si quieres prueba con la pasarela transferencia bancaria y saldrá.

Ahora mismo tu fragmento (que funciona) lo tengo desactivado. ¿Por qué lo tengo desactivado?, porque reitero, aunque funciona de maravilla dejando que el cliente ya registrado realice la compra sin mensaje de error ni nada...., en su cuenta que ya tenía con su historial de compras, etc.., ya no reflejará este último pedido realizado, no vincula la información a su cuenta ya registrada.

Lo he comprobado. No sé si se podrá añadir a ese fragmento algo adicional. Mira este hilo con exactamente lo mismo (pero este código es muy viejo y creo que no funciona tampoco): 

 

Sí, entendemos lo que estás diciendo. Pero el problema que tenemos, y que expresa otra persona arriba, es este:

Siempre que alguien realiza un pago sin crear una cuenta, el pedido no se acredita a ese usuario, incluso cuando el usuario tiene la misma dirección de correo electrónico. Este es un gran problema en Woocommerce.

Aquí tienen chicos, no es necesario cambiar el código central. De acuerdo, este es un tema estúpido y debería poder configurarse en Woocommerce. Este código adjunta cada pedido a una cuenta y crea una cuenta si no existe ninguna.

Pon esto en funciones.php:


// Create user if one does not exist
function tn_checkout_create_acct( $post_data ) {
	$user = get_user_by( 'email', $post_data['billing_email'] );
	if ( $user ) {
		$post_data['createaccount'] = 0;
	} else {
		$post_data['createaccount'] = 1;
	}
	return $post_data;
}

add_filter('woocommerce_checkout_posted_data', 'tn_checkout_create_acct');

// Attach order to existing account if user not logged in
function tn_checkout_set_customer_id( $current_user_id ) { 
	if ( !$current_user_id ) {
		$user = get_user_by('email', $_POST['billing_email']);
		if ( $user ) {
			$current_user_id = $user->ID;
		}
	}
	return $current_user_id;
}
add_filter('woocommerce_checkout_customer_id', 'tn_checkout_set_customer_id');
 
Respondido : 22/11/2023 3:39 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Tomás, 

¿He estado verificando el sitio web pero no logro verificar como añades este enlace en tus opciones de WooCommerce, tienes algún código añadido en el function.php que muestre este error a los usuarios cuando intentan comprar?

Ten en cuenta que esta funcionalidad no es una característica nativa de WooCommerce por lo que debe estar siendo añadida por algo adicional, revisa si entre los códigos de tu function tienes algo añadido y nos indicas que es para revisarlo a detalle. 

Un Saludo 

Respondido : 22/11/2023 5:39 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Tomás
 Tomás
Reputable Member

@karen

Buenas noches y perdón por la demora. No es una funcionalidad nativa porque tuve que hacer un apaño provisional. Lo que hice fue traducir woocomerce y justo en ese enlace puse: <a rel="nofollow ugc" href=" https://waterluxe-osmosis.es/my-acount/ ">Por favor, accede. Haz clic aquí</a>

Por lo menos el cliente retorna al formulario de registro y puede introducir sus credenciales. 

Pero ese apaño es un rollo porque el cliente se pierde y vuelve a empezar.

 

Lo acabao de dejar de origen y puedes comprobar que cuando haces clic ahí (deberia abrirse los campos de usuario y contraseña sin salir del checkout), pero en mi caso no hace nada. Si quieres puedes formular un pedido sin registrarte bajo el usuario: clientecomprasweb@yahoo.com   y podrás comprobar lo que te digo. Haz la compra como invitada (puedes hacerlo porque lo tengo así configurado), no te va a pedir contraseña. Por método de pago transferencia bancaria y cuando  en el último paso del checkout detecte que esa cuenta ya está registrada, le has al enlace de Por favor, accede y la página no se inmuta.

Es como si algo impidiera esa llamada??

Respondido : 24/11/2023 9:55 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Tomás, 

Entiendo, lo primero elimina esta traducción que añadiste y deja la opción por defecto de WooCommerce, luego de ello revisa si funciona el enlace, si es así coméntanos para revisarlo y comprobar qué alternativas puede funcionar. 

De manera general, prueba utilizar el siguiente condigo en tu function.php y comprueba como se muestra en enlace

add_filter( 'woocommerce_registration_error_email_exists', function ( $message ) {

return preg_replace( '/href="#" class="showlogin"/', sprintf( 'href="%s"', wp_login_url() ), $message );

} );

Un Saludo 

Respondido : 24/11/2023 10:53 pm

Cursos Gratuitos WordPress

Tomás
 Tomás
Reputable Member

@karen

Ese código me lleva a la página de inicio de Wordpress, ni siquier a la de WC.

Es que igual es difícil de entender lo que quiero explicar. Te pongo un enlace de una web con Woocommerce que funciona como debe de ser: https://aquadux.es/

En esa página estoy registrado bajo el usuario: pedroisidoroortiz@hotmail.com 

Simula una compra sin loguearte con pago por transferencia, inventate todos los datos en los campos del checkout y cuando detecte la web que esa cuenta está registrada verás el comportamiento correcto y original de WC. cuando hagas clic en el enlace que dice.... Ya hay una cuenta...., por favor, accede. Cuando hagas clic en por favor accede, sin salir del checkout, sin redirección a ninguna parte, se abrirá ahí mismo el formulario de inicio de sesión, como un iframe.

Por cierto, el error no es de ninguna funcionalidad personalizada, ya que he renombrado la carpte function.php y he realizado las comprobaciones y nada.

Respondido : 24/11/2023 11:07 pm
Tomás
 Tomás
Reputable Member

Se me olvidó poner: Simula una compra sin loguearte con pago por transferencia, inventate todos los datos en los campos del checkout (excepto la del email, ahí pones pedroisidoroortiz@hotmail.com )

Respondido : 24/11/2023 11:09 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

Hola Tomás, 

Intento simular la compra en la web que nos compartes pero no me abre.

image

Es posible que este conflicto lo esté generando algo adicional o como te comento la propia traducción de woocommerce, puedes probar borrar la traducción de forma temporal y ver como funciona, también puedes probar desactivar los plugins que interfieran con el login de WooCommerce y ver si este genera algún conflicto.

Es muy complicado revisar esta opción en tu sitio web, ya que no podemos entrar a revisarlo, si quieres que alguien entre a tu sitio web y revise que puede suceder te recomiendo contactes con nuestro directorio de colaboradores quienes pueden ayudarte a añadir lo que necesitas. 

Un Saludo 

Respondido : 25/11/2023 12:44 am
Tomás
 Tomás
Reputable Member

@karen Buenos días, entiendo. Te pido un último favor en relación a este tema:

  • De la lista de colaboradores disponibles, ¿Cuál me aconsejas por favor?
  • ¿Son de absoluta confianza?, cómo para darles acceso por ftp......

Gracias y disculpa las molestias.

Respondido : 25/11/2023 8:36 am

Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Tomas.

Acabo de realizar un pedido con la cuenta de correo que indicaste y veo que funciona bien:

screenshot waterluxe osmosis.es 2023.11.25 11 31 05

Cual es el problema ?

Dices que con el código que te indiqué antes los pedidos no se asignaban al usuario ¿ Comprobaste el estado de los pedidos ? si no esta como completado al cliente no le aparecerá en su cuenta.  

Si quieres ponerte en contacto con algún colabora puedes contactar con Caltener:

-> https://www.webempresa.com/colaboradores/caltener.html

 

Un saludo

Esta publicación ha sido modificada el hace 12 meses por Pepe
Respondido : 25/11/2023 10:32 am
Tomás
 Tomás
Reputable Member

Buenos días Pepe, ante todo muchas gracias por vuestra obstinada colaboración. Lo has hecho de forma correcta porque por la noche dejo que todo funcione por defecto, pero por las mañanas a primera hora vuelvo a parchear el problema.

Inténtalo ahora y verás que cuando te pida acceder porque detecta la cuenta registrada, al darle al enlace por favor accede no se abrirá el formulario de inicio de sesión como un iframe, que es el comportamiento nativo de WC.

Respondido : 25/11/2023 10:49 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Tomás
 Tomás
Reputable Member
Woocommerce
Respondido : 25/11/2023 10:55 am
Página 1 / 2