Woocommerce

Ocultar precios a usuarios no registrados en WooCommerce

Es posible que tengamos algún tipo de membresía, asociación, seamos mayoristas, o cualquier otra situación que requiera que no se muestren los precios a todos los visitantes de la web sino sólo a los usuarios que accedan con su cuenta privada.

Es éste último caso el que nos ocupa hoy, vamos a ocultar los precios de la tienda y sólo los mostraremos si el usuario ha accedido.

Ah, y ya puestos, mostraremos un mensaje para que el visitante sepa que debe estar registrado para poder ver los precios.

Para ello, utilizaremos el siguiente código que deberemos añadir al final del fichero functions.php de nuestro tema activo:

add_filter( 'woocommerce_variable_sale_price_html', 'update_price_html', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'update_price_html', 10, 2 );
add_filter( 'woocommerce_get_price_html','update_price_html', 999, 2 );

function update_price_html( $html, $product ) {

    if(!is_user_logged_in()) {  // Si el usuario no está logueado
        add_filter( 'woocommerce_is_purchasable', '__return_false');
        $html = "Necesitas estar registrado para ver los precios";
        return $html;
    } else {
        return $html;
    }
}