Permitir visualización de precio y compra en WooCommerce solo para usuarios registrados

Permitir visualización de precio y compra en WooCommerce solo para usuarios registrados

Este código oculta el precio de un producto y la posibilidad de compra para usuarios/as que no están registrados en el sitio web (si lo deseas, cambia la información resaltada para adaptarla como quieras).

<?php

// Agrega filtro para no mostrar precio a usuarios sin registro
add_filter('woocommerce_get_price_html', 'ocultar_precio_para_no_registrados');

// Agrega filtro para no mostrar carrito a usuarios sin registro
add_filter('woocommerce_is_purchasable', 'ocultar_carrito_para_no_registrados');

// Función para no mostrar precio a usuarios sin registro
function ocultar_precio_para_no_registrados($price) {
    // Verificar si el usuario no ha iniciado sesión
    if (!is_user_logged_in()) {
        // Estilos CSS para el mensaje de aviso
        $style = '
            <style>
                .notice-woocommerce {
                    background-color: #f1f1f1;
                    border: 1px solid #ddd;
                    margin: 25px 0;
                    padding: 20px;
                }
                .notice-woocommerce a {
                    color: #1795e6;
                    text-decoration: underline;
                }
            </style>
        ';
        // Mensaje de aviso para usuarios no registrados
        $message = '<div class="notice-woocommerce"><p>Precio disponible únicamente para usuarios/as con registro <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 sin registro
function ocultar_carrito_para_no_registrados($purchasable) {
    // Devuelve 'true' si el usuario está registrado. Sino, devuelve 'false'
    return is_user_logged_in() ? $purchasable : false;
}

¿Te ha gustado este código? Coméntalo con códigosWP:

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

Scroll al inicio