Тема - полный продукт-описание При оформлении заказа

Тема - полный продукт-описание При оформлении заказа

01.09.2019 01:00:52 Просмотров 24 Источник

Я думал, что это будет довольно легко, но это оказалось трудной задачей.

Мой клиент попросил меня реализовать полное описание продукта в таблице подтверждения заказа внутри проверки.

На данный момент у нас есть только краткое описание:

Файл: темы/newtheme/шаблоны/оформление заказа/_partials/заказ-подтверждение-таблица.ТПЛ

  <div class="order-confirmation-table">
    {block name='order_confirmation_table'}
      {foreach from=$products item=product}
        <div class="order-line row">

          {$product->description_short nofilter}

        </div>
      {/foreach}
    {/block}
  </div>

Я думал, что на основе этого мне просто нужно будет изменить атрибут, к которому я обращаюсь, например: {$product - >description nofilter}

Но затем выяснилось, что класс $product внутри проверки не является обычным классом продукта. Он сочетается со слоем абстракции LazyArray.

Как описано в руководстве разработчика от prestashop, они только что обновили LazyArrays в версии 1.7.5, чтобы вы могли получить к ним доступ через ->. К сожалению уже пробовал:

Файл: темы/newtheme/шаблоны/оформление заказа/_partials/заказ-подтверждение-таблица.ТПЛ

  <div class="order-confirmation-table">
    {block name='order_confirmation_table'}
      {foreach from=$products item=product}
        <div class="order-line row">

          {$product->description nofilter}

        </div>
      {/foreach}
    {/block}
  </div>

Не действовать

Затем я отлаживаю $product->description. Это пустой массив.

Поэтому я был бы очень рад, если бы кто-то мог помочь мне понять ленивый массив и получить описание

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/57741861/prestashop-full-product-description-in-checkout#comment101944233_57741861
Здравствуйте Николай, не могли бы вы обновить свой магазин до последней версии PS 1.7.6.1 ? Много исправлений, касающихся классов продуктов / контроллеров и LazyArray, было сделано с 1.7.6.0 (проверьте журнал изменений assets.prestashop2.com/en/system/files/ps_releases/... ) я не могу воспроизвести свою сторону, все работает нормально, моя новая установка PS 1.7.6.1.
https://stackoverflow.com/questions/57741861/prestashop-full-product-description-in-checkout#comment102112396_57741861
Все еще не работает после обновления @Sense

Ответы - Тема - полный продукт-описание При оформлении заказа / Prestashop - Full-Product-Description in Checkout

Является ответом!
Benjamin Seche

12.09.2019 10:29:05

Поле "описание"не находится в" белом списке " атрибутов, разрешенных спереди.

Если вы откроете файл " src / Core / Filter/frontEndObject/ProductFilter.php", вы получите белый список без "описания".

Src / core / files не может быть переопределен, поэтому вам придется создать модуль и зарегистрироваться на крючке " ActionFrontControllerAfterInit"

В вашей функции hook вызовите службу, получите фильтры и добавьте описание в белый список :

public function hookActionFrontControllerAfterInit()
{
    $filterManager = $this->get('prestashop.core.filter.front_end_object.main');

    // get list of all filters applied to client-side data
    $filters = $filterManager->getFilters();

    // get list of all filters applied to the cart object
    $cartFilters = $filters['cart']->getFilters();

    // get list of filters applied to each product inside the cart object
    $productFilterQueue = $cartFilters['products']->getQueue();

    foreach ($productFilterQueue as $filter) {
        if ($filter instanceof PrestaShop\PrestaShop\Core\Filter\FrontEndObject\ProductFilter) {
            $filter->whitelist(array('description'));
        }
    }
}

Вы можете найти некоторую документацию здесь http://build.prestashop.com/news/exposing-data-with-confidence/