首页 > 解决方案 > 如果用户角色未登录,则隐藏特定类别的价格

问题描述

我需要隐藏某个类别的产品价格,但在用户登录后显示。以下代码隐藏了未登录用户的价格。如何仅将其应用于特定产品类别?

add_action( 'init', 'hide_price_add_cart_not_logged_in' );
  
function hide_price_add_cart_not_logged_in() {   
   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', 'print_login_to_see', 31 );
      add_action( 'woocommerce_after_shop_loop_item', 'print_login_to_see', 11 );
   }
}
  
function print_login_to_see() {
   echo '<a href="' . get_permalink(wc_get_page_id('myaccount')) . '">' . __('Login to see prices', 'theme_name') . '</a>';
}

标签: woocommerce

解决方案


推荐阅读