我正在建一个书店 . 我有一堆 grouped products . 我的痛苦是,woocommerce默认列出两种类型 . 我要列出的 only need the parent 组 without childrens .
这有什么钩子或解决方法吗?
谢谢 .
请尝试以下方法:
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 .
post_parent
执行过滤器时,上述答案不起作用
这适用于过滤器,不会覆盖其他查询:
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 ); }
只是为了补充一点,有一种方法可以做到这一点,而无需编写任何代码 .
您只需选择使用可见性选项隐藏产品即可 .
最快捷的方法是转到产品>产品并勾选要隐藏的所有产品 . 单击批量操作下拉列表,然后在“可见性”下拉列表中选择“隐藏” .
某些CSV导入插件也应该有此选项 . 我使用Woocommerce Import CSV插件并将 Headers 'visibility'设置为隐藏,以用于我不希望在目录或搜索中显示的产品 .
我必须隐藏除了父产品之外的所有产品以进行价格比较 .
希望这有助于任何寻找类似解决方案的人
请尝试以下代码:
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 ); }
它对我有用..
4 回答
请尝试以下方法:
我们的想法是'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
.执行过滤器时,上述答案不起作用
这适用于过滤器,不会覆盖其他查询:
只是为了补充一点,有一种方法可以做到这一点,而无需编写任何代码 .
您只需选择使用可见性选项隐藏产品即可 .
最快捷的方法是转到产品>产品并勾选要隐藏的所有产品 . 单击批量操作下拉列表,然后在“可见性”下拉列表中选择“隐藏” .
某些CSV导入插件也应该有此选项 . 我使用Woocommerce Import CSV插件并将 Headers 'visibility'设置为隐藏,以用于我不希望在目录或搜索中显示的产品 .
我必须隐藏除了父产品之外的所有产品以进行价格比较 .
希望这有助于任何寻找类似解决方案的人
请尝试以下代码:
它对我有用..