Убрать добавление валюты при пересчете корзины

Каким образом можно убрать добавление валюты при изменении корзины?!

Объясню нагляднее, что я имею в виду:

Сумму в корзине можно вывести как минимум 2 способами:

{$cart_total = $wa->shop->cart->total()}

1) {$cart_total} - выводится только число (777)

2) {wa_currency_html($cart_total, $wa->shop->currency())} - выводится и число, и валюта (777 Р)

Я хочу использовать первый вариант ($cart_total), но при добавлении товара в корзину, к число автоматически приписывается валюта, что мне не нужно.

Кусок из js, отвечающий за изменение

$.post(f.attr('action') + '?html=1', f.serialize(), function (response) {
            if (response.status == 'ok') {
                var cart_total = $(".cart-total");
                var cart_count = $(".cart-count");
                cart_total.closest('#cart').removeClass('empty');
                cart_total.html(response.data.total);
                cart_count.html(response.data.count);
            } else if (response.status == 'fail') {
                alert(response.errors);
            }
        }, "json");

Какой кусок и в каком файле отвечает за добавление валюты при изменении суммы заказа?

3 ответа

  • 1

    Если речь только о странице корзины, то можно в шаблоне (cart.html) убрать вывод валюты - например, вместо {shop_currency_html($cart.total, true)} оставить только {$cart.total}

    • +1
      Worker Worker 12 октября 2015 11:37 #

      О всех страницах, так как в моем случае корзина (в виде небольшого блока) выводится в header'е. Соответственно, валюта появляется и на странице оформления, и на страницах категорий и продукта

  • 1

    У вас проблема именно с выводом от JavaScript? Попробуйте:

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

    cart_total.html(response.data.total.replace('<span class="ruble"></span>'));

    * Есть и плохой способ, отредактировать файл "action" добавления товара в корзину:

    shopFrontendCartAdd.controller.php

    сделать изменения в строке:

    $this->response['total'] = $this->currencyFormat($this->cart->total());

    но не рекомендую, для начала вам нужно понять зависимости при трансформациях с валютами, так же при очередном обновлении приложения се изменения сбросятся.

    * Примеры могут не работать


  • 1
    iSwitch 13 февраля 2016 18:53 #
    var cart_total = parseFloat((response.data.total).replace(",", ".").replace(" ", "").replace(/[^\d\.]/,''));

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

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