过滤自定义产品循环以从 WooCommerce 中的类别中获取产品

问题描述

我有这个函数,它在 WooCommerce 中调用所有产品类型“promotion_package”:

<?PHP foreach ( (array) $products as $product ):

    if ( ! $product->is_type( 'promotion_package' ) || ! $product->is_purchasable() || $product->get_duration() <= 0 ) {
        continue;
    }

endforeach; ?>

我只想获取“vip”产品类别中的产品。

我尝试使用 $product->get_categories() 查找“vip”类别,但没有成功。

如何只显示“vip”类别的产品?

解决方法

您可以为 has_term() 产品类别分类尝试 'product_cat' 条件函数,如下所示:

<?php 
    $categories = array('vip'); // Your categories (can be terms Ids,slugs or names)

    foreach ( (array) $products as $product ):

    if ( ! $product->is_type( 'promotion_package' ) || ! $product->is_purchasable() || $product->get_duration() <= 0 
    || ! has_term( $categories,'product_cat',$product->get_id() ) ) {
        continue;
    }

    endforeach; 
?>

应该可以,