如何解决在 WooCommerce 的商店页面上显示销售商品
我想找出一个直接链接来显示商店中的所有促销商品。 URL 通常可以过滤掉特定的属性和查询,所以我希望这是可能的。到目前为止,运气不佳。
我的结果是:未找到任何产品。但确实有产品在售。
我尝试了以下方法:
add_filter( 'woocommerce_product_query_Meta_query','filter_on_sale_products',20,1 );
function filter_on_sale_products( $Meta_query ){
if( isset($_GET['onsale']) && $_GET['onsale'] ){
$Meta_query[] = array(
'key' => '_sale_price','value' => 0,'compare' => '>'
);
}
return $Meta_query;
}
这应该通过 URL 返回所有销售商品:https://www.example.com/shop/?onsale=1
任何建议将不胜感激
解决方法
您的代码包含一些非常小的错误。
这应该足够了:
function filter_woocommerce_product_query_meta_query( $meta_query,$query ) {
// Only on archive pages
if ( is_admin() || ! is_shop() )
return $meta_query; // exit
// Isset & NOT empty
if ( isset( $_GET['onsale'] ) && ! empty( $_GET['onsale'] ) ) {
$meta_query[] = array(
'key' => '_sale_price','value' => 0,'compare' => '>',);
}
return $meta_query;
}
add_filter( 'woocommerce_product_query_meta_query','filter_woocommerce_product_query_meta_query',10,2 );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。