Как сделать наценку за вид оплаты в Woocommerce?
Здравствуйте, я только начинаю потихоньку делать сайты на Wordpress и я хотел бы узнать, как можно добавить наценку к общей сумме чека на странице оплаты.
Есть 3 вида оплаты:
- Наличный расчёт
- Без НДС
- С НДС
У каждого товара есть 3 цены для каждого вида оплаты, но нужно сделать так, чтобы выбор оплаты менял сразу для всех товаров цену по своему прайсу
Допустим, товар "Уголь 1"
Наличный расчёт - 180₽
Без НДС - 200₽
С НДС - 240₽
Товар "Уголь 2"
Наличный расчёт - 100₽
Без НДС - 110₽
С НДС - 132₽
Заранее большое спасибо тому кто поможет!
Дополнительные вопросы
Ответы:
Использовать скидочные плагины с отрицательной скидкой
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Наценку за вид оплаты в WooCommerce можно добавить через комиссию в корзине. Делается это хуком
woocommerce_cart_calculate_fees, где проверяется выбранный метод оплаты и добавляется нужная сумма или процент.Пример: добавить 3% при оплате конкретным способом:
add_action('woocommerce_cart_calculate_fees', function ($cart) { if (is_admin() && ! defined('DOING_AJAX')) { return; } $chosen = WC()->session ? WC()->session->get('chosen_payment_method') : ''; if ($chosen === 'cod') { $fee = $cart->get_subtotal() * 0.03; $cart->add_fee('Комиссия за выбранный способ оплаты', $fee, true); } });
Чтобы сумма пересчитывалась сразу при смене способа оплаты, на checkout обычно нужен стандартный JS-триггер WooCommerce. В большинстве тем он уже работает. Если нет, можно добавить обновление:
jQuery(function ($) { $('form.checkout').on('change', 'input[name="payment_method"]', function () { $('body').trigger('update_checkout'); }); });jQuery(function ($) { $('form.checkout').on('change', 'input[name="payment_method"]', function () { $('body').trigger('update_checkout'); }); });
Перед запуском проверьте юридическую сторону: в некоторых сценариях комиссия за способ оплаты должна быть явно показана клиенту до оформления заказа.