EM Layered Navigation: устранение дефекта подсчёта количества товаров в дочерних разделах блока пошаговой фильтрации

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

03.01.2016 07:37

  • Файл: app/code/local/EM/LayeredNavigation/Model/Catalog/Filter/Category.php
  • Вероятная строка: 110-113
  • Что найти:
    if(preg_match("/cat_index.category_id = '.*?'/",$condition))
    	$condition = preg_replace("/cat_index.category_id = '.*?'/", "cat_index.category_id = '{$cat->getId()}'", $condition);
    else	
    	$condition = preg_replace("/cat_index.category_id='.*?'/", "cat_index.category_id='{$cat->getId()}'", $condition);

  • На что заменить:
    Указанный выше код крайне неряшливый. По хорошему менять там надо всё.
    Но самым коротким решением проблемы будет продолжить этот неряшливый код добавлением ещё одной аналогичной строки после кода выше:
    $condition = preg_replace("/'.*?' = cat_index.category_id/", "cat_index.category_id = '{$cat->getId()}'", $condition);

Было:
Прикрепленное изображение: magento-01.png

Стало:
Прикрепленное изображение: magento-02.png

Поделиться темой: