CiviCRM Community Forums (archive)

*

News:

Have a question about CiviCRM?
Get it answered quickly at the new
CiviCRM Stack Exchange Q+A site

This forum was archived on 25 November 2017. Learn more.
How to get involved.
What to do if you think you've found a bug.



  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using CiviEvent (Moderator: Yashodha Chaku) »
  • Registering participants at no cost for a paid event?
Pages: [1] 2 3

Author Topic: Registering participants at no cost for a paid event?  (Read 9465 times)

CommonGood

  • Guest
Registering participants at no cost for a paid event?
October 05, 2009, 10:37:43 am
is there a way, as the admin, to register people for a paid event who I don't want to make pay or I want to pay a different price than the set price for the public?  We offer a lot of workshops, which are for a fee, but also offer scholarships to people. I'd like to be able to register the scholarship people so I can track their info and the total participant numbers.

thanks.

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: Registering participants at no cost for a paid event?
October 05, 2009, 10:40:47 am

Check: http://civicrm.org/node/566

you can give discounts to folks (could also be a 100% discount). this requires implementing the hooks as described, so PHP experience is required. This does not work with price sets

lobo
A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

SarahG (FountainTribe)

  • Ask me questions
  • ****
  • Posts: 782
  • Karma: 29
  • CiviCRM version: 4.4.7
  • CMS version: Drupal 6, Drupal 7
  • MySQL version: 5.5
  • PHP version: 5.3
Re: Registering participants at no cost for a paid event?
October 21, 2009, 07:59:17 am
I have a similar requirement, but noticed that the approach in the blog is reported to be incompatible with version 3.0.1. 

Any ideas on why that is the case?
Did I help you? Please donate to the Civi-Make-It-Happen campaign  CiviCRM for mobile devices! 

kmarkley

  • I post frequently
  • ***
  • Posts: 178
  • Karma: 14
  • CiviCRM version: 4.4.3
  • CMS version: Drupal 7.24
  • MySQL version: 5.1.56
  • PHP version: 5.3.27
Re: Registering participants at no cost for a paid event?
January 17, 2010, 06:33:49 pm
I needed to be able to do this as well.  I only just discovered that this isn't possible in the core system and it is complete show-stopper for me.  So I spent the day poking through the template files and managed to puzzle out a solution.

Having done so, and knowing that there were at least 2 other people who could use this feature, I thought it might be nice to share.  I read the guidelines (http://wiki.civicrm.org/confluence/display/CRMUPCOMING/Code+Contribution+Guidelines) and saw that I should discuss the functionality with the community.

I'm really shy about posting here because I am not a developer by any stretch and the problem (and solution) is actually kind of small.  Still, I like the idea of contributing well enough that I felt I should take it a step further.  At least until it is determined that my solution is a kludge that should best be dropped.

So here's the basic idea:

I noticed that the html for price sets for event registration is created separately for the front-end and back-end.  The front-end uses Price/Form/PriceSet.tpl, while the back-end uses Event/Form/EventFees.tpl.  So my idea was to just suppress certain price set fields in the front-end form (those used for free tickets). 

I created a new field in the civicrm_price_field table (currently is_public_hidden), added a checkbox on Price/Form/Field.tpl, to set the flag, and altered Price/Form/PriceSet.tpl to not output the price field if the flag is set.

I also altered Price/Form/Field.php, Price/DAO/Field.php, and Price/BAO/Set.php to make the variables available where I needed them.  (And to be perfectly honest I don't really understand what these do.  I just cribbed/extended the code referring to the other database fields in civicrm_price_fields.)

 
Now if I have a price set used for events with

Option 1 - $10
Option 2 - $20

I can just add a third field to the set

Free Registration - $0

and mark it as hidden on the online registration form.  When I register someone for the event via civicrm/participant/add, the complete price set is displayed and I add the person to the event with a $0 fee.

So, um, what do you think?

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Registering participants at no cost for a paid event?
January 18, 2010, 11:53:56 am
Quote from: sgladstone on October 21, 2009, 07:59:17 am
I have a similar requirement, but noticed that the approach in the blog is reported to be incompatible with version 3.0.1. 

Any ideas on why that is the case?

Sarah - Took a quick look at the hooks used in that example - and they're certainly all available for 3.0 and 3.1. Not sure why the one poster reported a problem - but might have been a coding issue or ?? If you set this up and hit a compatibility problem - do report back on the forum or IRC. We should be able to help you make it work.
Protect your investment in CiviCRM by  becoming a Member!

SarahG (FountainTribe)

  • Ask me questions
  • ****
  • Posts: 782
  • Karma: 29
  • CiviCRM version: 4.4.7
  • CMS version: Drupal 6, Drupal 7
  • MySQL version: 5.5
  • PHP version: 5.3
Re: Registering participants at no cost for a paid event?
January 18, 2010, 03:07:03 pm
kmarkley-  I  think the approach in the blog is a better general purpose solution than what you did.  For example: I may wish to give certain people a discount ( such as 50% or 75% off or 100% off)  and I want to apply the discount for many or all events.  It would be simpler to administer if I set up the "coupon/discount" rule once and apply it to all events, rather than for each event.     It would also allow future flexibility such as automatically applying a discount for contacts in a certain group.    Or giving a volumn discount ( ie I am registering 10 people for an event, therefore I get a better price than if I only register 1. ) .

I am planning to try the approach in the blog entry about discounts with CiviCRM 3.0.3 and will report my results.

Did I help you? Please donate to the Civi-Make-It-Happen campaign  CiviCRM for mobile devices! 

kmarkley

  • I post frequently
  • ***
  • Posts: 178
  • Karma: 14
  • CiviCRM version: 4.4.3
  • CMS version: Drupal 7.24
  • MySQL version: 5.1.56
  • PHP version: 5.3.27
Re: Registering participants at no cost for a paid event?
January 18, 2010, 03:47:03 pm
Quote from: sgladstone on January 18, 2010, 03:07:03 pm
I  think the approach in the blog is a better general purpose solution than what you did.
I am neither surprised nor bothered by this.  I needed an immediate solution and this one was within my ability.  I look forward to a more robust solution in some future release.

Donald Lobo

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 15963
  • Karma: 470
    • CiviCRM site
  • CiviCRM version: 4.2+
  • CMS version: Drupal 7, Joomla 2.5+
  • MySQL version: 5.5.x
  • PHP version: 5.4.x
Re: Registering participants at no cost for a paid event?
January 18, 2010, 06:23:02 pm

kmarkley:

thanx a lot for documenting how you solved the issue and letting folks know. Much appreciated and a good contribution. It does strengthen the community when folks describe how they solved a specific issue

lobo
A new CiviCRM Q&A resource needs YOUR help to get started. Visit our StackExchange proposed site, sign up and vote on 5 questions

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Registering participants at no cost for a paid event?
January 19, 2010, 09:13:46 am
Ken - I think there is a general need to provide a way for back-office event registrations to over-ride the 'public' fee structure (both for price-set and standard event fee scenarios). Please go ahead and create an issue for this and post your patch so we can review and think about how / when to move this forward.

I'm wondering whether a 'simpler' approach of providing an 'Apply this Discount' field on the back-office event registration form would work for most scenarios including yours? This amount would be subtracted from the price set total or selected fee level (for non-price-set events) and would show up as a line item and / or a note in some way so that it's clear why the fee was different than 'expected'.
Protect your investment in CiviCRM by  becoming a Member!

kmarkley

  • I post frequently
  • ***
  • Posts: 178
  • Karma: 14
  • CiviCRM version: 4.4.3
  • CMS version: Drupal 7.24
  • MySQL version: 5.1.56
  • PHP version: 5.3.27
Re: Registering participants at no cost for a paid event?
January 22, 2010, 10:28:51 pm
Quote from: Dave Greenberg on January 19, 2010, 09:13:46 am
I think there is a general need to provide a way for back-office event registrations to over-ride the 'public' fee structure (both for price-set and standard event fee scenarios).

I agree completely.

Quote
Please go ahead and create an issue for this and post your patch so we can review and think about how / when to move this forward.

I would be happy to post patches, but I need some more time.  This is because 4 out of the 5 changes I made were against files that had already been altered  for a paid customization I had done.  So I guess I need to recreate my changes against 'clean' files before I can run diff.  (Also, I need to learn how to make patches properly...)

Quote
I'm wondering whether a 'simpler' approach of providing an 'Apply this Discount' field on the back-office event registration form would work for most scenarios including yours?

The discount approach would work ok for me, but I don't see it as being any simpler.  In fact, it seems considerably more complicated.  I could live with it, but what I would like best is a quick and obvious way to register people without payment.

Quote
This amount would be subtracted from the price set total or selected fee level (for non-price-set events) and would show up as a line item and / or a note in some way so that it's clear why the fee was different than 'expected'.

For me, the way to indicate why the fee is different is all tied up with participant roles.  For a fundraiser, most people (attendees) buy tickets and tables, but the guests of honor (VIPs) pay nothing.  Neither do the guys in the band (volunteers).  For our performances, the public (attendees) buys tickets, but reviewers (press) and family of the cast (comps) get in free.  But I need to get them on the list because in the first case I need to make sure there is enough food and in the second case there are only so many seats in the theater.

I understand the value of applying an arbitrary discount, and would probably use it occasionally.  But 99% of the time I just need a free ticket for someone who's role is something other than 'attendee'. 

For the record, I can apply arbitrary discounts in the setup I have now. I just make more 'invisible' price set fields - including one at $1.  Typing an amount in this field results in a participant record with a fee of anything I want.  (Ok, whole dollars only, but close enough.)

-Kirk

sonicthoughts

  • Ask me questions
  • ****
  • Posts: 498
  • Karma: 10
Re: Registering participants at no cost for a paid event?
January 31, 2010, 08:58:54 pm
kmarkley:
Hi there - forgive me if I'm missing something, but can't you just register a participant, select the Event Fee, but  when you record a payment, you put a lower amount?  Won't that satisfy your use case?  Obviously, when you tally the fees for an event, you must calculate actual contributions, and not Fees. 

S.

kmarkley

  • I post frequently
  • ***
  • Posts: 178
  • Karma: 14
  • CiviCRM version: 4.4.3
  • CMS version: Drupal 7.24
  • MySQL version: 5.1.56
  • PHP version: 5.3.27
Re: Registering participants at no cost for a paid event?
January 31, 2010, 10:08:14 pm
Yes, but the reporting and receipting issues are a deal-killer for me.

This does raise the possibility of a another solution, however.  What if when recording a payment for an event, the amount entered optionally over-wrote the fee amount in the participant record?  It would fix the reporting and receipting problems and only work from the back-end.  Of course, it wouldn't help with the case of someone paying for a 50%-off ticket that's not available to the public....

(I hadn't really looked at this option closely enough before now, and makes me curious about a couple other things.  Why doesn't the payment amount default to the total of the price set?  Is there a way to find participants that are not fully paid?)

I still like the idea of something connected to roles.  Just seems more logical to me.  What if roles had "use default price set" and "use this other price set" options?  Or maybe in the Register New Participant form there was a way to override the default price set for the event?  Either way, you would probably need to attach price sets to the participant table which would complicate all kinds of stuff.

This is the one thing I actually like about my current solution, kludgy as it may seem.  One price set for the event, but parts of it are invisible to the public.  You can do pretty much anything with the invisible parts - full price, half price, free, set any price, etc. etc.  All event fee reports are correct.  All participant reports are correct.  Live CC transactions can still be run.  Receipts sent to people who were registered with 'special' prices see those prices in the receipt.  It's actually kind of simple and elegant when you stop and think about it.

sonicthoughts

  • Ask me questions
  • ****
  • Posts: 498
  • Karma: 10
Re: Registering participants at no cost for a paid event?
February 01, 2010, 05:03:07 am
FYI - similar topic - http://forum.civicrm.org/index.php/topic,11955.msg51288.html#msg51288

Dave Greenberg

  • Administrator
  • I’m (like) Lobo ;)
  • *****
  • Posts: 5760
  • Karma: 226
    • My CiviCRM Blog
Re: Registering participants at no cost for a paid event?
February 01, 2010, 10:51:53 am
Ken - Chatted a bit more about this with Lobo and we like the idea of being able to mark price set items AND /  OR regular event fee levels as 'admin only'. Lobo has responded here - http://forum.civicrm.org/index.php/topic,11926.msg51205.html#msg51205 (since we'd also like to extend discounting to price sets).

If you get a patch together, do post it with an issue which could help get things going :-)
Protect your investment in CiviCRM by  becoming a Member!

sonicthoughts

  • Ask me questions
  • ****
  • Posts: 498
  • Karma: 10
Re: Registering participants at no cost for a paid event?
February 01, 2010, 11:02:57 am
Glad to see this is getting more attention.

Ken, if the reports and searches were based on actual contributions, rather than price levels or fees, you could record any "retail" item (ie fee) for an event (with or without price sets) and simply record the actual amount received (could be 0 for free.)  Would that work for you also?  Is reporting the biggest issue?  If this is an admin-only capability   wouldn't it be a simpler solution? It could also account for exceptions to the early bird discounting and it would also provide a mechanism to help with partial payments to be captured (although its not really 100%).

I can definitely see a use case for roles but 1) you couldn't give an arbitrary discount and 2) you would be forced to create roles for any exception.

Pages: [1] 2 3
  • CiviCRM Community Forums (archive) »
  • Old sections (read-only, deprecated) »
  • Support »
  • Using CiviCRM »
  • Using CiviEvent (Moderator: Yashodha Chaku) »
  • Registering participants at no cost for a paid event?

This forum was archived on 2017-11-26.