Не выводится комментарий к заказу Есть решение

Не выводится комментарий к заказу в кабинете у покупателя, хотя в шаблоне присутствует такой код:

    {if !empty($order.comment)}
        <h3>[`Comment`]</h3>
        <p>
            {$order.comment|escape}<br>
        </p>
    {/if}

7 ответов

  • 1
    Алексей Webasyst 14 ноября 2015 12:28 # Решение

    Текст комментария не передаётся в шаблон и этот код соответственно не выполняется.
    Можете использовать плагин https://www.webasyst.ru/store/plugin/shop/orderadd...

    • +2
      Евгений Химич Евгений Химич 7 октября 2020 11:43 #

      А зачем тогда в стандартных шаблонах используется 

      {$order.comment|escape}
      

      Можно ли как-то выводить комментарий к заказу без плагина?

      • +1
        replicant replicant 7 октября 2020 13:17 #

        Кстати да. В шаблонах темы Дефолт есть такая конструкция для вывода комментария. Всегда её из шаблона выкидывал, потому что комментарий в массиве заказа NULL

        'order' => [
        'id' => 'номер заказа',
        ...
        'comment' => NULL,
        ...
        ],

        Хотя было бы логично, чтобы заказчик видел собственный комментарий, если уж имеет доступ к ЛК и заказам или к быстрому просмотру заказа по pin-коду.

        Комментарии операторов бекенда делаются обычно через специальные плагины для админки или в историю обработки заказа и на фронте не видны, а вот комментарий клиента чаще оставляют без изменений ибо все равно этим не особо удобно пользоваться в бекенде в процессе работы с заказом.



        Комментарий клиента даже в таблице shop_order лежит в поле comment. Бери и юзай. Однако его обнуляют при выводе в шаблон. Зачем это так делается?
        • +1
          Алексей Алексей Webasyst 7 октября 2020 13:30 #

          Вероятно так исторически сложилось.
          Т.к. это общий комментарий для заказа, то его могут оставлять как клиенты так и админы при редактировании заказа. А это не всегда нужно показывать клиентам.

          • +2
            replicant replicant 7 октября 2020 14:17 #

            Админы, которые правят пользовательский комментарий, сами себе злые буратины. Юзать надо более удобный инструмент для операторов бекенда для работы с комментариями к заказу, где видно какой оператор и когда что написал, а не общий комментарий через редактирование. Но это все лирика. Не обращайте внимания.

            Насколько понимаю правка нужна в файле /shop/lib/actions/frontend/my/shopFrontendMyOrder.action.php в коде

            // Order comment
            $lm = new shopOrderLogModel();
            $l = $lm->getByField(array(
                'action_id' => 'create',
                'order_id'  => $order['id'],
            ));
            $order['comment'] = ifempty($l['text']); - вот в этой строке что-то заменить
            
            $order['comment'] = ifset($order['comment'], ''); - например так

            Это правильное решение или не очень? Комментарий в массиве появился и стал выводиться, если что.

          • +2

            Что значит "общий комментарий"?  Shop-Script это CMS или набор страничек?  Если админы оставляют тут комментарий - это означает только одно: интерфейс спроецирован неудачно, и администратору удобнее воспользоваться инструментом, который изначально предназначен только для клиента. Для админов есть отдельная возможность оставлять комментарии.  Ими не пользуются? Они неудобны или не видны? Тогда надо переделать интерфейс так, чтоб это было видно и удобно администратору. А запрещать выводить в ЛК покупателя комментарий который сам же покупатель к своему же заказу и оставил - это взять пучок палочек, скрепить их скотчем, и сказать что мол так и должно быть. В простонародье - низкосортный костыль.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите