Вход • Регистрация

Не работает фильтр в заказах

  • 27 мая 2020 г. , редакция: 27 мая 2020 г.
  • В упор не вижу ошибки.. В заказах добавил фильтр по группе (менеджеры). Получаю пользователей группы, всё ок, но при поиске пусто..
    в shop_order_status_history хранится история изменения статусов заказа.
    В результате в урле:
    Код
    /order/?&filter_text=&filter_user_ids=4009
    - id того, кого хочу отфильтровать.

    В $variables_filter
    Код
    'user_ids' => array(
    'name' => 'Менеджер',
    'type' => 'function',
    ),

    Код

    new public function get_filter_variable_user_ids($row){
    $user_ids = DB::query_fetch_value('SELECT DISTINCT user_id FROM {shop_order_status_history}', 'user_id');
    $text = '';

    if(!empty($user_ids)){
    $text .= '<div class="hr"></div>';
    $text .= '<select name="filter_user_ids">';
    $text .= '<option value="" selected>Менеджер</option>';
    foreach($user_ids AS $user_id){
    //нужные группы
    $user_name = DB::query_result('SELECT fio FROM {users} WHERE id="%d" AND act="1" AND trash="0" AND role_id IN ("45", "44", "19")', $user_id);

    if(empty($user_name)) continue;

    $text .= '<option value="'.$user_id.'">'.$user_name.'</option>';
    }
    $text .= '</select>';
    $text .= '<div class="hr"></div>';
    }

    return $text;
    }

    new public function save_filter_variable_user_ids($row){
    $res = $this->diafan->filter($_GET, 'string', "filter_user_ids");

    if($res){
    $this->diafan->join .= " LEFT JOIN {users} AS uids ON uids.id=e.user_id";
    $this->diafan->where .= " AND uids.id='".$res."'";
    $this->diafan->get_nav .= ($this->diafan->get_nav ? '&amp;' : '?') . 'filter_user_ids='.$this->diafan->filter($_GET, 'url', "filter_user_ids");
    }

    return $res;
    }


    p.s. Обнаружил, что при нажатии в заказе на "Покупатель совершил 2 заказ(ов)" - фильтр также не работает, отображает все заказы
    • 27 мая 2020 г.
    • 0. Включи дебаг mysql запросов и скопируй получившийся запрос в буфер обмена, и запусти вручняк.
      1. У тебя $res как string везже а должно быть integer
      2. Where убери а join переделай под inner join

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум