En toda tienda online con WooCommerce se crea automáticamente una página llamada «Mi cuenta» en la que los clientes registrados pueden revisar sus pedidos, descargas, datos, etc.
Índice de contenidos
La página «Mi cuenta» y los menús
De hecho es buena práctica añadir un enlace a esta página en el menú de todo Ecommerce que se precie, para que esté visible y fácilmente accesible.
El ¿problema?
Ahora bien, cuando tu cliente, o simplemente un visitante, no está conectado quizás no tenga sentido que se llame así: «Mi cuenta» porque aún no tiene ninguna ¿no?
Bien es cierto que como es un enlace en un menú personalizado puedes cambiarle el nombre al que quieras, como «Mis datos», «Cuenta» o lo que sea, pero ¿no sería mejor que mostrase un nombre distinto dependiendo de si el usuario está conectado o desconectado?
Esa es la idea.
La solución
¡Bueno, pues asunto arreglado!
Si quieres que la página de «Mi cuenta» muestre un texto distinto para los usuarios desconectados solo tienes que crear una función con un filtro que compruebe la condición de si el usuario está conectado o no. Así…
/* Distinto nombre a Mi cuenta si el usuario está desconectado */ add_filter( 'wp_nav_menu_items', 'dynamic_label_change', 10, 2 ); function dynamic_label_change( $items, $args ) { if ( ! is_user_logged_in() ) { $items = str_replace( "Mi cuenta", "Acceder/Registrarse", $items ); } return $items; }
Solo tienes que añadir la función a tu plugin de personalizaciones o al archivo functions.php
del tema activo para que funcione.
Lógicamente, si tu menú no se llama «Mi cuenta» o quieres cambiarlo para usuarios registrados a algo distinto al «Acceder/Registrarse» del código de ejemplo solo tienes que cambiarlo según tu necesidad o gusto.
Funcionar funciona de perlas, y quedará así de chulo…
Plus
Si te has fijado, en la captura de la página de «Mi cuenta» de la tienda de pruebas en las que he hecho las pruebas en la página se permite la creación de cuentas, y eso no es el comportamiento por defecto de WooCommerce.
Para activarlo tienes que ir en la administración de tu tienda online a WooCommerce > Ajustes > Cuentas y privacidad y activarlo como en la siguiente imagen:
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Estupendo!
Funcionó lindamente…
Hola Fernando, he copiado tu snippet pero no me funciona. Alguna idea de por qué puede ser? Hay que cambiar algo en la configuración del menú también?
Pues a priori no, lo tengo en uso en varios sitios sin problema
Hola! A mi tampoco me funcionaba pero porque en la linea 6 del snippet esta escrito Mi cuenta y yo tenía Mi Cuenta. Ha sido cambiar la C mayúscula y ha funcionado perfectamente. Gracias por el snippet Fernando. Saludos
Genial!
Y dónde se podría modificar la página de mi cuenta para usuarios no registrados? (la página de registro por defecto).
La idea es añadir un checkbox de aceptación de privacidad por el tema de la RGPD, es posible?
Gracias Fernando!
Claro, aquí lo explico: https://ayudawp.com/rgpd-woocommerce/
Gracias! Voy a probar!
¡Hola!
El código que compartes me funciona en todos los menús excepto en el de la home. Es el mismo en todos, pero en la home no me lo cambia y no entiendo porqué.
Un saludo y gracias.
Curioso, en todos los temas que he probado funcionaba sin meter condicionales del tipo if.