Я хотел бы иметь условную прогрессивную скидку, основанную на количестве предметов в корзине. После того, как вы добавили 2 товара в корзину, вы получаете скидку. Больше продуктов вы добавляете и больше рабата вы получаете.
Например:
У меня есть поиск по интернету без каких-либо успехов. При поиске скидок я просто попадаю на купонную функцию WooCommerce, или я получаю какой-то старый неправильный код …
Есть идеи? Как мне это сделать?
Является ли это возможным?
Благодарю.
Да, его можно использовать, чтобы добиться этого. Обычно для скидок в корзине мы используем купоны WooCommerce. Здесь купоны не присваиваются. Я буду использовать здесь отрицательный условный взнос, который становится скидкой .
Итак, вот этот код:
/* The calculation: * — The count => Based on quantity by item and total of items in cart * — The percent is 0.05 (5%) and it grows with each additional item (as you asked) * — I add the subtotal of each item line to get the total sum… */ function cart_progressive_discount() { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $cart_count = 0; $cart_lines_total = 0; foreach(WC()->cart->get_cart() as $item_key => $cart_item){ // Adds the quantity of each item to the count $cart_count = $cart_count + $cart_item["quantity"]; // Adds The items subtotal to total $cart_lines_total += $cart_item["line_total"]; } // percent is 5% $percent = -0.05; // We fix the discount max to 50% (-0.05 * 10) $cart_count_max = 10; // Discount calculations: $discount = $percent * $cart_count * $cart_lines_total; $discount2 = $percent * $cart_count_max * $cart_lines_total; $discount_text = __( 'Quantity discount', 'woocommerce' ); // For 0 or 1 item if( $cart_count < 2 ) { return; } // Between 2 and 9 items, progressive incremental discount based on item quantity (From 10% to 45%) elseif( $cart_count > 1 && $cart_count < 10) { WC()->cart->add_fee( $discount_text, $discount, false ); } // Up to 9 items (Fixed discount at 50%) else { WC()->cart->add_fee( $discount_text, $discount2, false ); } } add_action( 'woocommerce_cart_calculate_fees','cart_progressive_discount' );
Естественно, это идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.
Этот код проверен и работает.
Здесь скидка не облагается налогом, см. В последней ссылке ниже.
Рекомендации: