Support

Home Forums Event Espresso Premium Early bird and wait list add-on – every ticket is shown

Early bird and wait list add-on – every ticket is shown

Posted: August 20, 2020 at 3:57 am


DUENENHOF

August 20, 2020 at 3:57 am

Hello.

I try to make the workaround for creating an event as easy and automatic as possible.
We use EE for creating events with a base price, which differs in every event. Because of that, we set the base price as a price modification surcharge and put the value via an advanced custom field in the price field. The tickets are our bedroom categories, which can choose from our attendees and has a limited quantity. If I choose a bedroom category, I see the bedroom price as ticket base price, the event price as a surcharge and at least the final price. This works very well so far.

But we also have an early bird discount for the event price. If I create early bird tickets as described in other topics, I would have to manually correct the quantity limit of the regular tickets after the early bird tickets expire. Is it possible to synchronize the quantity value of two tickets?
There are also more problems with this version: If the event is sold out before the early bird date has been reached, I can see every ticket twice. Like:
single room – sold out (this is the early bird ticket)
single room – sold out (this is the regular ticket)
With CSS I could set the sold out tickets to display:none and show a text like ‘You can join the wait list’ (that’s okay for me), but in the wait list add-on, I can also choose between every ticket. That’s not so good.

So, I tried another version with no early bird tickets (to avoid the manual correction of the quantity), but with a function that calculate the price depending on the early bird date. I created new ACF with the early bird date and discount and changed my function, which puts the event price in the price modification surcharge. Somewhat simplified: if early bird date >= today put ‘event price – early bird discount’ in the price modification surcharge. This works well, when I create a new event with every value and publish it. But is the early bird date over, it doesn’t update the event price. My problem with this version is, that the function hooks in the backend and not in the frontend. I can just update the event page and the price is then correct, but this is not what I am looking for. It’s not automatic.

Is it possible to update the price automatically or to unset the early bird value in the calculation process? Or are there any hooks for the frontend ticket selector details row to disable a row and its value?
I hope you have any idea for this, or maybe the solution. 😉

Kind regards
Stephan


Tony

  • Support Staff

August 20, 2020 at 1:00 pm

Hi Stephan,

To do this with Event Espresso correctly you would use an additional ticket for the early bird price.

But we also have an early bird discount for the event price. If I create early bird tickets as described in other topics, I would have to manually correct the quantity limit of the regular tickets after the early bird tickets expire. Is it possible to synchronize the quantity value of two tickets?

Do you not set a limit on the datetime(s) themsevles?

The ticket grant access to datetimes and the datetime limit rules them all, so if you have a datetime with a limit of 10 and then 20 different ticket types each with a quantity of 10, you can still only sell a max of 10 from any combination of tickets.

Meaning if you have a datetime limit of 10 and 2 ticket types, lets say early bird and normal both with a qty of 10, if you sell 8 early bird tickets there will only be 2 normal tickets available becuase again the datetime limit rules over ticket limits.

With CSS I could set the sold out tickets to display:none and show a text like ‘You can join the wait list’ (that’s okay for me), but in the wait list add-on, I can also choose between every ticket. That’s not so good.

The ticket list is in the waitlist add-on is filterable so you can specific which tickets show in that list.

See the FHEE__EventEspresso_WaitList_domain_services_forms__WaitListFormHandler__generate__tickets hook in the wait list add-on.

That allows you to display whichever ticket syou prefer on that waitlist form.

Does that help?


DUENENHOF

August 21, 2020 at 3:58 am

Hi Tony,

thank you for your answer.

Do you not set a limit on the datetime(s) themsevles?

I do indeed set a limit on the datetime, but also different limits to the bedroom category tickets, because we don’t have 20 single rooms and 20 double rooms available at the same time.
So if an event has a limit of 20 attendees, I couldn’t set the limit of every ticket to 20, when we only have 10 single rooms and 15 double rooms available for example.

Meaning if you have a datetime limit of 10 and 2 ticket types, lets say early bird and normal both with a qty of 10, if you sell 8 early bird tickets there will only be 2 normal tickets available becuase again the datetime limit rules over ticket limits.

This is it. I don’t know why this didn’t occur to me sooner. I can now create one datetime for each bedroom category and link the two tickets to it. It solves the early bird quantity problem, even if it makes the workaround a bit more „laborious“. But I’m fine with this. Thank you Tony.

The ticket list is in the waitlist add-on is filterable so you can specific which tickets show in that list.

This is good to know. Can you tell me, how I can choose the specific tickets I want to display in that list? Do I need the id of the ticket or the status (I mean, the early bird ticket and the regular ticket are both active.)? Is it possible to create a function that works for every event, no matter how different the tickets between the events are?

Looking forward to your reply.
Kind regards
Stephan

Thanks again for your help, Tony.


Tony

  • Support Staff

August 21, 2020 at 5:12 am

This is it. I don’t know why this didn’t occur to me sooner. I can now create one datetime for each bedroom category and link the two tickets to it.

Correct, that’s how you would set it up to allow a specific number of sales from a combination of tickets.

Can you tell me, how I can choose the specific tickets I want to display in that list? Do I need the id of the ticket or the status (I mean, the early bird ticket and the regular ticket are both active.)?

You have full control over the tickets, so you pretty do it however you need to.

Can you use the ID’s? Yes.
Can you use the ticket status? Yes.
Can you use the ticket name? Yes.

The easiest option is to add ‘early bird’ (or some other string) to the early bird tickets and then pull tickets that do not have that string in the name. Another method would be to add an extra meta value to the ticket object, for example a checkbox that indicates the ticket is either full price or early bird/promotion and then pull tickets based on that meta value.

There’s a lot you can do fairly easily with our model system:

https://github.com/eventespresso/event-espresso-core/tree/master/docs/G–Model-System

So simply pull the specific tickets you want and replace the array of tickets for the waitlist form.


DUENENHOF

August 24, 2020 at 1:03 am

Hello Tony,

thank you for your answer.

The easiest option is to add ‘early bird’ (or some other string) to the early bird tickets

That sounds good and I think I’ll try that first. The other method with the checkbox would be better for our case in the longer term.
Now I have to figured out, what is the best way for us and how to do that. If some questions come up, I would open a new topic, I think.

Thank you very much for your ideas and answers.
That really helps me.

Kind regards
Stephan


Tony

  • Support Staff

August 24, 2020 at 6:46 am

You have an everything license which means you have access to all of our add-ons, some of which use those functions.

For example, the WP User add-on adds a ‘minimum ticket capability’ using the ticket extra meta:

https://github.com/eventespresso/eea-wpuser-integration/blob/master/EED_WP_Users_Admin.module.php#L994

That shows you how to ADD a section for setting it, then updating extra meta:

https://github.com/eventespresso/eea-wpuser-integration/blob/master/EED_WP_Users_Admin.module.php#L1131

Then getting extra meta values:

https://github.com/eventespresso/eea-wpuser-integration/blob/master/EED_WP_Users_Ticket_Selector.module.php#L188

All done using our model system which makes it mush easier than rolling your own.

Pulling specific tickets based on name can also be done using the model system, relatively easily. I highly recommend going through those docs if you are doing any work with EE, it will help a lot.


DUENENHOF

September 16, 2020 at 3:40 am

Hi Tony,

thanks for your recommendation. After a longer break I went through the docs and your model system. It’s hard for me to understand, because I’m not a developer. But it helped me to find new questions or code strings to research.
During my research I found the EE4-AdminOnlyTicket Plugin by Chase C. Miller. It fits most of my needs by default, so I only have to change some variables and add a query, if the early bird ticket is sold out.

Here is the code, I’m using for this:

//Not in the admin, check if the ticket discount is set to early bird.
$early_bird_ticket = $ticket->get_extra_meta('discount', true);

//Get the number of remaining tickets.
$remaining = is_bool($remaining) ? $remaining : $ticket->is_remaining();

//Check if it is an early_bird_ticket AND if it is sold out.
if ($early_bird_ticket && !$remaining) {
//An early_bird_ticket AND it is sold out, return NULL to display nothing.
return NULL;
}

Maybe it’s not an elegant or efficient solution, but it seems to be working so far. If a datetime is sold out, only the regular ticket is shown – in the ticket selector and in the wait list add-on.

Thanks for your advices, Tony.


Tony

  • Support Staff

September 16, 2020 at 3:54 am

You’re most welcome, I’m glad you found a solution.

The support post ‘Early bird and wait list add-on – every ticket is shown’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso