Leaky Paywall is the most flexible
paywall and subscription plugin for WordPress. Launch a metered paywall, grow your email list with a registration wall, and sell paid subscriptions while keeping full control of your subscriber data inside WordPress.
Trusted by
800+ publishers worldwide, including local newsrooms, niche magazines, B2B media companies, and independent content creators.
Leaky Paywall makes it easy to launch a subscription business without expensive enterprise software. Install the plugin, activate List Builder, and start building your audience in minutes.
Launch a Paywall in Minutes
With Leaky Paywall you can:
- Launch a metered paywall
- Add paid subscriptions with Stripe
- Capture reader emails with a registration wall
- Restrict content anywhere on your site
- Keep full control of your subscriber data
Everything runs
natively inside WordPress with no external platform required.
What's Included Free in Leaky Paywall
Leaky Paywall includes powerful tools to start building your audience and monetizing your content right away.
List Builder Registration Wall
List Builder is a prebuilt
NYT-style registration wall that turns anonymous readers into known subscribers.
Instead of popups, readers are prompted to register or log in seamlessly to continue reading.
- Activate in minutes with no design or development required
- Combined login and registration flow modeled after major news publishers
- Mobile-friendly and fully styled out of the box
- Grow your email list faster than traditional newsletter popups
- Export registered readers to your email platform or send via Zapier
- Sync subscribers with CRM integrations available on paid plans
Multiple Subscription Levels
Create as many subscription tiers as your business needs.
- Free, premium, annual, or VIP subscription tiers
- Unlimited levels with no upfront license cost
- Powered by Stripe with Apple Pay and Google Pay support
- Start free with 10% revenue share on paid subscriptions
- Upgrade anytime to reduce or remove the revenue share
Publisher Dashboard
A dedicated dashboard inside WordPress gives you an instant view of your subscription business.
See:
- Revenue trends
- New subscriber registrations
- Paid subscription activity
- Top performing content
All directly inside your WordPress admin.
Flexible Paywall and Content Control
Leaky Paywall supports multiple paywall models so you can monetize your content your way.
- Metered paywalls
- Hard paywalls
- Dynamic and hybrid paywalls
- Restrict content by post, category, tag, taxonomy, or post type
- Restrict individual content blocks within articles
- Customizable paywall messaging
- Subscriber management tools
- Stripe payment processing (Verified Stripe Partner)
- REST API and developer hooks
Upgrade to Leaky Paywall Pro
As your subscription business grows, Leaky Paywall Pro unlocks powerful tools used by professional publishers.
Revenue and Monetization
- Reduce or remove the 10% revenue share
- Recurring subscriptions
- Free trials and promotional coupons
- Bulk, corporate, and group subscriptions
- IP-based subscriptions for organizations
Data and Insights
- Subscriber Insights helps identify readers most likely to subscribe
- Churn risk alerts
- Top converting content reports
- Subscriber behavior trends
- Incognito browsing blocking
Integrations and Extensions
Leaky Paywall integrates with the tools publishers already use.
- Salesforce
- HubSpot
- Mailchimp
- Zapier
- simplecirc
- Omeda
- WooCommerce
Flowletter Newsletters
Create and send newsletters directly inside WordPress with
Flowletter.
Subscribers are automatically logged in when clicking from your newsletter, eliminating paywall friction and improving conversion.
Includes:
- Email automation
- Welcome sequences
- Free and paid newsletter tiers
- Subscriber segmentation
Mobile Apps with UniPress
Launch native
iOS and Android apps connected to your WordPress site.
- WordPress content sync via API
- Paywall restrictions honored
- Push notifications
- Easy subscriber login
Leaky Paywall currently offers
50+ extensions to expand your subscription business.
Support
Paid plans include
priority support, onboarding assistance, and dedicated publisher success guidance.
Upgrade to Leaky Paywall Pro
Perfect For
Leaky Paywall is used by publishers of all sizes, including:
- Local news organizations launching digital subscriptions
- Niche magazines and membership publications
- B2B publishers selling premium research
- Independent writers monetizing their audience
- Content creators building subscription communities
Unlike hosted platforms like Substack or Ghost,
you retain full control of your subscriber data, content, and revenue inside WordPress.
Why Publishers Choose Leaky Paywall
- WordPress Native — subscribers are stored as WordPress users
- Free to Start — launch without upfront costs
- Flexible Monetization — metered, hard, or hybrid paywalls
- Full Developer Control — extensive hooks, filters, and APIs
- Trusted by 800+ publishers worldwide
Leaky Paywall is backed by extensive documentation and an active development community.
Get Started
Leaky Paywall is free.
Install the plugin, activate List Builder, and start growing your audience today.
Ready to unlock advanced tools and keep more of your subscription revenue?
Upgrade to
Leaky Paywall Pro for recurring subscriptions, deeper analytics, and powerful integrations.
5.0.1
New
- List Builder: Upgrade modal for logged-in free subscribers who hit the paywall, with independent enable/disable toggle and customizable heading, subheading, and button text
- List Builder: Auto-enables JavaScript cookie restrictions when List Builder is activated
- List Builder: Support for reCAPTCHA and Turnstile add-ons on the signup form
Improved
- Stripe billing address updates now apply to all attached payment methods, not just the default
Fixed
- Stripe PaymentMethod billing details not updating when customer's default payment method was unset
5.0
Major release introducing List Builder registration walls, a new Publisher Dashboard, onboarding improvements, deeper subscriber management tools, and expanded Stripe integration.
New
- List Builder added to core plugin for inline authentication and registration flows
- Multiple subscription levels restored to core functionality
- New onboarding wizard for faster setup
- New Publisher Dashboard with subscriber and revenue overview
- New Tools page with Import, Export, and Debug Log utilities
- Insights integration for tracking paywall impressions and nag statistics
- New email administration interface
- Subscription change flow added to the main registration form
- New subscriber statuses: expired, pending_cancel, and past_due
- Subscriber status transition logging and history on subscriber profiles
- Stripe webhook refund handling
- Transaction filtering (basic filters and date filters)
- Ability to block content using
0 in access settings
- Search engine bot bypass setting for SEO indexing
- Paywall schema markup (JSON-LD) for restricted content
- Terms and conditions settings
- REST API endpoints for Leaky Paywall subscribers
Improved
- Query performance improvements for Insights data
- Content restriction checks moved to REST API
- Updated WordPress dashboard widget with improved data display
- Migration script updated to use Action Scheduler
- Admin interface styling improvements (dashboard, transactions, subscribers, settings)
- CLS (Cumulative Layout Shift) styling improvements
- Stripe Connect setup flow with improved state verification
- General code cleanup and uninstall cleanup
Fixed
- Transaction deduplication checks
- Missing
isset() check for connected_account_id
- Missing
isset() check for amount_paid in Stripe object
- Float precision issue in price handling
- Translation string issues
4.22.6
- Add fix for low priority broken access control reported by patchstack
4.22.5
- Add handling for a free user during registration for a Stripe webhook if the page loading process fails
- Bump tested up to version
4.22.4
- Add fix for subscriber not created if registration page does not finish processing
- Add fix for duplicate transactions during a Stripe registration
- Add Stripe Connect params to Checkout API calls
- Add fix for authentication during Stripe Connect onboarding
4.22.3
- Add fix for possible duplicate transactions during registration when using Stripe
4.22.2
- Create a subscriber from a webhook if page does not load correctly after a registration
4.22.1
- Add level id throughout admin settings
- Allow subscriptions less than a dollar
- Fix formatting on subscriber admin page
- Adjust subscriber table columns
- Fix output of email exists error during registration
- Add check for subscription data to invoice payment succeeded event
4.22.0
- Add new subscriber admin screens
- Optimize Stripe code throughout plugin
4.21.8
- Add check for page link on login form if profile page is not set
- Add fix for direct link display in admin if register page is not set
- Update attributes in leaky_paywall_subscriber shortcode
4.21.7
- Add leaky_paywall_after_registration_submit_field action
- Add filter when retrieving a stripe plan
- Fix to parse shortcodes in leaky_paywall_not_subscriber output
- Fix index error
4.21.6
- Add setting for hiding registration form
- Update payment status during stripe sync
- Add additional logging
4.21.5
- Adjust customer lookup during Stripe webhook
4.21.4
- Add webhook check for incomplete_expired status from Stripe
- Update handling of Stripe errors when using a 100% off coupon
4.21.3
- Fix for CSRF vulnerability for deleting a level
- Process stripe payment element redirect url
- Add leaky_paywall_rest_meta filter
- Add webhook handling for the subscr_failed event from paypal
- Find user by email if subscriber id is missing
- Hide deleted levels from add new subscriber form
4.21.2
- Get stripe client secret from pending setup intent
- Add translation strings
4.21.1
- Add leaky_paywall_stripe_checkout_fields filter
- Update translation strings
- Fix ampersand display on register button
4.21.0
- Add check for paypal payment method when using multiple options on the register form
4.20.9
- Fix renewal email reminder functionality
- Fix price manipulation during registration
- Fix setting first and last name of logged-in users during registration if they do not exist yet
- Add after cancel action if the user cancels in the Stripe customer portal
- Add user parameter to leaky_paywall_user_has_access function
- Update stripe sync function to update expiration and plan
4.20.8
- Fix for free registration levels when using Stripe
4.20.7
- Add error checking to payment element
- Add check for succeeded payment intents
- Add level id when getting all levels
4.20.6
- Update Stripe to use the Payment element
- Update Stripe PHP library to latest version
- Add Stripe Billing Address element
- Update wording for tracking recurring payments
- Store nag location after stripe checkout registration
- Update translation strings
- Remove Apple Pay Stripe setting
4.20.5
- Add login form to register page
- Fix to not allow a user to register for a deleted level
- Update account shortcode actions
- Add links to stripe dashboard for stripe customers in subscriber table
4.20.4
- Fix login form display on profile shortcode
4.20.3
- Refactor profile shortcode to use actions instead of filters
- Move cancellation and payment update functionality to extensions
4.20.2
- Add date filter to content insights
- Add chart library for use in insights data
- Add link to renew license if invalid
- Fix typo in readme
4.20.1
- Add new interface for Insights
- Update plugin styling with new Leaky Paywall branding
- Fix PHP error for floats for Stripe
4.20.0
- Fix handling of Apple Pay to allow for coupons
- Add check for settings link display
4.19.9
- Add receipt email when using Stripe Elements
- Set float on Stripe price
- Fix test mode variable for PHP compatibility
- Update upgrade messaging
4.19.8
- Add general settings to Payment tab
- Do not process a plan for pay per post from stripe checkout
- Update default modal styles
- Add leaky_paywall_after_wp_user_profile_fields action
4.19.7
- Update tested up to to 6.2
- Add field data during stripe checkout
- Update wording on account page for trialing subscribers
4.19.6
- Update restriction rules for accessing a taxonomy when all taxonomies are restricted
- Update stripe checkout handling for alternative payment methods
- Check if a user has access when getting their current level id
4.19.5
- Add setting fields to create a new level if all levels have been deleted
- Update restriction logic for specific use cases
- Fix for PHP 8 error handling
4.19.4
- Fix for slashes in level settings
- Fix has access value in REST API data
4.19.3
- Display manual payment as an option on the registration form if multiple payment gateways are enabled
- Update calculation and display of currency symbol in Insights
- Display stripe customer portal on template shortcode
- Update help doc URLs
- Update logic for renewal reminders
- Fix deprecation notices for PHP 8
- Add Insights link to admin bar menu
4.19.2
- Add new Insights dashboard
- Add setting for restricting Stripe assets
- Fix broken links in admin
- Code cleanup
4.19.1
- Add setting for Stripe Customer Portal to My Account page
- Update currency and tax behavior on Stripe Checkout session
- Allow for script tracking in subscribe and upgrade nags
4.19.0
- Fix rounding off error for Apple Pay
- Add filters for stripe checkout session args
- Fix help link for webhooks
- Add function to format display price
- Update readme