Автоматическое изменение стоимости товаров в WooCommerce по условиям

|

Диагностика проблемы: зачем и когда нужна автоматическая корректировка цен

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

Проверить, что у вас именно такая задача, можно по следующим признакам:

Как реализовать автоматическое изменение стоимости товаров с помощью кода

Использование фильтра woocommerce_product_get_price

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

Пример: сделаем скидку 10% на все товары из категории "Распродажа" и увеличим цену на 15% для товаров с запасом меньше 5 штук.

add_filter('woocommerce_product_get_price', 'custom_dynamic_price', 10, 2);
function custom_dynamic_price($price, $product) {
    // Проверяем категорию
    if (has_term('rasprodazha', 'product_cat', $product->get_id())) {
        $price = $price * 0.9; // скидка 10%
    }
    // Проверяем запас
    if ($product->get_stock_quantity() !== null && $product->get_stock_quantity() < 5) {
        $price = $price * 1.15; // увеличение на 15%
    }
    return $price;
}

Корректировка цены для разных ролей пользователей

Если нужно менять цену в зависимости от роли пользователя, добавим проверку текущего пользователя:

add_filter('woocommerce_product_get_price', 'custom_price_by_user_role', 20, 2);
function custom_price_by_user_role($price, $product) {
    if (current_user_can('wholesale_customer')) {
        $price = $price * 0.85; // скидка 15% для оптовиков
    }
    return $price;
}

Пошаговое руководство по внедрению и проверке

  1. Подключитесь к сайту через FTP или используйте редактор тем в админке.
  2. Добавьте код в файл functions.php дочерней темы или в кастомный плагин для безопасного обновления.
  3. Очистите кеш сайта и браузера, если используете кеширующие плагины.
  4. Перейдите на страницу товара и убедитесь, что цена изменилась в соответствии с заданными условиями.
  5. Проверьте корзину и оформление заказа — цена должна совпадать с отображаемой.

Как проверить, что изменения работают

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

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

Сравнение вариантов реализации автоматического изменения цен

МетодПреимуществаНедостатки
Фильтр woocommerce_product_get_priceДинамическая подмена, не меняет базу, подходит для всех страницНужно дублировать для других фильтров, не всегда совместим с плагинами
Изменение цены в базе (через SQL)Простая реализация, работает во всех местахМеняет историю, сложно откатить, требует дополнительных проверок
Плагины для ценообразованияГотовые функциональные решения, поддержкаМогут быть тяжелыми, платными, не всегда гибкие
Оптимизация кода и загрузки в WordPress для бизнес-сайтов
27.08.2026
Как создать автоматический импорт продуктов в WooCommerce из CSV файла
21.08.2026
Как автоматизировать управление виджетами в WordPress: практические решения
30.09.2026
Как сделать автоматический импорт данных в WordPress из Excel с примерами кода
18.09.2026
Автоматическое создание менеджера проектов в WordPress: практическое руководство с кодом
27.08.2026
×
-15%
на премиум-тему
Bono

Создай магазин мечты
на WordPress!

↓ ↓ ↓ ↓ ↓
Купить со скидкой »