The official SeatLayer plugin adds an interactive seating chart and seat picker to WordPress so you can sell tickets with seat selection on your own site. Buyers explore a real venue map, see live availability and prices, choose exact seats or ask for the best seats together, and their selection is protected by a temporary hold while they check out through your connected Stripe or Razorpay account.
SeatLayer plugin on WordPress.org · WordPress seating chart integration guide · SeatLayer reserved-seating platform · SeatLayer dashboard · Buyer seat-map demo · SeatLayer AI Toolkit
- Interactive venue maps with live seat availability
- Exact-seat selection with section, row, seat, and price details
- Best-available seating for buyers who want the closest group together
- 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
- 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.
- Add a chart with the SeatLayer seating chart block
- 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
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.
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.
- Install and activate SeatLayer Seating Charts from WordPress.org.
- Create a venue, chart, event, ticket tiers, and any offers in the SeatLayer dashboard.
- Connect Stripe or Razorpay under Payments.
- Add the SeatLayer seating chart block to a WordPress page.
- 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.
[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.
See readme.txt for the complete WordPress.org description, requirements,
external-service disclosures, and frequently asked questions.
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. No separate ticketing site or manual seat assignment is involved.
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. It is not a standalone seating designer and does not store ticketing state in your WordPress database, which is what keeps two buyers from being sold the same seat.
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.
Not yet. Buyers pay through SeatLayer's checkout using your connected Stripe or Razorpay account, not through a WooCommerce cart or gateway. A WooCommerce integration that turns seats into cart line items is planned separately, so today the plugin coexists with WooCommerce on the same site rather than extending it.
No. A seat is held on SeatLayer's servers the moment a buyer selects it, and 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.
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.
No. The seating chart's stylesheet, the plugin's mount script, and SeatLayer's version-pinned browser SDK are registered but enqueued only when a page actually renders a chart. Pages without a chart load nothing extra, and the plugin emits no inline JavaScript, so it works on sites with a strict Content-Security-Policy.
- Read the WordPress seating chart integration guide for setup, block usage, and checkout configuration on a live site.
- Choose the right SeatLayer integration before deciding between the WordPress plugin, a hosted event page, and a custom checkout.
- Connect seat holds to secure server-side checkout when you need a gateway or cart the plugin does not cover.
- Run the complete checkout example to see a buyer hold id connected to payment and idempotent booking.
- Compare SeatLayer's mobile seat map SDKs when the same events also need a React Native, Flutter, iOS, or Android app.
- Explore the 3D seating chart for web buyers as a separate browser capability alongside the 2D WordPress chart.
- Point AI coding agents at the SeatLayer docs index
(
llms.txt) for an agent-readable map of the documentation. - Report a plugin issue or ask a question about the WordPress integration.
| Surface | Package or source |
|---|---|
| WordPress | seatlayer-seating-charts (this plugin) |
| JavaScript | @seatlayer/js |
| React | @seatlayer/react |
| React Native | @seatlayer/react-native |
| iOS | seatlayer-ios |
| Flutter | seatlayer |
| Android | seatlayer-android |
| Server SDKs | Node.js, Python, PHP, Ruby, .NET, Java, and Go |
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 SeatLayer's version-pinned browser SDK only when required.
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.jsSee CONTRIBUTING.md for contribution guidance and RELEASE.md for the release procedure.
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.
MIT © SeatLayer
