Customize WooCommerce Bookings

Use this guide if you sell reservations with WooCommerce Bookings and need advance-booking discounts, a date dropdown, token payments, extra time choices, a different field order or a custom confirmation label.

WooCommerce and WooCommerce Bookings must be active. First configure and verify the product's native duration, availability, persons, resources, capacity and costs.

Enable the features you need

  1. Open Settings → POM Tweaks → E-Commerce → Products.
  2. Enable WooCommerce Bookings.
  3. Enable the individual features you need and edit their labels if required.
  4. Select Save.
  5. For product-specific rules, open Products → All Products, edit the product and select Product data → POM Bookings.

Enabling the module does not enable every feature. Enhanced availability finder is a separate module with its own switch and shortcode.

Early bird discounts

Enable Early bird discounts and add rules in the product's POM Bookings panel. Each rule has an advance notice, a unit, a discount amount and a discount type:

  • Fixed amount reduces the reservation cost once.
  • Amount per person reduces it for every selected person, including separate person types.
  • Percentage reduces the booking cost by that percentage.

The largest eligible discount applies once. Rule order does not change the result. Prices cannot become negative; a 100% discount is supported. Days and months count from the start of the current store day. Hours and minutes count from the current store time.

For example, a reservation costing 100 with eligible discounts of 20 and 25% costs 75 before extra time charges and tax. WooCommerce calculates taxes using the product's normal tax settings. Removing every rule removes the product's early bird discount.

Available dates dropdown

Enable Available dates dropdown to replace the classic date picker for fixed-duration bookings measured in days. Set Date label, Date placeholder and No available dates message as needed.

Dates load in ranges of up to 31 days. Customers use More dates and Previous dates to move through the product's booking window. Changing a resource or person count reloads availability and clears the previous selection. The whole reservation must fit, including multiple-day durations, resource capacity and booking buffers.

Other duration units and customer-defined durations retain their native calendar. If loading fails, the calendar remains available. Bookings rechecks availability when the reservation is added and at checkout; a displayed date is not a guaranteed reservation.

Token payments

Enable Token payments to use an account balance for reservations. Customers must sign in before purchasing or spending tokens.

Sell top-ups

  1. Create or edit a product.
  2. Open Product data → POM Bookings.
  3. Enter Tokens granted after payment, per purchased unit.
  4. Update the product.

A paid order grants its recorded tokens once. A pending or on-hold order does not grant tokens just because the customer opens its confirmation page. Changing a product's top-up amount later does not change an order already placed. Subscription and recurring top-ups are not supported.

Let customers spend their balance

On a bookable product, choose Reservation payment:

  • Money only keeps normal payment.
  • Customer chooses money or tokens offers a choice on the classic product form and per reservation in classic cart and checkout.
  • Tokens only always requires tokens.

The cost is one token per person, including person types, or one token per reservation when persons are not used. Paying with tokens covers the reservation and its extra time add-on. Other products, shipping and fees keep their normal monetary charges.

The server checks the combined token requirement and reserves the tokens when the order is placed. Repeated checkout or payment notifications do not debit them twice. A retry of the same pending checkout can reuse its reserved balance. Failed or cancelled orders release their tokens. Pending orders retain them until resolved or cancelled.

Refunding item quantities restores the corresponding spent tokens or reverses the corresponding top-up. A fully refunded order reverses its token movements. A partial refund of money without item quantities does not represent a token quantity adjustment. Reversing a top-up already spent can leave a negative balance; subsequent top-ups repay that deficit before further token purchases are possible.

Existing balances remain available. Automatic order movements apply to orders placed with this feature enabled; historical orders are not credited retrospectively. Balances belong to the WordPress user account and are shared across sites using that account in a multisite network.

Customers can view their balance under My Account → Tokens, or the configured My Account menu label. Customize the title, description and insufficient balance message in the module settings. The description supports basic HTML, including links to a top-up product. If the account page returns 404 immediately after first enabling it, save Settings → Permalinks once.

A failed balance update records an order note. After resolving its cause, use Retry booking token update in Order actions. Token movements require transactional InnoDB storage for customer and order data. Do not disable token processing while orders with reserved balances still need payment, cancellation or refund handling.

Extra time add-ons

Enable Extra time add-ons, then edit the bookable product:

  1. Open Product data → POM Bookings.
  2. Enable Offer extra time.
  3. Optionally enter Extra time label and Extra time description. Empty product labels use the module defaults.
  4. Add each option's Label, Minutes and Price per person.
  5. Sort the options using the arrow buttons or drag the rows, then update the product.

The price is charged once per person, or once for a reservation without persons. It is added after the early bird discount. Recalculating the cart does not accumulate the charge. Minutes are displayed in cart and order details.

Extra minutes do not extend the native reservation or block additional availability. Configure the native duration or buffers if your service needs extra reserved time. Removing all options or disabling Offer extra time hides the selector for new reservations. Existing cart and order choices retain their recorded prices.

Field order and confirmation label

Reorder booking fields puts resource, date, persons and duration in that order. Missing fields are skipped, all person types remain available and additional fields are preserved.

Custom booking confirmation label changes the title of the Bookings confirmation gateway. It does not rename other gateways or change how confirmation and payment work.

Compatibility and verification

The dropdown, extra time selector, field ordering and payment choice controls use the classic Bookings form, including POM Theme. Checkout blocks validate balances and process token orders; make an optional money/token selection on the classic product form or classic cart before entering block checkout. Native Bookings product blocks do not display these added form controls.

  1. Select dates just before and after a discount threshold. Check that the displayed and cart prices agree.
  2. Change resources and person counts, and verify a fully booked date disappears.
  3. Add extra time and reload the cart several times. The total should stay unchanged.
  4. Select tokens for one reservation and money for another. Confirm only the selected reservation has a zero monetary price.
  5. Check insufficient balance, payment completion, cancellation and an item-quantity refund using your store's normal verification process.
  6. Verify order details, taxes, coupons and the My Account balance.

For a separate search page, see Enhanced availability finder. For a complete configuration sequence, see Combine booking enhancements.