Woocommerce - 仅在循环中显示分组产品父级

问题描述 投票:0回答:6

我正在建一家书店。我有一堆分组产品。我的痛苦是,woocommerce 默认列出这两种类型。我只需要列出该组的父级没有子级

有任何钩子或解决方法吗?

谢谢。

woocommerce product
6个回答
10
投票

补充一下,有一种方法可以做到这一点,而无需编写任何代码。

您可以简单地选择使用可见性选项隐藏产品。

最快的方法是转到“产品”>“产品”并勾选所有要隐藏的产品。单击批量操作下拉列表,然后在可见性下拉列表中选择隐藏。

某些 CSV 导入插件也应该有此选项。我使用 Woocommerce 导入 CSV 插件,并将不想在目录或搜索中显示的产品的标题“可见性”设置为隐藏。

为了价格比较网站,我必须隐藏除父产品之外的所有产品。

希望这可以帮助任何寻找类似解决方案的人。


6
投票

当您执行过滤器时,上述答案不起作用

这适用于过滤器,并且不会覆盖其他查询:

add_action( 'woocommerce_product_query', 'only_grouped_products_query' );
function only_grouped_products_query( $q ) {

    //get current loop query
   $taxonomy_query = $q->get('tax_query') ;

   //appends the grouped products condition
   $taxonomy_query['relation'] = 'AND';
   $taxonomy_query[] = array(
           'taxonomy' => 'product_type',
           'field' => 'slug',
           'terms' => 'grouped'
   );


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

2
投票

尝试以下操作:

add_action( 'woocommerce_product_query', 'so_27975262_product_query' );

function so_27975262_product_query( $q ){
    $q->set( 'post_parent', 0 );
}

我们的想法是,我们正在修改查询,使其仅显示顶级项目......因此(理论上)没有任何内容被分配给组,然后该组产品的 ID 将作为

 post_parent


0
投票

尝试以下代码:

add_action( 'woocommerce_product_query', 'hs_product_query' );
function hs_product_query( $q ){

    $product_type = array(
      'taxonomy' => 'product_type',
      'field' => 'slug',
      'terms' => 'grouped'
    );
    $q->set('tax_query', array($product_type) );

    $q->set( 'post_parent', 0 );
}

它对我有用..


0
投票

好吧,迟到的答案,但也找到了这个解决方案:

$params = array(
'posts_per_page' => 5,
'post_type' => 'product',
'tax_query' => array(
    array(
        'taxonomy' => 'product_type',
        'field'    => 'slug',
        'terms'    => 'grouped', 
    ),
),

);

使用 WP_Query 自定义产品查询 - WooCommerce


0
投票

这些查询函数放在什么文件里?

© www.soinside.com 2019 - 2024. All rights reserved.