Как можно отсортировать продукты WooCommerce по настраиваемому полю по значению, содержащемуся в этом поле? - PullRequest
0 голосов
/ 04 июля 2019

Я хочу отсортировать элементы на странице общих продуктов, используя настраиваемое поле.Я использую некоторый код, он работает хорошо, он находит поле, которое я создал, и все упорядочивается в соответствии со значениями в этом поле.

Моя проблема в том, что я хочу отображать элементы только в соответствии с тем, что этозначение - это не все элементы, которые показаны и затем упорядочены.

Основной код, который я использую, выглядит следующим образом:

function cw_add_postmeta_ordering_args( $args_sort_cw ) {

$cw_orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) :
    apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

    switch( $cw_orderby_value ) {
    case 'location_one':
        $args_sort_cw['orderby'] = 'meta_value_num';
        $args_sort_cw['order'] = 'desc';
        $args_sort_cw['meta_key'] = 'number_location';
    break;
    case 'location_two':
        $args_sort_cw['orderby'] = 'meta_value_num';
        $args_sort_cw['order'] = 'asc';
        $args_sort_cw['meta_key'] = 'number_location';
    break;
    }

return $args_sort_cw;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'cw_add_postmeta_ordering_args' );
function cw_add_new_postmeta_orderby( $sortby ) {
   $sortby['location_one'] = __( 'Sort By Location 1', 'woocommerce' );
   $sortby['location_two'] = __( 'Sort By Location 2', 'woocommerce' );
   return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'cw_add_new_postmeta_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'cw_add_new_postmeta_orderby' );

Существует ли способ сортировки по значению для каждого случаяпоиска пользовательского поля я могу сделать что-то вроде этого?:

$args_sort_cw['orderby'] = 'meta_value_num';
$args_sort_cw['order'] = 'asc';
$args_sort_cw['meta_key'] = 'number_location';
$args_sort_cw['meta_value'] = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...