375(33)640-98-68
375(29)935-83-38

Обновление цены в корзине [OKAYCMS]

26.06.2019
Обновление цены в корзине [OKAYCMS]

Может это не лучшее решение, но оно работает. Бывают случаи, когда у Вас имеются Способы оплаты с разной ценой. И когда пользователь сайта нажимает на Способ оплаты, а ему не идёт перерасчёт цены в «Корзине».

Для этого можно сделать 2 способа.

  1. Написать php
  2. Написать JS

В данном случаи распишу как на JS.

JavaScript использовать в этот момент я считаю самый лучший способ, так как он быстрее обрабатывает.

Примерно в 2 этапа можно решить задачу на скорую руку:

  1. Использовать div где вы выбираете Способ оплаты
  2. Использовать блок где менялась оплата Корзина

Ну и семечки, добавить атрибуты и сам JS код:

for="payment_{$delivery->id}_{$payment_method->id}"
data-price="{$cart->total_price + $delivery->price} руб."

Установка

Нужно добавить класс в корзину каждому элементу оплаты variations в файле cart_deliveries.tpl.

В input (cart_deliveries.tpl) добавить дополнительно 2 атрибута. которые написаны выше.

В самой корзине cart_purchases.tpl​​​​​​​, order.tpl нужно добавить класс который бы получал измену цены. Я написал class="upClass", вы пишите как Вам удобнее… Вставляется он примерно так, в эти блоки:

Нужно вставить класс upClass

Ну и сам код, чтоб отрабатывал всё:

$(document).on("change", ".variations input", function () {
   var $target = $(event.target)

   $.ajax({
    //url: "/cart", // адрес, на который будет отправлен запрос
	
    context:  $('.upClass'), // новый контекст исполнения функции
    success: function(){ // если запрос успешен вызываем функцию
        $target.closest(".caption").find(".price").text($target.data("price"));
        $( this ).html( $target.data("price") );
    }

}); 
})

Да это может не крутое решение, но работает быстро. Можно сделать ещё всё быстрее, но это уже другая история.

 

Рейтинг: 5/5 - 1 голосов

Комментарии (0)




Разрешённые теги: <b><i><br>Добавить новый комментарий:


Мы не пытаемся кричать что мы лучшие, просто делаем работу которая нравится.

X

КОНТАКТЫ:

+375(33)640-98-68

+375(29)935-83-38