Skip to content

contensio/plugin-membership

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Membership & Paywalled Content

Restrict posts and pages to registered members or specific paid tiers. Stripe handles subscription billing (monthly, yearly) and one-time lifetime payments. A self-service member dashboard lets subscribers manage their own billing.

Features

  • Membership tiers - create unlimited plans: free, monthly, yearly, or lifetime
  • Stripe subscriptions - Stripe Checkout for recurring billing; Stripe Customer Portal for self-service management
  • Lifetime payments - one-time payment tiers use Stripe mode: payment
  • Free / registration-wall tiers - require account registration with no payment
  • Content access control - restrict any content item to "any paid plan" or a specific tier
  • Paywall preview - show N configurable paragraphs to non-members before the paywall appears
  • Member dashboard - members can view their plan, billing period, and cancel or manage billing
  • Webhook handling - handles checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.payment_failed
  • Member management - admin dashboard with stats, search, filter by status, and per-member detail view
  • Welcome email - automatic email sent on membership activation

Setup

  1. Enable the plugin in the admin Plugins panel.
  2. Go to Membership Plans > Settings and enter your Stripe API keys.
  3. Create a Stripe webhook pointing to https://yoursite.com/membership/webhook and add the webhook secret to settings. Subscribe the webhook to: checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.payment_failed.
  4. Create your membership plans under Membership Plans.
  5. Link the pricing page (/membership/pricing) from your navigation.

Restricting content

Go to Content > Content Access Control to search for any content item and assign a membership requirement. You can restrict to "any paid plan" or a specific tier slug, and configure how many paragraphs are shown as a preview.

The paywall is automatically injected into the content body via the contensio/content/body filter — no template changes needed.

Embedding the pricing page

The pricing page is served at /membership/pricing by default. Link to it from your navigation or landing page.

To display a subscribe button anywhere in a template:

<a href="{{ route('contensio-membership.public.pricing') }}">Become a member</a>

Member account

Members can view and manage their membership at /membership/account. This page requires authentication.

License

AGPL-3.0-or-later. See LICENSE file.

About

Restrict posts and pages to registered members or specific paid tiers. Stripe handles subscription billing (monthly, yearly) and one-time lifetime payments. A self-service member dashboard lets subscribers manage their own billing.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors