Ocultar precio en categorías de WooCommerce

En esta ocasión, voy a detallar una porción de código que he utilizado para poder ocultar el precio de los productos de una de las categorías en woocommerce.

Esta porción de código hay que incluirlo en el fichero functions.php. Este se puede editar directamente o desde el menú de administración en Apariencia > Editor de temas. Es recomendable, hacerlo en un tema hijo para no perder la funcionalidad si se actualiza el tema.

/** Oculta precio y añadir al carrito a usuarios no conectados **/
add_action('init', 'ayudawp_hide_price_add_cart_not_logged_in');
function ayudawp_hide_price_add_cart_not_logged_in() {
add_filter('woocommerce_get_price_html', function( $price, $product ) {
$hide_for_categories = array( 'CATEGORIA1' , 'CATEGORIA2' );
if (has_term( $hide_for_categories, 'product_cat', $product->get_id() )){
if ( !is_user_logged_in() ) {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
add_action( 'woocommerce_single_product_summary', 'ayudawp_print_login_to_see', 31 );
add_action( 'woocommerce_after_shop_loop_item', 'ayudawp_print_login_to_see', 11 );
return '';
}
}
return $price;
}, 10, 2 );
}
function ayudawp_print_login_to_see() {
echo '<a href="' . site_url( 'wp-login.php', 'login' ) . '">' . __('Accede para ver los precios', 'theme_name') . '</a>';
}

Modificar donde indica «CATEGORIA1» y «CATEGORIA2» los nombres (el valor slug si tienen espacios o caracteres especiales) de las categorías que queráis ocultar.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.