|
|
|
@ -12,31 +12,7 @@ jQuery(document).ready(function($) { |
|
|
|
|
const quantity = parseInt($input.val(), 10); |
|
|
|
|
|
|
|
|
|
if (quantity > 0) { |
|
|
|
|
updateCart(key, quantity, false); |
|
|
|
|
|
|
|
|
|
const $item = $input.closest('.modal-basket-item__control'); |
|
|
|
|
const $priceElement = $item.find('.woocommerce-Price-amount'); |
|
|
|
|
const currentPriceText = $priceElement.text().replace(/[^\d,]/g, '').replace(',', '.'); |
|
|
|
|
const currentTotal = parseFloat(currentPriceText); |
|
|
|
|
|
|
|
|
|
// Защита от деления на 0
|
|
|
|
|
if (!isNaN(currentTotal) && currentTotal > 0) { |
|
|
|
|
const oldQuantity = parseInt($input.prop('defaultValue'), 10); |
|
|
|
|
const unitPrice = currentTotal / oldQuantity; |
|
|
|
|
const newTotal = unitPrice * quantity; |
|
|
|
|
|
|
|
|
|
// Получаем текущий символ валюты из разметки
|
|
|
|
|
const currencySymbol = $priceElement.find('.woocommerce-Price-currencySymbol').text().trim(); |
|
|
|
|
|
|
|
|
|
// Формируем новую цену с тем же символом
|
|
|
|
|
$priceElement.find('bdi').html( |
|
|
|
|
newTotal.toLocaleString('ru-RU', { minimumFractionDigits: 0 }) + |
|
|
|
|
' <span class="woocommerce-Price-currencySymbol">' + currencySymbol + '</span>' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Обновить значение по умолчанию (чтобы расчёт unitPrice был корректен в следующий раз)
|
|
|
|
|
$input.prop('defaultValue', quantity); |
|
|
|
|
} |
|
|
|
|
updateCart(key, quantity); |
|
|
|
|
} else { |
|
|
|
|
removeItem(key); |
|
|
|
|
} |
|
|
|
|