显示添加到购物车只登录用户..woocommerce

Par*_*arm 3 php wordpress woocommerce

一直用这个代码隐藏价格..

add_filter('woocommerce_get_price_html','members_only_price');
function members_only_price($price){
if(is_user_logged_in() ){
    return $price;
}
else return '<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Login</a> or <a href="'.site_url('/wp-login.php?action=register&redirect_to=' . get_permalink()).'">Register</a> to see price!';
}
Run Code Online (Sandbox Code Playgroud)

尝试修改它以用于隐藏添加到购物车..但无济于事..任何人?

小智 5

扩展上面的代码(感谢Ewout),以下代码将摆脱所有woocommerce产品的所有价格和"添加到购物车"按钮,并提供解释为什么.我需要一个提供直销产品并遵守其规则的网站的代码,我不能向公众展示价格.

将过滤器添加到主题的functions.php文件中.

add_filter('woocommerce_get_price_html','members_only_price');

function members_only_price($price){

if(is_user_logged_in() ){
return $price;
}

else {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
  }

}
Run Code Online (Sandbox Code Playgroud)