Gym Builder Docs gymbuilder.wpdreamers.com
Pro add-on

Class Booking & Payment

Sell single places in your classes through WooCommerce. Visitors pick a class time, pay at checkout, and are booked in as soon as the order is paid — with an optional plan, a later season price and your own code for every class time.

Needs Gym Builder 3.0.0+Needs WooCommerceTranslated into 7 languages

What it does

Some people don't want a membership: they want one place in one class. Class Booking & Payment turns a class into something visitors can buy. They choose a time on the class page, pay through your WooCommerce checkout, and get their place when the order is paid. You keep track of money you take by hand on a Payments page in the Gym Builder Dashboard.

Before you start

!
Not together with Stripe Payments or Offline Payments

Class Booking & Payment and Stripe Payments cannot be switched on at the same time. Whichever is on first stays on: if Class Booking & Payment is active, Stripe Payments refuses to activate, and if Stripe Payments is active, Class Booking & Payment is switched straight off again with the message "GB Class Booking and Payment cannot be activated because GB Stripe Payments is already active." To change from one to the other, deactivate the one you use now first. The same goes for Offline Payments: only one of the two can be on. With this add-on, card payments go through whichever payment method you set up in WooCommerce.

Install and switch on

  1. Make sure WooCommerce is installed and active.
  2. Go to Plugins → Add Plugin and click Upload Plugin.
  3. Choose the add-on's zip file, click Install Now, then Activate Plugin. On the Plugins screen it is listed as GbClass Booking And Payment.
  4. Enter your license key when asked. If you skip it, the Gym Builder Dashboard shows Class Booking → License Key in its menu until the license is active.

Once it is on, an Online Booking card appears on every class's edit screen, and a Payments page appears in the Gym Builder Dashboard under Class Booking.

Set it up

Everything is set per class. There is no separate settings page.

Sell a class online

  1. Go to Gym Builder → Classes and open the class.
  2. In the class box under the description, look at the list on the left. Under Add-ons, click Online Booking (marked Class Booking).
  3. In the Booking and Price card, switch on Book and Pay Online. The other fields appear.
  4. Type the Price for one booking, and fill in the other fields you need (see the table below).
  5. Click Update (or Publish) to save the class.
The Online Booking card on a class's edit screen: Book and Pay Online switched on, Price 25, Later Price 20 from 4 January 2027, Booking Closes On 31 March 2027 at 6:00pm, Show Places Left on, and a Code for each of the two class times
Class edit screen → Online Booking. The Code boxes at the bottom are one per class time.
FieldWhat it does
Book and Pay OnlineSells this class on your website. Visitors pick a class time and pay at checkout; they are booked in once the order is paid. Off = the class shows Gym Builder's usual Register button.
PriceWhat one booking costs, in your WooCommerce currency. Type the number only, such as 25 or 25.50. Leave it empty to let people book for free.
Later PriceA second price charged from the date below, for example a lower rate later in the season. Needs Later Price From as well. Leave it empty to keep one price.
Later Price FromThe day the later price starts. Until then the booking card shows it as "From [date]: [price]".
Booking Closes OnThe last day people can book. Leave it empty to keep booking open.
Booking Closes AtThe time on that day, in your site's time zone. Leave it empty to close at the end of the day.
Show Places LeftShows how many places each class time has left on the booking card and, when you set a closing date, a countdown to it.
CodeOne box per class time: your own reference for that time, such as #002. See Codes for class times.

Codes for class times

If you keep your own numbers for classes — "Osteofit, Monday, #002" — type them in the Code box under each class time on the Online Booking card. A class with three times has three Code boxes. The code is for your records: it shows with the booking in the cart, at checkout, on the WooCommerce order and its emails, on the Payments page and on printed receipts. It is not shown on the class page.

i
Add the class times first

The Code boxes follow the class's Schedule. Add or change times under Schedule on the same screen, save the class, and the Code boxes for the new times appear.

Places

Each class time has its own number of places, set under Schedule on the class's edit screen. A paid booking takes one place in the time that was chosen. When a time has no places left, the booking card shows it as Full and it can't be chosen; on the class page and timetable it says Class full.

While an order waits for payment, its place is held for it (see Places held while an order waits), so others see that place as taken.

Locations (optional)

Gym Builder can show where each class time takes place: go to Gym Builder → Settings → Classes → Locations and switch on Show Class Locations. When you use it, the location of each class time shows under that time on the booking card, and is saved with the booking as Location on the cart, checkout, order and WooCommerce emails. When locations are off, nothing about them shows.

What visitors see

The booking card on the class page

A class sold online gets a Book This Class card next to its details. It shows:

A class page: the class details and its two class times on the left, each with a Book button and places left; on the right the Book this class card with price $25.00 per booking, a later price from January 4, 2027, two times to choose from, Pay for choices, the closing date with a countdown, To pay $25.00 and Book now
The class page. The Book buttons under "When it runs" pick that time in the card.

Pressing Book Now puts the booking in the WooCommerce cart and goes straight to checkout. If the booking can't be taken — the time just filled up, or booking has closed — the visitor stays on the class page and the card shows why, with their choices kept.

When booking has closed, the card says "Booking for this class has closed." A class with no times yet shows "There are no class times to book yet." and can't be added to the cart, and when every time is full, "Every class time is full."

Paying with a plan

If one or more of your membership plans include the class and have a price, the card adds Pay For: This Class Only at the class price, or one of those plans at the plan's price. To Pay changes with the choice.

The booking card with Tuesday picked and the 4-Class Pass chosen under Pay for; To pay shows $30.00
Paying with a plan: the plan's price is charged.

Someone who pays with a plan gets both: the plan, and a place in the class time they picked. See The plan a member gets for when it starts and ends. Plans without a price are not offered here.

Book buttons on class times and class cards

Wherever a class time shows with a button — under "When it runs" on the class page and on Gym Builder's timetables — a class sold here shows Book instead of Register. It opens the class page with that time already picked on the booking card. Instead of the button it says Class full when the time has no places left, or Booking closed after the closing date.

A timetable day: Pilates Basics, which is sold online, shows a Book button; the other classes show Register
On the timetable, classes sold online show Book; other classes keep Register.

On class cards in your class lists, the class's button becomes Book Now and opens the booking card on the class page.

Buy Now on plan cards

On Gym Builder's plan cards, every plan with a price gets a Buy Now button. It puts that plan in the cart — on its own, replacing anything already there — and opens checkout. When the order is paid the buyer holds the plan, exactly as when a plan is picked on a class page. Plans without a price show no Buy Now button.

Three plan cards: 10-Class Pass with no price and no button, 4-Class Pass at $30/month with Buy Now, TT Yoga Monthly at $30/month with Buy Now
Plan cards: only plans with a price get Buy Now.

On phones

On a phone the booking card sits under the class details, at full width.

The booking card on a phone, with Thursday picked and This class only chosen
The booking card on a phone.

Checkout through WooCommerce

Payment runs entirely through your WooCommerce cart and checkout, with the payment methods you set up there. The class is the item in the cart; under it, the booking details show in words.

The WooCommerce cart with Pilates Basics at $25.00, the line Class time: Tuesday 09:30 - 10:30 / Code: #101, a remove button and no quantity box
The cart: the class, its price, and the booking details.
The checkout's Order summary: Pilates Basics, $25.00, Class time Tuesday 09:30 - 10:30, Code #101, total $25.00
Checkout → Order summary.

The same details are saved on the order, so you see them in WooCommerce → Orders and they appear in WooCommerce's own order emails:

The price charged is the class's price on the day (the later price once its date has come), or the plan's price. The quantity is always one — for a class and for a plan — so the cart has no quantity box. A class can be in an order only once: trying to add it again says "This class is already in your cart. Finish that booking first, or remove it from the cart."

The cart and the checkout check each class again, and the order can't be placed until the problem is fixed:

When an order is paid

The member is booked in

When the order's status becomes Processing or Completed in WooCommerce, the add-on:

  1. Finds the member — by the buyer's account, then by their email or phone. If there is none, it creates the member and a login for the member dashboard, and Gym Builder emails them their login details.
  2. Gives them the plan the order paid for, if any.
  3. Books them into the class time, taking one place.
  4. Emails them a confirmation (see Emails).

An order that waits for payment — for example a WooCommerce bank transfer order that is On hold — books nothing until you change it to Processing or Completed.

Places held while an order waits

When someone places an order that waits for payment (Pending payment, or On hold for a bank transfer or cheque), the class places in it are held for them. Other visitors see those places as taken, so two people can't pay for the same last place. The buyer's own order does not count against them if they try to pay again.

!
Paid, but the place was gone

If the hold runs out before the money arrives (a bank transfer can take days) and the class time fills up meanwhile, the order is paid but can't be booked. It gets the order note "Class booking could not be completed — one or more selected times are full. Please contact the member.", and you get an email "Paid but not booked: order #…" with the class time, the buyer's details and a link to the order. Refund the order in WooCommerce, or book them into another time.

The plan a member gets

A plan bought here — picked on a class page or bought with Buy Now — runs for one of its periods:

Refunds and cancelled orders

When you set an order to Refunded or Cancelled in WooCommerce, the add-on frees the class places it booked and takes back the plan it gave. Give the refund itself in WooCommerce as usual. A partial refund that leaves the order's status unchanged does not free anything.

The Payments page

Go to Gym Builder → Class Booking → Payments in the Dashboard. This page is for money members pay you by hand — cash at the desk, a card machine, a bank transfer — and for keeping track of who should pay next. WooCommerce orders are not listed here; they stay in WooCommerce → Orders.

The Payments page: a search box, filters All, Due soon (1), Overdue, No payments yet (52), the order Next payment first, and a list of members with their classes, next payment date, last payment, and buttons Record payment, History or 1 payment, and Remind
Gym Builder → Class Booking → Payments.

Every member is listed with their member ID, plan, classes (with class time, location and code) and payments:

Use the search box (name, email or member ID — at least 2 letters), the filters All, Due soon, Overdue and No payments yet, and the order list (Next payment first, Name A–Z, Newest members first) to find people. The list shows 20 members per page.

Record a payment

  1. Find the member and click Record payment.
  2. Type the Amount and how they paid in Paid by — pick Cash, Card, Bank transfer or Cheque from the suggestions, or type your own.
  3. Check Next payment due. It starts one month from today; change it, or clear it when no further payment is expected.
  4. Add a Note (optional).
  5. Email a receipt is on when the member has an email address. Switch it off if you don't want to send one.
  6. Click Record payment.
The Record a payment from Amelia Hart window: Amount 49, Paid by Card, Next payment due, a note, and the Email a receipt switch
Record a payment. Email a receipt is switched off in this example.

The payment gets a reference such as #GBP-512233. The window then shows Payment recorded, with Print receipt and Done.

The Payment recorded window: Amelia Hart, $49.00, #GBP-512233, next payment due November 25, 2026, with Print receipt and Done buttons
After saving.
i
Recording is for your records

Recording a payment does not change the member's plan, end date or classes. To extend a membership, edit the member in Gym Builder → Members.

See and delete payments

Click History — or the "1 payment" / "[n] payments" button once a member has some — to see every payment recorded for that member, newest first, with the date, reference, next due date and note.

A member's payment history: their classes, then one payment of $49.00 by Card on October 25, 2026 with its reference, next due date and note, and buttons Receipt and a delete cross
A member's payments.

To remove a payment recorded by mistake, click the × next to it, then Delete (or Keep to leave it).

Click Receipt next to a payment in the history, or Print receipt right after recording it. Your browser's print window opens; print it or save it as a PDF.

A printed receipt: studio name, Receipt with reference and date, the member's name, ID and plan, Paid by Card with the note, Amount $49.00, next payment due, and a table of the member's classes with class time and code
The printed receipt.

The top of the receipt uses your studio details from Gym Builder → Settings → General → Studio Details: Studio Name on ID Cards (or your site name), Address and Phone. Note on the Back of the Card is printed at the bottom.

Send a payment reminder

  1. Click Remind on the member's row. (It is grayed out when the member has no email address.)
  2. Check the Message. It is filled in for you: "This is a friendly reminder that your next payment is due on [date]." — or a general reminder when no date is set.
  3. Click Send reminder.
The Remind Lia Page window with a ready-written message and the Send reminder button
Remind a member.

Emails

The add-on's own emails are sent from the address in Gym Builder → Settings → General → Emails (Send Emails From), with your studio name as the sender. WooCommerce sends its usual order emails as well.

Questions

Can I use it together with Stripe Payments or Offline Payments?

No. Neither can be active at the same time as this add-on; deactivate one before activating the other. With this add-on, card payments — and bank transfer or cash on delivery, if you switch those on in WooCommerce — go through the payment methods you set up in WooCommerce.

Can someone book two places in one order?

No. The quantity is always one, so each order books one place in one class time.

Is a booking for one date or every week?

A booking is for a class time — for example "Tuesday · 9:30 – 10:30" — the same way Gym Builder books a member into a class. It takes one of that time's places.

When does someone get their place?

When the WooCommerce order becomes Processing or Completed — normally right after an online payment. An order waiting for payment books nothing yet, but holds the place for WooCommerce's Hold stock (minutes) time.

Do buyers need an account first?

No. If the buyer isn't a member yet, the add-on makes them one when the order is paid, with a login for the member dashboard. Whether people can check out without an account is up to your WooCommerce settings.

How do I offer a class for free?

Switch on Book and Pay Online and leave Price empty. The card shows Free, people still go through checkout to give their details, and they are booked in when the order is placed.

How do I change the price later in the season?

Fill in Later Price and Later Price From. Until that date the card shows the later price under the current one; from that date it is the price charged.

Does the Payments page show WooCommerce orders?

No. It holds the payments you record by hand. WooCommerce orders stay under WooCommerce → Orders.

Does recording a payment extend a membership?

No. It only records the money and the next due date. Change the member's plan or dates on their member page if needed.

What happens to the place when I refund an order?

Set the order to Refunded (a full refund does this) or Cancelled. The place is freed and any plan the order gave is taken back.

Where does the class time's code show?

On the cart, checkout, the WooCommerce order and its emails, the Payments page and printed receipts — not on the class page.

If something goes wrong