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

Stripe Payments

Sell your membership plans online by card. Members pick a plan, a class and a time, pay on Stripe's secure page, and their membership starts by itself — once or on a schedule that renews every month, two months, three months or year.

Needs Gym Builder 3.0.0+Needs a Stripe accountTranslated into 7 languages

What it does

Stripe Payments puts a buy button on your membership plans and class pages. When someone buys, Stripe takes the card payment and tells your site, and Gym Builder makes them an active member and books their place in the class time they chose.

Before you start

!
Not together with Class Booking & Payment

Stripe Payments and Class Booking & Payment cannot be switched on at the same time. If one is on, WordPress stops the other from being activated and shows a message saying which one to switch off first.

Install and switch on

  1. Go to Plugins → Add Plugin and click Upload Plugin.
  2. Choose the gb-stripe-payments zip file from your purchase, click Install Now, then Activate Plugin.
  3. If the Dashboard menu shows License Key under Stripe Payments, open it, paste the key from your purchase email and click Activate License.

The add-on adds a Stripe Payments group to the Gym Builder Dashboard menu, with two pages: Subscriptions and Settings.

Connect Stripe

Go to Gym Builder → Stripe Payments → Settings. The page has four cards. You copy two things from Stripe into the first two cards, then click Save Settings at the bottom of the page.

Stripe Account: your keys

The Stripe Account card: Mode set to Test (no real money), a Test Publishable Key starting pk_test_, and a Test Secret Key box saying a key is saved
Stripe Payments → Settings → Stripe Account.
  1. Under Mode, leave Test (no real money) chosen while you set things up. You switch to Live when you are ready to take real payments (see Going live).
  2. In another browser tab, sign in to Stripe and make sure it is showing test data (Stripe calls this test mode or a sandbox).
  3. In Stripe, open Developers → API keys.
  4. Copy the Publishable Key (it starts with pk_test_) and paste it into Test Publishable Key.
  5. Back in Stripe, click Reveal next to the Secret Key (it starts with sk_test_), copy it and paste it into Test Secret Key.
  6. Click Save Settings.
i
Your secret key stays hidden

After saving, the secret key box shows empty with the note "A key is saved. Leave this empty to keep it, or type a new one." That is normal: the key is kept, it is just never shown again. Type a key there only to replace it.

Payment updates from Stripe (webhook)

Stripe has to tell your site when a payment goes through, renews or fails. You do this by giving Stripe one web address, and giving your site the code Stripe uses to sign its messages. Without this step, people can pay but their membership never starts.

The Payment Updates from Stripe card with the Address to Give Stripe, a Copy button, and an empty Signing Secret box
Your own site's address is shown here — copy it with the Copy button.
  1. Next to Address to Give Stripe, click Copy. It looks like https://your-site.com/wp-json/gb-stripe/v1/webhook.
  2. In Stripe, open Developers → Webhooks and add a new endpoint (newer Stripe accounts call it a destination).
  3. Paste the address as the Endpoint URL.
  4. Choose the events to send. Select these five:
    • checkout.session.completed
    • invoice.payment_succeeded
    • invoice.payment_failed
    • customer.subscription.updated
    • customer.subscription.deleted
  5. Save the endpoint in Stripe.
  6. On the endpoint's page in Stripe, find Signing Secret, click Reveal and copy it. It starts with whsec_.
  7. Back in Gym Builder, paste it into Signing Secret and click Save Settings.

What your site does with each event:

i
Using Business Manager?

Also select charge.refunded. Business Manager then takes refunds you make in Stripe off your revenue.

Checkout

The Checkout card: Activate the Membership When Payment Goes Through switched on, Buy Button Text Subscribe Now, and two page pickers
Stripe Payments → Settings → Checkout.

Plans in Stripe

The Plans in Stripe card with the Sync Plans to Stripe button
Stripe Payments → Settings → Plans in Stripe.

Sync Plans to Stripe copies every published plan that is sold by card, with its prices, to your Stripe account. Save your keys first. When it finishes it says how many plans were synced (for example "Synced 2 of 2 packages.") and lists any plan that could not be synced, with the reason.

Each plan is also sent to Stripe when you save it (see the next section), so you rarely need this button. Use it after changing your keys or your currency, or if a plan shows an empty Stripe price ID — and once after switching Mode. Test and Live are separate Stripe accounts, so each plan keeps its own Stripe IDs for each mode, and the buy button only works once the plan has been synced in the mode you use. Until then, members who click Proceed to Payment see "Invalid billing interval." Switching back to a mode the plans were already synced in needs no new sync.

Going live

When your test payments work, switch to real payments:

  1. In Stripe, leave test mode so you see your live account, and open Developers → API keys.
  2. In Gym Builder, set Mode to Live. The boxes change to Live Publishable Key and Live Secret Key; paste your live keys (they start with pk_live_ and sk_live_).
  3. In Stripe's live account, add the webhook again — same address, same five events — and paste its new signing secret into Signing Secret. Test and live webhooks have different signing secrets, and there is one Signing Secret box, so it must belong to the mode you use.
  4. Click Save Settings.
  5. Click Sync Plans to Stripe and check that the message counts every plan as synced. This makes each plan's copy in your live Stripe account; until you do, the buy window says "Invalid billing interval."
  6. If you use Promotions & Trials, open each coupon on its Coupons page, click Edit, then Save. That gives the coupon its copy in your live Stripe account.

Your test keys and each plan's test prices are kept, so you can switch back to Test at any time without syncing again.

Once you are live, your site keeps to the live account:

Sell a plan by card

Each plan you want to sell gets its card prices on the plan's own edit screen.

  1. Go to Gym Builder → Membership Plans and open the plan.
  2. In the plan's menu, under Add-ons, click Card Payments.
  3. Switch on Sell This Plan by Card.
  4. Under Billing Options, switch on each way of paying you want to offer and type its price (just the number).
  5. Click Save and Sync to Stripe (or Update). The plan is saved and its prices are sent to Stripe; the Stripe price ID boxes fill in.
The Card Payments card on a plan: Sell This Plan by Card on, Monthly and One-Time switched on at 60 with Stripe price IDs, the other three off with 'Made when synced', and the Stripe Product ID
Membership plan → Add-ons → Card Payments. Here the plan is offered Monthly and One-Time.

The billing options

BillingWhat the member pays
MonthlyThe price every month, until it is canceled.
Bi-MonthlyThe price every two months.
QuarterlyThe price every three months.
YearlyThe price every year.
One-TimeThe price once. The membership lasts one year and then ends; it does not renew.

A plan with Stripe on shows the first card price you offer on your pricing table, and a buy button in place of the plan's own button.

How members buy

Where the buy button shows

A pricing table with three plans; the 10-Class Pass shows $60.00 /Monthly and a Subscribe Now button, the other two plans have no card price
The pricing table. Only the 10-Class Pass is sold by card here, so only it has Subscribe Now.

People have to be logged in to buy, because the membership is tied to their account. A visitor who clicks the button gets a Login window first (username or email, and password). If your site lets anyone register (WordPress Settings → General → Anyone can register), the window also has a Register tab: username, email and a password of at least 8 characters. After logging in, the page reloads and the buy window opens.

The buy window

The 10-Class Pass buy window: Billing Plan with Monthly $60.00 selected and One-Time $60.00; Choose your classes row 1 with Hatha Yoga, Monday and 7:00am - 8:00am (12/12 Available); + Add another class; Have a discount code?; Proceed to Payment
The buy window from the pricing table, filled in.
  1. Billing Plan — the member picks one of the options you offer, with its price.
  2. Class, day and time — the member picks a class the plan includes, then a day, then a time. Each time shows how many places are free, for example "12/12 Available". A full time is greyed out and can't be chosen.
  3. If the plan includes more than one class, they can click + Add another class for another class and time, up to what the plan allows. The window tells them how many to choose (for example "Choose your classes").
  4. If you use Promotions & Trials, a Have a discount code? link can show here. It opens a code box with an Apply button, and the code is checked before they pay.
  5. Proceed to Payment takes them to Stripe's secure payment page. The page stays open for 30 minutes.

Things the window checks before sending anyone to Stripe:

On a class page: choosing the plan

A class is often included in more than one plan. On class cards and the class page there is one button, and its window starts with Select Package: a list of every plan sold by card that includes this class. When the member picks a plan, its billing options appear, then the class rows with this class already chosen.

The buy window on the Hatha Yoga class page: Select Package set to 10-Class Pass, Billing Plan Monthly or One-Time, Choose your classes with Hatha Yoga preselected
The buy window on the Hatha Yoga class page.

After paying

i
If the class fills up while they pay

The place is checked again when the payment arrives. If the last place went to someone else in the meantime, the purchase is canceled, the payment is refunded in full automatically, and the member gets an email asking them to choose another time. If that refund cannot be made, you get an email asking you to refund it from your Stripe dashboard.

Stripe Payments also takes the payment when someone signs up for a plan sold by card through a sign-up form — Gym Builder's own registration form or the Registration Popup. The visitor goes straight to Stripe's payment page, and their class place is held for 30 minutes while they pay. Their login and member record are made only once Stripe confirms the payment; an unpaid sign-up simply lapses and the place is freed. The form charges the plan's One-Time price if it has one, otherwise its first card price in this order: Monthly, Bi-Monthly, Quarterly, Yearly.

The Subscriptions page

Go to Gym Builder → Stripe Payments → Subscriptions. Every card purchase is listed here. A number next to Subscriptions in the menu tells you how many payments have failed.

The Subscriptions page: totals for Active 3, Expired 15, Canceled 25 and Money taken $300.00; search, status, plan and date filters; three active subscriptions with member, plan, class, amount, status, start and end dates and Extra days and Cancel buttons
Stripe Payments → Subscriptions, filtered to Active.

Totals, filters and statuses

StatusMeans
ActivePaid and running. "Will not renew" underneath means auto-renew was turned off: it runs to its end date and stops.
Payment failedA renewal could not be charged. Stripe tries the card again by its own retry rules.
Waiting for paymentThe member went to Stripe's payment page and has not paid yet.
ExpiredA One-Time plan reached its end date. A checkout left unpaid for more than an hour is also marked Expired by the daily clean-up.
CanceledEnded by you, by the member, by Stripe, or the buyer left Stripe's payment page without paying.

A row with no Started date is a checkout that was never paid.

Export to a spreadsheet

Click Export CSV. You get a file named like subscriptions-2026-10-25.csv with every subscription that matches your current filters (all pages, not only the one you see). Columns: ID, User, Email, Package, Class, Schedule, Interval, Amount, Currency, Status, Subscribed, Expires — and Location, when you use class locations.

Cancel a subscription

  1. Find the subscription and click Cancel (shown on Active and Payment failed rows).
  2. Check the member and plan in the window, then click Yes, cancel it — or Keep it to go back.
The Cancel this subscription window for Amelia Hart's Unlimited Monthly plan, type Renews by itself, with a red warning and the buttons Keep it and Yes, cancel it
Canceling ends it at once.

Canceling happens straight away: a renewing plan is canceled in Stripe too, so the card is not charged again; the class place is freed and the member loses access (unless they have another active plan). It cannot be undone, and it does not refund anything — make refunds in your Stripe dashboard.

Give extra days

  1. Click Extra days on the row.
  2. Type the number of days or pick 7, 14, 30, 60 or 90 days.
  3. Click Add 30 days (the button shows your number).
The Give extra days window: Ends now September 30, 2026, Days to add 30 with quick choices 7, 14, 30, 60 and 90 days, and the Add 30 days button
Good for a holiday closure or a goodwill gesture.

The days are added to the end date — counted from today if the plan has already ended. An Expired plan becomes Active again and its class place is booked again; if that place has been taken since, the window says so and nothing changes. This moves the end date on your site only: Stripe's billing dates do not change.

On a member's page

Open a member in Gym Builder → Members. The Card billing panel shows how many card subscriptions they have, their lifetime value (everything they have paid you by card, renewals included), and each plan with its billing, renewal date, card and status.

The Card billing panel on Amelia Hart's member page: 1 subscription, lifetime value $0.00 because no card payment has come through for it yet, Unlimited Monthly at $49.00 renewing September 30, 2026, Visa ending 4242, Active
Members → a member → Card billing.

Renewals, cancellations and failed payments

"Makes the member inactive" only happens when they have no other active plan. A member who also holds another card plan, an approved offline payment or a plan you gave them stays active.

What members see

The Billing tab

Members find a Billing tab in their member dashboard (it shows once Stripe keys are saved, or when they have a subscription). It lists My Subscriptions: each plan with its status, class, day, time, price and billing, and the next billing date.

A subscription on a phone: Unlimited Monthly, ACTIVE, Hatha Yoga on Monday 06:00 PM - 07:00 PM, $49.00 / Monthly, Next billing date, an Auto-renew switch and Manage billing
A monthly plan in the Billing tab, on a phone.
PlanWhat the member can do
Renewing and ActiveAuto-Renew switch — off means the plan runs to its end date and stops ("Auto-renew off" and "Expires on" then show); on again means it keeps renewing. Manage Billing opens Stripe's billing page, where they can update their card.
One-Time and ActiveCancel — after "Are you sure you want to cancel this subscription?", it ends at once and the class place is freed. No refund.
Payment failedUpdate Payment — opens Stripe's billing page to change the card.
Canceled or ExpiredResubscribe — goes straight to Stripe's payment page for the same plan, billing and class time.

Stripe Payments also adds an Edit Profile button at the top of the member dashboard, next to the welcome message. Members can change their profile image (JPG or PNG, up to 2MB), phone, age, gender and address, then click Save Changes.

The top of the member dashboard on a phone: Welcome back, Taylor Brooks, and under it the Edit Profile button next to the full-screen button
The Edit Profile button at the top of the member dashboard, on a phone.

Emails

The emails are plain text and sent through your site's normal email. There are no switches for them.

The site sends no email when a plan renews or is canceled. Stripe can send its own payment receipts — turn them on in your Stripe account's email settings.

Discount codes and free trials

Discount codes and free trials come from the Promotions & Trials add-on. With it, the buy window can show Have a discount code?: the member types the code, clicks Apply and sees whether it works for that plan, and the discount is taken off on Stripe's payment page. A renewing plan can also start with a free trial; during the trial the subscription shows as Active. How to make codes and trials, and which plans accept them, is in the Promotions & Trials guide.

Want to take bank transfers or payments at the desk as well? Offline Payments adds its own button next to Subscribe Now on the same plans.

Questions

Can people buy without making an account?

No. The membership belongs to their account, so they log in first. If your site allows anyone to register, they can make an account in the same window.

Can a member buy the same plan twice?

Not while the first one is active — they see "You already have an active subscription for this package." They can buy a different plan, or the same plan again after the first one has ended.

Is a place held while someone is on Stripe's payment page?

From the buy window, no: the place is checked when they choose it and again when the payment arrives, and if it is gone by then they are refunded automatically. From a paid sign-up form, yes: the place is held for 30 minutes.

How do I refund a member?

In your Stripe dashboard. Stripe Payments has no refund button. A refund doesn't end the membership: to do that, also click Cancel on the Subscriptions page.

Can a member pause or switch plans?

There is no pause or plan switch. To move to another plan, cancel the current one and buy the new one. To give extra time, use Extra days.

What does One-Time mean for the member?

One payment, and the membership lasts one year. It does not renew. The member can cancel it from their Billing tab.

Does it add tax or make invoices?

No. Stripe Payments charges the price you set. Tax and invoices are handled in your Stripe account if you need them.

Can I offer card and offline payment on the same plan?

Yes. With Offline Payments on, a plan can show both buttons.

What happens to my data if I delete the add-on?

Deactivating it keeps everything. Deleting it from the Plugins page removes its subscription records, its settings and the plans' card prices from your site. Your customers and payments in Stripe are not touched.

If something goes wrong

The Needs you card on the Gym Builder Dashboard with the warning Stripe is still in Test mode and a Switch to Live button
Gym Builder → Dashboard → Needs you.