首页 > 解决方案 > 在 WooCommerce 中隐藏未登录用户的特定产品

问题描述

我有一个特定的产品类别,我只想提供给已登录的用户。我将如何实施?

那么如何在 WooCommerce 中向未登录用户隐藏特定产品

我试过搜索,但这似乎是一个真正的 WooCommerce 极端案例。

标签: phpwordpresswoocommerceproducttaxonomy-terms

解决方案


以下代码将仅为未登录用户隐藏特定产品类别的产品。您必须在代码中定义要在'terms'数组中排除的产品类别 SLUG:

// Hide some products from unlogged users and a specific product category
add_filter( 'woocommerce_product_query_tax_query', 'exclude_products_fom_unlogged_users', 10, 2 );
function exclude_products_fom_unlogged_users( $tax_query, $query ) {
    // On frontend for unlogged users
    if( ! is_user_logged_in() ){
        $tax_query[] = array(
            'taxonomy'  => 'product_cat',
            'field'     => 'slug',
            'terms'     => array('t-shirts'), // <=== HERE the product category slug
            'operator'  => 'NOT IN'
        );
    }
    return $tax_query;
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。


推荐阅读