Oferta SiteGround Black Friday

Ocultar precios a usuarios no registrados en WooCommerce

Si quieres un punto de exclusividad y personalización en tu e-commerce, un modo genial de hacerlo es ocultar precios a los usuarios no registrados, o no conectados, en tu tienda online hecha con WooCommerce.

¿Tiene beneficios ocultar precios a usuarios no registrados?

Es cuestión de cada tienda, pero es común en muchos marketplaces de productos exclusivos solo mostrar los precios, o solo algunos, a los usuarios que aún no se han registrado.

Lo que se consigue es la ansiedad por la pertenencia, por participar en un club exclusivo, con precios especiales solo para socios.

Este tipo de tiendas suelen tener precios gancho, mientras que el resto solo los ven los socios, los usuarios registrados.

Otro motivo típico son mercados con mucha competencia, donde el gestor de la tienda no quiere dar pistas de sus ofertas a miradas indiscretas.

Y otra opción que se me ocurre, podría ser ocultar los precios de los productos a los buscadores.

¿Cómo oculto precios a los usuarios no registrados?

Hay varias maneras, vamos a verlas todas… si te parece bien.

Ocultar precios a usuarios no registrados con código

No te daré un código para conseguirlo, sino 3. No tienes que usar todos sino el que mejor funcione en tu instalación de WooCommerce.

Como siempre, debes añadir estas funciones en tu plugin de personalizaciones o en el archivo functions.php del tema (hijo) activo.

Opción 1

/** Oculta precio y añadir al carrito a usuarios no conectados **/
 
add_action('init', 'ayudawp_hide_price_add_cart_not_logged_in');
 
function ayudawp_hide_price_add_cart_not_logged_in() { 
if ( !is_user_logged_in() ) {       
 remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
 remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
 remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
 remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );  
 add_action( 'woocommerce_single_product_summary', 'ayudawp_print_login_to_see', 31 );
 add_action( 'woocommerce_after_shop_loop_item', 'ayudawp_print_login_to_see', 11 );
}
}
 
function ayudawp_print_login_to_see() {
echo '<a href="' . get_permalink(wc_get_page_id('myaccount')) . '">' . __('Accede para ver los precios', 'theme_name') . '</a>';
}

Opción 2

/** Oculta precio y añadir al carrito a usuarios no conectados **/
add_filter('woocommerce_get_price_html', 'ayudawp_show_price_logged');
 
function ayudawp_show_price_logged($price){
if(is_user_logged_in() ){
return $price;
}
else
{
add_action( 'woocommerce_single_product_summary', 'ayudawp_print_login_to_see', 31 );
add_action( 'woocommerce_after_shop_loop_item', 'ayudawp_print_login_to_see', 11 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
}
}
 
function ayudawp_print_login_to_see() {
echo '<a href="' . get_permalink(wc_get_page_id('myaccount')) . '">' . __('Accede para ver los precios', 'theme_name') . '</a>';
}

Opción 3

/** Oculta precio y añadir al carrito a usuarios no conectados **/
add_action('after_setup_theme','activate_filter') ;
 
function activate_filter(){
add_filter('woocommerce_get_price_html', 'ayudawp_show_price_logged');
}
 
function ayudawp_show_price_logged($price){
if(is_user_logged_in() ){
return $price;
}
else
{
return '<a href="' . get_permalink(woocommerce_get_page_id('myaccount')) . '">Accede para ver los precios</a>';
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
}
}

Ocultar precios a usuarios no registrados con plugins

Si lo anterior te da un poco de miedo y prefieres usar plugins prediseñados que hagan el trabajo por ti no hay problema, también hay opciones:

Hide Price Until Login

Con este plugin podemos decidir si mostrar o no los precios en nuestra tienda online, si mostrarlos solo a usuarios registrados o incluso a qué perfiles de usuario. Además tiene un montón de ajustes para personalizar tanto los textos como el formulario de acceso incluido. Lo que no permite es no mostrar el botón de Añadir al carrito. Una solución sencilla pero que puede darte juego si es justo lo que necesitas, y además es gratis.

Hide Price and Add to Cart Button

Plugin con solo 4 ajustes pero suficientes si solo buscas no mostrar precios y/o el botón de Añadir al carrito de tu tienda. Para soluciones que no necesiten personalizaciones puede ser más que suficiente.

YITH WooCommerce Catalog Mode

Precisamente lo que buscas con esto de ocultar precios es tener tu tienda en modo catálogo, y es para lo que sirve este plugin, y más. No solo te permite mostrar tu tienda sin precios eligiendo tú las condiciones en las que se hará, sino que puedes decidir quién ve los precios, dónde los ve, si se mostrarán o no los precios y los botones de Añadir al carrito, puedes pedir rellenar un formulario para verlos (de los plugins más populares), personalizar enlaces e incluso botones, ocultar las páginas de carrito y pago a usuarios no conectados, ocultar precios por países, decidir no mostrar precios de unos productos y sí de otros, es compatible con multi vendor, con WPML y mucho más. Puedes incluso añadir un botón para pedir una oferta. Vamos, una solución mucho más completa y profesional. Es un plugin de pago pero vale más de lo que cuesta (56$).


¿Qué solución elijo?

Si no tienes necesidades de personalización utiliza uno de los códigos, el que mejor te funcione, o alguno de los dos primeros plugins, sencillos pero prácticos.

Pero si quieres o necesitas una solución completa y totalmente personalizable, pudiendo discriminar visualizaciones incluso por tipo de usuario o país, entonces el plugin de Catalog Mode es lo más potente que puedes encontrar.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 6

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado. ¡Ah! ¿te funciona? pues entonces no he dicho nada :)

Sobre el autor

5 comentarios en “Ocultar precios a usuarios no registrados en WooCommerce”

  1. Ana Pérez Bárcenas

    Hola Fernando, Soy una fiel seguidora tuya ;). Respecto a este post, actualmente estamos creando una tienda woocommerce y me encuentro con la necesidad de tener todo a modo catálogo (dispongo de YITH WooCommerce Catalog Mode) a excepción de 3 artículos que sí venden online (por lo que se requiere el botón de añadir carrito). He probado con el plugin Hide Price and Add to Cart Button pero no me funciona (puede que sea debido a que ha quedado obsoleto con las últimas actualizaciones de woocommerce). También he probado distintas alternativas pero no consigo el propósito. Teniendo activada la tienda a modo catálogo ¿puedo añadir algún código para que una categoría concreta muestre el botón añadir a carrito y por lo tanto seguir el proceso de venta únicamente para estos 3 artículos?.
    Por otra parte, uno de estos artículos son camisetas. Existe alguna forma para que pueda el cliente pueda seleccionar distintas unidades de tallas escogidas. Es decir, un cliente que compre 20 camisetas, pueda seleccionar 5 de la talla XL, 10 talla M y 5 talla S? Quedo pendiente de tu respuesta. Un saludo,

    1. Creo que todo eso se puede hacer con el plugin que ya usas de Yith ¿has hablado con ellos? Te recuerdo que tienen soporte en español y son bastante majos 🙂

      1. Ana Pérez Bárcenas

        Gracias Fernando. Efectivamente Yith tiene una gran variedad de soluciones y estoy ya en conversación con ellos. Mil gracias!

  2. Excelente tutorial. Consulta: mi idea es poder colocar un codigo que si muestro los precios en ofertas. Se podra filtrar de esa manera para que usuarios no registrados puedan ver solo los precios en oferta?

  3. Hola Fernando,
    He hecho lo que mencionas en mi web, con código, en concreto con la opción 1 añadiendolo al archivo functions.php. Y todo de maravilla! 🙂
    Pero me gustaría poder darle un toque más visual, porque aparece «Inicia sesión para ver precios» pero se queda algo oculto entre tanta info….. y quiero poder cambiarle el tamaño, el color de texto o hacerlo incluso tipo botón con un color más llamativo para que la gente lo vea más fácil que con un simple texto.

    Lo he intentado con css, pero me detecta que es un link «a», sin ningún tipo de clase especial, y si lo cambio me cambia todos los de la web…. hay alguna manera de llamar a esta acción de otra manera o con otro nombre para editar eso en concreto, o poniéndolo directamente en el código? Gracias!!!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio