当前位置: 首页 > 知识库问答 >
问题:

在我的WooCommerce相关产品小工具中排除特定类别

华誉
2023-03-14

我所有的WooCommerce产品都被分配了两个类别。第一类称为“所有产品”,所有产品都得到分配。第二类是依赖于产品,可以是电影、书籍、工具等。

由于每个产品都被分配为“所有产品”类别,因此在产品页面上的related products小部件中,您可以看到每个产品,而不仅仅是第二个(更具体的)产品类别。

我试图在functions.php中添加一些代码,这些代码将忽略“All products”作为related products小部件的一个类别,但仍然显示分配了该产品的第二个类别的相关产品。

到目前为止,我有了这段代码,它将相关的产品部件全部隐藏在一起。我认为这是因为每个产品都分配了slug“all-products”,所以它删除了小部件,而不是计算产品分配的第二个类别。

add_filter( 'woocommerce_related_products', 'exclude_product_category_from_related_products', 10, 3 );
function exclude_product_category_from_related_products( $related_posts, $product_id, $args  ){
    // HERE define your product category slug
    $term_slug = 'all-products';

    // Get the product Ids in the defined product category
    $exclude_ids = wc_get_products( array(
        'status'    => 'publish',
        'limit'     => -1,
        'category'  => array($term_slug),
        'return'    => 'ids',
    ) );

    return array_diff( $related_posts, $exclude_ids );
}

我如何编辑这段代码,使它将隐藏'all-products'类别不显示在相关产品中,但仍然显示其他指定类别的相关产品?

共有1个答案

欧浩淼
2023-03-14

您最好使用woocommerce_get_related_product_cat_terms。您可以使用此方法删除用于获取产品的类别数组中的'all-products'

add_filter( 'woocommerce_get_related_product_cat_terms', 'exclude_product_category_from_related_products' );
function exclude_product_category_from_related_products( $cats_array ) {

    $term = get_term_by('slug', 'all-products', 'product_cat');

    if ( $term && ($key = array_search($term->term_id, $cats_array)) !== false) {
        unset($cats_array[$key]);
    }

    return $cats_array;
}
 类似资料:
  • 在WooCommerce中,我需要为产品类别的每一项设置最低数量。我搜索了论坛,找到了一些代码,除了它只计算一个产品类别的总数量外,其他代码运行良好: 例如,如果我有两个属于同一产品类别的产品(A和B),并将该类别的最小数量设置为5,则在这种情况下不会出现客户的错误消息: 产品A:3 产品乙:2 我需要一个最小的数量5的每一个产品的类别。 您知道如何更改和优化以下代码吗?

  • 在我的网站上,没有与产品相关的小部件处理主题/Woocomece/archive产品。php。 在存档产品页面上,我写以下代码: 上面写着“不是商店页面”。我不知道是什么使存档产品不商店页面在WooCommerce。

  • 我想在我的woocommerce商店中为低于特定金额(价值,而不是数量)的订单添加费用。 我使用的"WooCommerce动态最小订单金额为基础的费用"回答代码,完美的作品。 现在我试图改变这个功能,并将其仅应用于特定产品类别的项目。基本上,我要把购物车中所有与特定类别相匹配的产品的价值求和,并使用这个价值进行费用计算。 我怎样才能达到这个目标?

  • 我在一家Woocommerce商店工作,该商店的产品按父类别(如品牌、颜色、大小等)组织。这些顶级类别中的每一个都有许多子类别:例如,颜色的子类别包括红色、蓝色、粉色等。 客户希望在首页和归档页的网格/循环视图中,在每个产品缩略图下方显示每个产品的品牌和尺寸(产品是鞋)。 每个产品只有一个品牌,但可能有多种尺寸。 因此,本质上,我需要知道是否有一种方法可以只显示单个产品的特定子类别的标题,如下所示

  • 我认为这个问题的标题是不言自明的,但要详细说明一下。。。 我正在尝试在Woocommerce中创建自定义类别页面。 我需要的是返回特定类别中的所有产品ID。 我看过这个帖子,但它使用了WP_Query的做事方式,这是相当丑陋的。 我更愿意使用WooCommerce类中的一些东西来实现这一点。 理想情况下,应该有一些类似以下的函数/方法(但我找不到): 任何帮助都将是惊人的。

  • 在woocommerce中,类别和产品是否可能有相同的基本url?目前,它给我的分类页面一个404,但产品运行良好。 我想做的是,两者都有基本的“商店”类别:demo。com/商店/类别/产品:演示。com/商店/类别/产品名称