我想先按销售价格、库存和正常价格对产品进行分类,但在任何地方都找不到解决方案。以下是我已实施但未获得解决方案的内容:
add_filter( \'woocommerce_get_catalog_ordering_args\', \'avs_first_sort_by_stock_amount\', 9999 );
function avs_first_sort_by_stock_amount( $args ) {
if (is_product_category() && !isset( $_GET[\'orderby\'] )) {
$args = array(
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
$args[ \'meta_key\' ] = \'_stock_status\',
$args[ \'orderby\' ] = \'meta_value\',
$args[ \'order\' ] = \'ASC\',
),
array(
$args[ \'meta_key\' ] = \'_sale_price\',
$args[ \'orderby\' ] = \'meta_value_num\',
$args[ \'order\' ] = \'DESC\',
),
array(
$args[ \'meta_key\' ] = \'_price\',
$args[ \'orderby\' ] = \'meta_value_num\',
$args[ \'order\' ] = \'DESC\',
)
)
);
return $args;
}
提前谢谢。
SO网友:Buttered_Toast
试试这个。
我按照WP\\U查询文档构建了这个。
$args = [
\'meta_query\' => [
\'relation\' => \'AND\',
[
\'_stock_status\' => [
\'key\' => \'_stock_status\',
\'compare\' => \'EXISTS\',
],
\'_sale_price\' => [
\'key\' => \'_sale_price\',
\'compare\' => \'EXISTS\',
],
\'_price\' => [
\'key\' => \'_price\',
\'compare\' => \'EXISTS\',
]
]
],
\'orderby\' => [
\'_stock_status\' => \'ASC\',
\'_sale_price\' => \'DESC\',
\'_price\' => \'DESC\'
]
];
这将按库存第一、销售价格第二和价格第三进行订购。
没有办法同时按两个或多个值排序,至少我不知道或无法找到。