Is it possible to set up a price set such that selecting multiple options would lower the total price?

Our use case is a summer camp. You can register for a day ($50) or for a week ($190). We need to be able to set a maximum number of participants for each day. So, if we could make a form where you simply select all days in the week to register for an entire week and a $60 discount was applied in that case, this would satisfy our requirements.

Putting in the week as a separate option would make it impossible to have registration limits for each day. The camp has multiple weeks over the summer, so we can't use a registration limit for the whole event to do this.

This is currently set up as a webform, but that comes with other issues, so it would be preferable to find an option that works with price sets and CiviEvent.

2 Answers 2


Maybe you could create the price set with 5 individual day options each at $50 and a 'Full week discount' at -$60 and then add javascript to hide the discount option and set it when all 5 days are selected.

As a javascript approach that is open to someone messing with it and selecting the discount option when they should not so you might want to add a check on the server side as well - depends a bit on your audience.

  • Interesting idea, I think this could work and I'll give it a try.
    – Lars SG
    Commented Jul 12, 2019 at 14:46

Probably not the answer you are looking for, but you can use civi discounts extension and have set a discount code. (the code would work for anyone with the code.) Maybe you can set up with webforms a conditional logic that will pop-up a field that will only show the discount code once x amount of days are selected, I don't use Drupal so I don't know if that is an option.

  • In this case, there are eight different weeks, so there would have to be eight different discounts, which would be unwieldy.
    – Lars SG
    Commented Jul 12, 2019 at 14:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.