WooCommerce

Our WooCommerce integration allows events on Events Manager to be booked and paid for via the WooCommerce store. This allows you to leverage many features and add-ons available in the WooCommerce ecosystem, such as additional payment gateways, PDF invoices and much more!

WooCommerce integration is available as a separate add-on, which is currently included for free with our Pro add-on.

Below are some installation instructions, along with some information on nuances, known limitations, and a technical explanation on how the add-on works with both plugins.

Installation / Setup

Installation is very easy! You will first need to have installed and set up Events Manager and WooCommerce separately.

  1. Head on over to our downloads page and grab a copy of the latest WooCommerce integration.
  2. Install it as you would our Pro plugin.
  3. Visit the Events > Settings > General > WooCommerce section and modify the setup options if needed:

Booking added to cart
Custom message when a booking is made on Events Manager booking forms.

Booking already added
Custom message for when a booking is already in the cart.

Are events taxable? and Events Tax Class
Choose whether taxes are applied to events in WooCommerce, and if so you can choose the type of tax class which you can set up in WooCommerce itself.

That’s it! You’re set up and ready to go. Any booking form submissions will now be added to the cart and ready for checkout via WooCommerce.

Nuances

Below are some changes to how Events Manager works which you should keep in mind when using it in the WooCommerce context. These come into effect the moment you enable the Events Manager WooCommerce integration add-on.

Currencies

Events Manager will inherit the currency used in WooCommerce.

Taxes

Taxes are handled by WooCommerce. You are able to choose whether events are taxable on our settings page, and also choose a tax class that would apply specifically to events. This can be any current tax class in your WooCommerce setup, or you can choose to set up a specific tax class for events.

Since taxes are handled by WooCommerce, tax features in Events Manager booking admin pages are disabled. When a booking is made, any taxes added via WooCommerce will be added as a surcharge to maintain price parity.

Coupons, Surcharges and Discounts

Coupons, surcharges and discounts features in Events Manager will not affect the price of a booking on WooCommerce. Any discounts or surcharges will need to be handled by WooCommerce.

The Events Manager Pro coupons feature is disabled automatically, but you can enable coupons in WooCommerce.

Surcharges/Discounts applied to a WooCommerce order won’t be reflected in Events Manager booking summaries, since it is not reliably possible to link discounts/surcharges to one specific product in a WooCommerce order of multiple items.

Similarly, surcharges/discounts added programmatically to Events Manager will be shown in booking summaries in Events Manager, but not in WooCommerce.

User Form Fields

Custom user form fields available in Events Manager via our forms builder will not be shown on booking forms, since this information is intended to be handled during the final stages of a booking and booking multiple events at once can potentially create a conflict of form fills.

However, it is possible to use WooCommerce features and add-ons to modify their checkout form.

Free Bookings

Free bookings will still go through WooCommerce cart/checkout, although it will still be free and not require payment.

MultiSite Compatibility

Our WooCommerce integration is MultiSite-compatible the same way WooCommerce is Multisite-compatible, meaning you can install WooCommerce separately onto each blog as independent shops. You will also need to activate Events Manager and the WooCommerce integration on each sub-blog too.

However, our Multisite Global Tables mode may not work as expected in all situations. If you are listing an event from another site on your network on a site that does not have WooCommerce installed (along with our integration add-on), the booking will be made directly via Events Manager.

Conversely, if you create events on subsites without WooCommerce enabled, but list it on your main site (or any subsite) with WooCommerce and our integration add-on enabled, bookings made on that site will be added to the cart and be bookable via WooCommerce.

Known Limitations

WooCommerce and Events Manager are separately very complex plugins and enable other plugins, themes or extensions/add-ons to alter their behaviour. It’s impossible to test them all, so there may be compatibility issues with some plugins not included in this section, this list is not exhaustive.

However, there are some known limitations due to the way both plugins work with each other. Some of these may be addressed in the future with further specifically-targeted development for these features.

See the ‘How it Works‘ section further down.

In most if not all cases, these compatibility issues would be limited to WooCommerce orders with Events Manager bookings. Orders without event bookings or individual non-event products would likely remain unaffected.

If you do find any incompatible plugins, let us know via our support forums so we can add them to this list, or possibly even add compatibility!

Multi-Currencies

WooCommerce has several multi-currency extensions. Events Manager does too, but they are not compatible with each other and a compatible WooCommerce currency extension would be what’s required.

It’s possible that a compatible extension exists already, we have not tested any at this time.

For multiple currencies to work, the extension would need to keep the base price of the product (event ticket) in the original currency. The Events Manager booking forms and pages would still show the base currency, but it’s possible that whilst checking out this could be converted to a different currency.

More testing of 3rd party extensions is required, and further development may be possible here.

Product Bundles

WooCommerce offers product bundle extensions, where you can group products together and purchase them all at once. Whilst you can use the extensions with regular products, you cannot bundle events.

Due to the fact that a booking must be made via Events Manager to add a product to the WooCommerce cart, this feature currently isn’t possible since you’d be adding products directly via WooCommerce to the cart without generating a booking in Events Manager.

More testing of 3rd party extensions is required, and further development may be possible here.

Hold stock not currently available

The hold stock feature in WooCommerce isn’t available for events. When an booking is added to the cart, checks are made upon each page load to ensure the booking is still valid and available.

More testing of 3rd party extensions is required, and further development may be possible here.

WPML & Multilingual Capability

Currently, WPML translation of events added to the cart isn’t available. Most other WPML features should work as before for both Events Manager and WooCommerce.

This will be addressed in the near future.

Single Booking Buttons

Events Manager offers a quick ‘Book Now’ button for logged in users, which creates a single-space booking to the event for the first available ticket.

This will only work with WooCommerce currently if your events do not require a privacy checkbox or any other custom form field requiring to be filled out.

This will be addressed in the near future.

How it Works

Here is a brief technical explanation of how Events Manager interacts with WooCommerce. Whilst this is not directly aimed at developers, they may find this most useful, along with those needing to understand how both plugins interact with each other in order to evaluate 3rd party extensions.

Events as Products

Each event will have a corresponding event product in WooCommerce, with product variations representing each ticket available for booking at that event with the corresponding price of that ticket per space. These products are merely placeholders in the WooCommerce infrastructure and not meant to be edited or altered, the following will be synced automatically with events:

  • Featured Image (for cart display)
  • Ticket names, descriptions and prices.
  • Product/Event Author
  • Taxability and Tax Class
  • Custom SKU (EM-event_id-ticket_id)

These event/ticket products are created when an event booking form is displayed on your site. Therefore, if you already have many events when installing this add-on, you will not see corresponding event products at first.

These products are hidden from all views except for the event view in the admin area. You will see an Events link at the top of the events table, which is grouped using the events-manager product tag (which is also hidden from lists including tag admin pages).

Booking Process

Bookings are temporarily held in a WooCommerce session as an associative array of bookings with event IDs as keys, which is held along with shopping cart data. When a booking is placed in Events Manager, the following happens:

  1. Standard validation (availability, form data etc.) is made to ensure booking can be made.
  2. WooCommerce ticket products are retrieved or created and then added to the cart with the corresponding quantities.
  3. When a user checks out, each booking in the session associated with tickets in the cart/order will be saved.
  4. Saved bookings are associated with each individual ticket by booking id.

Double-booking events

The same event cannot be added to the cart twice. However, an event may be booked more than once on separate orders if your Events Manager settings allow it.

Removing/restoring cart items

You can remove/add individual tickets from the cart, and even restore/undo this action. What happens here, is that tickets are placed into another session variable and merged back into bookings if restored.

An event could be re-booked in this case, if no tickets belonging to that specific event remains in the cart. If the user then tries to restore a previously deleted ticket, it will only be merged back and restored into the booking if the same ticket has not been added to the cart.

Order Status Syncing

Booking statuses will be synced with order status, an initial order will be marked as ‘awaiting payment’ and then pending/confirmed when an order status is changed to ‘processing’ (such as when a payment is made).

Changing the booking status of an individual booking will not change the status of an order. This is because orders may contain more than one booking or additional unrelated products.

Changing an order status will change the booking status of each associated booking. Deleting an order will delete the corresponding bookings.