在WooCommerce中,已经能够成功地使缺货产品仅在产品类别档案页面上显示(因此不会在商店档案页面中显示)this answer code:
add_filter( 'woocommerce_product_query_meta_query', 'shop_only_instock_products', 10, 2 );
function shop_only_instock_products( $meta_query, $query ) {
// Only on shop archive pages
if( is_admin() || is_search() || ! is_shop() ) return $meta_query;
$meta_query[] = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!='
);
return $meta_query;
}
但我正在使用YITH WooCommerce Ajax Product Filter插件,启用并在我的商店页面上工作 .
我现在遇到的问题是,当我想过滤产品类别档案页面上的缺货产品时,我没有过滤结果,所有产品都消失了 .
我试图改变钩子的优先级,先减少它然后再增加它,但没有任何成功 .
我尝试添加以下过滤器:
add_filter ('yith_wcan_use_wp_the_query_object', '__return_true');
但它也没有用 .
我该如何解决这个问题?任何有关这方面的帮助将不胜感激
1 回答
我环顾四周,弄清楚问题出在YITH产品过滤器,当在类别页面上使用时,重定向到商店页面,并且由于商店页面已排除缺货产品,因此没有显示任何结果 .
没有过滤器的Shop页面的URL结构:
带有应用过滤器的Shop页面的URL结构:
显示缺货产品的类别页面的URL结构,未应用过滤器:
带有应用过滤器的类别页面的URL结构,与在Shop页面上应用的相同:
在类别页面上应用过滤器后应该使用的URL结构:
我在类别页面上测试了最后一个带有缺货产品的URL结构,它向我展示了所需的结果,它根据应用的过滤器缩小了产品列表 .
我不知道这对于可能知道如何帮助我的人是否有用:)