I'm trying to give people an option to add donations to special projects when they register for a particular event. We could just point folks to the contributions pages, but it would be more effective/convenient to just roll the donations into the event registration form.

Any advice on a strategy to accomplish this?

What I've tried so far:

  • A developer friend suggested adding custom profile fields to the Register.tpl template and then saving the donation amounts to the custom fields using an ajax call. I've got that working.
  • I'm not sure how to add my custom donation field values to the event amounts, which would be needed in order to actually charge people for their donations during the event confirmation and payment pages. (I've tried using the postProcess and buildForm hooks, but don't see how/where to change the "amounts" values.)

(CiviCRM 4.1.6; Drupal 6)

  • By the way, I'm super desparate to figure this out (our organization gets almost all our engagement around a single event) . So, any tips or ideas would be really helpful! Commented Aug 15, 2015 at 12:21

2 Answers 2


Simply set up an additional line item for a donation in a Price Set.

This is how I do it... the Price Set definition: Price Set definition

And then how the 'Optional Donation' is defined: enter image description here

And a preview of this in action:

enter image description here

Feel free to give it a whirl on my website - and make a donation if you like it! :-) http://www.breinton.com/book/hipp-abbate

  • You're awesome! Thank you! I'm in the US, so won't be able to attend a recital, but I enjoyed making a donation using your form. Commented Aug 15, 2015 at 15:25
  • How do you sort out what is tax-deductible Donations from Event Fees? This looks like everything would be reported the same, either all of it is tax-deductible or none of it is tax-deductible.
    – Iowa Boy
    Commented May 13, 2021 at 20:35

There is a similar but slightly different approach that allows the user to enter any amount for a donation. It is mentioned in the documentation for a membership price set, but equally would work for events:

Add a Price field to your price set with these options:

  • Field Label: Choose a suitable name and include the currency symbol e.g. 'Donation £'
  • Input field Type: 'Text / Numeric Quantity'
  • Price: 1
  • Financial Type: 'Donation'
  • Display Amount?: Uncheck this option

enter image description here

One caveat of this approach is that a user could enter a negative number in this field to dishonestly receive a discount!

Although there is an extension that was created to prevent exactly this situation: https://civicrm.org/extensions/negative-negator

I actually really like approach of Lionel Smith-Gordon's answer, and I might decide to use it myself for simplicity, however I wanted to add this alternative here so people were aware of this approach.

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.