For the dinner event I need to be able to track the use of the civi discount code so I set up the additional registrant field to effectively count the number of times the discount code is being used and by whom.

Now, the problem is that when I test-drive the registration page the Price set that I have for the event shows up for each of the additional registrants. So when my attendees register and choose to 2 additional registrants and then click to the next page to enter in the additional contact information they might think that they need to enter 1 in the price set for each of their contacts. This would then have my discount code counting all wrong because instead of calculation two people it has calculated four.

This might actually be a additional registrant problem because one participant is going to be paying for their entire group and I want to be able to hide the price set for the additional registrants.

  • CiviDiscount should allow you to track the number of times a code is used and also reports to the contact when they've used a code. But it may still be in your best interest to collect additional registrant information (you might have two separate questions here).
    – RayWright
    Commented Dec 27, 2017 at 13:44
  • I think the issue is that I can not hide the price set for the additional registrants when I test drive the online registration. Do you have any suggestions?
    – Lea
    Commented Dec 28, 2017 at 21:45

2 Answers 2


There was this proposed means to hide selected price set rows for additional participants:

CiviDiscount: How do I disable the automatic member discount for additional participants?


We have this exact same use case (i.e., we want the user to make all the price selections on the first page / first participant form, then only require the participant info for the additional participants). Solved it by adding the following to the very end of our version of the AdditionalParticipant.tpl template:

if (!document.getElementById("noOfparticipants") && document.getElementById("price_282")) {
document.getElementById("priceset").style.display = "none";

This looks for the noOfparticipants ID (which only exists on the first participant form, and if not present, and if the price field ID 282 is present, then it hides the entire priceset ID element. (Obviously, replace the field ID value as appropriate.)

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.