Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?
Ссылка скопирована
Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?Меняется только в корзине.
Скажите пожалуйста как исправить это или вообще удалить
Сайт магазина
https://newpackspb.ru/product/lajma-sredstvo-dlja-...
Дополнительно:
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
code-review
Нужен ли код-ревью React/TypeScript проекта?
0 ответов
Telegram
Как добиться, чтобы Telegram прислал мне именно смс код, а не через звонок его диктовал?
0 ответов
Аккумуляторные батареи
Почему при зарядке автостарта слышен писк, где искать причину?
0 ответов
woocommerce
Как отображать при фильтрации товары со значением search параметра visibility: HUSKY — Products Filter for WooCommerce?
0 ответов



В WooCommerce цена на странице товара по умолчанию показывает цену за одну единицу. Поле количества меняет итог уже в корзине, потому что single product template не обязан пересчитывать видимую цену. Если нужно показывать «итого за выбранное количество» прямо на карточке, это делается JavaScript-ом на фронтенде, а не изменением цены товара в базе.
Пример для простого товара можно добавить в JS темы или через небольшой сниппет, подключённый только на странице товара:
jQuery(function ($) { var $form = $('form.cart'); var $qty = $form.find('input.qty'); var $price = $('.summary .price .woocommerce-Price-amount').first(); if (!$qty.length || !$price.length) { return; } var unitPrice = parseFloat($price.text().replace(/[^0-9,.]/g, '').replace(',', '.')); var currency = $price.find('.woocommerce-Price-currencySymbol').text() || '₽'; function updateTotal() { var qty = parseFloat($qty.val()) || 1; var total = unitPrice * qty; $price.html(total.toLocaleString('ru-RU') + ' <span class="woocommerce-Price-currencySymbol">' + currency + '</span>'); } $qty.on('input change', updateTotal); });jQuery(function ($) { var $form = $('form.cart'); var $qty = $form.find('input.qty'); var $price = $('.summary .price .woocommerce-Price-amount').first(); if (!$qty.length || !$price.length) { return; } var unitPrice = parseFloat($price.text().replace(/[^0-9,.]/g, '').replace(',', '.')); var currency = $price.find('.woocommerce-Price-currencySymbol').text() || '₽'; function updateTotal() { var qty = parseFloat($qty.val()) || 1; var total = unitPrice * qty; $price.html(total.toLocaleString('ru-RU') + ' <span class="woocommerce-Price-currencySymbol">' + currency + '</span>'); } $qty.on('input change', updateTotal); });
Для вариативных товаров такой код нужно привязывать к событию
found_variation, потому что цена меняется после выбора вариации. Для скидок по количеству, налогов и динамического ценообразования лучше не писать свой калькулятор, а использовать плагин quantity pricing или выводить отдельную строку «Итого», чтобы не подменять базовую цену товара и не путать покупателя.Если цель наоборот удалить пересчёт/лишнюю цену, ищите в теме или плагинах JS, который подписан на
input.qty, и отключайте его точечно. WooCommerce сам на single product обычно не пересчитывает видимую цену.