Skip to content

Instantly share code, notes, and snippets.

@lorenzocaum
Last active February 16, 2022 21:58
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lorenzocaum/c49bda15961f9f7d19ab to your computer and use it in GitHub Desktop.
Save lorenzocaum/c49bda15961f9f7d19ab to your computer and use it in GitHub Desktop.
How to handle partial payments in Event Espresso 4

In this guide we'll talk about handling partial payments in Event Espresso 4. This works best if you have an initial payment + a balance due. Here are some examples:

$250 deposit + $750 final payment

$500 deposit + $500 final payment

This idea uses two events: one to collect the initial deposit and one to collect the final payment.

Step 1 - Create an event for the initial payment

Using the event editor, create your event as normal. However, add some help text in various areas of the event.

For example, in the event name, add Deposit Only at the end like this:

My Summer Event - Deposit Only

Then also add another reminder in the event description (e.g. bold text with messaging that this event is for deposit only)

Step 2 - Duplicate the existing event and update for the final payment

Duplicate your original event and update the name, pricing, and other help messaging:

My Summer Event - Final Payment

Set this event to be published shortly before the deposit only event expires.

Step 3 - Use the batch email message type to send out notifications

Go to Event Espresso --> Messages. Then settings. Ensure that the newsletter message type is active by dragging it over to the right section of the screen. These steps enable the newsletter message type which was introduced last year in Event Espresso 4.

When you are ready to collect the finally payment, go to Event Espresso --> Events. Locate your Deposit only event and click on Registrations.

You'll now see a list of registrations. You can bulk select registrants/attendees or select just a few and then scroll down to the end of the page and click on the Email button.

A window will then popup. Select the global template and you'll see some information pre-filled.

You can remove that pre-filled information and add something like this:

Thanks again for registering and paying your deposit for My Summer Event. You can now pay the balance for this event by clicking the event below and completing registration checkout:

http://example.com/events/my-summer-event-final-payment/

Here is an alternative version that requires a single event but it does require you to hide upcoming tickets. If you want all tickets / pricing options to be visible at all times, then go with the method above. Again, this works best if you have an initial payment + a balance due. Here are some examples:

$250 deposit + $750 final payment

$500 deposit + $500 final payment

Step 1 - Create your event

Using the event editor, create your event as normal. That is, add an event name, description, venue and then create your pricing / ticket options and save changes. Keep that browser tab with the event editor open as we'll return to it shortly.

Step 2 - Pick a naming convention for your tickets

You'll want to pick a naming convention and then stick to that naming convention for all deposit only tickets and final payment tickets. Lets say that you have selected Deposit Only and Final Payment as the naming convention. Your tickets would then look like this:

Deposit Only - Standard Ticket

Deposit Only - VIP Ticket

Final Payment - Standard Ticket

Final Payment - VIP Ticket

Go ahead and update your tickets to add the Deposit Only and Final Payment to the names. Then adjust the scheduling for the final payment tickets to start right after the deposit only tickets are set to expire. For example, schedule to the deposit only tickets to be available for sale starting today for x amount of days. Then set the final payment tickets to start right after the deposit only tickets expire.

Step 3 - Add CSS to hide select upcoming ticket options and expired tickets

Here is the CSS that will handle this:

/* Hide upcoming tickets that have the words Final Payment from the front-end ticket selector*/
tr.tckt-slctr-tbl-tr.ticket-pending[class*="final-payment"] {display: none;}

/* Hide expired tickets that have the words Deposit Only from the front-end ticket selector*/
tr.tckt-slctr-tbl-tr.ticket-expired[class*="deposit-only"] {display: none;}

Here is what it will look like when the deposit only tickets are active and the final payment tickets are scheduled for a future date:

http://cl.ly/image/122B1C073L1r

Here is what it will look like when the deposit only tickets have expired and the final payment tickets are active:

http://cl.ly/image/1c1n1C0e3625

The CSS can be added to your child theme's stylesheet or a plugin like My Custom CSS or Reaktiv CSS Builder.

Don't worry if you are already using CSS to hide certain ticket options. This CSS is specific and target specific conditions:

Hide only upcoming tickets that begin with Final Payment

AND

Hide only expired tickets that begin with Deposit Only

Step 4 - Use the batch email message type to send out notifications

Go to Event Espresso --> Messages. Then settings. Ensure that the newsletter message type is active by dragging it over to the right section of the screen. These steps enable the newsletter message type which was introduced last year in Event Espresso 4.

When you are ready to collect final payment for your event, go to Event Espresso --> Events. Locate your Deposit only event and click on Registrations.

You'll now see a list of registrations. You can bulk select registrants/attendees or select just a few and then scroll down to the end of the page and click on the Email button.

A window will then popup. Select the global template and you'll see some information pre-filled.

You can remove the pre-filled information and add something like this (remember to include a link to the event):

Thanks again for registering and paying the deposit for My Summer Event. You can now pay the balance for this event by clicking the event below and completing registration checkout:

http://example.com/events/my-summer-event-final-payment/