/* * *********** Добавляем сортировку по пользовательским свойствам ************* */
/**
* Определяем критерии для сортировки с опциями, определяемыми способом ниже
*/
add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args');
function custom_woocommerce_get_catalog_ordering_args($args) {
global $wp_query;
$orderby_value = isset($_GET['orderby']) ? wc_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby'));
// Get order + orderby args from string
$orderby_value = explode('-', $orderby_value);
$orderby = esc_attr($orderby_value[0]);
$order = ! empty( $orderby_value[1] ) ? $orderby_value[1] : $order;
$orderby = strtolower( $orderby );
$order = strtoupper( $order );
// log_info($orderby, "orderby");
// log_info($order, "order");
// Изменили $_SESSION на $_GET
if (isset($orderby)) {
switch ($orderby) :
case 'pa_pub_featured' :
$args['order'] = $order == 'DESC' ? 'DESC' : 'ASC';
$args['meta_key'] = 'queue';
$args['orderby'] = 'meta_value_num ID';
break;
endswitch;
}
return $args;
}
/**
* Добавляем способ сортировки в выпадающий список. Логика/критерии в методе выше
*/
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby');
add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby');
function custom_woocommerce_catalog_orderby($sortby) {
$sortby['pa_pub_featured-ASC'] = 'Сортировать по умолчанию ';
return $sortby;
}