Posted: November 16, 2017 at 10:40 pm
Before I start off: I don’t work for Event Espresso 4 and I am not getting paid or any referral compensation to write this. I’m simply a developer who works for a client who needed a solution to a custom written script that had a calendar and people purchasing classes, which was no longer working. That’s where Event Espresso and I met, around late 2014, early 2015. I also was just learning PHP.. and within 2 years, I am now working a bunch of jobs, but one of those jobs is as a freelance web developer.
I am always searching for new features or custom things I can do with Event Espresso, more particularly, to meet client requests. There is also a strong community behind Event Espresso, so I write this as a brainstorming session and a way to reach others who need help or might NOT be considering Event Espresso 4 for whatever reason. I’m here to tell you, come on in, the jacuzzi smells nice and is clean.
So Event Espresso 4 is pretty good about maintenance, upkeep, support, and implementing new features, but some major features do take time or the developers at Event Espresso decide whether it is really necessary or not. With each feature, they must invest a certain amount of time into the system and that may also introduce new bugs, so they carefully calculate the demand. They also have to carefully calculate how each user can and will use it. As a company with a major product, and if you are a dev reading this: the only custom work you can do is if you are doing it as a freelancer. Trying to write a custom feature for 10,000+ Event Espresso clients is impossible and reckless. Choose your functions and features wisely! EE4 could be the be-all end-all and has certainly turned people into full blown business owners overnight.
When EE4 lacks a certain feature, it makes some people hesitant about moving forward with the purchase of the product, but there are always ways around those lacking features, including hiring developers (such as myself) who are fairly competent at “hacking EE4 code” and making it work the way you might need it to work by giving it some extended features.
WARNING: If you are not experienced with WordPress or PHP, I highly advise that you DO NOT mess with any Event Espresso code. If you do, please make a backup of your entire website first and foremost, and then install a custom functions plugin and do your best to NEVER mess with Event Espresso core as each update will be overwritten. If you must (in my case, my client has some specialized notes displayed in the backend), remember to make a backup of that file and put it back. Again, not recommended, but sometimes you do have to hack it to make it work for your clients. Luckily, the Event Espresso staff won’t judge you too much, but you technically avoid your warranty with them, as they cannot provide support for this type of custom code (unless they are the ones who supplied it originally).
Some major features that EE4 may or may not have but are in request:
There were a few other features that were lacking, but it seems that Event Espresso is actually a very active company in making things happen, such as the ability to move people from one class to another with the click of a few buttons. Thanks for this!
Before we get into the lacking features above, I will vouch for EE4 that you will certainly search and find other systems, but EE4 does a lot. It is a powerful system and while I don’t use it personally, my clients do and are up and running full-time businesses.
The support at EE is really great. You know you are in good hands if you see Tony, Josh, or Lorenzo among others. They do care about your problems and work to find solutions for you. When you have no problems is when they have no problems. Don’t give up on them and they won’t seem to give up on you. I don’t think I’ve ever gone w/o a reply for over 24 hours and looking back at all “my issues”, nearly every single one of them has been resolved.
With that said, I must say: Don’t let a few lack of features prevent you from purchasing the services of Event Espresso or hiring a developer that specializes in Event Espresso 4 code to get you to where you want and need to be.
This conversation will not get into any actual code, but is the brainstorming and theory process for how things could work. Much of these solutions came from hours of searching and finding “bits and pieces” of usable code, often from Lorenzo or Josh.
Now on to the three (probably most requested) features:
Feature: Wait list. Once a class fills up, there was no way to capture these potential customers who really wanted to take the class, but couldn’t. You couldn’t even know if they were interested. To any business owner: you are losing money and you know it.
Solution by Lorenzo: Show a form where users could still show interest by emailing you: https://gist.github.com/joshfeck/fa7725952e9087c1a781
My solution: Emails get lost and forgotten, so I built a custom wait list similarly using the form in the link above to capture Name, Email, DateTime, DateTime of Event, EventID, and Event. This would get added to the database that my client could go to and see who was interested. My client could then either remove them or email them for a future class opening when it was viewed it on a separate page.
As of November 2017, the wait list has been said to be officially in Event Espresso testing by Josh ( https://eventespresso.com/topic/event-espresso-data-and-database-usage/ ). So it will likely be that you no longer have to create this wait list.
Feature: Credit system. This is one that is likely NOT going to be implemented into Event Espresso any time soon, as it is hard to know what people want. A credit could be worth 1 class or whatever you want and it is just beyond what the EE devs to really handle at this time.
Solution by Event Espresso staff: Hire a developer. This is likely a feature that WILL NOT be implemented into Event Espresso 4.
My solution: The only way to know whether a customer has truly paid or not is if they actually land on the “Thank You” page. Event Espresso itself has a WordPress hook (something like AHEE__thank_you_page_overview_template__content ) for this page which you can run your code with upon landing on it to ensure accuracy of a credit.
Upon this Thank You page, you will have to do some searching on how to grab the form data your customer filled out, specifically needing the EventID, the Event, the DateTime, the name, and the email of the person. You will then add this to your database and add a credit to their “account”. Using the hook will likely prevent a person from being able to refresh the page and add as many credits as they want. I didn’t seem to run into any issues. This is why you can’t just put a function on the page itself and you do, in fact, need the hook.
With that data, you can display it on a separate page and give your client access to add or remove credits. Future work I’m planning: send an email to my client and customer when customer hits X amount of credits to inform them they have a free class.
Finally, we have the gift card system. People seem most upset over not having this feature in Event Espresso. I have yet to implement this one, but upon some reflecting, I think Event Espresso itself can be used. My client is currently using an outside source in which a person buys a “gift card” and receives a physical card. My client then manually adds that person into the class and deducts the money from that card.
Looking for an alternative, as the gift card system is outdated and no longer maintained, I was thinking about building one myself or adding custom data into the database, but then I asked myself: Is that really necessary? Can I make this simple? Is Event Espresso actually capable of a gift card system the way it is?
Event Espresso solution: While they have not mentioned they were not interested in doing it, there is no word about it actually being worked on.
2) Set it from today’s date or whenever you want to get started until 2030 or even 2050 so it never expires.
3) Ensure that Qty is set to 0 so it never runs out.
4) Create a new category called “giftcard” and select it.
5) Publish the event.
You will want to make sure this category does not show up on your Event Espresso calendar.
Post the link somewhere on your website where people can now purchase it as a gift card.
Now when a customer purchases this, they will receive a “Wild Card Gift Card” which gives them access to any class they want to take. They can purchase as many as they want and hand them to you at any event. In a way, you still got paid. Your client is happy because they have a “gift card” and you didn’t have to spend any additional money on a developer for a gift card system, but you were able to use what you already paid for: Event Espresso!
Of course, if you have different pricing for different classes, this is not going to work for you, but you could always just set the gift card as a max dollar amount or take the hit of a few dollars or whatever.
Just make sure that you still register them manually into the actual class and that you take that paper from them so they don’t try to reuse it! I developed a system that allows my client to write custom notes on her event, so get a plugin like Advanced Custom Fields which will help you keep track of things like that.
But this simple gift card solution could work for anyone who is hesitant on purchasing Event Espresso 4.
If you have any other thoughts, ideas, brainstorms, or even features that I haven’t thought of, please feel free to post in the comments, or if you feel my brainstorming ideas might not work or even have a better solution, I’d love to hear about it!
Further addition: I realize you can always just use Event Espresso’s Check-in feature to ensure you are not getting someone who re-printed out their paper or printed dupes and are trying to get free classes.
To avoid potential confusion: create a new gift card event each month, so your “class” doesn’t get insanely long and you can keep track of it more easily.
Thanks for the feedback and sharing this information. One point regarding this comment:
We definitely do not recommend hacking the core plugin, and you can avoid having to hack the plugin to make it work for you clients by adding a filter hook or an action hook, then submit that change as a pull request. Generally the dev team can respond quickly and get request like these merged into core. This way you can keep your client’s added features/modifications within their own plugin.
The support post ‘Event Espresso 4 Features and Brainstorming’ 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.