WooCommerce: автоматическое изменение стоимости товара при смене вариации

В чем суть задачи: автоматическое обновление цены при выборе вариаций

В WooCommerce у вариативных товаров цена может меняться в зависимости от выбранной вариации. По умолчанию фронтенд корректно отображает цену выбранной вариации, но в некоторых темах или кастомных решениях цена может не обновляться динамически. Это приводит к путанице пользователей и снижению конверсии.

Задача — обеспечить, чтобы цена товара на странице автоматически обновлялась без перезагрузки при смене вариации, особенно если используется кастомный шаблон или нестандартные скрипты.

Диагностика проблемы с обновлением цены вариаций WooCommerce

  • Проверка стандартного поведения: активируйте стандартную тему Storefront и отключите все плагины кроме WooCommerce. Проверьте страницу вариативного товара — цена должна динамически меняться при выборе вариации.
  • Проверка кастомных тем/плагинов: если в вашей теме цена не обновляется, вероятно, отсутствует или конфликтует скрипт wc-add-to-cart-variation.js, который отвечает за обновление цены и данных вариаций.
  • Консоль браузера: откройте DevTools (F12) и посмотрите на ошибки JavaScript, связанные с WooCommerce. Часто причиной проблемы бывают ошибки в пользовательских скриптах.
  • Проверка HTML-разметки: убедитесь, что на странице есть элемент с классом .woocommerce-variation-price — именно в него выводится цена выбранной вариации.

Пошаговое решение: как заставить цену вариаций обновляться автоматически

1. Проверяем подключение стандартных скриптов WooCommerce

В functions.php вашей темы или дочерней темы убедитесь, что подключен скрипт:

function custom_enqueue_scripts() {
    if (is_product()) {
        wp_enqueue_script('wc-add-to-cart-variation');
    }
}
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');

Этот скрипт отвечает за обработку выбора вариаций и динамическое обновление цены.

2. Правильная разметка цены вариаций

В шаблоне single-product/add-to-cart/variable.php должна присутствовать разметка для цены вариации:

<div class="woocommerce-variation-price">
    <p class="price"><?php echo $variation->get_price_html(); ?></p>
</div>

Если вы делаете кастомный вывод, убедитесь, что этот блок не удалён и находится в правильном месте.

3. При необходимости — кастомный скрипт для обновления цены

Если стандартный скрипт конфликтует или не работает, можно добавить свой jQuery-обработчик:

jQuery(document).ready(function($){
    $('.variations_form').on('found_variation', function(event, variation) {
        var price_html = variation.price_html;
        $('.woocommerce-variation-price .price').html(price_html);
    });
});

Этот код обновит цену в блоке .woocommerce-variation-price .price при выборе вариации.

Проверка результата после внедрения изменений

  • Откройте страницу вариативного товара в режиме инкогнито, чтобы исключить влияние кэша.
  • Выберите разные вариации и убедитесь, что цена меняется мгновенно без перезагрузки страницы.
  • Проверьте консоль браузера на отсутствие ошибок JavaScript.
  • Проверьте работу на мобильных устройствах и в разных браузерах.

Частые ошибки и как их исправить

  • Ошибка: скрипт wc-add-to-cart-variation.js не подключается.
    Решение: вручную подключите скрипт в functions.php, как показано выше.
  • Ошибка: отсутствует блок с классом .woocommerce-variation-price.
    Решение: восстановите стандартный шаблон или добавьте необходимую разметку.
  • Ошибка: конфликт JavaScript с кастомными скриптами.
    Решение: отключите по очереди кастомные скрипты, чтобы найти конфликт, и исправьте его.
  • Ошибка: кэширование страницы или скриптов мешает обновлению.
    Решение: очистите кэш сайта и браузера, отключите временно плагины кэширования для теста.

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

  • Не отключайте скрипты WooCommerce, они необходимы для корректной работы вариаций.
  • Если используете кастомные скрипты, минимизируйте их и загружайте только на страницах товаров, чтобы не замедлять остальные.
  • Проверяйте совместимость с обновлениями WooCommerce, так как внутренние скрипты могут изменяться.
  • Используйте child theme для кастомизаций, чтобы при обновлении темы не потерять изменения.

Сравнение способов обновления цены вариаций

МетодОписаниеПреимуществаНедостатки
Стандартный скрипт WooCommerceИспользует встроенный wc-add-to-cart-variation.jsНадежно, поддерживается официальноМожет конфликтовать с кастомными скриптами
Кастомный jQuery-обработчикСвой скрипт, реагирующий на событие выбора вариацииГибкость, можно подстроить под любую темуНеобходим опыт JavaScript, возможны баги
Плагины для вариацийГотовые решения с расширенным функционаломБыстрая настройка, дополнительные опцииНагрузка на сайт, возможные конфликты
Контроль вариаций и SKU в WooCommerce: практическое руководство
06.05.2026
WooCommerce: SKU не обновляется при смене вариации товара — как исправить
28.04.2026
WooCommerce: автоматическое изменение стоимости товара при смене вариации
01.06.2026
Как создать динамические виджеты в WordPress с использованием AJAX
21.11.2025
WooCommerce: автоматическое изменение стоимости товара при смене вариации
01.06.2026