Я хочу отсортировать элементы на странице общих продуктов, используя настраиваемое поле.Я использую некоторый код, он работает хорошо, он находит поле, которое я создал, и все упорядочивается в соответствии со значениями в этом поле.
Моя проблема в том, что я хочу отображать элементы только в соответствии с тем, что этозначение - это не все элементы, которые показаны и затем упорядочены.
Основной код, который я использую, выглядит следующим образом:
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;