woocommerce为未登录的用户隐藏字段

时间:2018-11-05 09:46:10

标签: wordpress woocommerce

我想创建一个功能,使未登录的用户无法看到产品价格,请添加到购物车和描述文字中。目前,我正在使用插件隐藏价格,直到登录为止,这样价格就不会显示出来。我也在使用此CSS代码:

body.logged-in form.cart, body.logged-in div.woocommerce-product-details__short-description, body.logged-in div.product_meta { display:none; }

这是我在互联网上可以找到的唯一代码,对我而言,它正在反方向起作用。如果有人可以帮助您,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码段隐藏价格,添加到购物车和简短说明。

add_action( 'init', 'hide_price_add_cart_not_logged_in' );

function hide_price_add_cart_not_logged_in() { 
if ( !is_user_logged_in() ) {       
// Remove Add to cart from shop page
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
// Remove Price from shop page
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
// Remove Add to cart from single product page     
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
// Remove price from single product page
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
//Remove short description (excerpt) from single product page
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );  
}
}

如果要从未登录用户的单个产品页面删除“说明”标签,请在下面的代码段中

add_filter( 'woocommerce_product_tabs', 'remove_product_description_tab', 98 );
function remove_product_description_tab( $tabs ) {
if ( !is_user_logged_in() ) {       
    unset( $tabs['description'] );
}
    return $tabs;
}