Bookings Use Case: Law Office

This scenario will walk you through how to use WooCommerce and WooCommerce Bookings to set up availability for multiple people, restrict specific dates and times, require customers to confirm bookings and offer a buffer period for cancellations.


↑ Back to top

John and Jane have a law office. Clients can choose who they want to make an appointment with and select a date and time, excluding holidays. The booking requires the law office to confirm the booking, and customers can cancel their meeting up to 7 days before the appointment. Note that because the law firm requires to approve the booking first before it’s fully booked, payment will not be taken at initial time of checkout.


  • Their office is open from 10:00 to 13:00 and from 15:00 to 18:00 for appointments, Monday to Friday.
  • Meetings are 1 hour each.
  • They also are closed on public holidays, for example, 25th December and 1st January will not be available for booking.
  • They want to confirm each booking and they want their clients to be able to cancel the booking a minimum of 7 days prior to the appointment.

Products Used

↑ Back to top

Setup and Configuration

↑ Back to top

In this example, before we create the bookable product, we will first set up each attorney’s availability as Resources.

Configure the Resources

↑ Back to top
  1. In the sidebar of your WordPress Admin, click on Bookings > Resources.
  2. Click the Add Resource button. This will take you to a Add New Resource page.
  3. In our example, we will name the first Resource, one of the lawyers, as Mrs. Jane Doe.
  4. Set the Available Quantity to 1. Since a lawyer can only be in one place at one time, be sure to set each resource with an Available Quantity of 1. We do not need to specify the availability.
  5. Save.
  6. Go through steps 2 – 5 to add other resources, in this use case that would be Mr. John Doe.
This image shows how to set up a resource with an availability quantity of 1.

Configure the Store Availability

↑ Back to top
  1. In the sidebar of your WordPress Admin, click on Bookings > Settings > view the Store Availability tab.
  2. Click Add Range button and a range rule will show up.
  3. Under Range Type dropdown, select the Range of Days.
  4. Set the Range as Saturday to Sunday and Bookable as No.
  5. You can specify a title to identify the store availability, such as Weekend.
  6. Keep the priority as 10.
  7. Go through steps 2-6 to add any other closure dates such as public holidays.
Configuration of the global Store Availability to set closure dates in all bookings in the store.

Create the Bookable Product

↑ Back to top
  1. In the sidebar of your WordPress Admin, click on Products.
  2.  Click on the Add New button on the top.
  3.  Under Product data select Bookable Product.
  4. Select the options for Virtual and Has Resources for this use case.

Configure the General Tab

↑ Back to top

These configurations set up a bookable time that is 1 hour in length, requires the store admin to approve the booking before payment is made, and allows the customer to cancel the booking 7 days before the appointment.

  1. Under the General Tab, set the Booking duration to a fixed blocks of 1 Hour.
  2. Check the boxes for Requires confirmation? and Can be cancelled?.
  3. Set the Booking can be cancelled until to 7 days.
Bookings configuration to allow for advanced cancellations and to require admin confirmation before purchase.

Configure the Resources Tab

↑ Back to top
  1. Select the Resources tab (note: The tab only appears if you selected Has Resources when creating the product).
  2. Select Add/link Resource to add a resource.
  3. Name your resource Mrs. Jane Doe when the window opens, and select OK.
  4. Add your other resources. In this use case, we will add the resource, Mr. John Doe.
Image shows adding the previously created Resources to the bookable product.

Configure the Availability Tab

↑ Back to top
  1. Set the All dates are… to available by default. Remember, we’ve already set closure date and time rules in the global store availabilities setting above.
  2. Check rules against… set to All blocks being booked.
  3. Set the First block starts at… to 10 am for this use case.


↑ Back to top

Below are details on how the customer and store admin’s experience would be for a booking that requires confirmation from the store admin.

Customer Experience

↑ Back to top

On the front end, when the customer books a meeting with the lawyer, here is the customer experience going through checkout:

  1. The merchant will see a Check Availability button instead of an Add to Cart button (see Image 1 below).
  2. They will not need to add credit card details at checkout and their booking will be set as Pending Confirmation.
  3. Upon requesting a booking at checkout, they will be directed to the Order Confirmation page where it will indicate that booking is awaiting confirmation and the customer notified by email as soon as the store admin confirms availability (see Image 2).
  4. Once the store admin has approved the booking, the customer will receive an email confirming the booking and provided a link to pay for the booking.
Image 1: With the “Require Confirmation” setting turned on, customers will see a Check Availability button instead of Add to Cart.
Image 2: After checkout, the customer will see a pending confirmation on booking status and will receive an email notification after store admin approves the booking.

Store Admin Experience

↑ Back to top

Once the customer has requested an appointment, the following steps will take place for the store admin to confirm the booking:

  1. The store admin will receive an email with details and a link to confirm the booking.
  2. In the WP Admin menu, under Bookings, the store admin will see the pending bookings. Under the Actions column, they will need to click the check mark to approve the booking.
  3. Once approved, the customer will receive an email to purchase the booking. Then the booking status will go from Confirmed to Paid.
The store admin will need to confirm the booking under the Actions column to approve the booking and allow the customer to pay.

Questions and Support

↑ Back to top

Something missing from this documentation? Do you still have questions and need assistance?

  • Have a question before you buy this extension? Please fill out this pre-sales form – please include the name of this extension in your query.
  • Already purchased and need some assistance? Get in touch with a Happiness Engineer via the Support page and choose this extension name from the “I need help with” dropdown