Вопрос по cart.js

Здравствуйте всем!

Т.к. в джаве я профан полный, прошу помощи у знающих людей.
Есть скрипт cart.js, в нем есть функция updateCart. Она обновляет данные корзины после манипуляций в ней с товаром. Собственно, вопрос: как в эту функцию дописать еще обновление (перечитывание) некоего дива? Мне надо, чтоб обновлялся вывод <div class="col cart-checkout">.

Заранее премного благодарен за помощь!

1 ответ

  • 1

    Что вы подразумеваете под "чтоб обновлялся вывод"?

    • +1
      Плебей Плебей 29 июля 2016 09:27 #

      Спасибо за внимание к моему вопросу.

      Не совсем представляю как это правильно называется. В качестве примера:

              $(".cart-total").html(data.total);

      - это обновляется сумма заказа, получая данные data.total

              $(".cart-discount").html('− ' + data.discount);

      - это обновляется вывод скидки в заказе и т.д.

      Мне надо чтоб обновился (перезачитался) такой блок в корзине:

                     <div class="col w6 no-border align-right bold cart-checkout">
                      {if $cart.total < 200}
                      Минимальная сумма заказа - 200 грн!
                      {else}
                          <input name="checkout" type="submit" value="[`Proceed to checkout`] →" class="button large">
                      {/if}
                      </div>

      В этом блоке, как видно, проверяется сумма заказа на предмет минимальной для возможности оформления заказа. Т.е. при каждой манипуляции с товаром в корзине (удаление, изменение кол-ва и т.п.) он должен пересчитываться и "перевыводиться".

      • +1
        Алексей Алексей Webasyst 29 июля 2016 12:20 #

        Перевыводиться отдельный блок не будет.
        Поэтому вы можете проверять $(".cart-total").html(data.total); и в блоке переключать сообщение - например делать видимой кнопку Оформить заказ.
        Есть несколько плагинов которые выполняют эту функциональность.

        • +1
          Плебей Плебей 29 июля 2016 13:07 #

          Алексей, спасибо за ответ. Я понял, поиграюсь с переназначением стилей. Покупать плагин ради пары строк не вижу смысла. Коль речь идет об этом скрипте, - обратите, пожалуйста, внимание на баг в нем. В корзине есть текст о начислении бонусов за заказ. Так вот при манипуляциях с товаром (например, удаление из корзины) без перезагрузки страницы, этот текс изменяется вместе с количеством бонусов. Если сьраница перезагружается, то текст меняется лишь на мгновение и возвращается к тому, что указано в шаблоне. Т.е. как раз видоизменяется вывод всего блока информации о бонусах. Именно поэтому я решил, что можно изменять вывод нужного мне блока. Этот баг присущь дефолтной теме, но кочует и по другим темам, т.к. файл cart.js меняется мало. Как этот баг подлечить? Или опубликовать информацию о нем отдельным постом об ошибке?



          • +1
            Плебей Плебей 29 июля 2016 14:15 #

            Исправил баг с преобразованием текста о начисляемых бонусах таким образом: в файле shopFrontendCartDelete.controller.php заменил

                        $this->response['add_affiliate_bonus'] = sprintf(
                            _w("This order will add +%s points to your affiliate bonus."), 
                            round($add_affiliate_bonus, 2)
                        );

            на

                        $this->response['add_affiliate_bonus'] = sprintf(
                            _w("This order will add <strong>+%s bonuses</strong> to  your account, which you will be able to spend on getting additional discounts later."), 
                            round($add_affiliate_bonus, 2)
                        );

            Теперь текст идентичный. Огромная просьба - внесите это изменение в ближайших обновлениях, т.к. оно решает описанный выше баг.

            Такая же петрушка и вдругих контроллерах shopFrontendCart

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

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

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