Skip to content

Repository files navigation

SeatLayer WordPress Seating Chart Plugin

SeatLayer interactive seating charts

Plugin checks WordPress plugin License: MIT

The official SeatLayer plugin adds interactive seating charts and seat maps to WordPress for event ticket sales with reserved seats. Buyers choose exact seats or find a group with Best Available, explore 3D on supported devices, and check out through your connected Stripe or Razorpay account.

Create theatre, auditorium, concert and dinner-show layouts in SeatLayer, then publish them on WordPress with a Gutenberg block or shortcode.

SeatLayer plugin on WordPress.org · WordPress seating chart integration guide · WordPress reserved-seating features · SeatLayer dashboard · Buyer seat-map demo

The buyer experience

  • Interactive venue maps with live seat availability
  • Exact-seat selection with section, row, seat, and price details
  • Reserved rows, tables, booths and mixed general-admission areas
  • Accessible-seat labels and floor navigation from the published chart
  • Best-available seating for buyers who want a suitable group together
  • Interactive 3D on supported browsers and devices, with the complete 2D picker as fallback
  • Ticket tiers, prices, and active offers shown in the selection journey
  • Temporary seat holds that protect the buyer while they check out
  • Responsive controls designed for desktop and mobile screens
  • Chart branding and category colours configured in SeatLayer
  • Stripe or Razorpay payment through the organizer's connected account
  • Email ticket confirmation after a completed order

Seat availability, holds, prices, offers, and order totals remain authoritative on SeatLayer's servers. The WordPress page presents the experience without duplicating ticketing state in the WordPress database.

See interactive 3D seat views and best-available seat selection for the corresponding buyer workflows. The same renderer has a public 53,018-seat stadium demo with published measurements; evaluate your own WordPress page, theme and target devices before opening sales.

For organizers

  • Add a chart with the SeatLayer seating chart block, including wide/full alignment where the WordPress theme supports it
  • Use [seatlayer_chart event="ev_..."] in shortcode-based builders
  • Select events from a dropdown after adding an optional SeatLayer secret key
  • Keep using event keys without storing a secret key in WordPress
  • Load the SeatLayer browser SDK only on pages that contain a seating chart
  • Manage venue layouts, ticket types, pricing, offers, orders, and issued tickets from the SeatLayer dashboard

Checkout choices

Hosted checkout — default

The chart runs on the WordPress page. After choosing seats, the buyer continues to SeatLayer's hosted buyer page to complete checkout. This requires the least WordPress configuration and remains the automatic fallback.

In-page checkout — optional

Enable Let buyers pay without leaving this site under Settings → SeatLayer. Razorpay opens on the page; Stripe opens its secure checkout and returns the buyer to the original WordPress page. The site's exact origin must be registered as an embed domain in SeatLayer.

Quick start

Request Managed Ticketing access for your SeatLayer organization first. Once approved, Hosted Checkout is enabled for the account and you can create a Managed event. See Managed Ticketing pricing for the service's usage charges.

  1. Install and activate SeatLayer Seating Charts from WordPress.org.
  2. Create a venue, chart, event, ticket tiers, and any offers in the SeatLayer dashboard.
  3. Connect Stripe or Razorpay under Payments.
  4. Add the SeatLayer seating chart block to a WordPress page.
  5. Enter or select the event and publish the page.

The public chart needs only the event key. A SeatLayer secret key is optional and is used server-side only to populate the block editor's event dropdown.

Shortcode

[seatlayer_chart event="ev_123" locale="en" currency="USD"]

event is required. height (320–2000, default 640) and max_selection (1–50, default 10) are also accepted, and locale and currency are passed through to the seat picker. Currency is a display fallback; event prices remain authoritative.

See the WordPress.org readme for the complete requirements, external-service disclosures, and frequently asked questions.

Frequently asked questions

How do I sell tickets with seat selection on WordPress?

With Managed Ticketing access approved, install the SeatLayer plugin, create your venue, chart, and event in the SeatLayer dashboard, connect Stripe or Razorpay under Payments, then add the SeatLayer seating chart block to a page and choose the event. Buyers pick exact seats on your WordPress page, the selection is held on SeatLayer's servers, and payment completes through your own gateway account. Checkout follows the hosted or eligible in-page flow described above.

Is there a WordPress event ticketing plugin with a seat map?

This plugin is the seat-map front end for SeatLayer's reserved-seating and ticketing platform. WordPress renders the interactive chart, while venue layouts, ticket tiers, pricing, offers, live availability, orders, and ticket delivery are managed in SeatLayer. Venue design stays in the SeatLayer dashboard, and authoritative server-side holds prevent overlapping seat sales.

Can I use my own payment provider?

Payment runs through the Stripe or Razorpay account you connect to SeatLayer, so the money arrives in your own gateway account rather than being collected on your behalf. SeatLayer computes the authoritative amount from its own hold records and never accepts a price from the WordPress page. Other providers are not supported by this plugin today; if you need a different gateway, build a custom checkout against the SeatLayer holds and checkout flow instead.

Does this work with WooCommerce?

The plugin can run on a site that also uses WooCommerce. SeatLayer ticket purchases use your connected Stripe or Razorpay account and do not create WooCommerce cart line items or orders.

Can two people buy the same seat?

No. A temporary hold reserves the buyer's selected inventory on SeatLayer's servers during checkout. Only one hold can exist per seat. If the buyer does not pay in time, the hold expires automatically and the seat returns to sale. In the rare case where a payment succeeds after the hold expired, the buyer is refunded automatically and the order is flagged in the SeatLayer dashboard.

Do I need a SeatLayer secret key?

No. The public seating chart works with the event key alone, which is not a secret. A secret key is optional, is stored only in your WordPress database, is used server-side only to list your events in a dropdown in the block editor, and is never sent to a browser. Leave it blank and paste event keys by hand if you would rather not store it.

Will the plugin slow down my site?

The seating chart's stylesheet, the plugin's mount script, and SeatLayer's browser SDK load only when a page renders a chart. Pages without a chart load no plugin assets. This release pins the SDK to seatlayer-js@0.80.3, and the plugin emits no inline JavaScript.

Continue your WordPress integration

SeatLayer SDK ecosystem

Surface Package or source
WordPress seatlayer-seating-charts (this plugin)
JavaScript @seatlayer/js
React @seatlayer/react
Vue @seatlayer/vue
Angular @seatlayer/angular
React Native @seatlayer/react-native
iOS seatlayer-ios
Flutter seatlayer
Android seatlayer-android
Server SDKs Node.js, Python, PHP, Ruby, .NET, Java, and Go

Development

The plugin intentionally has no runtime Composer or npm dependency. WordPress's HTTP layer handles the small server-side API surface, while the public seating experience loads the exact seatlayer-js@0.80.3 browser SDK release only when required. Update SEATLAYER_SDK_VERSION and the documented CDN URL together after verifying the new release.

Run the focused local checks:

for file in seatlayer.php uninstall.php includes/*.php; do php -l "$file"; done
node --check assets/js/frontend.js
node --check assets/js/block.js
php tests/settings-logic.php
node tests/frontend-options.js

See CONTRIBUTING.md for contribution guidance and RELEASE.md for the release procedure.

Releases

GitHub is the source of truth. Publishing a non-prerelease GitHub Release runs the focused checks, validates that the release tag matches the plugin and stable versions, deploys that tag to the required WordPress.org SVN repository, and attaches the installable ZIP to the GitHub Release.

WordPress.org still uses SVN behind the scenes; maintainers do not need to run the normal SVN synchronization manually.

License

MIT © SeatLayer

About

SeatLayer's official WordPress plugin — interactive reserved-seating charts with live availability, seat selection, holds, and ticket sales through your own Stripe or Razorpay account.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages