EE3 Voucher Import Tool

The Voucher Import Tool is only available as a Pre-release download.
Event Espresso 3.1.27 or newer is required.

This tool allows you to import your voucher codes. For now it creates a new menu item called “Voucher Import” under “Payment Settings” in the Event Espresso admin.

Usage:

  1. We recommend you download and use the provided example file as a template or pattern for structuring your csv file for upload. It is very easy to work with it in Microsoft Excel. Be sure to save it as a CSV file and not an Excel spreadsheet.
  2. The file name should be named vouchers.csv
  3. One final note, you will see that the header row, first column has a 0 while other rows have a 1. Header rows with a 0 will be ignored while and only use rows with the 1 will be used.

Note, we recommend using Event Espresso 4 with promotion codes and discounts.

NOTES:

  • One-click updates are not available for this download at this time.
  • Please report any errors, bugs or corrections in the Pre-release Forum

The Voucher Import Tool is only available as a Pre-release download.

Posted in | Comments Off on EE3 Voucher Import Tool

EE3 Attendee Batch Import Add-on

The Attendee Batch Import add-on is only available as a Pre-release download.
Event Espresso 3.1.27 or newer is required.

The importing add-ons can be beneficial for organizations that have a list of members or attendees from another database. These organizations can use this importer to register attendees directly into events instead of having attendees register themselves or adding the attendees manually to the event one-by-one.

Import your attendees from a comma separated file (CSV) directly into the the database. For those of you who have a lot of attendees, particularly attendees that are similar in setup, this will save you time.

Please use the attendees.csv as a guide for importing the data and assigning answers to the custom questions. Importing attendees with custom questions and answers can be tricky, so it’s imperative that you get the .csv file setup correctly. For now it creates a new menu item called “Attendee Import” under “Payment Settings” in the Event Espresso admin.

To use the “Answers” column, please use this format:

question id | answer || question id | answer || question id | answer

The example above uses two pipes ( || ) to separate the question id/answer combination.

NOTES:

    • One-click updates are not available for this download at this time.
    • Please report any errors, bugs or corrections in the Pre-release Forum

The Attendee Batch Import add-on is only available as a Pre-release download.

Posted in | Comments Off on EE3 Attendee Batch Import Add-on

How to Setup A Transactional Email Service with Event Espresso

Are you having email deliverability issues such as emails getting lost or some being marked as SPAM or junk mail? If so, a transactional email service can help.

Event Espresso does not send out emails itself. It uses a WordPress function called wp_mail which then uses the local email server to send out emails. Unexpected changes to the local email server can cause your emails to stop working. A transactional email service can help in these situations since they’ll take over sending emails on your WordPress site.

This means that all emails from WordPress (e.g. password resets, comment notifications) will be handled by the transactional email service for you. An additional benefit is that emails will be received much quicker than before.

Select a transactional email service

SendGrid, Postmark app, SendinBlue, Mailjet, MailGun, Pepipost and Mandrill are several popular transactional email services. Click on the links below to learn more about each service. Then register with one of the services.

Find out more about Postmark App (Free tier available)

Find out more about SendinBlue (Free tier available)

Find out more about Mailjet  (Free tier available)

Find out more about MailGun (Free tier available)

Find out more about Pepipost (Free tier available)

Find out more about SendGrid (Paid service)

Find out more about Mandrill (Paid service)

Install and setup a WordPress plugin for your selected service

Now that you have picked a transactional email service, you’ll need a plugin to connect the service to your WordPress site. Click on the link below for the service that you have selected. Then download your plugin and upload through WP-admin (WP Dashboard) –> Plugins –> Add New –> Upload.

Download the SendGrid plugin

Download the Postmark app plugin

Download the SendinBlue plugin

Download the Mailjet app plugin

Download the Mailgun plugin

Download the Pepipost plugin

Download the wpMandrill plugin

The creators of Mandrill also published a step by step guide on creating an account, installing the wpMandrill plugin and linking your account with your WordPress site, click here to view the guide

Activate your new transactional email service plugin

After the upload has completed, you can activate your plugin. Then go to the settings page for your plugin and enter your credentials and save changes. You can optionally send a test email to confirm that it has been set up correctly.

Posted in | Comments Off on How to Setup A Transactional Email Service with Event Espresso

How to Create a Custom Ticket

Creating simple, elegant custom tickets for your customers can be done quite easily with the Ticketing add on.

Edit the ticket’s main content area using the built-in editor

Simply use the Ticket Templates settings to add some extra information to the default ticket.

After clicking the Add New link, you will be taken to a new page to create the ticket. Here you can add a custom name so you can tell which ticket is which and select one of the two basic stylesheets available. The ‘simple’ stylesheet is a minimalistic offering in black and white. The red stylesheet is a red and white version.

For the structure of the ticket, there is only one default template available.

Click the logo upload image button to add your logo or image to the ticket.

If you have a venue set, the address will show on the ticket and so will a Google map extract.

Logos

If you have added a business logo in the General Settings and you don’t add an image in the ticket options, your business logo will be used instead.

You can also add further information for the customer in the Ticket Description/Instructions section. HTML is allowed here but Event Espresso shortcodes don’t work in this section.

The default ticket layout

The default ticket layout

Create a custom ticket template

This option to create custom ticket designs does require some HTML and CSS knowledge.

Start by copying the templates directory from the Ticketing add-on over to the wp-content/uploads/espresso/tickets directory.

You will be left with the following file structure:

wp-content/uploads/espresso/tickets/templates/index.php
wp-content/uploads/espresso/tickets/templates/css/base.css
wp-content/uploads/espresso/tickets/templates/css/red.css
wp-content/uploads/espresso/tickets/templates/css/simple.css

From here you have two choices in modifying the tickets, just create a new CSS file or a new template file (or both!).

To add new CSS, go to the CSS folder and add a new stylesheet (example.css) or copy one of the existing ones and rename it.

From there, standard CSS changes can be made to alter the appearance of the ticket.

I like to have a test ticket open when doing this as it allows you to update the page and see the changes you have made. To do this create a new ticket with the new stylesheet, add it to a test event which has attendees. Then head over to the attendees for that page and just click the ticket icon on the far right.

Using CSS I’m going to change the ticket to be a bit more suitable for a Gardening Event.

Lets start by adding some greens and browns onto the ticket.

The .instructions class can have its background-color changed to #11A017

Lets add an image of grass to the ticket area. To the .ticket class add background:url(grass.jpg) center center no-repeat;

The image is just uploaded to the uploads/espresso/tickets/templates/css folder.

The .ticket class needs to be changed a bit, lets widen the width to 720px and remove the side padding, so padding now becomes 20px 0.

OK so there’s a lovely image of grass but we can’t see the text, lets change that. In .ticket again, add color: #fff; to change the text colour to white to make it more noticeable.

The background is too white, not nearly earthy enough so lets change that. In the class .outside add background-color:#92CCA6.

If you wanted to you could even use an image as the background here similar to how I added an image to the ticket section earlier.

What about the little gravatar image of the attendee? Looks lost in all the grass, so lets make it stand out a bit

.gravatar img {
padding:5px;
border:#FFF medium solid;
}

OK, what about a logo? Head over to the Ticket Templates page in WordPress and edit your ticket, here you can upload an image for your logo just like any image in WordPress. Its best to try and keep the logo image fairly small, but you can play around with this.

Adding the logo has caused the .ticket area to expand a bit. Rather than shrinking the image further, lets make the background image a bit taller to fill the gaps.

You will often find you need to tweak certain things to help fit them in.

OK, so we have a lovely looking ticket so far. But there are certain things that don’t look right.

What about the More Information and Ticket Instructions sections? We don’t want them here.

Now we can’t hide them with CSS as there is no class or ID attached to them so we will need to give the ticket a new template.

Hopefully you already created one, but if not head over to uploads/espresso/tickets/ and create a new php file there. It’s probably best just to copy the index.php file and rename it.

In the Ticket Templates settings edit your ticket and change its template to the new one.

Now in your text editor edit that file

You could just delete those items out, but what may be better is to add IDs to the < p > tags, that way you can hide them with CSS and later on if you change your mind you can just remove the CSS command.

<p id="ticketlocation"><strong>Location:</strong></p>
<p id="ticketmoreinfo"><strong>More Information:</strong></p>
<p id="ticketinstructions"><strong>Ticket Instructions:</strong></p>

Now we can add the following to the CSS to remove them

#ticketmoreinfo { display:none;}
#ticketinstructions { display:none;}

That looks better, but we are left with a big space there. Now if you haven’t used your logo in the .ticket area, this would be a great place to add it, either that or a sponsor’s logo!

In the template file, add the following below the Ticket Instructions paragraph

<p id="mylogo"></p>

Of course you could add a div tag or similar as well.

We will use CSS to add the image in this case, but you could add an img tag in the template instead if you wish.

And that’s it, a custom ticket easily designed with some basic CSS and a little bit of HTML. I am positive you can create something that looks a lot better than mine though!

A custom ticket layout

A custom ticket layout

Posted in | Comments Off on How to Create a Custom Ticket

How to Set Up PayPal IPN

IPN stands for Instant Payment Notification and in short it is needed for Event Espresso to be notified about the transaction in order to complete the registration on the website.

When setting up PayPal to work with Event Espresso you need to change the settings in the Plugin and in your PayPal account.

Already Set Up but Still Problems?

If your IPN is set up and you require some troubleshooting tips, please click here.

Plugin Settings

There are two types of settings, testing (also known as Sandbox or Debugging) and live.

With the testing settings you will first need to have a PayPal Sandbox account and enter your merchant email address in the PayPal ID option and make sure that the Use the Debugging Feature and the PayPal Sandbox option is ticked.

Any registrations taking place will now head to the Sandbox where no actual money changes hands. You will need to use a Sandbox buyer account details to make a purchase.

For live settings, add your own PayPal email address to the PayPal ID option and make sure that the Debugging Feature and the PayPal Sandbox option is turned off.

An important note about the “Force HTTPS on Return URL” setting:

Please only enable the “Force HTTPS on Return URL” feature if you have an SSL certificate installed for your domain. In most cases, you can order an SSL certificate from your hosting provider.

PayPal Settings

1) Login to your account on PayPal.com

2) Look for the person icon in the top right corner and click on it

3) Then click on Profile and Settings

4) On the next page, look for the My Selling Tools in the left menu and click on it

5) Then click the Update link for Instant Payment Notifications

6) On the next page add the URL for your Event Espresso transactions page. Here is an example:
http://www.yoursitename.com/transactions/

7) Make sure Receive IPN messages (Enabled) is enabled and click Save.

8) Set the PayPal button language encoding, see the next section.

Do the steps above look unfamiliar? Your PayPal account may still be using the old layout. Here is an alternative setup guide for the PayPal IPN.

PayPal button language encoding

1) Look for the person icon in the top right corner and click on it

2) Then click on Profile and Settings

3) On the next page, look for the My Selling Tools in the left menu and click on it

4) Scroll to the end of the page and look for the More Selling Tools section. Then click on PayPal button language encoding

5) Click More Options

6) Set the language encoding that matches your website’s database encoding. Many WordPress databases are UTF-8, but you can verify the encoding if you’re not sure by checking with your web host.

paypal-encoding

Server Firewall Settings

If necessary, add PayPal’s IP addresses to any list of trusted IP addresses needed by your firewall or other network devices. Here is the current list of PayPal IP addresses.

Troubleshooting PayPal IPN

  • Make sure your PayPal account is verified. If you have a PayPal Premier or Business account, then this process has already been completed.
  • Make sure that the 4 required pages in WordPress admin –> Event Espresso –> General Settings are correct and have the correct short codes in them.
  • Make sure that the 4 required pages in the WordPress admin –> Event Espresso –> General Settings are publicly viewable and not set to private, draft, or password protected.
  • Make sure there are no maintenance mode type plugins active.
  • EE3 only: Please only enable the “Force HTTPS on Return URL” feature if you have an SSL certificate installed for your domain. In most cases, you can order an SSL certificate from your hosting provider for a fee.
  • Deactivate the WP Spam Shield plugin. There are a number of alternatives that do not block PayPal.
  • If you are running the Bad Behavior plugin, you will need to whitelist the IP addresses of PayPal servers, and keep an eye on the Bad Behavior logs to stay up to date in case PayPal gateway adds or changes the IP addresses they use to notify your site.
  • EE3 only: If you are experiencing problems with incomplete payments, try the Simplified Transaction template. This can be added to your theme and activated on the Transactions page via the Page Attributes option. There is more information and a download link under “Incomplete Payment Issues”.
  • EE3 only:Check to see if you have outdated or incorrectly modified gateway files in wp-content/uploads/espresso/gateways directory. If so, temporarily rename that directory to force Event Espresso to use the default gateway files.
  • EE3 only: You can check the IPN log file for errors. The IPN log file is located on your server in the /wp-content/uploads/espresso/logs directory. You can FTP in or view the file using your host’s c-panel file manager.
  • You contact your host and ask them to verify that your server meets PayPal’s new security requirements.
  • Give it Some Time
    It sometimes takes a bit of time, sometimes several hours for PayPal to post a response to the server. Another possibility is that PayPal sent a response back to your server, but the response bounced or the server was unresponsive for a short period of time, therefore not capturing the data from PayPal.

    IPN History / Resend IPN
    You can also view your PayPal Instant Payment Notification history and/or try resending the IPN notifications by logging into your PayPal account, then visit this URL: https://www.paypal.com/us/cgi-bin/webscr?cmd=_display-ipns-history

    You should see something like this:

    http://www.screencast.com/t/EFum7nKeY

    Incomplete Payment Issues

    If you are experiencing problems with incomplete payments, most often it has to do with problems reaching your Transactions page ([ESPRESSO_TXN_PAGE]) from the payment gateway.

    You can download our special stripped down Transactions page template in the link below. Included in the zip file is a quick readme with installation instructions.

    It is recommended that you try this template after verifying that IPN is turned on, your account is verified, you have a standard or business account (if using PayPal) and — most importantly — that your Transactions page is visible to the internet.

    If you have confirmed these four things and you are still having issues with incomplete payments, you can try the download below.

    Download Transaction Template

    Page Caching

    When using caching plugins (or server caching) you will need exclude all Event Espresso critical pages from caching. If your transactions page is set to cache the PayPal IPN’s will load a cached version of this page and no updates will be made to the transaction.

    Click here to setup nocache exclusion rules for Event Espresso

    Internal Server Error

    If you see Internal Server Error message like this one after hitting the PayPal button on the Event Espresso Payment page, it’s likely because the email address entered in PayPal settings does not match the PayPal ID for your PayPal account. You can verify the email address that’s entered in Event Espresso > Payment settings is the same email address that was used to sign up for the PayPal account.

    Image

Posted in | Comments Off on How to Set Up PayPal IPN

Custom Post Types – Basic Setup

Event Espresso by default allows you to create an extra Post based on the event contents, should you wish your events to be added to your WordPress content feed.

You can also add events to a custom post type called Events.

In order to do this, you will need access to FTP or your hosts CPanel or Plesk file manager as you will need to move some files around.

Set Up

In the event-espresso directory (wp-content/plugins/event-espresso) is a directory called post-type-samples.

In that directory find and copy the page-event_list.php file to your theme’s directory.

This will allow your theme to recognize that file as a Page Template.

Updates

When you update your theme it is possible that this file will be deleted. Either set up a child theme or make sure you back up the file before updating.

Create a new WordPress Page and in the Page Attributes box on the right select the Espresso Events template.

Now head over to the Event Espresso > Template Settings page and make sure that the option “Use the custom post types feature?” is set to Yes.

Go to the Settings > Permalinks and just press save. What this does is reset the permalink (url) structure so that WordPress knows about the custom post type. If you fail to do this you will find that your links won’t work correctly.

Create a new or edit an existing event and scroll to the bottom where it says Create a Post.

Set the option “Add/Update post for this event?” to Yes and make sure that the “Post Type” option is set to Espresso Events.

Once the Event is published or updated, the new custom post type will appear in its own Events section in the main WordPress menu.

These custom post types can be viewed via the page you set up at the beginning.

Custom Post Types and Registration

The custom post types, just like the normal posts, won’t show the events registration form by default, but there a few ways in which you can add that form in.

Use the single-espresso_event.php file. Copy it over from the post-type-samples directory to your themes root directory just like you did with the page-event_list.php file earlier

Add the shortcode [ESPRESSO_REG_FORM event_id=X] to the custom post type manually. X equals the event ID number.

Multiple Event Registration add on:  add the  Add to Cart link in the event manually, which will carry over into the custom post type. This will allow users to add to cart direct from that post as well as from the event itself.

Add this to your themes single.php file

$ee_get_post_id = get_the_ID();
$ee_event_id = get_post_meta($ee_get_post_id, event_id, true);
if ($ee_event_id != '') {
echo do_shortcode('[ESPRESSO_REG_FORM event_id=' . $ee_event_id . ']'); 
} else {
// Do nothing
}

Posted in | Comments Off on Custom Post Types – Basic Setup

How to Add an Attendee Manually

Sometimes it is necessary for the site admin to add an attendee to an event manually, either because of an offline purchase, free entrance or other reason.

Log into your WordPress Dashboard and head over to Event Espresso > Event Overview.

Find the event you want to add an attendee to, in the list and hover your mouse cursor over the event name.


Event Overview Attendee Link

Event Overview Attendee Link



A list of options will appear, click the Attendee option.

This will bring up a list of attendees solely for that event.

At the top of the page is a link called Add New Attendee, click it.


Add New Attendees Link

Add New Attendees Link


This will take you to a section where you can enter the attendee’s details. The information you need to enter here is based on the event itself, so if you have extra questions or multiple times you can select those here too.

One thing it does not show is the ticket types, you just need to enter the appropriate amount they have paid and the number of tickets they need.


Add New Attendee Main Screen

Add New Attendee Main Screen


On adding the attendee, their Payment is marked as Complete by default. If you wish to change that, scroll down to the attendee list below (or visit the event attendee list as mentioned above), click the attendee and then click the View/Edit Payment link on the right under Ticket Prices.


Attendee Edit/View Payment

Attendee Edit/View Payment


Another thing that is set when an attendee is added by the admin is the Payment Type, which on the attendee list is referred to as Type. Here you will see it is marked as Added by Admin, to enable you to see who you manually added and who came through the website registration process.


Attendee Overview List

Attendee Overview List

Posted in | Comments Off on How to Add an Attendee Manually

EE3 Volume Discount General Use Case

The Volume Discount add-on harnesses the power of group discounting  your events, allowing you to enable to people to bulk purchase and make great savings, whilst you reap the rewards of more attendees and sales.

Requirements
The Volume Discount add-on requires that the Multiple Event Registration add-on is installed and activated. The volume discount add-on will not work without it.

Using the Volume Discount add-on is straightforward once you have understood the basics. As such I will quickly run through what the add-on does and how it works and then take you through 2 mini use cases outlining the processes.

What & How

What does it do? It discounts events based on a bulk setting, whether it is the number of registrants or the price or another factor. It does this when items are added to the shopping cart via the Multiple Event Registration add on.

How does it know what to discount? The discounts are based on different factors and the add on uses categories or meta information attached to the events to figure out when a discount needs applying.

Use Case 1  – Number of Registrants

Let’s say that you have events in place that allow group bookings, in other words a single person can buy multiple tickets for a single event. This could be for family groups, parties, etc. You can use the volume discount add-on to allow a discount after a set number of tickets have been purchased.

In this example we will set our target number at 3 tickets, and a discount of 10%.

Some preparation is needed to begin with, first we will create a new Event Category to mark events as eligible for the discount. Head over to the Categories section on the menu and create a new category, ours will be imaginatively called discounts.

Find the event’s that you want to discount and add the categories to them and update. Whilst you are in the event, make sure that the “Allow group registrations?” setting is set to yes and that the “Max Group Registrants” is set to the target number or higher, so in this case 3 or higher.

In the Volume Discounts menu we need to set up the actual discount thresholds. Head over there set up the options as follows:

  • Discount based on: Number of Registrations  – this equals the number of tickets that needs to be purchased before the discount kicks in.
  • Discount threshold: 3 – the actual number of tickets.
  • Discount amount: 10
  • Discount type: Percentage Discount
  • Discount applied message: Leave as default.
  • Discounts apply to: tick the discounts category – this will make sure only the events with that category will be eligible for the discount.


Volume Discount settings when using number of registrants

After those have been entered hit the Save Changes button.

On some systems an irregular bug may occur in that the category selection isn’t saved, so before moving on double check this. If it isn’t saved, re-tick the box and re-save.

Now head over to the events registration page and pick an event that you added the discount category to, to cart. When you view your event select 3 or more tickets and you will see a message pop up showing the non discounted total, the discount and the discounted total.

Volume Discount output when using number of registrants

Use Case 2 – Discount by Price

In this situation we want to offer the client a discount depending on how much he or she has spent. The process will be the same as above but with minor differences.

We will use the value of $200 and a discount of 10%.

With this you can either use the same category you did with the previous use case or create a new one just for this type of category. We will do the latter for this example.

Head over to the Categories section on the menu and create a new category, ours will be imaginatively called pricediscounts.

Find the events that you want to discount and add the categories to them and update. Whilst it doesn’t matter so much if the group registrations is set here, it might still be useful to set to enable the buyer to purchase more tickets.

In the Volume Discounts menu we need to set up the actual discount thresholds. Head over there set up the options as follows:

  • Discount based on: Total Dollar Amount  – this equals the value of the total tickets that needs to be purchased before the discount kicks in. Though it says Dollar, it works for whatever currency you have set.
  • Discount threshold: 200 – the actual amount needed to be hit before the discount kicks in.
  • Discount amount: 10
  • Discount type: Percentage Discount
  • Discount applied message: Leave as default.
  • Discounts apply to: tick the pricediscounts category – this will make sure only the events with that category will be eligible for the discount.
Volume Discount settings when using dollar value

After those have been entered hit the Save Changes button.

On some systems an irregular bug may occur in that the category selection isn’t saved, so before moving on double check this. If it isn’t saved, re-tick the box and re-save.

Now head over to the events registration page and pick an event that you added the discount category to, to cart. When you view your event select enough tickets to meet the $200 mark and you will see a message pop up showing the non discounted total, the discount and the discounted total.

Volume Discount output when using dollar value

Posted in | Comments Off on EE3 Volume Discount General Use Case

Event Espresso CSS Classes

Sometimes you need to find the right CSS class in order to target an element to change it in some way – hide it, make it more visible, etc.

Below is a list of the CSS classes for the default event list and single registration pages.

X = a number, associated with the event, category, etc ID number
(_ something _) = note detailing why the id/class cant be listed

Event Registration List CSS Tree

div#event_wrapper

div#event_container_pagination

div#event_content .event_content

p#events_category_name-X .events_category_name

div#event_data-X .event_data .NULL .event-data-display .event-list-display .event-display-boxes .ui-widget

h3#event_title-X .event_title .ui-widget-header .ui-corner-top

a#a_event_title-X .a_event_title

div.event-data-display .ui-widget-content .ui-corner-bottom

div.event-meta

p#p_event_price-X .event_price

p#event_date-X

span.section-title

a#espresso_ical_X .espresso_ical_link

p#available_spaces-X .spaces-available

span.section-title

p#register_link-X .register-link-footer

a#a_register_link-X .a_register_link .ui-button .ui-button-big .ui-priority-primary .ui-state-default .ui-state-hover .ui-state-focus .ui-corner-all

a#cart_link_X .ee_view_cart .ee_add_item_to_cart

 

Event Registration Single Event CSS Tree

div#event_espresso_registration_form .event-display-boxes .ui-widget

h3#event_title-X .event_title .ui-widget-header .ui-corner-top

div.event_espresso_form_wrapper .event-data-display .ui-widget-content .ui-corner-bottom

div#espresso_featured_image-X .ee-featured-image

p.section-title

div.event_description .clearfix

div.event_espresso_form_wrapper

form#registration_form

p#event_address-X .event_address

span.section-title

span.address-block

span.google-map-link

p.start_date

span.span_event_date_label

span.span_event_date_value

a#espresso_ical_X .espresso_ical_link

p.event_time

span.span_event_time_label

span.span_event_time_value

input#start_time_id_X

p.event_prices

span.free_event

input#payment-X

input#price_id-X

div#event-reg-form-groups

h3.section-heading

fieldset#(_ question group id _) .event_questions

h4.reg-quest-title .section-title

div.event_form_field

label.ee-reg-page-questions

input#(_ unique for each question _) .required .ee-reg-page-questions .ee-reg-page-text-input

p#event_form_submit-X .event_form_submit

p.edit-link-footer

a.post-edit-link

Posted in | Comments Off on Event Espresso CSS Classes

Event Espresso