Автоматическое изменение стоимости товаров в 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)Простая реализация, работает во всех местахМеняет историю, сложно откатить, требует дополнительных проверок
Плагины для ценообразованияГотовые функциональные решения, поддержкаМогут быть тяжелыми, платными, не всегда гибкие
Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации процессов
21.06.2026
Как использовать статусы заказов WooCommerce для автоматизации процессов
04.05.2026
Как создать собственный шорткод в WordPress с примерами кода
31.10.2025
Как автоматизировать создание и удаление пользовательских ролей в WordPress с примерами кода
19.02.2026
Как создать автоматический бэкап в WordPress с помощью плагинов
20.11.2025
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше