Bookings Use Case: Law Office

Use WooCommerce Bookings to offer appointments with a choice of lawyer, weekday office hours, holiday closures, and confirmation before payment.

Scenario

↑ Back to top

Jane Martinez and Daniel Brooks offer one-hour appointments from 10:00 am to 1:00 pm and 3:00 pm to 6:00 pm, Monday to Friday. Each lawyer can meet with one client at a time. The office closes on December 25 and January 1.

Clients choose a lawyer and submit an appointment request. The office confirms the request before the client pays. Clients can cancel until seven days before the appointment starts. That cancellation deadline is separate from a buffer between appointments.

Setup and configuration

↑ Back to top

Before you begin, install and activate WooCommerce and WooCommerce Bookings, and confirm the store timezone under Settings > General. Use a test site to check availability and confirmation before accepting customer requests. The example uses America/Los Angeles and a base appointment cost of 200 US dollars, excluding tax.

Configure the resources

↑ Back to top

A resource represents the lawyer assigned to an appointment. Give each lawyer a quantity of one so that two clients cannot reserve the same lawyer for overlapping appointments.

  1. Go to Bookings > Resources and select Add Resource.
  2. Enter Attorney Jane Martinez in Bookable Resource Name, set Available Quantity to 1, and select Publish.
  3. Repeat for Attorney Daniel Brooks, also with a quantity of 1.

Configure storewide holiday closures

↑ Back to top

Store availability applies to every bookable product. Use it for days when the whole office is closed. If a closure applies to only one service or lawyer, add it to that product or resource instead.

  1. Go to Bookings > Settings > Store Availability.
  2. Select Add Range twice. Choose Specific Dates (All day) for each rule and enter the closure date in both ends of the range.
  3. Set Bookable to No and Priority to 9 for both rules. Add descriptive titles, then select Save Changes.
ClosureDate (From and To)
Christmas2026-12-25
New Year2027-01-01

Use the dates and years that apply to your office. These rules cover specific dates and do not repeat every year. Priority 9 overrides the priority 10 opening rules added below.

Create the appointment product

↑ Back to top
  1. Go to Products > Add new product and name it Law Office Appointment.
  2. Choose Bookable product in Product data. Enable Virtual and Has resources.
  3. On General, set Booking duration to Fixed blocks of 1 Hour(s) and Calendar display mode to Calendar always visible.
  4. Enable Requires confirmation? and Can be cancelled?. Set Booking can be cancelled until to 7 Day(s) before the start. Cancelling a booking does not automatically issue a refund.
  5. On Resources, enter Lawyer as the label and choose Customer selected under Resources are…. Link both existing lawyer resources with Add/link Resource. Leave their additional costs at zero.
  6. Leave Share max bookings per block? unchecked so each lawyer keeps an independent appointment allowance.
  7. On Availability, set All dates are… to not-available by default and Check rules against… to All blocks being booked. Set First block starts at… to 10:00 am and the buffer period to 0.
  8. Set Minimum block bookable to 1 Week(s) into the future and the maximum to 6 Month(s). This example requires a week of notice for new appointments; the cancellation deadline is configured separately on General.
  9. Select Add Range three times and configure the rules below.
  10. On Costs, set Base cost to 200 and Block cost to 0. Configure taxes for your business, then select Publish.
RangeRule
Every day (Set time): 10:00 am to 1:00 pmBookable: Yes
Priority: 10
Every day (Set time): 3:00 pm to 6:00 pmBookable: Yes
Priority: 10
Specific Days (All day): Saturday to SundayBookable: No
Priority: 9

The two time rules open the morning and afternoon periods. The higher-precedence weekend rule closes Saturday and Sunday. With one-hour blocks, the last appointment starts at noon before lunch and at 5:00 pm before closing.

Customer experience

↑ Back to top
  1. Open the appointment product and choose a lawyer, a future weekday, and a start time.
  2. Select Check Availability and continue to checkout. Select Request Confirmation to submit the request. Payment is collected after the office confirms the booking.
  3. After confirmation, use the payment link in the confirmation email to pay for the appointment.

Confirmation-required bookings use a separate checkout flow from products that can be purchased immediately. Test this flow with your store’s cart and checkout before launch.

Store admin experience

↑ Back to top
  1. Go to Bookings > All Bookings and open the request with Pending Confirmation status.
  2. Check the selected lawyer, date, and times. To approve the request, set Booking status to Confirmed and select Save Booking.
  3. The confirmation email asks the client to pay when payment is due. After successful payment, check that the booking has Paid status.

Verify the setup

↑ Back to top

On a regular weekday, check both lawyers. Each should offer starts at 10:00 am, 11:00 am, noon, 3:00 pm, 4:00 pm, and 5:00 pm. Confirm that lunchtime, weekends, and both holiday dates cannot be booked. Check that dates inside the one-week notice period are unavailable.

Submit a test confirmation request. Confirm that no payment is collected before approval, that the request appears as Pending Confirmation, and that the selected lawyer’s time cannot be booked again while the other lawyer remains available. Confirm the request and check the customer email and payment link. Also check customer cancellation before and after the seven-day deadline.

If the result does not match

↑ Back to top

If unexpected times appear, check the default availability, full-block rule checking, first block time, booking window, and all store, product, and resource rules. Lower priority numbers take precedence. If the two lawyers cannot accept appointments at the same time, check each resource’s quantity and leave the shared product allowance unchecked.

If confirmation or payment does not work as expected, check that Requires confirmation? is enabled, the request is linked to an order, and the booking status is correct. Check WooCommerce email settings and email delivery if the customer does not receive the confirmation. A missing cancellation action can mean that cancellations are disabled or the deadline has passed.

Questions and support

↑ Back to top

Something missing from this documentation? Still have questions and need assistance?

  • If you have a question about a specific extension or theme you’d like to purchase, contact us to get answers.
  • If you already purchased this product and need some assistance, get in touch with a Happiness Engineer via our support page and select this product’s name from the Product dropdown.

Related Products

WooCommerce Subscriptions is a WooCommerce extension that lets customers subscribe to your products or...

Offer add-ons like gift wrapping, special messages or other special options for your products.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.