Web321 Cart for EventPrime
This add-on lets customers add tickets for multiple EventPrime events to one persistent cart before paying once.
It works inside WordPress and stores cart state in MySQL.
Setup
- Install and activate EventPrime.
- On activation the plugin creates Cart, Checkout, Booking Complete, and Booking Not Completed pages containing the required shortcodes; reassign them any time from EventPrime → Settings → Pages or from the plugin settings screen.
- Configure cart settings under EventPrime → Shopping Cart (or Settings → Shopping Cart when EventPrime is inactive). The plugin is also listed under EventPrime → Settings → Extensions with a Manage link.
- Keep EventPrime payment, guest booking, coupon, and ticket settings authoritative; the cart reads those settings through its EventPrime adapter.
Adding tickets to the cart
Visitors can add tickets from two places: the add-to-cart form the plugin appends to single event pages, and an Add to Cart button inside EventPrime’s own ticket popup, shown between the native Checkout and Close buttons on cart-eligible events. Adding from the popup confirms the addition, links to the cart page, and resets the popup so the same tickets are not also booked through the native single-event checkout.
Shortcode reference
renders the persistent cart and checkout link.Your cart is currently empty.
renders order fields, attendee notes, coupon controls when available, and EventPrime-backed payment methods.Your cart is currently empty.
0Classes0 tickets in your class cart.renders the booking-cart badge: ticket icon, label, item count, and total, linked to the cart page. Attributes:label,show_label,show_count,show_total,hide_empty. The same badge is available as the EventPrime Booking Cart widget under Appearance → Widgets; the ticket icon and label keep it visually distinct from a WooCommerce cart widget on the same site.renders the post-purchase order reference, order status, and linked EventPrime bookings on thank-you/failure pages.No cart order reference was supplied.
Gateway setup
Offline checkout creates pending EventPrime bookings immediately. PayPal Standard initiation reuses detected EventPrime PayPal settings and returns customers to the configured success or failure page, where No cart order reference was supplied. can show the non-PII order reference and resulting bookings. Browser returns are treated as pending until PayPal IPN verifies payment; PayPal cancel returns reopen the cart and release holds.
Configuration reference
| Setting | Purpose |
|---|---|
| Enable cart | Turns cart endpoints and shortcodes on or off. |
| Cart eligibility | Chooses all non-seated events, opt-in events only, or no events. |
| Hold TTL | Controls how long capacity reservations last during checkout. |
| Abandon open carts after | Controls scheduled open-cart abandonment. |
| Payment methods | Enables available EventPrime-backed payment options. |
Privacy and retention
Cart tokens are opaque cookies. Expired holds are deleted automatically, abandoned carts are marked by scheduled cleanup, and converted cart/order rows are retained as audit history until a site administrator removes them under the site retention policy.
Known limitations
Seated events are excluded from v1 cart checkout. EventPrime fixed-field, attendee-field, coupon, offer, and native booking contracts must be confirmed for the target EventPrime version before production launch.
Payments
Offline, PayPal, and Stripe payments reuse the credentials configured in EventPrime — this plugin stores no gateway secrets. For Stripe, both the publishable key and the secret key must be entered under EventPrime → Settings → Payments → Stripe; the Stripe option only appears at checkout when the secret key is present. Card details are entered on Stripe’s hosted payment page, never on this site. Use Stripe test keys (sk_test / pk_test) on staging sites.
Stripe webhook and reconciliation
A buyer who pays on Stripe’s hosted page but never lands back on this site (closed tab, lost connection, guest checkout with no account to revisit) previously left a paid order with no booking. Two mechanisms now cover that gap: a Stripe webhook, configured under the Shopping Cart settings screen with the signing secret from the Stripe Dashboard, converts the order into a booking the moment Stripe confirms payment; and a 15-minute scheduled sweep independently re-checks any Stripe order left pending for more than five minutes, whether or not the webhook is configured. Both paths re-verify the payment directly against Stripe’s API before creating a booking.
Scheduling conflicts
If the cart contains two or more events whose times overlap, an advisory notice appears on the cart and checkout pages listing each overlapping pair. This is a heads-up only and never blocks checkout — a single order can include tickets for several people, so overlapping times may be intentional. On the checkout page the buyer confirms the overlap with a checkbox before booking.
Cart Orders screen
EventPrime → Cart Orders lists every order this plugin has created — date, customer, guest or account, gateway, transaction ID, status, and linked booking count — independent of how EventPrime’s own Bookings tab or reports filter guest bookings. Orders with no linked booking are flagged so a payment that never converted into a booking is visible without a customer having to ask. Filter by status, gateway, or a text search, and export the current filter to CSV.
Admin notifications
Two optional email notifications are available under the Shopping Cart settings screen, separate from EventPrime’s own customer-facing confirmation emails: one when a cart order becomes a booking, and one when a cart-created booking is cancelled or refunded (the cancellation email flags online payments as likely needing a manual refund in Stripe or PayPal). Both share a configurable recipient address and can be toggled off independently.
Troubleshooting
If bookings do not appear, confirm EventPrime is active and review the integration adapter for the installed EventPrime version. If availability appears stale, confirm the WordPress cron event web321_epcart_cleanup is running.
FAQ
Does this require WooCommerce? No. The add-on uses EventPrime data and its booking surface.
