WooCommerce Cart Quantity Base Discount

后端 未结 1 468
一生所求
一生所求 2020-12-10 07:26

In WooCommerce, how do I set a cart discount based on the total number of items in the cart?

For example:

  • 1 to 4 items - no discount
  • 5 to 10 i
相关标签:
1条回答
  • 2020-12-10 07:53

    You can use a negative cart fee to get a discount. Then you will add your conditions & calculations to a acustom function hooked in woocommerce_cart_calculate_fees action hook, this way:

    ## Tested and works on WooCommerce 2.6.x and 3.0+
    add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );
    function wc_cart_quantity_discount( $cart_object ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        ## -------------- DEFINIG VARIABLES ------------- ##
        $discount = 0;
        $cart_item_count = $cart_object->get_cart_contents_count();
        $cart_total_excl_tax = $cart_object->subtotal_ex_tax;
    
        ## ----------- CONDITIONAL PERCENTAGE ----------- ##
        if( $cart_item_count <= 4 )
            $percent = 0;
        elseif( $cart_item_count >= 5 && $cart_item_count <= 10 )
            $percent = 5;
        elseif( $cart_item_count > 10 && $cart_item_count <= 15 )
            $percent = 10;
        elseif( $cart_item_count > 15 && $cart_item_count <= 20 )
            $percent = 15;
        elseif( $cart_item_count > 20 && $cart_item_count <= 25 )
            $percent = 20;
        elseif( $cart_item_count > 25 )
            $percent = 25;
    
    
        ## ------------------ CALCULATION ---------------- ##
        $discount -= ($cart_total_excl_tax / 100) * $percent;
    
        ## ----  APPLYING CALCULATED DISCOUNT TAXABLE ---- ##
        if( $percent > 0 )
            $cart_object->add_fee( __( "Quantity discount $percent%", "woocommerce" ), $discount, true);
    }
    

    Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

    Tested and works on WooCommerce 2.6.x and 3.0+

    0 讨论(0)
提交回复
热议问题