Как получить цены последней скидки массива в Opencart 3 в модуле «Рекомендуемые» ?

Тема в разделе "Общие вопросы", создана пользователем Kstein, 23 ноя 2022.

  1. Kstein

    Kstein Новичок

    Сообщения:
    22
    Симпатии:
    1
    В файле:
    /catalog/view/theme/unishop2/template/extension/module/featured.twig
    есть переменная:
    {{ product.discounts }}

    В браузере она выводится так:
    [{'quantity':'20','price':122},{'quantity':'100','price':118},{'quantity':'300','price':116},{'quantity':'500','price':114},{'quantity':'1000','price':109}]

    Мне нужно, чтобы цена показывалась «от [максимальная скидка от количества]».

    Пробовал так:
    {{ product.discounts|last.price }}
    и
    {{ product.discounts|last['price'] }}

    Но не работает.
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    а разве так можно? Только просто |last
     
  3. Kstein

    Kstein Новичок

    Сообщения:
    22
    Симпатии:
    1
    Если просто |last, то выводится в браузере "]".
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.863
    Симпатии:
    1.059
    Вы наугад делаете? Не читая, что за что отвечает? Если с текстом Вы работаете как с массивом, то поведение верное.
    Вы ведь показываете не просто текст, а формат json ? Он что изначально так выводится? Нет.
    Лучше напишите автору шаблона, обычно он не отказывается.
     
  5. Kstein

    Kstein Новичок

    Сообщения:
    22
    Симпатии:
    1
    Решение:
    Нужно в контроллере перед
    $data['products'][] = array(

    добавить
    $discounts = $this->model_catalog_product->getProductDiscounts($result['product_id']);

    и после
    'rating' => $rating,

    добавить
    'discounts' => $discounts,

    И потом уже выводить условия в шаблоне.
     
    Vlad нравится это.