Veteasabertu

Ocultar precio a usuarios no registrados en WooCommerce

22 de Febrero 2017
Ocultar precio a usuarios no registrados en WooCommerce

Con el paso de los años las tiendas online han ido cada vez cobrando más relevancia para los negocios, ya que con una mínima inversión pueden adaptar su modelo para que cualquier persona pueda llegar a el a través de internet. Y es que con las múltiples opciones actuales que existen para montar un ecommerce, tenemos la posibilidad de hacer proyectos a medida que se adapten para prácticamente cualquier caso. Un ejemplo de ello es WooCommerce, que a modo de plugin nos sirve de complemento perfecto de tienda para WordPress. Sin embargo, aunque éste está pensado para cubrir la mayoría de las necesidades que un negocio pueda tener, cualquier cosa que se salga de lo habitual habrá que implementarlo por nuestra cuenta.

En este artículo explicaremos cómo hacer que nuestra tienda online no muestre los precios de los productos a menos que el usuario esté registrado y haya hecho login. Esta función se torna realmente interesante cuando hablamos de plataformas de venta al por mayor, en la que se requiere una verificación previa del comprador o en el caso de venta exclusiva para socios de un determinado colectivo.

Por defecto WooCommerce no permite la discriminación entre usuarios registrados y visitantes a la hora de mostrar el precio, sino que es necesario valerse de algún plugin aparte que nos permita dicha funcionalidad. No obstante, nosotros vamos a ver cómo hacerlo programando y modificando el código de la propia herramienta.

Antes de entrar en faena me gustaría comentar que, aunque voy a tratar de explicarlo paso a paso, lo ideal sería que estuvieras familiarizado con el entorno de WordPress, ya que si nunca has trabajado con el sistema de plantillas puede ser una primera aproximación bastante brusca.

Lo primero que tenemos que saber es que WooCommerce es altamente personalizable sin necesidad de modificar directamente los archivos del plugin, sino que podemos hacerlo desde nuestra plantilla cómodamente sin comprometer los archivos originales. Esto permite por un lado que al hacer actualizaciones no se sobrescriba nuestro código y por otro que los cambios cambios acompañen a la instalación de nuestro tema en concreto. El sistema se basa en hacer una copia de los archivos que contienen la estructura y luego modificarlos a nuestro criterio, de modo que se le da prioridad en la carga a éstos respecto a los originales.

Para poder ocultar el precio vamos a necesitar los archivos que lo imprimen y para ello iremos al directorio /wp-content/plugins/woocommerce/templates/ en nuestra instalación de WordPress. Una vez dentro copiaremos dos archivos que están en dos ubicaciones diferentes. El primero lo encontraremos en /loop/price.php e imprime el precio cuando se listan los productos, mientras que el segundo estará en /single-product/price.php y lo muestra dentro de la ficha del producto.

El siguiente paso es ir a la carpeta raíz de nuestro tema y crear un nuevo directorio llamado /woocommerce/ que será donde pegaremos los archivos copiados. Es importante que a la hora de duplicarlos preservemos la misma estructura que tenían dentro de su ubicación original. Es decir, los archivos que coloquemos dentro de /nuestrotema/woocommerce/ deben tener la misma disposición que tienen en /wp-content/plugins/woocommerce/templates/ por lo que si éstos se encuentran dentro de directorios habrá que crearlos. Una vez copiados abriremos los archivos para hacer los cambios correspondientes.

Listado de productos

Abrimos el archivo /loop/price.php y buscaremos el siguiente segmento de PHP.

Lo que vamos a hacer es añadir un condicional junto con la función is_user_logged_in() que nos permitirá con probar si el usuario ha iniciado sesión para mostrar el precio.

Ficha del producto

Por último abriremos /single-product/price.php en busca de algo parecido a esto (puede haber leves variaciones dependiendo de la versión de WooCommerce).

Como en el caso anterior, añadiremos un condicional con la función is_user_logged_in() para verificar si se ha hecho login.

Tras hacer estas actualizaciones, nuestra tienda online ya debería mostrar el precio de los productos solo a los usuarios registrados. No obstante, es conveniente aclarar que este ejemplo está basado en una instalación estándar, por lo que si vas a hacer modificaciones en una plantilla que ya haya personalizado WooCommerce es posible que el código anterior no sea exactamente igual y los archivos ya se encuentren trasladados al directorio del tema.

Para terminar, también puedes visitar este otro artículo donde ver paso a paso cómo ocultar el botón de añadir al carrito para los visitantes no registrados. Esta combinación será perfecta para reservar las funciones de ecommerce solo a usuarios que hayan hecho login.

Publicado por Jesús Tovar

Categorías: PHP, Programación, WordPress

Etiquetas: ,

Un comentario

  1. […] apunte adicional, si además de esta función quieres también ocultar el precio a usuarios no registrados, en el artículo podrás ver cómo hacerlo modificando los archivos correspondientes también paso […]

Deja un comentario

Este sitio web utiliza cookies para mejorar la experiencia de usuario, si continúas navegando estás dando tu consentimiento. Para más información pincha aquí.

ACEPTAR
Aviso de cookies