Как поставить наценку на товар woocommerce?
Подскажите плагин для установки процента наценки товара для клиентов. Нахожу только решения по скидке или установки наценки только на вторую валют, а необходимо на основную валюту также установить процент наценки
Дополнительно:
Наценка - это та же скидка, только отрицательная. Многие скидочные плагины (если не все) это умеют.
Ответы:
Вы можете воспользоваться плагином WooCommerce Extra Product Options. Этот плагин позволяет добавлять дополнительные опции к товарам, включая опцию для установки процента наценки.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Наценка в WooCommerce — это действительно “скидка наоборот”, но лучше не пытаться переделывать скидочные плагины, если нужна понятная и контролируемая логика. Есть два нормальных пути: готовый плагин для role pricing/markup или небольшой код через фильтры цены.
Если наценка должна применяться ко всем товарам, пример простой:
add_filter('woocommerce_product_get_price', 'add_global_markup_to_price', 20, 2); add_filter('woocommerce_product_variation_get_price', 'add_global_markup_to_price', 20, 2); function add_global_markup_to_price($price, $product) { if ($price === '') { return $price; } $markup_percent = 10; return (float) $price * (1 + $markup_percent / 100); }
Но для каталога WooCommerce ещё есть regular price, sale price и cached variation prices. Поэтому для вариативных товаров может понадобиться очистить transients и добавить фильтры для вариаций:
add_filter('woocommerce_variation_prices_price', 'add_global_markup_to_price', 20, 2); add_filter('woocommerce_variation_prices_regular_price', 'add_global_markup_to_price', 20, 2);
Если наценка нужна только для отдельных клиентов или ролей, добавьте условие:
if (!is_user_logged_in()) { return $price; } $user = wp_get_current_user(); if (!in_array('wholesale_customer', (array) $user->roles, true)) { return $price; }
Если наценка должна быть видна в админке как отдельное поле, лучше сделать meta-поле товара и считать цену от него. Для сложных правил удобнее взять плагин динамического ценообразования, например role based pricing/dynamic pricing, где можно задавать проценты по ролям, категориям и группам товаров.
Важно: наценка через фильтр меняет цену на фронте и в корзине, но нужно проверить налоги, купоны, выгрузки, фиды и оплату. Для магазина это критично.
Итог: для простой глобальной наценки достаточно фильтра цены. Для клиентов, ролей и категорий лучше использовать плагин динамического ценообразования или аккуратную кастомную логику с проверкой корзины и вариаций.