Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?

Ссылка скопирована
1 ответ

Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?Меняется только в корзине.
Скажите пожалуйста как исправить это или вообще удалить

Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?

Как сделать чтобы цена менялась при добавлении количества товара на странице товара WooCommerce?

Сайт магазина
https://newpackspb.ru/product/lajma-sredstvo-dlja-...

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Backend-редакция Ответ

В 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 обычно не пересчитывает видимую цену.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно