Skip to content

Listdom Booking Addon Documentation

View Demo

The Booking Addon transforms Listdom into a booking platform. It allows listing owners to define bookable items (such as rooms, appointments, or seats) and lets users submit booking requests for specific dates. The addon handles availability calendars, booking statuses, and can integrate with WooCommerce for online payments.

Listdom’s built-in payment engine can handle booking charges without WooCommerce. Follow the Listdom Payments documentation and Listdom Payments Settings documentation to configure the internal checkout, gateways, and invoices before enabling paid bookings. Once set up, booking payments will flow through Listdom’s Orders and Recurring Payments tools just like other monetization features.

  • Date & Time Selection: Adds check-in and check-out date fields on listing pages so users can choose their desired dates.
  • Bookable Items: Listing owners can configure one or multiple bookable items per listing (e.g., multiple room types).
  • Guest Booking: Allows bookings from visitors who are not logged in.
  • Booking Requests Management: Adds a Bookings submenu in WP Admin (Listdom > Bookings) to view all booking requests.
  • Approval Workflow: Bookings enter the system as “Pending” by default. Admins can Approve or Reject each booking.
  • Notifications: Automated emails for new booking requests, approvals, rejections, and cancellations.
  • Payment Integration: If enabled, users pay for bookings via WooCommerce checkout. You can charge either the full price or a partial deposit.
  • Person In Charge (PIC): Optionally assign a specific WordPress user (staff or agent) to each booking.
  • Availability & Calendar: The addon maintains an Availability Calendar to block out dates that have been booked, preventing double-bookings.
  • User Dashboard Integration: Listing owners can view and manage their listing’s bookings from their frontend dashboard.
  • Availability Search and Matched Bookables: Add booking dates and guest-capacity fields to a search form, then show the matching bookable options in supported listing-result skins.

The Booking Addon tracks three separate states for each request:

  • Booking status: Approval and lifecycle state.
  • Payment status: Whether payment is required, waiting, partial, complete, failed, refunded, or canceled.
  • Availability status: Whether the requested inventory is not reserved, temporarily held, or reserved.

Keeping these values separate lets a site approve a request independently from payment and control when limited inventory becomes unavailable to other customers.

Open Listdom → Settings → Add-ons → Booking and configure the following behavior.

  • Manual approval required: New requests wait for review. With online payment, a request first waits for payment and moves to pending review after successful payment; the listing owner must approve it.
  • Auto-approve after payment: A paid or partially paid request is approved automatically after successful checkout.
  • Always auto-approve: The request is approved immediately even when online payment remains due.

When online payment is disabled, Auto-approve after payment is not applicable and Listdom uses manual approval behavior.

  • Full payment: The complete booking total is due online.
  • Partial payment: A configured percentage or fixed amount is due online and the remainder can be collected later.
  • No online payment: Listdom does not create an online checkout for the booking.

Enable Payable Per Bookable when individual items need different payable rules. Enable Auto Order Complete when the related order should complete automatically after successful checkout.

  • Reserve immediately after booking request: Reserve the requested dates, slots, or items when the request is created.
  • Reserve only after payment: Start as not reserved. After successful payment, reserve it when approved; a paid request awaiting manual approval can remain held.
  • Temporarily hold until payment: Protect inventory while checkout is pending, then convert the hold to a reservation after successful payment and approval.

For temporary holds, set Hold Duration in minutes or hours to a value of at least 1. Expired holds are released automatically. If online payment is disabled, payment-dependent reservation modes are not applicable and Listdom reserves availability immediately after the request.

Enable Person In Charge when listing owners need to assign a responsible user. Owners can review the assignment and use Change PIC when that action is valid.

Booking, payment, and availability statuses

Section titled “Booking, payment, and availability statuses”
  • Approved: Accepted.
  • Pending review: Waiting for owner review.
  • Waiting for payment: Checkout is required before the next step.
  • Rejected: Rejected by the owner.
  • Canceled: Canceled.
  • Expired: The booking or hold expired, or paid inventory could no longer be secured.
  • Draft: Not active.
  • Trashed: Moved to Trash.
  • Not required, Waiting for payment, Partially paid, Paid, Failed, Refunded, or Canceled.

Listdom records total, payable, paid, and remaining amounts and the payment or order reference separately.

  • Not reserved: Does not block inventory.
  • Temporarily held: Protected until payment or hold expiration.
  • Reserved: Committed to the booking.

Approval reserves inventory. Rejection or cancellation releases it. Failed, refunded, or canceled payment also releases availability. When valid, Release frees a held or reserved item without performing another lifecycle action.

  1. The customer selects available items, dates, and quantities or slots.
  2. Listdom rechecks availability. If an item is no longer available, the customer must refresh and try again.
  3. The customer enters the required name, phone, and email and can add a message.
  4. Listdom creates booking, payment, and availability states according to the configured rules.
  5. If payment is required, the customer continues to checkout.
  6. Successful payment updates paid and remaining amounts and advances approval or reservation according to the settings.

Event bookables also validate slot quantity. Availability is checked again before a resumed payment so a customer cannot silently pay for inventory already taken.

When a booking has an eligible pending Listdom order, Pay Now returns the customer to checkout after verifying order access and current availability. If inventory is no longer available when payment completes, Listdom marks the booking expired, records payment as failed, releases availability, and preserves amount data for follow-up.

Open Bookings in the frontend Dashboard and use:

  • My Listings Bookables: Requests for listings owned by the current user.
  • My Bookings: Reservations made by the current user.

Search and filters can cover booking item, booking status, payment status, and reservation status.

Listing owners can review booking date, item, customer, From and To dates, payment amounts and status, Person in Charge, and available order or booking actions. Summary cards cover total bookings, pending review, waiting for payment, and approved bookings, with comparison to the previous 30 days.

Actions appear only when valid and can include Approve, Change PIC, Release, Mark as paid, Mark as Refunded, Cancel, Reject, Trash, and View Order. State-changing and destructive actions require confirmation.

Customers can review booking date and status, item, From and To dates, payable, paid, remaining, and total amounts, payment and availability state, and Pay Now when checkout can resume.

Available actions can include Book again, View Details, Contact Owner, Invoice, View Order, Cancel, and Request a Refund. Exact actions depend on ownership, state, timing, payment data, and addon configuration.

Booking invoices, refunds, and notifications

Section titled “Booking invoices, refunds, and notifications”

A booking invoice can show invoice number, issue date, booking status, booking and listing details, check-in and checkout dates, customer contact information, booked items, price, online payable amount, and payment status. It includes Print; a booking linked to a Listdom order can also expose View Order.

A refund request records the customer’s intent but does not guarantee that the gateway returned funds. Authorized owners or administrators can use Mark as paid or Mark as Refunded when valid. These actions update Listdom’s booking state; gateway-side refunds must still follow the provider’s required process.

Lifecycle notification events include Booking Waiting for Payment, Booking Payment Received, Booking Payment Failed, Booking Hold Created, Booking Hold Extended, Booking Hold Expired, Booking Expired, and Booking Refunded. Templates can use paid amount, remaining amount, availability status, payment link, and hold expiry values.

In WordPress administration, booking lists and details expose booking, payment, and availability separately, along with paid and remaining amounts, order reference, and hold expiry. Bulk actions include Mark Paid and Mark Refunded.

  • Selected items became unavailable: Another customer may have reserved them or the hold expired. Refresh and create the booking again.
  • Approved but waiting for payment: Always auto-approve can approve independently of payment. Review payment status and use the payment link.
  • Paid but pending review: Manual approval required still requires the listing owner to approve after payment.
  • A hold disappeared: Its duration elapsed, or the booking was canceled, rejected, refunded, or failed.
  • Pay Now is unavailable: A valid pending Listdom order, checkout URL, available inventory, and authorized signed-in user are required.
  • Request a Refund is unavailable: The customer must own the booking, a refundable payment must exist, and the current state must permit a request.
  • Person In Charge cannot be changed: Enable the setting, choose a user valid for the listing, and confirm that the current user can manage the booking.

Availability search and matched bookable items

Section titled “Availability search and matched bookable items”

The Booking Addon can filter listing results by booking dates and guest capacity. Supported listing skins can also show the available bookable items that matched the search. Each matched item includes booking details and a Book this option action that opens the single-listing booking form with the valid item, dates, and guest values carried forward.

Use this workflow when one listing can offer several rooms, rental units, appointment types, tours, event ticket types, or service packages.

  1. Go to Listdom → Search and Filter Builder and create or edit a form.
  2. Add Start & End Dates for the booking period.
  3. Add Adults and Children when the bookable items use separate guest-capacity limits.
  4. Configure the labels, placeholders, field widths, and responsive layout.
  5. Connect the form to the intended results page or listing shortcode, then update it.

Listdom limits the results to listings with bookable items that satisfy the submitted availability and capacity criteria.

  1. Go to Listdom → Shortcodes and create or edit a supported listing skin.
  2. Enable Display Matched Bookables in the skin’s display options.
  3. Attach the booking search form to that shortcode, or make sure the form targets it.
  4. Update the shortcode and test the complete frontend search flow.

The option is available in the List, Grid, List + Grid, Half Map, and Masonry skins. Matched cards appear only when the Booking Addon is active, the search targets that result block, a complete date range is supplied for date-based availability, and at least one item matches the submitted criteria.

A matched bookable can show its title, description, selected date and time, availability or remaining slots, capacity, calculated price for the selected period, and Book this option. Property items can show separate adult and child limits. Event items use their configured start and end values and show remaining capacity when a limit exists.

When the visitor selects Book this option, Listdom:

  • Opens the listing’s booking section and jumps to the booking form.
  • Verifies that the requested item belongs to the current listing and remains available.
  • Preselects the matched item.
  • Restores valid start and end dates.
  • Restores Adults and Children for property bookings.

Only available items are offered. Expired events are skipped, and event matching follows Listdom → Settings → Add-ons → Booking → Event Availability. When nothing matches, the booking area distinguishes between no items for the selected dates and no items for the selected filters. If booking availability notifications are configured, Listdom shows the notification form; otherwise, it prompts the visitor to contact the listing owner.

  • Listings are filtered but no matched items appear: Enable Display Matched Bookables, submit a complete date range, and confirm that the search form targets that shortcode.
  • A property is missing: Check adult and child limits, blocked periods, existing holds or reservations, and the requested dates.
  • An event is missing: Review Event Availability, the event’s configured dates, expiration, and remaining slots.
  • Book this option does not preserve the selection: Confirm that the item still exists, belongs to that listing, remains available, and the single-listing layout includes the Booking element.
  • No items match the selected filters: The dates or guest capacity no longer match an available item. Change the search values or update the item’s availability and capacity.

Vacation Rental Booking

A host lists an apartment with two bookable items: “Entire Apartment” and “Guest Room.” A traveler selects the Guest Room, chooses dates, and pays a 20% deposit online. The host approves the request, and the traveler receives a confirmation.

Appointment Scheduling

A consultant lists a “Career Consulting Session” with a single bookable item priced at $50. Clients pick an available date and time, pay the full amount at checkout, and the booking is automatically approved and confirmed via email.

Event Ticketing

An event organizer lists a workshop with two ticket types: “General Admission” and “VIP Admission.” A user books 2 VIP tickets. The organizer, who set payment to “after approval, ” manually approves the request, which triggers a payment-due email. Once the user pays, the booking is finalized and VIP ticket availability is updated.