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.
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)
- 1In WP Admin, go to Plugins → Add New → Upload Plugin.
- 2Upload gym-builder.zip (the free core). Click Install Now → Activate.
- 3Repeat for gb-stripe-payments.zip. After activation a new Stripe Settings menu appears under Gym Builder.
- 4Repeat for gb-registration-page-popup.zip. After activation a new Registration Page Popup menu appears under Gym Builder.
- 5Open Settings → Permalinks and click Save Changes once. This re-flushes WP’s rewrite rules so the new /classes/ and /trainers/ archives respond.
Step 2 — Configure the basics (5 min)
2.1 Global currency & brand color
- 1Go to Gym Builder → Settings → Global Settings.
- 2Set Currency to your local currency (e.g.
United States Dollar ($)). Recommended: match what you set in Stripe. - 3Leave Currency Position at the default (
Left ($99.99)) unless your country uses a different convention. - 4(Optional) Fill in Member ID Card Title / Shop Name, Contact Number, Shop Address, Footer Note — these print on member ID cards and PDFs.
- 5Click Save Settings.
- 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
- 1In a new tab, visit dashboard.stripe.com/test/apikeys. Copy the Publishable key (starts
pk_test_) and Secret key (startssk_test_). - 2Back in WP Admin, go to Gym Builder → Stripe Settings → General Settings.
- 3Set Mode to Test.
- 4Paste the Test Publishable Key and Test Secret Key.
- 5(Optional, for production later) The Webhook Secret field expects
whsec_…— leave it blank in test mode unless you’re testing webhook events. - 6Click Save Settings.
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.
- 1Go to Trainer → Add New Trainer Member.
- 2Title: their name (e.g.
Alex Morgan). - 3Featured image: upload a portrait. Recommended: 800×800px square, JPG.
- 4Content: a 2-3 sentence bio. Members see this on the trainer card.
- 5In the sidebar, pick or create a Trainer Category (e.g.
Personal Trainer). - 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 rolegym_builder_trainer. - 7Trainer Socials Links metabox (optional): paste full URLs for any of Facebook, Twitter, LinkedIn, Skype, YouTube, Pinterest, Instagram, TikTok. Leave blanks to hide.
- 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)
- 1Go to Classes → Add New Class.
- 2Title:
Morning Spin(or whatever your class is). - 3Featured image: a class photo.
- 4Content: a paragraph describing the class.
- 5Sidebar: pick or create a Class Category (e.g.
Cardio). - 6Scroll to the Schedule metabox. At the top, leave Color at the default (it tints the Class Routine layout). Set Button Text to
Reserveand leave Button URL blank — Stripe Payments will inject its own Subscribe button later. - 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. - 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.
- 9Click Publish. The class is now live at
/gym_builder_class/morning-spin/and on the /classes/ archive.
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)
- 1Go to Membership Package → Add New.
- 2Title:
Unlimited Monthly. - 3Content: a sentence describing the perks.
- 4Sidebar: pick or create a Package Type (e.g.
Premium). - 5Membership Package Options metabox: set Package Price to
49, Package Price Duration toper 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). - 6Stripe Billing Settings metabox: tick Monthly, enter
49. Leave Bi-Monthly / Quarterly / Yearly / One-Time unchecked unless you want to offer multiple billing intervals. - 7Click Publish.
- 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(Verification) Open dashboard.stripe.com/test/products in another tab. You should see Unlimited Monthly with one active Price.
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.
- 1Go to Pages → Add New.
- 2Title:
Join. - 3In the block editor, add a Shortcode block.
- 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
- 5Click Publish. Note the page URL (e.g.
/join/). - 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 monthand a Subscribe Now button. - 7Click Subscribe Now. You’re redirected to Stripe Checkout with
$49.00 USDready to charge. Use Stripe’s test card4242 4242 4242 4242with any future expiry + any CVC to complete the test purchase. - 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).
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
monthlyinterval.
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.
- 1Go to Gym Builder → Registration Page Popup → General Settings.
- 2Enable Enable Registration.
- 3Leave Popup Layout Style at
Popup-Layout 1and Popup Overlay on (default). - 4Set Registration Form Title to
Join the Gym. - 5Set Button Text to
Register. - 6Click Save Settings.
- 7Open your /join/ page in the block editor, add another Shortcode block, and paste
[member_registration_form_popup_button]next to the pricing. - 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.
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
- 1Switch Stripe to Live mode (dashboard.stripe.com/apikeys). Copy live keys.
- 2In Gym Builder → Stripe Settings: change Mode to Live and paste the live keys.
- 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.
- 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 (startswhsec_) and paste into Webhook Secret in WP. - 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.
Quick Start · A WpDreamers walkthrough
© WpDreamers — From zero to paid recurring membership in 30 minutes.