Я пытаюсь отсортировать цены в woocommerce, чтобы товары, у которых их нет, будут добавлены в конце сортировки.
Моя функция выглядит следующим образом:
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'sort-price' == $orderby_value ) {
$args['orderby'] = 'CASE WHEN meta_value_num<1 THEN meta_value_num=99999 END ASC,meta_value_num';
$args['order'] = 'ASC';
$args['meta_key'] = '_price';
}
После регенерации таблицы поиска продуктов с этой функцией сортировка выглядит следующим образом:
1Category[1€] 1Category[2€] 1Category[No price] 2Category[1€]
Почему продукты второй категории не сортируются должным образом?