Ocultar precios a usuarios no conectados en WooCommerce

En ocasiones, es posible que desees ocultar los precios de tus productos y el botón de «Agregar al carrito» a los usuarios que no han iniciado sesión en tu tienda WooCommerce. Esto puede ser útil si deseas que solo los usuarios registrados puedan ver los precios y realizar compras. A continuación, te mostraremos cómo lograr esto con algunos fragmentos de código PHP que puedes agregar a tu tema de WordPress.

Ocultar precios para usuarios no conectados

Para ocultar los precios a los usuarios no conectados, agrega el siguiente código al archivo functions.php de tu tema:

<?php
add_filter('woocommerce_get_price_html', 'hide_price_for_guests', 10, 2);

function hide_price_for_guests($price, $product) {
    if (!is_user_logged_in()) {
        return '';
    }
    return $price;
}

Este código utiliza el filtro woocommerce_get_price_htmlpara verificar si el usuario ha iniciado sesión. Si no es así, el precio se establece como una cadena vacía, ocultando así el precio del producto.

Ocultar el botón de agregar al carrito para usuarios no conectados

Para ocultar el botón de «Agregar al carrito» a los usuarios no conectados, agrega el siguiente código al archivo functions.php de tu tema:

<?php
add_action('woocommerce_single_product_summary', 'hide_add_to_cart_button_for_guests', 1);
add_action('woocommerce_after_shop_loop_item', 'hide_add_to_cart_button_for_guests', 1);

function hide_add_to_cart_button_for_guests() {
    if (!is_user_logged_in()) {
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
        remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
    }
}

Este código utiliza las acciones woocommerce_single_product_summaryy woocommerce_after_shop_loop_itempara eliminar el botón de «Agregar al carrito» si el usuario no ha iniciado sesión.

Mostrar un mensaje a los usuarios no conectados

Es posible que desees mostrar un mensaje a los usuarios no conectados, indicándoles que deben iniciar sesión para ver los precios y poder comprar. Puedes agregar el siguiente código para mostrar un mensaje:

<?php
add_action('woocommerce_single_product_summary', 'show_login_message_for_guests', 31);
add_action('woocommerce_after_shop_loop_item', 'show_login_message_for_guests', 11);

function show_login_message_for_guests() {
    if (!is_user_logged_in()) {
        echo '<p class="login-to-see-prices">Por favor, <a href="' . wp_login_url(get_permalink()) . '">inicia sesión</a> para ver los precios y comprar.</p>';
    }
}

Este código agrega un mensaje justo después de donde se eliminaron los botones de «Agregar al carrito», invitando a los usuarios a iniciar sesión.

Con estos simples fragmentos de código PHP, puedes ocultar los precios y el botón de «Agregar al carrito» a los usuarios que no han iniciado sesión en tu tienda WooCommerce. Esto puede ayudarte a controlar mejor quién puede ver tus precios y realizar compras en tu sitio. Si tienes alguna duda o necesitas asistencia adicional, no dudes en dejar un comentario o ponerte en contacto con nosotros.

0 0 votes
Article Rating
Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
edrec

Gracias Alex por el post.
Me gustaría saber cómo se puede restringir el precio y que solo lo pueda ver y comprar un rol en concreto, dependiendo de la categoría del producto.
Muchas gracias.

Back to Top
2
0
Would love your thoughts, please comment.x
()
x