My Tickets has been written to be as accessible as I can make it — it uses ARIA live regions to ensure that shopping cart feedback is immediately available to those who need it, uses solid, semantic HTML markup, and considers all the best practices for form labeling.

Accessibility is a priority for me, and is one of my primary focuses in development – but that doesn’t mean that I’ve caught every possible issue! If you find an accessibility issue, please do report it to me like any other issue – it’s a bug, and it needs to be fixed!

Add to cart forms

Add to Cart form example

The form to add an event to your cart can be automatically added to any My Calendar event or to any type of post or Page in WordPress. There are plugin settings that impact what will be shown, but in general it will include:

  1. A notice indicating any current restrictions. In the shown example, the event is happening too soon for tickets to be shipped by mail – when you’ve configured a number of days it general takes for tickets to be shipped by mail, that option will be automatically restricted if an event is happening too soon for the tickets to be shipped.
  2. The number of tickets remaining for the event.
  3. Fields to select the number of tickets for each ticket type, along with the price of that ticket. In this example, the tickets are being sold using “continuous” counting, so the number of tickets remaining is displayed above the ticket types. If this was being sold using “discrete” counting, the number of tickets remaining for each ticket type would be shown.
  4. An Add to Cart button

Alternate add to cart form, with discrete counting and single-purchase only.

When the event is added to the cart, a notice is displayed that indicates that the cart has been updated and providing a link to the shopping cart page for the user to complete their purchase.

Additionally, if you’re using the Quick Cart (which can be added to a theme filter, via a widget, or via the shortcode “[quick-cart]”), the number of tickets in the cart and the total price of those tickets will be updated at the same time.

The “Add to Cart” form is not the only way to add tickets to a cart. You can also add tickets to a cart using a link. The format for an add to cart link is /cart_page/?mt_add_to_cart=true&event_id=POSTID&ticket_type=TYPE&count=COUNT.

Try it: Add 2 adult tickets to demo event.


There are three cases where email notifications can be sent for any purchase: successful purchases, failed purchases, and refunded purchases. Refunds can only be processed from the payment gateway at this time; there’s no mechanism to refund a purchase from within My Tickets. You’ll need to login to your payment processor to post a refund.

In all cases, an email will be sent both to the administrative recipient and to the purchaser. All messages can be customized, and can be sent either as plain text or as HTML. By default, they’re sent as very simple HTML.

For offline payments, the “Completed” message will actually be sent immediately, without waiting for payment. In the administration, the payment will be marked as “Pending” until you manually mark it as received. At that time, the purchaser will receive a second notification indicating that their payment is completed.

Ticket IDs are not generated until the payment is completed, so for any payment that hasn’t been completed, no tickets will exist.

Payment process

The payment form re-confirms the shopping cart, but without the options to change the number of tickets or remove a ticket. The payment fields required can vary widely; if the shipping option is enabled, the purchaser’s address will be required. will request the usual credit card information, etc.

Credit card numbers are never saved to your site by any payment gateway developed by or sold by Joe Dolson Accessible Web Design; but I can’t make guarantees about any payment gateways you have custom developed or purchase elsewhere.

Example of Payment Form

Quick Cart

The “Quick Cart” shows the number of tickets currently in a visitor’s shopping cart and the total price of their cart, with a link to check out. By default, it looks like this:

In your cart: 7 tickets | $56.00 | Checkout

Like everything else in My Tickets, the default CSS is very spartan, to allow you to customize easily, without needing to override existing styles. The HTML, however, has many available hooks for you to use for your own design needs.

<div class='mt-quick-cart' aria-live='polite'>In your cart: <span class='mt_qc_tickets'>7</span> tickets
	<span class='divider'>|</span> 
	<span class='mt_currency'>$</span><span class='mt_qc_total'>56.00</span>
	<span class='divider'>|</span> 
	<a href="">Checkout</a>


receiptImmediately following a completed cart submission, purchaser will receive a notification from your web site about their purchase. The information included in that notification email is set in settings, but it should always include a link to the purchase receipt.

Purchases that were made using an off-line payment type will still receive a receipt link, but in the ‘Payment’ section of the receipt, it will indicate that the payment has not yet been completed. Once you mark the purchase as Completed in the Payments section of the WordPress admin, the receipt will include those payment details.

The text “Add your business name and address to the post content” is customized by editing the WordPress Page My Tickets creates for your receipts. This is recommend content, standard for a receipt; but you can add any information you need onto your receipts.

Receipts can be extensively customized using theme template files. The templating in My Tickets includes a library of templating functions that you can use in your receipt or ticket templates.

Shopping Cart

The shopping cart shows a variety of information about the events, including the title, date, and time. If the event came from My Calendar, it’s not always possible to provide a link back to the event, in which case the title will be unlinked. For posts and post types, there will always be a link back to the post permalink with the title.

Events that have featured images will also include the image for that event in the shopping cart.

At the first stage of the shopping cart, purchasers need to add their name, email address, ticket type, and choose their preferred payment gateway. If only one payment gateway is configured, the cart will automatically be set to that gateway.

Simple gateways (like the provided PayPal standard gateway) don’t require any additional name or email information; gateways that do require that information will have it automatically entered from the previous fields, so users don’t need to enter the information twice.

All tickets in a given cart need to use the same type of ticket.

Shopping Cart example

Ticket Types

Shows the select menu for choosing ticket types.My Tickets supports four types of tickets: e-tickets, printable, will call, and postal, to try and best integrate with your event work flow. The type of ticket purchased is determined at the time of payment, so it’s not possible to mix and match events and ticket types: all events need to be sold with the same available types of ticketing.

E-tickets are intended to be presented at the event using a mobile device. You can use your own mobile phone with any QR code reader to scan the ticket and verify it.

Printable tickets are the same as e-tickets, except that they’re designed to be printed. You can also scan the QR code on a printable ticket to verify it.

Will Call assumes that you produce your tickets as a separate process, and will simply produce a report of purchasers to check against and prepare tickets for pick-up. You can produce a list of ticket purchasers and the tickets they purchased from the reporting tab in the My Tickets settings.

Postal tickets assume that you will print a ticket for the purchaser and ship it to them. My Tickets allows you to set a single price for shipping that will be added to an order; it doesn’t provide any method to automatically produce shipping costs. As an administrator, you’ll have access to view the printable ticket for any purchaser, so you can use that to print a ticket if you wish, or produce tickets using a completely independent process.

You can enable any combination of tickets and the purchaser choose the type of ticket they want to purchase.

E-tickets and printable tickets can be extensively customized using theme template files. The templating in My Tickets includes a library of templating functions that you can use in your ticket templates.