We are looking to do a discount for one free night when you book a 4 nights stay. (We're currently just doing a % discount off fo 25% when you book) but that doesn't work if they book a 5-night stay because it will give them a 25% discount on the whole stay.
We would love to be able to do a single night free when a guest book with a discount code!
That sounds very much like this suggestion, which you can vote up:
https://www.ownerrez.com/forums/requests/allow-discount-code-to-be-flat-rate
Technically I think you could do this with discounts and rules.
i.e. create a set amount discount equal to your nightly rate. then set the rules to only apply to bookings of equal or greater than 4 nights. If you have seasonal pricing, then you would duplicate the discount but adjust the discount amount and only apply it to that season in the rules.
if you have different rates at weekends to weekdays, then a 4 day booking that straddles a weekend, I assume it is the weeknight rate you would discount, so no real issue there.
The only issue I can see you having, is if you use variable intelligent pricing model were your rates constant fluctuate to market demands.
In fact if your nightly rates changes all the time, you could do it with percentage discount and rules.
again you would set up multiple discounts with rules.
i.e. if booking is equal to 4 nights, discount by 25%
if booking is equal to 5 nights, discount by 20%
if booking is equal to 6 nights, discount by 16.7%
if booking is equal to 7 nights, discount by 14.3%... so on and so forth
In practice, if doing via discount code, you would give each discount the same discount code and the system would present the right discount amount to deduct by the way of rules