【发布时间】:2018-12-19 20:04:13
【问题描述】:
我的 Woo Commerce 商店中有一个名为“j-pods”的产品类别。
我们的目标是制作一个以“便宜的 j pods”为中心的页面。
所以我创建了一个新的产品类别,其中包含 slug 'cheap-j-pods'。
当“便宜”变体页面加载时,我想更改查询以使其从原始“j-pods”类别中提取所有产品,并从最低价格到最高价格过滤它们。
据我了解,“woocommerce_product_query”操作是在执行主查询之前对其进行修补的方法。
更新:我找到了一种更改要提取的产品类别的好方法,但是查询的按价格排列部分不起作用。
这是我的代码...
add_action( 'woocommerce_product_query', function( $q ) {
$pageCat = $q->get( 'product_cat' );
if( empty($pageCat) || $pageCat !== 'cheap-j-pods') {
return;
}
// Change product category query
$q->set( 'product_cat', 'j-pods' );
// Extract existing meta query
$meta_query = $q->get( 'meta_query' );
// Add a query to arrange products by asc price
$meta_query[] = array(
'orderby' => 'meta_value_num',
'meta_key' => '_price',
'order' => 'asc'
);
//echo '<pre style="display:block">' . print_r($meta_query, true) . '</pre>';
$q->set( 'meta_query', $meta_query );
}, 900);
现在产品将显示,但按默认顺序显示。
为什么按价格排序产品在查询中不起作用?
非常感谢。
【问题讨论】:
标签: woocommerce