WordPress Events Registration with PayPal IPN
Attention! The plugin has undergone a major reconstruction and name change. The new name of the plugin is Event Espresso.
This WordPress plugin provides a way to take online registrations for events such as conference and seminars that are held live. Events are managed quickly and easily from within the WordPress dashboard.
The plugin also uses the PayPal IPN to record payments to the built in WordPress database. It allows you to capture the registering persons contact information to the WordPress database as well as provides the ability to send the registrar to your PayPal payment site for online collection of event fees. PayPal payments are captured to the database using the PayPal Standard IPN.
Reporting features provide a list of events, list of attendees, and excel export.
Download Plugin | Test Drive | Upgrade to Pro Version | Support Forum
If you like this plugin, please consider making a small donation or clicking on a few of the ads displayed on the site.
Installation:
- After unzipping, upload everything in the ‘paypal-events-registration’ folder to your ‘/wp-content/plugins/’ directory (preserving directory structure).
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- Go to the Event Registration Menu and Configure Organization and enter your company info – note you will need a PayPal id if you plan on accepting PayPal payments
- Go to the Event Setup and create a new event, make sure you select ‘make active’.
- Create a new page (not post) on your site. Put {EVENTREGIS} in it on a line by itself.
Note: if you are upgradings from a previous version please backup your data prior to upgrade.
If you have watched the video below and are having trouble installing the plugin or just need additional support. Please visit our “Premium Support” page or view the FAQ below.
Setting up the Plugin
Frequently Asked Questions:
To use, create a new page with only {EVENTREGIS}
To display list of attendees of an active event use {EVENTATTENDEES} on a page or post.
*For URL link back to the payment/thank you page use {EVENTREGPAY} on a new page.
*For PayPal to notify about payment confirmation use {EVENTPAYPALTXN} on a new page.
*This page should be hidden from from your navigation menu. Exclude pages by using the ‘Exclude Pages‘ plugin from http://wordpress.org/extend/plugins/exclude-pages/ or using the ‘exclude’ parameter in your ‘wp_list_pages’ template tag. Please refer to http://codex.wordpress.org/Template_Tags/wp_list_pages for more information about excluding pages.
Email Confirmations:
For customized confirmation emails, the following tags can be placed in the email form and they will pull data from the database to include in the email.
[fname], [lname], [phone], [event],[description], [cost], [company], [co_add1], [co_add2], [co_city],[co_state], [co_zip],[contact], [payment_url], [start_date], [start_time], [end_date], [end_time]
Sample Mail Send:
***This is an automated response – Do Not Reply***
Thank you [fname] [lname] for registering for [event]. We hope that you will find this event both informative and enjoyable. Should have any questions, please contact [contact].
If you have not done so already, please submit your payment in the amount of [cost].
Click here to review your payment information [payment_url].
Thank You.
Attention:
If you haven’t noticed, the WordPress plugin “Events Registration with PayPal IPN” is no longer available for download on WordPress.org. We found some serious security issues within the plugin (mostly deprecated WordPress database functions) so we decided it best to go ahead and remove the plugin until security was improved.After a major overhaul of the back-end code we have re-released the plugin under a new name (Advanced Events Registration) and have also released a pro version of the plugin with many additional features.
It is highly recommended that you upgrade to the latest version of the Advanced Events Registration plugin ASAP.



















Michael,
Can you tell me what version of the plugin you are using, please?
Seth
Seth,
Really love plug-in. I can’t get it to send me(oraganizer) an email when I do a registration. Put an email address in the event organization window. Also as a registrant no confirmation email is sent. Any ideas?
Ken
Hi Seth, this is the best plugin ever. I’m using it for a client and I need several more options. The first one and the most important is the categories. I need to set categories for events. A shortcode should display all active events from category X. Events that get fully booked or that already happened, should disappear from the listing.
Thanks, I hope you can help me with this. You’re doing a great job.
Does the plugin support is there proposed support for Paypal PRO Payments?
I am planning on adding support for PayPal Pro and Authorize.net in the near future. I am in the process of making several updates and modifications to the plugin. As soon as I am done making sure I have all the bugs and mods nailed down I am going to start adding modules to the plugin.
Hi Seth -
This is a great plugin! I am having one problem though, maybe you can help me out…
The [payment_url] in the registration confirmation e-mail doesn’t seem to be functioning correctly. It’s taking me to a page_id=0 which ends up going back to the main events page. Can you help?
Thanks
Liz
Hi Liz,
You need to put {EVENTREGPAY} into a “Thank You” page and set that page as your “Auto Return URL (used for return to make payment)” in the organization settings page.
Seth
Ok, I have a request if this is possible. The event I’m trying to set up is for a Reunion, and we are charging a plate fee for those attending. However, currently the way this registration system is set up, when you assign an event fee, and if someone is bringing a spouse, the registrant only has the option to choose how many people they are bringing with them, and this plugin simply multiplies the fee by the number of attending. If you want to give a discount to the spouse, you have no way to do so.
I can envision this feature having a few possible use cases:
1) I should be able to choose if the discount is applied against the all of the attendees if there are more than one, or
2) I can choose that the registrant pay full price, and any additional tickets are at a discount, or
3) I can choose an incremental discount (1 ticket = full price, 2 tickets = 10%, 3 tickets = 20%, 4+ tickets 50%).
In general, we do not want to burden our couples attending the event with having to pay for 2 full price tickets, and we don’t want to create a “special” registration page with a special event just so that we can have a “couples discount”.
Is there anything you can do about this?
-Tom
Hey Tom,
That will take a bit of programming to figure out these different variables. I am releasing an update that will have a percentage discount option. I am not sure if this will work for you?
Let me know.
Seth
Seth please assist,
I keep getting this error everytime I try to create a new event:
There was an error in your submission, please try again. The event was not saved!Unknown column ‘category_id’ in ‘field list’.
I have set up a category for the events. Any ideas? I can offer you an admin login to check it out if needed?
Leland
Hi Seth –
I can really use a version with Authorize.net support and discounts (as well as multiple currency support) – do you know when you will have the next version ready?
Update to the newest release. After updating there is a Help/Support page in the Events Admin menu. Click the button to update the database and categories database.
Hi Rex,
The current version has multiple currency support for PayPal. When I have time I will add Authorize.net and PayPal Pro and Express support. I need to make sure all of the bugs are worked out first, as the plugin is still in Beta.
Seth
Hey Rex,
Are you using AIM or SIM for Authorize.net?
Seth
Just Curious.
If I were to make an Authorize.net extension to for this plugin. Should I use AIM or SIM methods/api or both?
More info here:
SIM
http://developer.authorize.net/api/sim/
AIM
http://developer.authorize.net/api/aim/
Is Paypal Pro the same as a private account as a plus version? Or is it the same as a firm account?
I would use AIM – i think that’s the method I use – and most event registration systems use AIM, from what I understand. All I would need to provide is the Authorize.net username and transaction ID provided by the system.
BTW, Authorize.Net only supports US Currency, so you would have to have a method of converting foreign currencies to USD at time of charge (you can’t pass a foreign currency to Authorize.Net, even tho there’s a form field for that — I know, doesn’t make sense).
When you use AIM, you transmit the data using an SSL certificate. To ensure complete security, make sure the actual form that submits the data is also protected by SSL.
With SIM, you send a POST request to a secure server on the gateway’s side. You should have an SSL certificate for the form page. Optionally, Authorize.net will host the payment form for you on their own SSL-enabled servers.
If you do not have an SSL certificate, you absolutely should NOT host the payment form. Let Authorize.net do that, in which case you may use SIM.
Is there a way to allow people who have registered/paid for an event to update their registration? I am looking at potentially using this plugin to allow people to register for an upcoming conference. During the registration process, registrants will choose which specific sessions they want to attend. Should they change their mind down the road (or, should we happen to need to cancel a specific session), I would like the registrants to be able to update/modify their own registrations.
Is this possible with this plugin?
Hi Seth, Just trying out the plugin – the features are fantastic, & it looks almost perfect for a project I hope to have coming up soon.
The City, state & zip fields on the registration are the blockers for me as I would deal exclusively with registrations from UK addresses. Is it possible for the address fields to be more flexible? Thanks
Hello Michael,
In the file /wp-content/plugins/events-registration-with-paypal-ipn/includes/event_register_attendees.php
You can change the form to fit your needs. Just be sure to keep the field names the same.
@ Curtiss
I have not had time to implement that yet. I hope to eventually do something like what you are asking for. Seeing as I only work on this plugin in my free time and make very little money from the plugin, it could be a long time before the plugin gets to that point.
Seth
SIM is OK too, I guess — whatever works. You might want to check out WP-Ecommerce and see how they handle Authorize.Net integration – however they do it works for me.
Hi Seth,
Happy Holidays. I’m wondering if there is a way in the confirmation email for the registrants ID number to be put in. Let me know – Michael.
noob question – the confirmation email for Registration is coming from WordPress@mydomain.com … how do I change this?
Hi Seth.
Great plugin. Just what I was looking for.
The version I have does not allow for this, so I’m going to hack it to allow for multiple discount codes.
e.g. if you are a member, you can use your membership number or id to obtain a discount.
comma delimited stringof allowed codes, change the coupon_code field to TEXT, explode on comma, check the array for valid code….something like that.
Happy Holidays.
Oh cool! Good idea. Maybe I will implement that on the next release.
Hi Seth,
Look like very good improvements to the earlier plugin. Just testing it out now and seem to have attracted a lot of spam (events) registration. Any suggestions on how to integrate Captcha or something similar into the plugin?
Thanks,
Stuart
Any updates on this plugin? Did you manage to get Authorize.net working? For some reason, I’m not getting an email update when comments get posted here, so just checking back now.
Working on it.
hi Michael. Awesome plugin- really amazing! Using it for a client’s marketing site, and very pleased. I had two quick noob questions, and if anyone registered here can help- that’s so appreciated.
1- still haven’t figured out where to change the assigned email address that sends email confirmations with a from “wordpress@ mydomain.com” header on them? (someone else asked this as well)
2- any way the event times in database can allow for half hours? instead of only whole hours- i.e., event starts at 6 p.m., ends at 7:30 pm
client really busted my chops about this (I know! I know! I want to tell them if they are so smart to go program it themselves then, too! ha)
if anyone knows how I could make those hacks- and can share VERY much appreciate it. Newbie to working with wordpress sites, can hack my way around PHP/ mySQL fairly okay so far – old dog out of ASP and tables site dev land. lol.
thank you!
email- uppitygal [at] mac.com
cheers!
I’ve implemented recaptcha functionality into my installation by doing the following:
(see http://recaptcha.net/plugins/php/ for overview)
1) registered for public/private keys via http://recaptcha.net/
2) downloaded and installed recaptcha php library: http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest
3) Placed recaptchalib.php file in events-registration-with-paypal-ipn/includes folder
4) To event_regis.php file …
… in function add_attedees_to_db(){ … after “$events_attendee_tbl = get_option(‘events_attendee_tbl’);”
added …
require_once(‘includes/recaptchalib.php’);
$privatekey = “…”;
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
… rest of function to “events_payment_page($event_id);” then added …
} else {
# set the error code so that we can display it. You could also use
# die (“reCAPTCHA failed”), but using the error message is
# more user friendly
$error = $resp->error;
echo “Sorry, you did not enter the correct anti-spam phrase. Please click your browser’s back button and try again.”;
}
To event_register_attendees.php file …
Before submit button added this section:
Anti-Spam Measure: Please enter the following phrase
Still testing, but it seems to do the trick so far …
Cheers
Lost the last part of that code …
After Anti-Spam Measure …
require_once('recaptchalib.php');
$publickey = "...";
# the response from reCAPTCHA
$resp = null;
# the error code from reCAPTCHA, if any
$error = null;
echo recaptcha_get_html($publickey, $error);
Seth- THANK YOU so very much for your quick, helpful response! as soon as I can get client to pay me, I am going to contribute with sincere thanks for this plugin. take care- and Happy New Year to everyone!

(sorry, i messed up your name on my first submit-? ugh. sorry!)
@Boysen – look at the WP Mail SMTP plugin for changing the wordpress@ addie attached to the send action. H/T to Seth!
http://wordpress.org/extend/plugins/wp-mail-smtp/
@uppitygal – You very welcome! I am glad you find the plugin useful.
Hey Stuart,
Thanks for sharing! I would like to implement your fix into a future release of the plugin. Would you mind sending me your modified file?
I am also building an advanced version of the plugin for users that need alternate payment methods and more control over the functions of this plugin. I have some basic information here:
http://shoultes.net/advanced-events-registration/
I will be adding a download link to the beta version soon.
Seth
is there a way to change the max # of additional attendees?
why is it 5?
You can change it in the file /wp-content/plugins/events-registration-with-paypal-ipn/includes/event_register_attendees.php
I did it that way so you wouldn’t have 1 person signing up 20 people or whatever. If your limit is 10 people, it could mess up your registrations.
Seth
Hi there. I got some questions…
1. Is it possible to define different prices? In my event I got 2 registration types, and it would be nice if i could define different prices.
2. I would like to put the registration form in a table, but the code generated from {EVENTREGIS} is always displayed at the start of the page, before the table. How can i solve this?
3. Is there an easy way to put in the user-id into the confirmation mail?
Thanks for help,
Xava
I’m really grateful for this plugin – exactly what I need for the site. One request for a future release would be to have included some way of adding venues and venue details to the events. Perhaps there could be a page for each venue, to include the address, phone number, google map etc.
Thanks,
Dan
Two features I would like to see is multiple pricing for example groups and individuals and a confirmation email sent to the host of the event when someone registers.
How can I grant access to view Attendees/Payments (/wp-admin/admin.php?page=admin_reports) to a user with LESS than Administrator?
Is it possible to have the start time and end time in 15 minute increments.
e.g start date 4.45pm
I am happy to change myself if you can point me in the right direction.
Douglas.
it’s OK I worked it out.
Thanks.
Using debug mode and PayPal Sandbox, my Attendees/Payments show up as paid, but with Pay Status “Pending”. Has the IPN succeeded, or not?
Do I need to use the IPN Simulator in the Sandbox? If so, what should be entered in all of the fields of the IPN Simulator?
The “Pending” status means that the payment was successful. That is the default status that PayPal sends back when using the Sandbox. You have to go into the individual transaction while logged into the PayPal Sandbox and accept the payment by viewing the details of the payment.