Documentation hub

Quick Start — From Zero to Paid Recurring Membership

A 30-minute walkthrough that takes a brand-new install and ends with a live page where members can subscribe to a monthly membership via Stripe. Covers Gym Builder (core) + GB Stripe Payments + GB Registration Page Popup. Cross-references the deep-dive docs for every step.

What we're building

By the end of this walkthrough, your site will have: 1 published class with a schedule, 1 published trainer, 1 published membership package synced to Stripe with monthly pricing, a /classes/ page that lists the class with a “Subscribe Now” button that opens Stripe Checkout, and a Members admin page that lists every paid subscriber.

i
Total time: ~30 minutes5 minutes per step below. Each step links to the relevant deep-dive doc if you want to learn more, but you do not need to read those first — every required action is spelled out here.

Prerequisites

  • WordPress 5.8+ with admin access. (Where to check: WP Admin → Dashboard → At a Glance.)
  • PHP 7.4+. (Where to check: Tools → Site Health → Info → Server.)
  • A Stripe account with API keys handy. (stripe.com/apikeys; use Test mode keys for this walkthrough.)
  • Empty test site or staging. Don’t do this walkthrough on production for the first time.

Step 1 — Install + activate the 3 plugins (5 min)

  1. 1In WP Admin, go to Plugins → Add New → Upload Plugin.
  2. 2Upload gym-builder.zip (the free core). Click Install NowActivate.
  3. 3Repeat for gb-stripe-payments.zip. After activation a new Stripe Settings menu appears under Gym Builder.
  4. 4Repeat for gb-registration-page-popup.zip. After activation a new Registration Page Popup menu appears under Gym Builder.
  5. 5Open Settings → Permalinks and click Save Changes once. This re-flushes WP’s rewrite rules so the new /classes/ and /trainers/ archives respond.
You’re ready when…The left-hand admin sidebar shows a Gym Builder top-level menu with submenus: Settings, Dashboard, All Members, Stripe Settings, Subscriptions, Registration Page Popup. If anything’s missing, deactivate + reactivate.

Step 2 — Configure the basics (5 min)

2.1 Global currency & brand color

  1. 1Go to Gym Builder → Settings → Global Settings.
  2. 2Set Currency to your local currency (e.g. United States Dollar ($)). Recommended: match what you set in Stripe.
  3. 3Leave Currency Position at the default (Left ($99.99)) unless your country uses a different convention.
  4. 4(Optional) Fill in Member ID Card Title / Shop Name, Contact Number, Shop Address, Footer Note — these print on member ID cards and PDFs.
  5. 5Click Save Settings.
  6. 6Click the Style Settings tab. Pick a Primary Color matching your brand (default #005dd0). This single color cascades to every Gym Builder UI and every add-on. Click Save Settings.

2.2 Stripe keys

  1. 1In a new tab, visit dashboard.stripe.com/test/apikeys. Copy the Publishable key (starts pk_test_) and Secret key (starts sk_test_).
  2. 2Back in WP Admin, go to Gym Builder → Stripe Settings → General Settings.
  3. 3Set Mode to Test.
  4. 4Paste the Test Publishable Key and Test Secret Key.
  5. 5(Optional, for production later) The Webhook Secret field expects whsec_… — leave it blank in test mode unless you’re testing webhook events.
  6. 6Click Save Settings.
!
Keep your Secret Key secretNever commit the Stripe Secret Key to git or paste it in a public Slack channel. Treat it like a password. If you ever leak it, rotate it from the Stripe dashboard immediately.

Deep-dive references

  • Full Global Settings reference → Gym Builder core docs, Section 3.1.
  • Full Stripe Settings reference → GB Stripe Payments docs, Section 3.

Step 3 — Add one trainer (3 min)

You need at least one trainer before you can attach them to a class slot. We’ll add one quickly.

  1. 1Go to Trainer → Add New Trainer Member.
  2. 2Title: their name (e.g. Alex Morgan).
  3. 3Featured image: upload a portrait. Recommended: 800×800px square, JPG.
  4. 4Content: a 2-3 sentence bio. Members see this on the trainer card.
  5. 5In the sidebar, pick or create a Trainer Category (e.g. Personal Trainer).
  6. 6Trainer Info metabox: set Trainer Designation (e.g. CrossFit Coach) and Trainer Email. The email must match a WordPress user — if no matching user exists, create one at Users → Add New with the same email and role gym_builder_trainer.
  7. 7Trainer Socials Links metabox (optional): paste full URLs for any of Facebook, Twitter, LinkedIn, Skype, YouTube, Pinterest, Instagram, TikTok. Leave blanks to hide.
  8. 8Click Publish. The trainer now appears on /trainers/ and is selectable from any class’s Schedule metabox.

Step 4 — Add one class with a schedule (5 min)

  1. 1Go to Classes → Add New Class.
  2. 2Title: Morning Spin (or whatever your class is).
  3. 3Featured image: a class photo.
  4. 4Content: a paragraph describing the class.
  5. 5Sidebar: pick or create a Class Category (e.g. Cardio).
  6. 6Scroll to the Schedule metabox. At the top, leave Color at the default (it tints the Class Routine layout). Set Button Text to Reserve and leave Button URL blank — Stripe Payments will inject its own Subscribe button later.
  7. 7Click Add New in the Schedule metabox. Fill the slot: Trainer = your trainer from Step 3, Weekday = Monday, Start Time = 6:00 AM, End Time = 7:00 AM, Maximum Member Allow Booking = 12.
  8. 8Click Add New again for a second slot if you want — Wed 6 AM, Fri 6 AM, etc. Each slot books and tracks capacity separately.
  9. 9Click Publish. The class is now live at /gym_builder_class/morning-spin/ and on the /classes/ archive.
The Schedule metabox is the heartThe Schedule meta (gym_builder_v2_class_schedule) is what every shortcode, every add-on (Stripe, Personal Session, Attendance, Zoom), and every Block Tools widget reads. Set it correctly here and the rest of the stack just works.

Step 5 — Create a Stripe-synced membership package (7 min)

  1. 1Go to Membership Package → Add New.
  2. 2Title: Unlimited Monthly.
  3. 3Content: a sentence describing the perks.
  4. 4Sidebar: pick or create a Package Type (e.g. Premium).
  5. 5Membership Package Options metabox: set Package Price to 49, Package Price Duration to per month. Add 3–5 Package Feature Items like “Unlimited classes”, “1 free PT session”, “Members-only events”. Leave Button Text/Button URL blank (the Stripe button replaces them).
  6. 6Stripe Billing Settings metabox: tick Monthly, enter 49. Leave Bi-Monthly / Quarterly / Yearly / One-Time unchecked unless you want to offer multiple billing intervals.
  7. 7Click Publish.
  8. 8Now click the Sync to Stripe button (purple, inside the Stripe Billing Settings metabox). The plugin contacts Stripe, creates a Product named “Unlimited Monthly” + a Price for the monthly interval, and stores the Stripe IDs in post meta. Wait ~5 seconds. The Price ID field auto-fills.
  9. 9(Verification) Open dashboard.stripe.com/test/products in another tab. You should see Unlimited Monthly with one active Price.
!
Currency lockStripe Prices are immutable per-currency. If you change Gym Builder → Settings → Global → Currency later, you’ll have to re-sync every package. Pick your currency before you start syncing.

Deep-dive

Full membership package + Stripe interval reference → Gym Builder core docs Section 6 and GB Stripe Payments docs Section 3.

Step 6 — Build the public Sign-Up page (5 min)

Now we need a page that visitors land on, sees the membership pricing, and can click “Subscribe” to start checkout.

  1. 1Go to Pages → Add New.
  2. 2Title: Join.
  3. 3In the block editor, add a Shortcode block.
  4. 4Paste:

    Fitness Beginner Package

    Rs40/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Fitness Premium Package

    Rs60/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Fitness Advance Package

    Rs100/per year
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Yoga Beginner Package

    Rs20/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Yoga Premium Package

    Rs40/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Yoga Advance Package

    Rs60/per year
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5

    Boxing Beginner Package

    Rs100/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5
    • Feature Item 6

    Boxing Premium Package

    Rs120/per month
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5
    • Feature Item 6

    Boxing Advance Package

    Rs140/per year
    • Feature Item 1
    • Feature Item 2
    • Feature Item 3
    • Feature Item 4
    • Feature Item 5
    • Feature Item 6
  5. 5Click Publish. Note the page URL (e.g. /join/).
  6. 6Open the page in a new tab while logged out (or use a private window). You should see the pricing card for Unlimited Monthly with the price $49.00 / per month and a Subscribe Now button.
  7. 7Click Subscribe Now. You’re redirected to Stripe Checkout with $49.00 USD ready to charge. Use Stripe’s test card 4242 4242 4242 4242 with any future expiry + any CVC to complete the test purchase.
  8. 8After successful payment, Stripe redirects back to your Success Redirect Page (set in Gym Builder → Stripe Settings → General Settings → Success Page; default is the homepage).
You’re liveA new row appeared in Gym Builder → All Members for the email you used at checkout, the member’s WP user account was auto-created with the gym_builder_student role, and a welcome email with their login credentials was sent. The subscription is also visible at Gym Builder → Subscriptions.

Step 7 — Verify it worked (3 min)

Admin side

  • Gym Builder → All Members — your test purchaser is listed with status Active.
  • Gym Builder → Subscriptions — one row showing the Stripe subscription ID, period start / end, status active, member email, package name, amount.
  • dashboard.stripe.com/test/customers — your test email exists as a customer with a successful $49.00 payment.
  • dashboard.stripe.com/test/subscriptions — the matching subscription with monthly interval.

Member side

  • Open the email inbox you used at checkout. You should have received a welcome email with login credentials (subject: “Your gym account is ready” or similar).
  • Log in with those credentials. You land on the Member Dashboard page (configured in Gym Builder → Settings → Page Settings → Member Dashboard Page; auto-created on activation).
  • The Member Dashboard shows your profile, current membership (Unlimited Monthly), enrolled classes (currently none — Step 8 fixes that).

Step 8 — (Optional) Connect membership to class booking (3 min)

By default, a paid member can subscribe but isn’t auto-enrolled in any class. To let them book a class slot at registration, install GB Registration Page Popup (already done in Step 1) and configure it.

  1. 1Go to Gym Builder → Registration Page Popup → General Settings.
  2. 2Enable Enable Registration.
  3. 3Leave Popup Layout Style at Popup-Layout 1 and Popup Overlay on (default).
  4. 4Set Registration Form Title to Join the Gym.
  5. 5Set Button Text to Register.
  6. 6Click Save Settings.
  7. 7Open your /join/ page in the block editor, add another Shortcode block, and paste [member_registration_form_popup_button] next to the pricing.
  8. 8Visitors now see both a pricing card AND a “Register Now” button. Clicking either path lands them on a paid member account with a class slot reserved.
i
Two paths, same destination“Subscribe Now” (from the pricing card) sends users straight to Stripe Checkout. “Register Now” (from the popup button) opens a registration form first, captures their class + slot, and then routes to Stripe if the chosen package is paid. Use both if you want both flows on the same page.

Next steps

  • Demo content — speed-test the whole stack with realistic data: Gym Builder → Import / Export → Demo Data → Import Demo Data.
  • Pre-built page layouts — install Gym Builder Block Tools (Gutenberg) or WpDreamers Template (Elementor) for one-click niche templates (Yoga / Fitness / Gym / Boxing / Karate / Swimming). See the Pre-built Templates docs.
  • Online classes — install GB Zoom Integration and set any time-slot to Class Type = Online with Zoom meeting details. See the Zoom docs.
  • 1-on-1 sessions — install GB Personal Session for paid private-training bookings on top of class-based memberships. See the Personal Session docs.
  • Attendance tracking — install GB Attendance System and the Check In button appears next to every active member. See the Attendance docs.
  • Fitness logging — install GB Fitness Tracking for trainer-assigned workouts, body measurements, charts, and member chat. See the Fitness Tracking docs.

When to go live

  1. 1Switch Stripe to Live mode (dashboard.stripe.com/apikeys). Copy live keys.
  2. 2In Gym Builder → Stripe Settings: change Mode to Live and paste the live keys.
  3. 3Re-click Sync to Stripe on every package — live and test modes are separate worlds in Stripe; you need separate Products and Prices in each.
  4. 4Add a webhook endpoint at dashboard.stripe.com/webhooks pointing at https://your-site.com/wp-json/gb-stripe/v1/webhook. Select events: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.paid, invoice.payment_failed. Copy the webhook signing secret (starts whsec_) and paste into Webhook Secret in WP.
  5. 5Save and test with one real $1 transaction to confirm the webhook fires and the subscription row writes correctly.

The Gym Builder Plugin Family

You’ve now used core + Stripe Payments + Registration Page Popup. There are seven more.

Gym Builder FREE
Free core plugin. Classes, trainers, members, schedules, packages.
GB Stripe Payments PRO
Stripe Checkout for membership packages — recurring & one-time billing.
GB Personal Session PRO
1-on-1 training session bookings, multi-step widget, refunds.
GB Attendance System PRO
Member check-in tracking with exportable attendance logs.
GB Fitness Tracking PRO
Trainer-assigned workouts, body metrics, progress charts & chat.
GB Registration Page Popup PRO
Auto-shown registration overlay with per-class scheduling form.
GB Zoom Integration PRO
Online classes via Zoom — virtual-class badges and metadata.
Gym Builder Block Tools PRO
9 Gutenberg blocks plus the Gutenberg template importer.
GB Elementor Widgets PRO
14 Elementor widgets covering every Gym Builder surface.
Pre-built Templates PRO
One-click demo import for Gutenberg + Elementor niche templates.

Quick Start · A WpDreamers walkthrough

© WpDreamers — From zero to paid recurring membership in 30 minutes.