Set a discount in WooCommerce without a coupon
This is a code snippet from this answer which I have used and works well. How to add discount to cart total?
// Hook before calculate feesadd_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);}