Flexatech Stay Suite
Professional hotel room booking: rate plans, realtime availability, overbooking-safe holds, and modern payments.
Solid choice
Flexatech Stay Suite is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.
- Actively developed — last update 2 weeks ago
- Tested with the latest WordPress (7.1)
- Small user base (<10 active installs)
- Very few reviews so far
- Needs PHP 8.2 or newer
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Flexatech Stay Suite stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| availability | >100 |
| booking | >100 |
| Hotel | >100 |
| reservation | >100 |
| rooms | >100 |
About Flexatech Stay Suite
From the official readme · v1.6.0Description
Flexatech Stay Suite is a professional room-reservation system for WordPress. It manages hotel rooms, rate plans with date-specific price and availability overrides, realtime availability computed straight from bookings (no stale caches), time-limited holds that prevent overbooking, coupons, and modern payment gateways with signature-verified, idempotent webhooks.
Every amount is stored and computed as integer cents, and the total charged is always re-computed on the server at checkout, so a tampered client payload can never lower the price.
📚 DOCUMENT
Highlights
- Rooms as a custom post type with per-room inventory, capacity, deposit, and extras.
- Rate plans with priority, min/max stay, and per-date-range / day-of-week price rules.
- Realtime availability using half-open night semantics
[check_in, check_out), so same-day turnover (a guest checks out and another checks in the same day) works correctly. - Overbooking-safe holds: a time-limited hold reserves inventory during checkout and is swept automatically when it expires (WP-Cron).
- Coupons (percentage or fixed amount) with usage limits and expiry.
- Payment gateways: Offline / bank transfer (built in), plus Stripe and PayPal with sandbox/live modes and webhook verification. The charged amount always equals the server-computed total.
- Transactional emails for booking received (customer + admin), processing, completed, cancelled, and payment receipts, each toggleable with a custom subject.
- A modern React admin app for the dashboard, calendar, bookings, rate plans, coupons, and settings, backed by a versioned REST API (
flexatech-stay-suite/v1). - WP-CLI commands and full privacy exporter/eraser integration.
Storefront pages
Room browsing works with no setup: single room pages at /rooms/{slug}/, the room archive at /rooms/, and room-type and amenity archives all render inside your active theme automatically. Your theme’s own room templates take priority, and every plugin template can be overridden from a flexatech-stay-suite/ folder in your theme. Return false from the flexatech_stay_suite/frontend/use_default_templates filter to turn the automatic routing off.
For the cart and checkout steps, create a few pages under Pages → Add New and paste one shortcode into each, then Publish:
- Cart (required):
[flexatech_hotel_cart] - Checkout (required):
[flexatech_hotel_checkout] - Booking Confirmation (required):
[flexatech_hotel_thankyou] - My Bookings (recommended):
[flexatech_hotel_account] - Book a Room (optional landing page):
[flexatech_hotel_search]and[flexatech_hotel_rooms]
The plugin finds these pages by scanning your published pages for each shortcode, so the titles and slugs are up to you. Put each flow shortcode on its own published page; if the same shortcode appears on more than one page, the first match is used. The Cart, Checkout, and Booking Confirmation pages are required because the flow redirects between them.
The three browsing shortcodes are also available as editor blocks: Room Search, Room List, and Single Room Booking.
Shortcode reference:
[flexatech_hotel_search]: date and guests search form. Optionalredirect="URL"sends results to another page.[flexatech_hotel_rooms]: grid of bookable rooms. Optionalper_page,columns, androom_type.[flexatech_hotel_room id="123"]: one room’s booking widget;iddefaults to the current room on a room page.[flexatech_hotel_cart],[flexatech_hotel_checkout],[flexatech_hotel_thankyou],[flexatech_hotel_account]: the cart, checkout, confirmation, and account screens.
The “Storefront pages” steps above are the full setup walkthrough; the FAQ below covers the common questions.
External services
This plugin can connect to Stripe and PayPal to take online payments for bookings. Both integrations are optional: the plugin only contacts them if the site owner enables that gateway in Settings → Payments with their own API keys and a guest actually selects it at checkout. The built-in Offline / bank-transfer gateway makes no external calls.
Card numbers are never sent to or stored on your server. Stripe collects card details in the browser (via Stripe.js) and your site only handles the resulting PaymentIntent id and client secret.
Stripe
Stripe processes credit-card payments when the Stripe gateway is enabled and a guest chooses to pay by card. Your site sends requests to the Stripe API (https://api.stripe.com) in these cases:
- When a guest starts a card payment at checkout, the plugin creates a PaymentIntent. It sends the charge amount (in the smallest currency unit), the currency, and the booking order id and order code as metadata.
- When you issue a refund, the plugin sends the PaymentIntent reference and the refund amount.
- Stripe also sends webhook notifications back to your site to confirm payment; the plugin only verifies the request signature against your webhook secret and does not send data to Stripe in response.
Your Stripe secret key is sent in the request authorization header so Stripe can authenticate the call.
Stripe’s terms and privacy policy: https://stripe.com/legal/ssa and https://stripe.com/privacy
PayPal
PayPal processes payments when the PayPal gateway is enabled and a guest chooses to pay with PayPal. Depending on sandbox or live mode, your site sends requests to https://api-m.sandbox.paypal.com or https://api-m.paypal.com in these cases:
- To authenticate, the plugin exchanges your PayPal client id and client secret for an OAuth access token.
- When a guest starts a PayPal payment at checkout, the plugin creates a PayPal order, sending the amount, currency, and the booking order id and order code as the order reference.
- When you issue a refund, the plugin sends the capture reference and the refund amount and currency.
- PayPal also sends webhook notifications back to your site to confirm payment; the plugin verifies each notification by calling PayPal’s verify-webhook-signature endpoint with your webhook id before acting on it.
PayPal’s user agreement and privacy policy: https://www.paypal.com/us/legalhub/useragreement-full and https://www.paypal.com/us/legalhub/privacy-full
Deactivation feedback
When you deactivate the plugin from the Plugins screen, a short optional feedback form asks why you are leaving. Whether you submit a reason or skip it, the plugin sends the result to the FlexaTech product-intelligence service at https://product-intelligence.flexacommerce.com so we can improve the plugin. This runs only in wp-admin, only around deactivation (and the following reactivation), and never blocks deactivation: if the service is unreachable, the plugin still deactivates normally.
What is sent: an anonymous per-site identifier (a random UUID generated on your site), the plugin slug, tier and version, the deactivation reason and any comment you choose to provide, and basic environment information (WordPress version, PHP version, and site locale). No email address, domain name, or raw IP address is sent.
FlexaTech service and privacy information: https://flexacommerce.com
Installation
- Upload the
flexatech-stay-suitefolder to/wp-content/plugins/, or install the zip via Plugins → Add New → Upload Plugin. - Activate the plugin through the Plugins screen in WordPress.
- On first activation you land on the Setup screen. It shows a live completion checklist, guides you through each step, and creates the cart, checkout, and confirmation pages in one click.
- Open the “Flexatech Stay Suite” admin menu to configure currency, booking rules, taxes, payment gateways, and emails.
- Create a property, add rooms with inventory and capacity, and add rate plans with pricing rules. The Setup screen tracks each of these until you are ready to accept bookings.
Full documentation and a step-by-step user guide are online at https://flexatech-stay-suite.vercel.app/
The full source code, including the admin app and its build tooling, is public on GitHub: https://github.com/flexatech/flexatech-stay-suite
To build from source:
- Clone the repository:
git clone https://github.com/flexatech/flexatech-stay-suite.git - Build the admin dashboard bundle:
cd apps/admin && pnpm install && pnpm build(writes the compiled assets toassets/dist). - Copy the plugin folder into
/wp-content/plugins/, or run./release.shto produce a distributable zip inbuild/.
Frequently asked questions
How do I set up the booking pages on the front end?
Room browsing (single rooms and archives) is generated automatically inside your theme, so those need no setup. For the cart and checkout steps, create a Cart, Checkout, and Booking Confirmation page and paste [flexatech_hotel_cart], [flexatech_hotel_checkout], and [flexatech_hotel_thankyou] into them respectively, then publish. A “My Bookings” page with [flexatech_hotel_account] is recommended. The plugin discovers these pages by their shortcode, so you can name them anything. See the “Storefront pages” section above for the full walkthrough.
Can a customer manipulate the price at checkout?
No. The client never sends amounts. The server re-quotes the entire cart from the room’s rate plans and inventory at checkout, so the charged total is always the authoritative server figure.
Does it prevent overbooking?
Yes. Availability is computed directly from bookings and time-limited holds, with commit-time re-checks, so two guests cannot book the last room at the same time.
Which payment gateways are supported?
Offline / bank transfer is built in and enabled by default. Stripe and PayPal are included with sandbox and live modes; enter your keys in Settings → Payments to enable them.
Where is the source for the admin app?
The admin dashboard is a React and TypeScript app. Its readable source ships in apps/admin/src, along with its build manifest (apps/admin/package.json, apps/admin/vite.config.ts, apps/admin/tsconfig.json). To rebuild the compiled bundle in assets/dist, run pnpm install then pnpm build inside apps/admin. The complete source and build tooling is public on GitHub: https://github.com/flexatech/flexatech-stay-suite
Changelog
1.6.0
- New: Airbnb-style guest picker on the room booking form. Adults, children, infants, and pets each get their own stepper inside a dropdown, and the widget shows “Add dates for prices” until you pick a stay. Infants and pets are sent with the booking and stored on the order.
- Improvement: The room editor’s Rooms & Pricing box now explains that nightly prices live on the Rates page and links straight there; the Rates & Inventory screen shows the selected room’s property, capacity, and a shortcut to edit the room. Easier to find where each setting belongs.
- Developer: New extension points for add-ons.
flexatech_stay_suite/checkout/linelets an add-on add fees to a priced line, andflexatech_stay_suite/booking/guest_capssupplies per-room guest limits to the storefront. Used by the separate Occupancy add-on for per-guest pricing and caps; the free plugin adds no limits or fees on its own.
1.5.0
- Developer: Added extension points for add-ons. New filters
flexatech_stay_suite/booking/balance_due_cents(outstanding balance, for deposit/instalment flows),flexatech_stay_suite/cancellation/fee_cents(fee retained on a self-cancel), andflexatech_stay_suite/booking/validate(return a WP_Error to reject a stay, e.g. minimum-nights or closed-to-arrival rules; enforced at checkout and surfaced during quote). New repository methodoccupying_in_range()lists booked rooms across a date window for calendar/iCal export. No change to how the plugin behaves on its own.
1.4.1
- Improvement: On a flexible-dates search, each room card now shows the total price for the matched stay (its dates are fixed) instead of a nightly “from” figure, so the number matches what the search ranked on.
1.4.0
- New: “My bookings” now links each booking to your account, not just your email address. Bookings you made while logged in stay in your history even if you later change your account email, and a guest booking is attached to your account the next time you log in with the same email. Existing bookings are matched to their owner automatically on update.
1.3.1
- New: The booking progress timeline now shows a real date and time for each step (placed, confirmed, cancelled, refunded), recorded whenever a booking changes status. Bookings made before this update show no time on a step rather than a made-up one.
- Performance: “My bookings” now looks up a guest’s bookings through an indexed email column instead of scanning the whole orders table, so the account page stays fast as bookings grow. Existing bookings are backfilled automatically on update.
1.3.0
- New: Airbnb-style date range picker on the search and booking forms. A two-month calendar with range selection replaces the plain date fields, while the native inputs stay the source of truth so existing behaviour is unchanged.
- New: Flexible dates on room search. Pick a “± days” range (1, 2, 3, 7, or 14) and the search widens to nearby check-in dates; each room shows the cheapest bookable window and the exact dates it matched. The price is always computed on the server.
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Flexatech Stay Suite alternatives
All availability plugins →FAQ
Flexatech Stay Suite: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Oct 10, 2026
Is Flexatech Stay Suite free?
Yes. Flexatech Stay Suite is free to download and use from the official WordPress.org plugin directory.
Is Flexatech Stay Suite safe to use in 2026?
Flexatech Stay Suite is a solid plugin choice in 2026, with a few things worth checking first. Was last updated 2 weeks ago, and scores 64/100 on our health check.
How many websites use Flexatech Stay Suite?
Flexatech Stay Suite is active on <10 WordPress websites and has been downloaded 162 times since it launched in September 2026. It was downloaded 171 times in the last 30 days.
Does Flexatech Stay Suite work with WordPress 7.1?
Yes. The developer has tested Flexatech Stay Suite up to WordPress 7.1.3, the latest release. It requires WordPress 6.4 or newer.
What PHP version does Flexatech Stay Suite need?
Flexatech Stay Suite requires PHP 8.2 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Flexatech Stay Suite last updated?
The latest version, 1.6.0, was released on September 24, 2026 (2 weeks ago).
Who makes Flexatech Stay Suite?
Flexatech Stay Suite is developed and maintained by FlexaTech.
What are the best alternatives to Flexatech Stay Suite?
The most popular alternatives to Flexatech Stay Suite are Availability Datepicker (10K+ installs), Booqable Rental Plugin (1K+ installs) and Twice Commerce (300+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card