WordPress教程

WooCommerce – 根据购物车中商品数量的有条件累进折扣

也想出现在这里?联系我们
创客云

我想根据购物车中的商品数量获得有条件累进折扣,将 2 个产品添加到购物车后,您将获得折扣,您添加的更多产品和更多折扣。

例如:

也想出现在这里?联系我们
创客主机

> 1 个产品 – 全价(无折扣)
> 2 种产品 – 全价,合并价格 10%折扣
> 3 种产品 – 全价,总价格折扣 15%
> 4 种产品 – 全价,合并价格 20%折扣
>依此类推……

我在互联网上搜索没有任何成功.在搜索折扣时,我只是依靠 WooCommerce 优惠券功能,或者我得到了一些旧的错误代码……

  1. /* The calculation:
  2.  *  — The count => Based on quantity by item and total of items in cart
  3.  *  — The percent is 0.05 (5%) and  it grows with each additional item (as you asked)
  4.  *  — I add the subtotal of each item line to get the total sum…
  5.  */
  6.  
  7. function cart_progressive_discount() {
  8.  
  9.     if ( is_admin() && ! defined( 'DOING_AJAX' ) )
  10.         return;
  11.  
  12.     $cart_count = 0;
  13.     $cart_lines_total = 0;
  14.  
  15.     foreach(WC()->cart->get_cart() as $item_key => $cart_item){
  16.         // Adds the quantity of each item to the count
  17.         $cart_count = $cart_count + $cart_item["quantity"];
  18.         // Adds The items subtotal to total
  19.         $cart_lines_total += $cart_item["line_total"];
  20.     }
  21.  
  22.     // percent is 5%
  23.     $percent = -0.05;
  24.     // We fix the discount max to 50% (-0.05 * 10)
  25.     $cart_count_max = 10;
  26.  
  27.     // Discount calculations:
  28.     $discount = $percent * $cart_count * $cart_lines_total;
  29.     $discount2 = $percent * $cart_count_max * $cart_lines_total;
  30.     $discount_text = __( 'Quantity discount', 'woocommerce' );
  31.  
  32.     // For 0 or 1 item
  33.     if( $cart_count < 2 ) {
  34.         return;
  35.     }
  36.     // Between 2 and 9 items, progressive incremental discount based on item quantity (From 10% to 45%)
  37.     elseif( $cart_count > 1 && $cart_count < 10) {
  38.         WC()->cart->add_fee( $discount_text, $discount, false );
  39.     }
  40.     // Up to 9 items (Fixed discount at 50%)
  41.     else {
  42.         WC()->cart->add_fee( $discount_text, $discount2, false );
  43.     }
  44. }
  45. add_action( 'woocommerce_cart_calculate_fees','cart_progressive_discount' );

当然这可以在您的活动子主题(或主题)的 function.php 文件中,也可以在任何插件文件中,此代码经过测试并可以使用。

本文由 云模板 作者:PetitQ 发表,转载请注明来源!

也想出现在这里?联系我们
创客主机

热评文章

发表评论

热销模板

Nastik - 创意企业作品展示网站WordPress汉化模板

Envato

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!

12

12.12 惠不可挡

每逢双12,难免心潮澎湃,亲们,准备好了吗?

①、原版主题安装冬日暖心价60元/次(原价120元/次) ---》详询客服

①、云主机买一年送一年,买两年送两年,高速、稳定、免备案 ---》云主机

③、双十二限时促销,在模板市场购买任意模板赠送VIP年度会员火热进行中 ---》云模板

咨 询 客 服