Paid Membership
Paid Membership Setup Guide
Open the Paid Membership Settings
In WordPress, go to VH360 Theme > Paid Memberships.
This screen includes four tabs:
- General
- Stripe / Recurring
- Plan Configuration
- Statistics
Enable Paid Memberships
Open the General tab and turn on Enable membership system.
When this is enabled, WooCommerce products can be connected to membership plans, and Stripe recurring subscriptions can be used for plans that are configured as recurring.
Set the Pricing Page URL
In the General tab, enter the URL of your membership pricing page in Pricing Page URL.
This URL is used in upgrade prompts when a visitor tries to access a locked membership feature.
Choose How Locked Content Works
In the General tab, configure these options:
- Login Required: Requires users to log in before viewing locked membership content.
- Locked Content Message: Custom message shown when content is locked.
- Renewal Reminder: Number of days before expiration to send a renewal reminder.
- Grace Period: Number of days after expiration that access should continue.
Set Renewal Reminder to 0 if you do not want renewal reminders.
Set Grace Period to 0 if you do not want members to keep access after expiration.
Choose Which Features Require a Membership
In the General tab, select the features that should require an active membership.
Available frontend creation gates:
- Video Creation
- Post Creation
- Event Creation
- Bulletin Creation
- Gallery Creation
Available platform feature gates:
- Live Rooms
- Direct Messages
- Activity Feed
- Members Directory
- Appointments
- Push Notifications
Only selected features require an active membership. Features that are not selected remain controlled by their normal site permissions.
Configure One-Time Membership Products
Use this setup for fixed-term or lifetime memberships sold through WooCommerce products.
- Go to Products in WordPress.
- Create or edit the WooCommerce product you want to sell as a membership.
- Find the VH360 Membership Mapping box on the product edit screen.
- Choose the Membership Plan.
- Set the Duration.
- Choose the duration unit: Days, Months, Years, or Lifetime.
- Choose the Grant Type:
- Grant New gives the customer a new membership for the selected plan.
- Extend Existing extends the customer’s existing membership for that same plan when one exists.
- Save or update the product.
A mapped membership product grants or extends the membership when the WooCommerce order reaches Processing or Completed.
If the order is later Cancelled or Refunded, the membership connected to that order is cancelled.
Configure Stripe Recurring Billing
Use this setup for recurring subscription memberships.
Open VH360 Theme > Paid Memberships > Stripe / Recurring.
Configure these settings:
- Enable Stripe recurring subscriptions.
- Use Test Mode while testing.
- Enter your test API keys while test mode is enabled:
- Test Publishable Key
- Test Secret Key
- Enter your live API keys before accepting real payments:
- Publishable Key
- Secret Key
- Enter your Webhook Signing Secret after creating the Stripe webhook.
- Optional: enable Customer Portal if you want members to manage billing through Stripe.
- Choose the Cancellation Behavior:
- Cancel at end of billing period
- Cancel immediately
- Save the Stripe settings.
Add the Stripe Webhook
In Stripe, create a webhook endpoint using the webhook URL shown in VH360 Theme > Paid Memberships > Stripe / Recurring.
The webhook endpoint uses this format:
https://your-site.com/wp-json/vh360-memberships/v1/stripe-webhook
Enable these Stripe webhook events:
checkout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deletedinvoice.paidinvoice.payment_failed
After creating the webhook, copy the webhook signing secret from Stripe and paste it into Webhook Signing Secret.
Configure Membership Plans
Open VH360 Theme > Paid Memberships > Plan Configuration.
The available plans are:
- Basic (Monthly)
- Basic (Yearly)
- Pro (Monthly)
- Pro (Yearly)
- Lifetime
For each plan, configure the billing settings:
- Billing Mode
- One-Time (WooCommerce) uses WooCommerce product purchases.
- Recurring (Stripe) uses Stripe subscription checkout.
- Stripe Price ID: Required for recurring Stripe plans.
- Auto-Renew: Marks the plan as auto-renewing.
- Trial Days: Adds a Stripe trial period for recurring plans.
For frontend display, configure:
- Display Name
- Display Price
- Short Description
- Features
Features should be entered one per line.
Click Save Plan Configuration when finished.
Show Membership Management on a Page
Create or edit the page where members should manage their membership, then add this shortcode:
[vh360_membership_manage]
For logged-in members, this shows their current membership status.
For logged-in users without an active membership, this can show available recurring Stripe plans when recurring plans are configured and Stripe is connected.
Customize the Subscription Card
In VH360 Theme > Paid Memberships > General, use Subscription Card Styling to customize the recurring subscription plan card shown to non-members.
Available styling options include:
- Card background color
- Card border color
- Card title color
- Card price color
- Card text color
- Button label
- Button background color
- Button text color
Leave a field empty to use the default style.
Test the Setup
For one-time WooCommerce membership products:
- Buy the mapped product as a logged-in test customer.
- Confirm the order reaches Processing or Completed.
- Confirm the customer receives the correct membership access.
- Refund or cancel a test order and confirm the connected membership is cancelled.
For recurring Stripe memberships:
- Keep Stripe in Test Mode.
- Confirm the recurring plan is set to Recurring (Stripe).
- Confirm the plan has a valid Stripe Price ID.
- Visit the page containing
[vh360_membership_manage]as a logged-in test user without an active membership. - Click the subscription button for the plan.
- Complete Stripe Checkout with a Stripe test card.
- Confirm the customer returns to the site and receives active membership access.
- Confirm Stripe webhook events are being received successfully.
Troubleshooting
The subscription plan does not appear on the membership page
Confirm all of the following:
- Stripe recurring billing is enabled.
- Stripe keys are saved for the current mode.
- The plan is set to Recurring (Stripe).
- The plan has a Stripe Price ID.
- The user viewing the page is logged in and does not already have an active membership.
- The page contains
[vh360_membership_manage].
A WooCommerce product purchase does not grant membership access
Confirm all of the following:
- The product has VH360 Membership Mapping configured.
- A membership plan is selected on the product.
- The order belongs to a registered user.
- The order status is Processing or Completed.
Stripe checkout says the plan is not configured for recurring billing
Confirm the plan is set to Recurring (Stripe) and has a valid Stripe Price ID in Plan Configuration.
Webhook events are not updating memberships
Confirm all of the following:
- The webhook endpoint URL matches the URL shown in the Stripe settings tab.
- The webhook signing secret is saved correctly.
- The required webhook events are enabled in Stripe.
- Test mode settings match the mode being used in Stripe.
