MyBookaroMyBookaro
  • Home
  • Features
    • Pro
    • Solutions
      • Pricing
      • Compare
        • Support
        • Docs
        admin2026-05-16T09:49:04+03:00

        If your WordPress directory runs on Listeo, Listdom, ListingPro, JobMonster, ClassiPress, or a hand-rolled custom post type, the “booking” tier of features that ships natively varies wildly — and most of them push you toward WooCommerce Bookings ($239/yr) or an unrelated third-party scheduler that doesn’t know what a “listing” is. This is the practical guide to wiring a real booking flow onto any directory theme using MyBookaro’s Generic Directory lane.

        The Generic Directory lane was built for sites where the listing-CPT, services source, and “owner” relationships don’t follow MyListing’s conventions. Instead of forcing your theme into a particular shape, the lane-aware setup wizard asks four mapping questions and then validates each before activating the booking flow.

        What “directory” means here

        For MyBookaro’s Generic Directory lane, a “directory” is any WordPress site where:

        • You have one or more custom post types (or pages) that represent bookable entities — listings, businesses, service providers, professionals, venues, properties
        • Each entity has an owner — either a WP user (most common) or an “admin-managed” entry where the site owner takes the bookings
        • Visitors arrive on the entity’s single-page view and you want a “Book now” entry point there

        If your theme matches that pattern — and most directory themes do — you can wire MyBookaro in without writing any custom code. The lane handles the mapping for you.

        The four mapping questions

        1. Which CPT represents your providers?

        The wizard scans your site for registered post types and shows them with sample counts. For Listeo this is usually listing; for Listdom it’s listdom-listing; for ListingPro it’s listing as well; for ClassiPress it’s ad-listing; for a custom-built directory you’d pick whatever slug you registered. You pick from the dropdown — no editing wp-config or theme files.

        2. Where do services come from?

        Three options:

        • Per-listing repeater / ACF field — if each listing already has a “Services” sub-field configured (Listeo’s “Services” tab, Listdom’s “Plans/Hours” panel, an ACF Repeater you set up). The wizard offers to auto-detect the field key.
        • Admin-managed catalog — one shared service list (e.g., “30 min consultation”, “60 min consultation”) applied uniformly across every listing. Best for sites where services are standardised.
        • Hybrid — admin catalog as the base, with per-listing overrides where set.

        3. Where is the “Book now” button placed?

        Three placement strategies:

        • Theme hook — if your directory theme exposes a sidebar-actions or contact-section hook, MyBookaro can attach to it. Common on themes that follow WordPress hook conventions.
        • Shortcode placement — drop [bookaro_booking] into the single-listing template (via theme customizer, Elementor template, or template file). Works on every theme without exception.
        • Auto-inject above content — MyBookaro hooks the_content for your listing CPT and prepends the booking button. Easiest, but theme-specific styling may be off until you tweak the wrapper class.

        4. Who owns each listing?

        Three options:

        • WP user = post author — the user who created the listing. Standard WordPress convention.
        • Custom user meta key — your theme may store “listing owner” in a non-standard postmeta or usermeta key. The wizard offers a key picker.
        • Admin-owned (single business) — every booking goes to the site owner regardless of which listing was clicked. Good for “white-label” directory builds where the site operator handles all bookings.

        Theme-by-theme notes

        Listeo

        Listeo ships with its own native booking system, so MyBookaro is a replacement, not an addition. Pick “WP user = post author” for owner, point services to Listeo’s existing services field (Listeo uses _listing_services postmeta on each listing), and use the shortcode placement to embed the booking widget inside Listeo’s single-listing layout where Listeo’s native “Book” button currently sits.

        Listdom

        Listdom has no native booking — visitors usually hit a contact form. MyBookaro slots in as a true booking layer. Use the auto-inject above-content placement (Listdom’s single-listing layout is plain enough that auto-inject looks correct on most demos). Services typically come from an admin catalog for Listdom sites.

        ListingPro

        ListingPro has a built-in “Reservation” add-on, but it’s a request-to-book contact form with no real availability calendar. MyBookaro replaces it. Map services to ListingPro’s “Services” tab (postmeta key lp_services), use shortcode placement inside ListingPro’s single-listing widgets, and disable ListingPro’s native reservation form in their settings panel.

        JobMonster

        JobMonster is a job-board theme, but it’s often used for service marketplaces. Map provider CPT to noo_job, services to admin catalog (jobs don’t have per-listing services natively), and use theme-hook placement — JobMonster exposes a usable single-job sidebar slot.

        ClassiPress

        ClassiPress is a classifieds theme — usually overkill for booking, but if you’ve used it to build a service directory, map provider CPT to ad_listing, services to admin catalog, and shortcode placement inside the ad-listing single template.

        Hand-rolled custom CPT

        The wizard handles anything that’s a publicly-registered CPT with a single-template view. Bring the slug, the wizard does the rest. If your providers aren’t a CPT but a custom database table, MyBookaro doesn’t natively support that — but the bookaro_get_listing_owner_id filter (documented in includes/mylisting.php and bookaro.php) lets you override owner resolution to bridge the gap. Services-source overrides go through the registered services-provider class rather than a single filter, but that path is similarly extensible from a small companion mu-plugin.

        Validating the mapping before going live

        After the wizard saves your mapping, MyBookaro → System Status runs a battery of checks:

        • “Provider CPT registered” — confirms your chosen CPT actually exists at the moment the page loads (in case a plugin that registers it deactivates)
        • “Provider resolution sample” — picks a random listing and runs the full owner-lookup chain, showing the resolved owner user ID
        • “Services source returns data” — calls the services callback against the same sample listing, showing what would appear in the booking modal
        • “Placement target hit” — confirms the placement strategy actually inserts the button on the listing’s frontend

        If any check fails, the panel shows the exact fix — e.g., “Provider CPT ‘listing’ returns 0 owners because the user-meta key _listing_owner is empty on all listings. Did you migrate from another plugin and skip the owner-import step?”

        FAQ

        Do I have to deactivate my theme’s native booking add-on?

        Recommended, not required. Two booking entry points side-by-side confuses visitors. If you want to A/B test, leave both running for a week and check which submits more bookings.

        What if my directory has thousands of listings?

        The lane scales to ~50K listings on default WordPress/MySQL. Beyond that, MyBookaro’s settings page exposes a “deferred provider resolution” toggle that switches from on-page-load lookups to on-booking-submission lookups — fewer DB queries on the listing template, slightly slower booking modal.

        Can different listings have different booking rules (request vs instant)?

        Yes — per-provider settings override site defaults. Each listing owner sets their own approval mode through the provider dashboard.

        Will switching theme later break the mapping?

        Only if the new theme uses a different provider CPT slug. The wizard re-runs in seconds — re-pick the new CPT and the rest of the configuration carries over.

        Try it on a staging copy

        Install MyBookaro Lite on a staging copy of your directory site, run the Generic Directory wizard, and check that the System Status panel turns all green before you ship to production. If a check fails, the diagnostic message tells you precisely which mapping question needs revisiting — usually a 5-minute fix, not a multi-hour debugging session.


        Related Posts

        Lanes icon

        Best WordPress booking plugin for MyListing directories

        If your WordPress site runs on MyListing, generic booking plugins fight the data model. Here's the only booking plugin built... read more

        How to add a booking system to MyListing (full walkthrough)

        If you run a MyListing directory and you've been hand-rolling a booking flow with contact-form-7, gravity forms, or worse —... read more

        Multi-provider MyListing setup: per-listing schedules, dashboards, split payouts

        A single MyListing listing usually represents one provider — one therapist, one studio, one barber. But what if your directory... read more
        Booking icon

        WordPress request-to-book vs instant-book: when each one wins

        Most WordPress booking plugins assume instant book. Request-to-book is the workflow many real-world service businesses actually need. A clear-eyed look... read more

        Recent Posts

        • LatePoint Free vs MyBookaro Free: what each Lite version includes
        • The Bookly add-on cost calculator vs flat-pricing alternatives
        • WordPress booking without WooCommerce: 7 options compared
        • WordPress request-to-book vs instant-book: when each one wins
        • Best WordPress booking plugin for MyListing directories

        Recent Comments

        No comments to show.

        Provider-based booking on WordPress? Let's talk.

        Get in touch
        • Home
        • Features
        • Solutions
        • Pricing
        • Pro
        • About
        • Compare
        • Affiliate
        • Support
        • Contact
        • Terms of Service
        • Privacy Policy
        • Refund Policy
        • Cookie Policy
        • Data Processing Agreement
        • Affiliate Terms
        Instagram
        Facebook

        Reach us

        • info@mybookaro.com
        • Documentation
        Customer booking detail screen on mobile
        MyBookaro admin settings on desktop
        Customer-facing booking on mobile

        MyBookaro © 2026. All rights reserved.

        Loading...
        Manage Consent
        To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
        Functional Always active
        The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
        Preferences
        The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
        Statistics
        The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
        Marketing
        The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
        • Manage options
        • Manage services
        • Manage {vendor_count} vendors
        • Read more about these purposes
        View preferences
        • {title}
        • {title}
        • {title}

        Insert/edit link

        Enter the destination URL

        Or link to existing content

          No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.