✅ Solo los Usuarios Registrados Pueden Ver el Precio y Comprar en Woocommerce (Sin Plugins)

El código presentado está diseñado para personalizar la experiencia de usuario en un entorno de comercio electrónico, específicamente utilizando la plataforma WooCommerce en WordPress. Su objetivo principal es gestionar la visibilidad del precio y la capacidad de agregar productos al carrito en función del estado de inicio de sesión del usuario.

Funcionalidad Principal:

La implementación se basa en el uso de filtros de WooCommerce, centrándose en dos aspectos clave. Primero, oculta el precio de los productos cuando un usuario no ha iniciado sesión, presentando un mensaje de aviso estilizado que sugiere la creación de una cuenta. Segundo, restringe la capacidad de agregar productos al carrito para usuarios no autenticados, alentando así la registración para acceder a todas las funcionalidades.

Posibles Casos de Uso:

  1. Incentivar el Registro:
    • La ocultación del precio puede ser estratégica para motivar a los visitantes a registrarse, proporcionando una experiencia de compra completa solo para usuarios autenticados.
  2. Exclusividad para Miembros:
    • Sitios que ofrecen beneficios exclusivos, como descuentos o promociones, a usuarios registrados pueden utilizar esta técnica para resaltar la exclusividad de la membresía.
  3. Controlar Acceso a Funcionalidades:
    • Restringir la capacidad de agregar productos al carrito para usuarios no registrados permite a los propietarios de sitios dirigir la experiencia del usuario y fomentar el registro.
  4. Personalización de Ofertas:
    • La información recopilada a través del registro puede utilizarse para personalizar ofertas y promociones, mejorando la retención de clientes.

En resumen, este código proporciona flexibilidad y adaptabilidad a diversos casos de uso en sitios de comercio electrónico, mejorando la interacción del usuario y fomentando la participación activa a través de la creación de cuentas registradas.

tienda privada woocommerce solo ususarios registrados pueden cpmpar sin plugins

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.

<?php

// Agregar filtro para ocultar el precio a usuarios no registrados
add_filter('woocommerce_get_price_html', 'ocultar_precio_para_no_registrados');

// Agregar filtro para ocultar el carrito a usuarios no registrados
add_filter('woocommerce_is_purchasable', 'ocultar_carrito_para_no_registrados');

// Función para ocultar el precio a usuarios no registrados
function ocultar_precio_para_no_registrados($price) {
    // Verificar si el usuario no ha iniciado sesión
    if (!is_user_logged_in()) {
        // Estilo CSS para el mensaje de aviso
        $style = '
            <style>
                .notice-woocommerce {
                    background-color: #f2f2f2;
                    border: 1px solid #ddd;
                    margin: 20px 0;
                    padding: 15px;
                }
                .notice-woocommerce a {
                    color: #0073aa;
                    text-decoration: underline;
                }
            </style>
        ';
        // Mensaje de aviso para usuarios no registrados
        $message = '<div class="notice-woocommerce"><p>Precio disponible solo para usuarios registrados. <a href="' . get_permalink(get_option('woocommerce_myaccount_page_id')) . '">Inicia sesión o Regístrate</a></p></div>';
        // Imprimir el estilo y el mensaje de aviso
        echo $style;
        return $message;
    }
    // Devolver el precio normal si el usuario está registrado
    return $price;
}

// Función para ocultar el carrito a usuarios no registrados
function ocultar_carrito_para_no_registrados($purchasable) {
    // Devolver true si el usuario está registrado, de lo contrario, devolver false
    return is_user_logged_in() ? $purchasable : false;
}
Lenguaje del código: HTML, XML (xml)

Entendiendo el Código

  1. Filtros de WooCommerce:
    • Se utilizan dos filtros de WooCommerce: woocommerce_get_price_html y woocommerce_is_purchasable.
    • Estos filtros permiten modificar la forma en que se muestra el precio y determinar si un producto es comprable.
  2. Función ocultar_precio_para_no_registrados:
    • Recibe el precio actual del producto como parámetro.
    • Verifica si el usuario ha iniciado sesión usando is_user_logged_in().
    • Si el usuario no ha iniciado sesión:
      • Genera un bloque de estilo CSS para formatear el mensaje de aviso.
      • Crea un mensaje que indica que el precio solo está disponible para usuarios registrados, con un enlace para iniciar sesión o registrarse.
      • Imprime el bloque de estilo y devuelve el mensaje en lugar del precio original.
    • Si el usuario ha iniciado sesión, devuelve el precio original sin modificaciones.
  3. Función ocultar_carrito_para_no_registrados:
    • Recibe un parámetro booleano que indica si un producto es comprable.
    • Utiliza is_user_logged_in() para verificar si el usuario ha iniciado sesión.
    • Si el usuario ha iniciado sesión, devuelve el valor original de la comprabilidad del producto.
    • Si el usuario no ha iniciado sesión, devuelve false, lo que impide que se añadan productos al carrito.
  4. Estilo del Mensaje de Aviso:
    • Se utiliza un bloque de estilo CSS para formatear el mensaje de aviso mostrado a los usuarios no registrados.
    • El estilo define aspectos visuales como el color de fondo, el borde y el espaciado del mensaje de aviso, así como el estilo del enlace.

En resumen, el código utiliza filtros de WooCommerce y funciones personalizadas para ocultar el precio y restringir la capacidad de agregar productos al carrito para usuarios no registrados. Esto se logra mediante la manipulación dinámica del HTML y la lógica condicional basada en el estado de inicio de sesión del usuario.

Si necesitas adaptar el código a las necesidades de tu proyecto o agregar una funcionalidad específica a tu página web no dudes en contactar conmigo.

Nos vemos en el siguiente tutorial.

Un saludo.

4.8/5 - (6 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja tus opiniones o dudas en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%