首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在woocommerce中对搜索结果排序

在woocommerce中对搜索结果排序
EN

Stack Overflow用户
提问于 2022-08-03 19:15:16
回答 1查看 66关注 0票数 0

我需要按以下方式对我的商店的搜索结果进行排序:首先显示库存中可用的产品,然后显示缺货的产品。

我用下面的代码片段为产品页面(商店)做了这件事:

代码语言:javascript
复制
add_filter( 'woocommerce_get_catalog_ordering_args', 'first_sort_by_stock_amount', 9999 );
 
function first_sort_by_stock_amount( $args ) {
   $args['orderby'] = 'meta_value';
   $args['meta_key'] = '_stock_status';
   return $args;
}

但是,将相同的片段应用于wc_product_meta_lookup并不有效。

我被告知要尝试pre_get_post钩子,但到目前为止没有结果。

你能帮我一下吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-04 19:26:48

通过实现以下代码片段,我找到了解决问题的方法:

代码语言:javascript
复制
add_action( 'woocommerce_product_query', 'sort_by_stock_status_and_date', 999 );
function sort_by_stock_status_and_date( $query ) {
    if ( is_admin() ) return;

    $query->set( 'meta_key', '_stock_status' );
    $query->set( 'orderby', array( 'meta_value' => 'ASC', 'date' => 'DESC' )  );
}

除了按库存过滤产品(首先是可用的产品,然后是缺货的产品)之外,它还可以处理所有的查询,因此我停止使用它在我的问题中显示的片段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73226666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档