Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Решено Сортировка товаров по весу

Тема в разделе "Ищу плагин, функционал", создана пользователем mariya-kos, 2 окт 2016.

  1. mariya-kos

    mariya-kos

    Сообщения:
    25
    Симпатии:
    2
    Баллы:
    3
    Доброго времени суток! Прошу помочь в выводе сортировки товаров. Сайт https://bon-bon.club/shop. Требуется организовать сортировку товаров по весу: от мин. к макс. и обратно. Погуглив, удалось отыскать код
    Код:
    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'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
        if ( 'product_weight' == $orderby_value ) {
            $args['orderby'] = 'product_weight';//поле по которому сортируем
            $args['order'] = 'ASC';//по возрастанию (ASC) или убыванию (DESC)
            
        }
        return $args;
    }
    add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
    add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
    function custom_woocommerce_catalog_orderby( $sortby ) {
        $sortby['product_weight'] = 'Вес по возрастанию';
        return $sortby;
    }
    Добавляю его в functions.php своей темы и... результата нет. Более того, я даже понять не могу по какому принципу происходит сортировка. В чём ошибка, подскажите, пожалуйста! Я неверно указываю параметр сортировки? Или может дело в единицах измерения, может если убрать 'g', то всё встанет на свои места? Тогда подскажите, пожалуйста, где удалить единицы измерения?
     
  2. mariya-kos

    mariya-kos

    Сообщения:
    25
    Симпатии:
    2
    Баллы:
    3
    Нашла ошибку) Выкладываю код, вдруг пригодится кому-то
    Код:
    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'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
        if ( 'weasc' == $orderby_value ) {
            $args['orderby'] = 'meta_value_num';//поле по которому сортируем
            $args['order'] = 'ASC';//по возрастанию (ASC) или убыванию (DESC)
            $args['meta_key'] = '_weight';//по конкретному совпадению ключа
        }
    if ( 'wedesc' == $orderby_value ) {
            $args['orderby'] = 'meta_value_num';//поле по которому сортируем
            $args['order'] = 'DESC';//по возрастанию (ASC) или убыванию (DESC)
            $args['meta_key'] = '_weight';//по конкретному совпадению ключа
        }
        return $args;
    }
    add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );
    add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );
    function custom_woocommerce_catalog_orderby( $sortby ) {
        $sortby['weasc'] = 'Вес по возрастанию';
     $sortby['wedesc'] = 'Вес по убыванию';
        return $sortby;
    }
    
     
    • Нравится Нравится x 1
    • Победитель Победитель x 1