Woocommerce YITH产品过滤器无法正常工作

时间:2017-12-17 21:56:49

标签: php wordpress woocommerce filtering product

在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 个答案:

答案 0 :(得分:0)

我环顾四周,发现问题出现在YITH产品过滤器上,当在类别页面上使用时,重定向到商店页面,并且由于商店页面已排除缺货产品,因此显示没有结果

没有过滤器的商店页面的网址结构:

domain.com/shop

带有应用过滤器的商店页面的网址结构:

domain.com/shop?filter_watch-gender=gender-men&query_type_watch-gender=or

显示缺货产品的类别页面的网址结构,未应用过滤器:

domain.com/product-category/our-collection/

带有应用过滤器的类别页面的网址结构,与在商店页面上应用的相同:

domain.com/shop?product_cat=our-collection&source_id=25&source_tax=product_cat&filter_watch-gender=gender-men&query_type_watch-gender=or

在类别页面上应用过滤器后应该使用的URL结构:

domain.com/product-category/our-collection?filter_watch-gender=gender-men&query_type_watch-gender=or

我已经在缺货产品的类别页面上测试了这个最后的网址结构,它向我展示了所需的结果,它根据应用的过滤器缩小了产品列表。

我不知道这对于可能知道如何帮助我的人是否有用:)