How to add discount to cart total?

2019-02-19 16:31发布

I need to add discount according to number of product in cart and this discount will apply on total of cart. Is there any other option without use of coupons?

2条回答
The star\"
2楼-- · 2019-02-19 16:52

I prefer this way, more cleaner I think

// Hook before calculate fees
add_action('woocommerce_cart_calculate_fees' , 'add_custom_fees');

/**
 * Add custom fee if more than three article
 * @param WC_Cart $cart
 */
function add_custom_fees( WC_Cart $cart ){
    if( $cart->cart_contents_count < 3 ){
        return;
    }

    // Calculate the amount to reduce
    $discount = $cart->subtotal * 0.1;
    $cart->add_fee( 'You have more than 3 items in your cart, a 10% discount has been added.', -$discount);
}
查看更多
混吃等死
3楼-- · 2019-02-19 17:13

This code should work:

add_action('woocommerce_before_cart_table', 'discount_when_produts_in_cart');
function discount_when_produts_in_cart( ) {
    global $woocommerce;
    if( $woocommerce->cart->cart_contents_count > 3 ) {
        $coupon_code = 'maryscode';
        if (!$woocommerce->cart->add_discount( sanitize_text_field( $coupon_code ))) {
            $woocommerce->show_messages();
        }
        echo '<div class="woocommerce_message"><strong>You have more than 3 items in your cart, a 10% discount has been added.';
    }
}

The above will apply the coupon "maryscode" to the cart if there are 4 or more products in the customers cart.

EDIT: Add the following to your css

.coupon 
{
    display: none !important;
}
查看更多
登录 后发表回答