Skip to content
GPLWP Guides

How to accept appointment payments in WooCommerce

WooCommerce Time About 30 minutes for an integrated setup 6 steps Updated 27 Sep 2026

WOOCOMMERCE
The short answer

WooCommerce can take the payment, but it does not create appointment slots or manage availability by itself. For occasional bookings, sell a virtual service product and confirm times manually; for real scheduling, connect an appointment plugin to WooCommerce checkout.

The route
  1. 01Choose the booking workflow
  2. 02Enable a payment method
  3. 03Use the manual route when suitable
  4. 04Add real appointment scheduling
  5. 05Connect bookings to checkout
  6. 06Test the complete payment flow

What you need

  • A WordPress site with WooCommerce installed and configured
  • Admin access to WordPress
  • At least one enabled WooCommerce payment method
  • Your service hours, appointment duration and cancellation rules

Choose the booking workflow

Decide whether customers should pay before a slot is confirmed, or request a time that you approve first. If you only handle a few appointments each week, a WooCommerce service product plus manual scheduling may be enough. WooCommerce checkout can collect payment, but WooCommerce itself does not provide appointment availability, slot limits or automatic double-booking protection.

For multiple staff, fixed time slots, recurring availability, reminders or calendar management, use a booking extension or appointment plugin that connects its booking form to WooCommerce.

Enable a payment method

Go to WooCommerce → Settings → Payments. Enable the payment provider you want to offer, then open Manage and complete its account, checkout and test-mode settings. WooCommerce lists payment providers in this area, and the enabled methods appear at checkout.

Place a test order before advertising the service. A gateway can be enabled in WooCommerce but still fail if its account connection, webhooks or live credentials are incomplete.

Use the manual route when suitable

Create a WooCommerce product for the service, set its price, and mark it as Virtual if no physical delivery is involved. Customers can buy it through the normal cart and checkout, after which you contact them to agree an appointment time or use your own calendar.

This is fine for low booking volume, but it does not reserve time slots, check staff availability, stop two customers choosing the same time or automatically handle rescheduling. A Friday-evening payment can therefore become a Monday-morning scheduling problem.

Add real appointment scheduling

Install a booking or appointment extension that creates bookable services, availability rules and time slots. Configure the service duration, working days, buffer time, staff or resources, maximum bookings and any advance-booking limits. WooCommerce Bookings, for example, supports appointment-based bookable products and works with payment gateways.

Check how the extension treats unpaid, failed, cancelled and abandoned-cart bookings. WooCommerce Bookings can show separate booking and order statuses, and abandoned in-cart bookings depend on a working WP-Cron schedule being available.

Connect bookings to checkout

In the booking extension, select WooCommerce as the payment method or connect the bookable service to a WooCommerce product, depending on the extension. Then ensure the product price, tax rules and virtual-product setting match the service. Do not assume that enabling a gateway alone connects it to appointments; the booking service must be configured to send customers to WooCommerce checkout.

If you require approval before charging the customer, confirm that your extension supports that workflow. WooCommerce Bookings sends a payment request after an administrator confirms a booking, and confirmation bookings have checkout restrictions because payment is not collected during the initial request.

Test the complete payment flow

Book a real-looking slot with a test payment, then check the order, booking record, confirmation email, customer account and calendar. Test a failed payment, a cancelled order and an appointment outside working hours as well.

If you use BookingPress, install its WooCommerce Payment Gateway Addon, enable WooCommerce under BookingPress → Settings → Payments, create a WooCommerce product, and assign that product to the relevant BookingPress service. Customers are then redirected to WooCommerce checkout, and the appointment is booked after the order is placed. The vendor notes that the order must reach In Process or a higher status before it appears in BookingPress appointments.

The fast route

Let BookingPress do it

Routes BookingPress appointments through WooCommerce checkout, useful when you want to reuse your store’s payment gateways and order management.

Get BookingPress

Sources

  1. woocommerce.com /document/introduction-to-woocommerce-bookings/?utm_source=o…
  2. woocommerce.com /document/configuring-woocommerce-settings/?utm_source=opena…
  3. woocommerce.com /document/introduction-to-woocommerce-bookings/managing-wooc…
  4. bookingpressplugin.com /documents/woocommerce/?utm_source=openai

Questions

Can WooCommerce accept appointment payments without a booking plugin?
Yes, but only as a manual process. Create a virtual service product and let the customer pay through WooCommerce checkout, then arrange and record the appointment yourself. WooCommerce alone does not provide appointment slots, availability rules, staff calendars or double-booking protection, so this approach is best for a small number of bookings.
Which WooCommerce setting is commonly missed for appointments?
The payment gateway must be enabled under WooCommerce → Settings → Payments, and the appointment service must also be connected to a WooCommerce product or checkout flow. With an integrated setup, check that the product is virtual when no delivery is needed and that the booking service uses the correct product.
Can customers pay after I approve an appointment?
Yes, if your booking extension supports approval-based bookings. WooCommerce Bookings can keep a request awaiting confirmation and send the customer a payment link after approval. These bookings use a separate flow from ordinary paid bookings, so they may need to go through checkout on their own.
Why does a paid appointment not appear in the booking calendar?
The order may not have reached the status that the appointment plugin treats as paid or confirmed. Check the WooCommerce order notes, the booking status, the payment gateway response and any integration requirement for a processing or completed order. BookingPress, for example, states that the order must be In Process or higher before the appointment appears in its appointments area.
What is the fastest way to accept appointment payments?
Use an appointment plugin that passes the booking to WooCommerce checkout instead of building availability and payment handling yourself. BookingPress is one option: its WooCommerce addon lets you enable WooCommerce payments, link services to WooCommerce products and send customers to the familiar WooCommerce checkout.