I have seen references to CiviDiscount on contribution pages for memberships. Can it be used for a fundraising dinner? Note - I often struggle between creating an event or contribution page for fundraising dinners - both have tradeoffs

  • What is the downside of an Event in this scenario?
    – petednz - fuzion
    Apr 1, 2016 at 2:45

2 Answers 2


Here is an extension that adds support for discounts on contributions:


Edit: It has been improved with time, and seems to be working well so far. In the long term, it might be more interesting to get it merged in the main CiviDiscount extension.

  • 1
    I've used this successfully out of the box, and another CiviCRM vendor submitted patches, so folks can consider this extension tested now. Oct 14, 2021 at 19:20
  • This looks to be exactly what I want, but I don't seem to be able to install it. I've put the code in the extensions directory but it doesn't show up in the extentions screen for me to install (document says install as a regular extension). I do already have CiviDiscount installed.
    – Mick Kahn
    Feb 28 at 13:35
  • Had to clear the CiviCRM cache to get it to install, but otherwise does exactly what I want.
    – Mick Kahn
    Mar 4 at 12:15

You can use Discount for event registrations too, assuming you mean the fundraising dinner is an event sign up?

  • No, the point is that it is a contribution page. not an event. Nov 2, 2015 at 18:49
  • 2
    Ok, so I'm not sure thats the desired behaviour of CiviDiscount, Contribution pages without Membership are in effect donation pages so giving a discount on a donation doesn't seem to make sense. You could simply point supporters to a different donation page which implied the discount or something along those lines with a module. Nov 3, 2015 at 8:48
  • 1
    I've had to work around this limitation at times, since I sometimes have a plain contribution page to buy a book or a t-shirt, with a member/code discount. In one case I duplicated/adapted the buildAmount function of cividiscount, and in one case I had to override the DiscountCalculator() because I didn't want to have to configure every single priceset-item.
    – bgm
    Aug 22, 2017 at 13:11
  • @bgm can you share how you modified buildAmount function for applying discounts to a plain contribution page? I see it checks for page type but it gets confusing from there.
    – schatz
    Aug 1, 2019 at 7:34
  • @schatz OK, posted below as an answer.
    – bgm
    Aug 2, 2019 at 13:41

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.