How to add discount to cart total?

woocommerce, wordpress

Solution

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.</strong></div>';
    }
}

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;
}

Problem

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?

Original source

Related problems