Хотелось бы, чтобы в корзине woocommerce клиенты получили 20-процентную скидку, но я хочу ограничить скидку до $ 500, например.Подача в корзину скидка 20% на максимальную сумму
Возможно ли это в WooCommerce?
Спасибо.
Хотелось бы, чтобы в корзине woocommerce клиенты получили 20-процентную скидку, но я хочу ограничить скидку до $ 500, например.Подача в корзину скидка 20% на максимальную сумму
Возможно ли это в WooCommerce?
Спасибо.
Это можно сделать легко, используя woocommerce_cart_calculate_fees
крюк и метод WC_cart add_fee()
. Тогда, если вы используете отрицательный взнос, он становится тогда DISCOUNT.
В этой функции скидка рассчитывается из суммы налога за товар без учета налогов (и вы можете легко изменить ее на общую сумму, включая налоги).
Вот код:
add_action('woocommerce_cart_calculate_fees', 'custom_limited_discount', 10, 1);
function custom_limited_discount($cart_object) {
if (is_admin() && ! defined('DOING_AJAX'))
return;
// Here 20 % of discount
$discount_percent = 0.2;
// Here the max discounted amount
$max_discount = 500;
// Here are some different cart totals
$cart_subtotal_excl_tax = WC()->cart->subtotal_ex_tax;
$cart_subtotal = WC()->cart->subtotal;
$cart_total = WC()->cart->total;
$discount = 0;
// CALCULATION with subtotal excluding taxes
$calculation = $cart_subtotal_excl_tax * $discount_percent;
// Limiting the discount to $max_discount
if ($calculation > $max_discount) {
$discount -= $max_discount;
} else {
$discount -= $calculation;
}
$discount_text_output = __('Discount (20 %)', 'woocommerce');
// Adding the discount
$cart_object->add_fee($discount_text_output, $discount, false);
// Note: Last argument in add_fee() method is related to applying the tax or not to the discount (true or false)
}
Этот код проверен и полностью работоспособен.
Код находится в файле functions.php вашей активной дочерней темы (или темы). Или также в любых плагинах php-файлов.
Примечание: Последний аргумент в
add_fee()
метод связан с применением налога или не дисконта (истина или ложь).
sir.as like My coupon code is "MAX500", если кто-то применил этот код купона, тогда они получат 20% скидку от $ 500 до $ 2500, а если общая сумма корзины составляет более $ 2500, тогда клиент скидывается до $ 500 , Пожалуйста, обратитесь к этому вопросу и объясните мне по этому вопросу. –
@RaviShankar Извините, но в вашем вопросе вы не спрашивали об этом, поэтому, пожалуйста, так как этот ответ является хорошим, связанным с вашим вопросом, принять его ... После этого я видел ваш новый вопрос, это именно то, что вы просите меня здесь в своем комментарии, и я постараюсь ответить на него. Но для купонов все гораздо сложнее, сделать так, как вам хотелось бы, и может быть невозможно таким образом. – LoicTheAztec