Description
Flex Listings and Booking Manager helps you publish many bookable listings and accept reservations on WordPress — hotels, vacation rentals, car rental, tours, events, and services.
Developed by Usman Ali at WpRogers.
Source code (development, issues, releases): GitHub repository
Key features
- Dynamic booking types — create types for property, car, tour, or custom industries
- Multiple listing post types — rich single pages with gallery, map, FAQ, features, and pricing
- AJAX listing grid — keyword, price, guest, and sort filters with pagination
- Booking form — industry-aware fields, instant booking support, email notifications
- Partner / vendor portal — front-end registration, login, dashboard, add listings
- Gutenberg blocks & Elementor widgets — booking form, listing grid, search
- Admin dashboard — bookings overview, status management, activity charts
- Settings — currency, colors, layout, container width, notifications, demo content
- REST API — bookings and settings endpoints for integrations
- WooCommerce bridge — optional integration when WooCommerce is active
Shortcodes
[ulbm_booking_form id="1"]— booking form for a booking type[ulbm_listing_grid type="car-rental" columns="3" limit="12"]— filterable listing grid[ulbm_search]— search UI placeholder[ulbm_register]— partner registration[ulbm_login]— partner login[ulbm_dashboard]— partner dashboard[ulbm_become_partner]— partner call-to-action block
External services
Bootstrap 5.3.8, Bootstrap Icons 1.11.3, and Chart.js 4.5.1 are bundled inside the plugin (assets/vendor/) and enqueued from the site only on admin and booking UI screens. No CDN is used for those libraries.
Optional — Google Maps (not affiliated with Google): If the site owner enables embedded maps under Settings Partner Portal, listing pages can show a button for visitors to opt in before loading an iframe from https://maps.google.com/. Until the visitor clicks that button, no request is sent to Google. When loaded, the visitor’s IP address and map coordinates may be processed by Google. Terms: https://www.google.com/intl/en/policies/terms/ — Privacy: https://policies.google.com/privacy
Optional: Listing video embeds use WordPress wp_oembed_get() for URLs the site owner adds (e.g. YouTube). WooCommerce integration loads only when WooCommerce is active. Demo content uses placeholder images bundled in assets/demo/ (no remote downloads).
Privacy
Booking forms collect customer name, email, phone, and booking details stored in your WordPress database. Configure your site privacy policy for GDPR compliance.
Screenshots





Blocks
This plugin provides 3 blocks.
- Flex Listings Booking Form
- Flex Listing Grid
- Flex Listing Search
Installation
- Upload the
flex-multiple-listing-and-booking-systemfolder to/wp-content/plugins/or install via Plugins Add New - Activate Flex Listings and Booking Manager through the Plugins menu
- Go to Flex Listings & Booking Setup (first run) and choose your industries
- Open Flex Listings & Booking Settings to configure currency, colors, and layout
- Partner pages (register, login, dashboard) are created automatically — see Partner Portal tab
- Add listings under the plugin menu or import demo content from Settings Demo Content
- Embed grids and forms with shortcodes, blocks, or Elementor widgets
Build from source
If you clone from Git, run npm install && npm run build before use so /dist CSS and JS exist.
Submitting to WordPress.org
WordPress.org does not install plugins directly from GitHub. Use this flow:
- Download or clone from GitHub.
- Create a ZIP of the
flex-multiple-listing-and-booking-systemfolder containing only runtime plugin files. Do not includedev-tools/,node_modules/,vendor/,assets/src/, orpackage.json. The/distfolder must be included. With WP-CLI, runwp dist-archive . ../flex-multiple-listing-and-booking-system.zipfrom the plugin folder —.distignoreexcludes dev files automatically. - Submit the ZIP at WordPress.org Add Plugin (requires a WordPress.org account).
- After approval, releases are published via WordPress.org SVN — keep GitHub and SVN versions in sync.
Reviewers may read the GitHub repo for context; the ZIP upload is still required for review.
FAQ
-
Can I submit only my GitHub URL to WordPress.org?
-
No. You must upload a plugin ZIP through wordpress.org/plugins/developers/add/. Linking GitHub in this readme helps reviewers find source code and report issues.
-
How do I prepare the ZIP for WordPress.org?
-
Zip the
flex-multiple-listing-and-booking-systemdirectory so the archive unpacks to one folder namedflex-multiple-listing-and-booking-system. Includedist/,readme.txt, andLICENSE. Do not includenode_modules. Run Plugin Check on your site before submitting. -
Why is the text domain different from the folder name?
-
WordPress.org requires the text domain to match the plugin slug (
flex-multiple-listing-and-booking-system). The install folder may remainflex-multiple-listing-and-booking-systemfor compatibility with existing sites and GitHub releases. -
Does this work with any theme?
-
Yes. The plugin ships frontend styles and uses Bootstrap 5 on booking pages. Container width is configurable in Settings Layout.
-
Can partners add their own listings?
-
Yes. Enable the partner portal, assign the auto-created pages, and vendors can register, log in, and manage listings from the front end.
-
How is price displayed?
-
Set currency and position under Settings General. Each listing has base price, optional sale price, and suffix (e.g.
/ nightor/ booking). -
Is WooCommerce required?
-
No. WooCommerce integration is optional and loads only when WooCommerce is active.
-
What happens when I delete the plugin?
-
Custom database tables and plugin options are removed on uninstall. Use the
ulbm_uninstall_remove_all_datafilter to keep data if needed.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Flex Listings and Booking Manager” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Flex Listings and Booking Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.6
- Remove license key settings tab and related admin code
- Rebuild listing grid filters for theme and Elementor compatibility (visible inputs, sort toggle)
- Fix Gutenberg grid block so filter inputs are not stripped by kses
- Enqueue grid filter styles via public stylesheet instead of inline shortcode output
1.0.5
- Fix text domain: all plugin strings use
flex-multiple-listing-and-booking-systemonly - Submission ZIP excludes
dev-tools/via.distignore
1.0.4
- WordPress.org:
.distignoreand ZIP build script excludedev-tools/and source files - Gutenberg block render callbacks escape shortcode HTML via
wp_kses_post() - License key tab in Settings (optional purchase activation)
- Partners admin page and listing grid improvements
1.0.3
- Demo content: bundled local placeholder images in
assets/demo/(no remote Picsum downloads) - Removed invalid external-service link from readme
1.0.2
- Plugin slug and text domain: flex-multiple-listing-and-booking-system
- Partner registration: pending approval by default, no auto-login until approved
- Google Maps embed opt-in; external services documented in readme
- Sanitization and JSON decode hardening; admin scripts enqueued
- Upgraded bundled Bootstrap 5.3.8 and Chart.js 4.5.1
1.0.1
- Rebranded to Flex Listings and Booking Manager
- Improved color settings save and scoped backgrounds to plugin UI only
- WordPress.org readiness: security index files, uninstall hook, i18n
- Added GitHub source link and WordPress.org ZIP submission instructions in readme
1.0.0
- Initial public release
- Booking types, listings, grid filters, single page templates
- Partner portal with auto-created pages
- Gutenberg blocks and Elementor widgets
- Demo content importer
- REST API and admin dashboard
