首页 文章

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

提问于
浏览
1

我正在建一个书店 . 我有一堆 grouped products . 我的痛苦是,woocommerce默认列出两种类型 . 我要列出的 only need the parentwithout childrens .

这有什么钩子或解决方法吗?

谢谢 .

4 回答

  • 2

    请尝试以下方法:

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

    我们的想法是're modifying the query such that it will only show top-level items.... thus (in theory) nothing that has been assigned to a group, which would then have the group product'的ID为 post_parent .

  • 1

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

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

    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 );
    }
    
  • 0

    只是为了补充一点,有一种方法可以做到这一点,而无需编写任何代码 .

    您只需选择使用可见性选项隐藏产品即可 .

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

    某些CSV导入插件也应该有此选项 . 我使用Woocommerce Import CSV插件并将 Headers 'visibility'设置为隐藏,以用于我不希望在目录或搜索中显示的产品 .

    我必须隐藏除了父产品之外的所有产品以进行价格比较 .

    希望这有助于任何寻找类似解决方案的人

  • 3

    请尝试以下代码:

    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 );
    }
    

    它对我有用..

相关问题