Php WooCommerce会隐藏某一类别的所有产品(如果不登录的话)

Php WooCommerce会隐藏某一类别的所有产品(如果不登录的话),php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我一直在到处寻找这个答案,甚至下载了多个插件,但都没有用 有没有一种方法可以使用PHP实现这一点 我有以下代码: <?php if( !is_user_logged_in() && get_field('___unit_price') ): ?> <p>Unit Price: $<?php the_field('___unit_price'); ?></p> <?php endif; ?> 单价:$ 它似乎适

我一直在到处寻找这个答案,甚至下载了多个插件,但都没有用

有没有一种方法可以使用PHP实现这一点

我有以下代码:

 <?php if( !is_user_logged_in() && get_field('___unit_price') ): ?>
 <p>Unit Price: $<?php the_field('___unit_price'); ?></p>
 <?php endif; ?>

单价:$


它似乎适用于特定的产品,但不适用于整个类别,任何帮助都将非常有用

请在孩子主题的function.php中使用以下内容:

别忘了用你想隐藏的类别的slug替换“yourcography”

干杯

add_action('init'、'bbloomer\u hide\u price\u add\u cart\u not\u logged\u in');
函数bbloomer\u hide\u price\u add\u cart\u not\u logged\u in(){
如果(!是用户登录的()){
删除操作('woocommerce\u在商店\u循环\u项目之后,'woocommerce\u模板\u循环\u添加\u到购物车',10);
删除操作('woocommerce\u single\u product\u summary'、'woocommerce\u template\u single\u add\u to\u cart',30);
删除行动('woocommerce\u single\u product\u summary'、'woocommerce\u template\u single\u price',10);
删除操作('woocommerce'u在'u shop'u loop'u item'u title'之后,'woocommerce'u模板'u loop'u price',10);
添加操作('woocommerce\u single\u product\u summary'、'bbloomer\u print\u login\u to\u see',31);
添加操作('woocommerce'在'u shop'循环'u项目之后,'bbloomer'打印'u登录'u see',11);
}
}
功能bbloomer\u打印\u登录到\u请参阅(){
回声';
}
将其添加到functions.php文件中以了解更多信息请查看此链接

您是想像标题中所说的那样“隐藏所有产品”,还是只隐藏价格字段??如果你想“隐藏某一类别的所有产品”,请看我的答案。为未登录的用户隐藏某一类别的所有产品。我将检查下面的解决方案,看看哪些是有效的,非常感谢!嘿,伙计,谢谢你,但是我应该在哪里选择对用户隐藏的类别呢?
/* hide YOURCATEGORY category for not loggedin user
===================================================*/

    if ( !is_user_logged_in()) {
        function custom_pre_get_posts_q( $q ) {

            $tax_query = (array) $q->get( 'tax_query' );

            $tax_query[] = array(
                   'taxonomy' => 'product_cat',
                   'field' => 'slug',
                   'terms' => array( 'YOURCATEGORY' ), // Don't display products in the composite category on the shop page.
                   'operator' => 'NOT IN'
            );


            $q->set( 'tax_query', $tax_query );

        }
        add_action( 'woocommerce_product_query', 'custom_pre_get_posts_q' );
    }
add_action('init', 'bbloomer_hide_price_add_cart_not_logged_in');

function bbloomer_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', 'bbloomer_print_login_to_see', 31 );
 add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_print_login_to_see', 11 );
}
}

function bbloomer_print_login_to_see() {
echo '<a href="' . get_permalink(woocommerce_get_page_id('myaccount')) . '">' . __('Login to see prices', 'theme_name') . '</a>';
}