Leaky Paywall


Leaky Paywall is a subscription management platform built natively for WordPress. It lets publishers and developers implement a highly customizable subscription system for news, magazine, and content creators.

Our open-source solution offers a suite of tools to nurture reader engagement, streamline subscription processes, and maximize revenue opportunities, all while ensuring compliance with SCA and GDPR regulations.

Leaky Paywall flexibility presents an opportunity to tailor the subscription experience to fit the unique needs of each publisher.

Key features

  • Content restrictions include articles, categories/tags, custom post types, and multimedia content like PDFs, videos, and audio files
  • Customizable paywall settings (metered, dynamic, hybrid, hard, time-wall)
  • Customize access using our hooks and filters
  • Content indexed by search engines and socially shareable via metering or referrer source
  • Subscriber only newsletter capabilities
  • Group, IP address and corporate subscriptions
  • Donations
  • UniPress iOS and Android mobile apps
  • Incognito browsing blocking
  • Registration wall for email list building
  • Multiple-website access via MultiPass
  • CRM integrations such as MailChimp, HubSpot, ZOHO, Campaign Monitor, Pipedrive, and Zapier
  • Circulation software integration such as simplecirc, Darwin, Omeda, PSA, PCS, MagHub, RunMags, Interlink
  • Payment gateways include Stripe (we are a Stripe Verified Partner), Authorize.net, PayPal, Apple Pay, Google pay, WooCommerce, and 100s more
  • Insights provides actionable data from subscriber behavior
  • Leaky Paywall’s ecosystem is further enriched with over 40 add-ons, enabling functionalities like recurring payments, trial subscriptions, pay-per-post access, multiple subscription levels, premium archive access, and custom registration fields. For developers looking to extend the platform’s capabilities, the add-on system provides a flexible way to meet the diverse needs of publishers.

The platform is backed by extensive documentation, Zoom level support and a community of contributors on GitHub, encouraging ongoing development and innovation.

This core plugin lets you set up 1 non-recurring subscription level with Stripe or PayPal integration. It also supports all of our extensions.

Learn more about Leaky Paywall or grab a demo. We would love to show you around.


Leaky Paywall
Copyright (C) ZEEN101, LLC

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.


  • Leaky Paywall general settings
  • Leaky Paywall content restriction settings
  • Leaky Paywall subscription level settings
  • Leaky Paywall payment method settings
  • Leaky Paywall visibility settings let you overwrite the default restrictions on a per content basis
  • Leaky Paywall subscriber table to manage current current subscribers and add manually add new subscribers
  • Leaky Paywall subscribe nag after a reader has reached their article limit
  • Leaky Paywall subscribe cards
  • Leaky Paywall register form for both free and paid levels
  • Leaky Paywall account page for a subscriber to manage their account information


  1. Upload the entire leaky-paywall folder to your /wp-content/plugins/ folder.
  2. Go to the ‘Plugins’ page in the menu and activate the plugin.


How does Leaky Paywall work?

The Leaky Paywall meter restricts by X number of free articles over a Y time period. days, weeks, months, years. There is a visibility setting on the post edit screen you can use to override the global meter setting. EG: make an article always free or always require a subscription

What payment gateways do you support?

We support Stripe and PayPal by default. CyberSource and ESP requires some setup, and other gateways can be integrated with our API. We highly recommend Stripe to give both you and your subscribers a state-of-the-art experience.

What kind of subscriptions can I create with Leaky Paywall?

You can sell daily, weekly, monthly, and annual subscriptions, both one time and recurring. You can also offer a free subscription in exchange for an email address.

If I deactivate Leaky Paywall will I lose all my subscriber data?

You can deactivate Leaky Paywall at any time without losing any subscriber data. All subscribers are stored as WordPress users in your database.


Mukutulansanja 23, 2024
We are LOVING Leaky Paywall and all its flexibility and insights! Jeremy has been a great help getting us setup and answering our questions. Leaky’s flexibility, insights, and extensions make it an excellent alternative to some of the big subscription management platforms out there today. Leaky+Stripe = Win!
Ogwomunaana (Muwakanya) 17, 2023 1 reply
Spent hours setting everything up only to have it do nothing. The signup portal works but there’s no paywall showing, no “nag”. Tried both methods offered. Even tried customizing my own CSS tag to make it work… Whats the point of a paywall that doesn’t hide content? And what’s the deal with charging $400 a month for your pro addons? I will never pay that much to have recurring subscriptions. You realize the top paywall plugin only charges $180 a year for all the same features, right?
Kasambula 10, 2022
I’ve spent more hours than I care to admit trying to figure out how to configure a metered paywall/view limit paywall for my site. I’m not confident a hard paywall would work as well to trigger subscriptions at my site, so I felt it necessary to do a lot of research on the best metered paywall plugins, and I tried several of them. There are plugins other than Leaky Paywall that can give you a metered paywall, and some of them have easier setups and lower costs. However, Leaky Paywall is the only metered paywall plugin I’ve found that enables me to track site visitors by their IP addresses. Every other metered paywall plugin I’ve tried tracks site visitors with cookies, and that’s a non-starter for me. If visitors can get unlimited access to my content by deleting their visits to my site from their browser histories (which, of course, takes seconds), why would they pay for a subscription? I’m sure some might out of principle, but that doesn’t eliminate the major undermining of my profitability that would come by using a cookie to track visitors. On some browsers, or with some browser extensions, visitors might not even have to delete their histories to gain unlimited access to my content, if I tracked them with a cookie. If you try to get around metered paywalls at major sites like the Wall Street Journal by deleting your cookies, it won’t work, and why would it? How can you charge for content if the content isn’t protected? It’s bizarre that I can’t find another plugin that offers a metered paywall based on tracking IP addresses. What are all these plugins trying to accomplish by giving their customers artificial paywalls? You need to install a Leaky Paywall add-on to track by IP address, which costs extra, but I don’t see another option. I give four stars instead of five because the cost is pretty high, and I’ve wrestled with the setup, but Leaky Paywall has become more reliable over time, and it offers a capability that’s hard to find.
Muzigo 11, 2022 1 reply
Needs clearer instructions. Took 2 days to figure out.
Mugulansigo 8, 2022
We implemented Leaky Paywall on a client’s site, and when we ran into issues the devs at Leaky Paywall were quick to respond and resolve the issue. I appreciate their rapid response and great support. The tool is very versatile and exactly what we needed for our client.
Read all 29 reviews

Contributors & Developers

“Leaky Paywall” is open source software. The following people have contributed to this plugin.


“Leaky Paywall” has been translated into 5 locales. Thank you to the translators for their contributions.

Translate “Leaky Paywall” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • 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


  • Get stripe client secret from pending setup intent
  • Add translation strings


  • Add leaky_paywall_stripe_checkout_fields filter
  • Update translation strings
  • Fix ampersand display on register button


  • Add check for paypal payment method when using multiple options on the register form


  • Fix renewal email reminder functionality
  • Fix price manipulation during registration
  • Fix to set first and last name of logged in users during registration if they don’t 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


  • Fix for free registration levels when using Stripe


  • Add error checking to payment element
  • Add check for succeeded payment intents
  • Add level id when getting all levels


  • 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


  • 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


  • Fix login form display on profile shortcode


  • Refactor profile shortcode to use actions instead of filters
  • Move cancellation and payment update functionality to extensions


  • 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


  • Add new interface for Insights
  • Update plugin styling with new Leaky Paywall branding
  • Fix php error for floats for Stripe


  • Fix handling of Apple Pay to allow for coupons
  • Add check for settings link display


  • Add receipt email when using Stripe Elements
  • Set float on Stripe price
  • Fix test mode variable for PHP compatibility
  • Update upgrade messaging


  • 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


  • Update tested up to to 6.2
  • Add field data during stripe checkout
  • Update wording on account page for trialing subscribers


  • 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


  • Add setting fields to create a new level if all levels have been deleted
  • Update restriction logic for specific use cases
  • Fix for php8 error handling


  • Fix for slashes in level settings
  • Fix has access value in rest api data


  • 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 custuomer portal on template shortcode
  • Update help doc urls
  • Update logic for renewal reminders
  • Fix deprecation notices for php8
  • Add Insights link to admin bar menu


  • Add new Insights dashboard
  • Add setting for restricting Stripe assets
  • Fix broken links in admin
  • Code cleanup


  • 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


  • 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


  • Fix edit link for subscription levels


  • Add leaky_paywall_plugins_loaded action
  • Update Stripe error handling
  • Code cleanup


  • Add new settings tabs and sections
  • Add filters to Stripe Checkout price and currency
  • Update settings for subscription levels to improve performance


  • Fix for logging Stripe charge id on transaction
  • Prevent free content with REST API calls


  • Add filters to disable the new and admin new emails
  • Add general get ip function
  • Refactor location of nag cookie setting


  • Add settings for Stripe Checkout automatic tax
  • Add setting to always show upgrade message on individual content if the nag is triggered
  • Add settings and check for signing secret during Stripe webhook processing
  • Add leaky_paywall_after_stripe_checkout_completed action
  • Update check for renewal reminder processing
  • Set default level price to 0


  • Add a manual payment gateway as the default
  • Only show 2 step registration form if stripe is enabled
  • Do not update expiration date when a stripe subscription is cancelled
  • Add titles back to license key settings


  • Add hooks before a subscriber is updated and after a Stripe Checkout session is completed
  • Code cleanup and nonce checks


  • Code cleanup and refactoring


  • Added Stripe Checkout as a payment gateway option
  • Adjusted restriction handling for certain taxonomy edge cases


  • Fix error during stripe cancellation requests
  • Adjust data for PayPal webhook verification
  • Update error handling


  • Update registration form styles
  • Update Stripe handling in account shortcode
  • Update paypal webhooks verification
  • Remove old add-ons menu


  • Update Stripe library to 7.47.0 ** Requires PHP 7.0 or higher **
  • Update stripe handling when changing recurring subscription levels
  • Sync expiration date during invoice.payment_succeeded stripe event
  • Update logging
  • Fix attaching of Stripe payment id to transaction
  • Fix subscription change when a subscriber currently has a canceled plan


  • Add integration with WP REST API
  • Update minimum required PHP version to 7.0
  • Update admin styles and branding


  • Add nonce to register user validation
  • Update error handling for stripe session
  • Update created date formatting in subscriber table
  • Add check for empty post object


  • Add array check when logging


  • Update handling of Stripe webhooks
  • Add new tools for debugging


  • Fix loop when new subscriber is created
  • Fix current level class on subscribe cards
  • Update full card form fields
  • Add icon images for jquery ui
  • Set subscriber to deactivated when customer.subscription.deleted Stripe event is received


  • Fix restrictions for term matching
  • Add filter leaky_paywall_disable_same_free_level to adjust free registration logic


  • Fix cancel output
  • Add action for payment_intent.payment_failed event type


  • More code cleanup


  • More code cleanup


  • More code cleanup


  • More code cleanup


  • Code cleanup
  • Added missing sanitization


  • Update rounding for apple pay
  • Add additional hooks
  • Do not allow free users to register for the same level again
  • Update alternative restriction handling to work with pages and children
  • Update wording when a subscription is restarted
  • Add submitted fields to leaky_paywall_process_stripe_payment_customer_array filter
  • Update dashboard messaging


  • Add check for no tags on a post


  • Update subscriptions tab to restrictions and levels tab
  • Clear the content the user has viewed after they register
  • Add post_id to leaky_paywall_subscriber_or_login_message filter,
  • Add leaky_paywall_subscriber_current_level_ids filter
  • Add settings for restriction exceptions for post categories and tags
  • Add ability to enter multiple post containers for alternate restriction handling
  • Optimization for long loading registration page when a level has many plan ids


  • Update Apply Pay integration
  • Fix handling of recurring transactions
  • Show subcribe button on cards to expired users


  • Add setting to add additional time to their current expiration date
  • Move registration script to js file
  • Add idempotency key when creating a payment intent and subscription for Stripe
  • Add check for user object in subscriber table


  • Allow for paypal payer_email if custom is not set


  • Make sure correct email is used for paypal purchases
  • Do not update a subscriber if it is a pay per post purchase
  • Reset stripe payment intent on checkout
  • Set default source after user updates card details


  • Add rich content editor to new subscriber email setting
  • Add rich content editor to renewal reminder email setting
  • Add last 30 days revenue to dashboard widget
  • Update subscription settings UI
  • Code cleanup for multisite


  • Update multisite display on profile page
  • Add ability to retry stripe invoices if needed during checkout
  • Update display of multisite subscriber table to remove duplicates


  • Add field to edit plan of a subscriber
  • Add more translatable strings
  • Only try to retrieve customer if payment gateway is Stripe
  • Fix for failed login check for other login plugins
  • Add video to repo


  • Add a log entry when a user cancels their stripe subscription
  • Get correct customer id for subscriber if they cancel the subscription process
  • Clean up index errors


  • Add insecure page error message to stripe credit card field if SSL is not found
  • Add initilize function for Stripe API to set app id and version number
  • Add form data to ajax call during subscription creation
  • Show error message on login form if incorrect credentials entered
  • Update cancel message
  • Update translations
  • Update inline validation during registration
  • Adjust error display on registration form


  • Add collapsable ui to subscription levels
  • Add level to update stripe subscription actions
  • Add helper text for expires field
  • Update reminder email user query for large sites
  • Update admin plugin links
  • Fix for updating Stripe subscriptions on existing customers
  • Fix Stripe customer duplication during registration
  • Fix email check during account setup validation
  • Only load validation script on register page


  • Add functionality for updating a subscriber to update their payment information


*** Update Notice: Please test any update on a staging site before updating on your live site. ***
* Remove stripe check script if only paypal is enabled
* Add leaky_paywall_account_setup_validation filter to allow plugins to validate account setup data
* Remove unused method call when saving a post


*** Update Notice: Stripe Checkout is no longer supported. Use registration form instead. ***
* Update Stripe integration to be SCA compliant
* Update registration flow to use two steps
* Add front end validation to the registration form
* Add initial incomplete transaction status to paypal orders
* Add class checks for stripe with namespace
* Allow for both paypal and stripe elements as options on checkout
* Remove depracated Stripe Checkout Modal
* Admin settings UI improvements
* Fix duplicate transactions for paypal signups


  • Adjust registration to allow for more ways to purchase content
  • Use card submitted during registration even if the customer already exists in Stripe
  • Cancel registration if a subscription status comes back as incomplete from stripe


  • Add [leaky_paywall_subscriber] shortcode
  • Add [leaky_paywall_not_subscriber] shortcode
  • Add setting to remove username from registration form
  • Update PayPal setup information
  • Add stripe event for payment_intent.canceled
  • Update settings UI on subscription level settings
  • Hide subscribe button from active recurring subscribers on their level
  • Hide payment info on account profile from non-recurring subscribers
  • Update canceled wording
  • New translation added


  • Add template for new my account page shortcode
  • Add new role check to has_access function
  • Add leaky_paywall_user_can_bypass_paywall_by_role() and update messaging on my account page for those that can
  • Save gateway transaction id on new transactions
  • Add responsive styling to subscribe cards
  • Fix index error of password when a user is already logged in during registration


  • Add lead in setting for lead in when using alternative restriction handling
  • Add filter to hide taxonomies from restriction and access settings
  • Update plan id settings
  • Add limits to post types and taxonomies on subscriptions tab


  • Only hide content on single view with alternate restriction handling


  • Add condition existing users having payment status when checking if they have access
  • Hide display of initial content when using alternate restriction handling


  • Fix for duplicate charges if a user updates their card details for Stripe


  • Add log entry when a user updates their cc info
  • Add helper text to restriction settings
  • Add leaky_paywall_after_create_transaction action
  • Add arguements to subscription shortcode if redirecting to registration page
  • Update date format to fix expiration date bug
  • Update size of css selector input in settings
  • Update profile shortcode with update credit card details for stripe and ability to restart subscription
  • Update review CTA
  • Hide visibility settings on lp group accounts


  • Add setting to bypass paywall by user role
  • Remove leaky paywall visibility on ad dropper post type


  • Remove i18n of ui datepicker on Add/Update Subscriber form
  • Remove i18n of date format on Add/Update Subscriber form
  • Disable autocompletion for date picker on Add/Update Subscriber form
  • Update status label on Add/Update Subscriber form
  • Add post_id to restricted content action
  • Update German translations
  • Add leaky_paywall_email_attachments filter to welcome emails
  • Add admin email settings for subject and recipients
  • Add leaky_paywall_get_transaction_id_from_email helper function
  • Add name to admin new subscriber email


  • Downgrade Stripe PHP library to 6.43.1 for older versions of php


  • Add hooks during paypal webhook and fix email overwrite from paypal buyer email
  • German translations added
  • Update Stripe PHP library to 7.0.0
  • Clean up deprecated transient code on paypal transactions
  • Add transaction id to subscriber data after paypal ipn


  • Allow for level_id of zero when using shortcode attribute


  • Add level_id attribute to leaky_paywall_register_form shortcode
  • Add subscribe card description setting on a per level basis
  • Add register form description setting on a per level basis
  • Add leaky_paywall_current_user_can_access filter


  • Add fix for strip_tags when using custom excerpt length setting


  • Adjust order of stripe keys in settings
  • Do not allow access if the user is not logged in
  • Add admin notice for feedback
  • Strip tags from content for nag


  • Add leaky_paywall_profile_your_profile_before_submit filter to profile page form
  • Add term names to subscribe card access descriptions
  • Add login_redirect_url attribute to the leaky_paywall_login shortcode
  • Add is_level_deleted check on registration page
  • Update performance when using Stripe
  • Update performance with ajax calls
  • Add leaky_paywall_pdf_access to adjust who can access pdfs even if they are a subscriber
  • Update pdf access check to use leaky_paywall_user_has_access
  • Add help text for webhook setup to recurring payment setting on a level


  • Add confirmation message when a subscriber is added or updated on the subscriber screen
  • Add disabled state to button after clicked on registraiton page
  • Default to manual if no payment gateway is set for a subscriber
  • Add leaky_paywall_after_user_deleted action after a user deletes their account
  • Update user permission check for leaky paywall visibility


  • Update restriction logic for users with a subscription level
  • Update admin columns on transactions
  • Update PubCare callouts


  • Allow created date to be set during bulk import
  • Fix recurring payments on Stripe Checkout
  • Add recurring payment data to transaction


  • Add more translatable strings
  • Update post type labels on subscribe cards and registration form
  • Update cancel language
  • Fix has access logic when using a non-English translation


  • Add more translatable strings
  • Add filter to adjust paypal ipn data
  • Add restriction rules for a taxonomy that has zero allowed
  • Allow for multiple plan ids on a single level
  • Remove visbility metabox from coupons and transctions post types
  • Set default for restrction taxonomy on restriction settings
  • Update add-ons page links


  • Update restriction rules for limited access options


  • Update restriction logic for expired or deactivated users
  • Add settings for post and page css selector when using alternative restriction handling
  • Add links for managing a subscriber by their WordPress user profile in the Subscriber table


  • Add fix for payments over 999 for Paypal and Stripe
  • Add ability to manually check if a subscriber can view content
  • Fix index error if restrictions have not been set yet
  • Fix closing tag on Stripe Checkout script
  • Update how old IPN webhooks are handled from paypal
  • Update callouts in sidebar


  • Add filter for leaky_paywall_nag_excerpt
  • Update output of lead in text when using javascript
  • Fix user meta save during new user registration
  • Fix index error if no restrictions set
  • Fix php notices for continue in switch statements


  • Add options for Apple Pay and Stripe Elements on registration form
  • Fix canceled subscribers not being able to view correct content
  • Fix renewal reminder emails for non-recurring subscribers
  • Add stripe event type to webhook log
  • Remove Leaky Paywall menu from admin toolbar for subscribers
  • Fix compatibility issue with EditFlow
  • Update expiration text on My Account for canceled subscribers


  • Introducting restrictions by taxonomy! (category, tag, etc.)
  • Add leaky_paywall_after_update_stripe_subscription action after updating a Stripe subscription
  • Add Leaky Paywall toolbar to admin bar for easier admin workflows
  • Fix dropped zeros on price display
  • Fix Stripe error when subscriber updates their CC info on their account page


  • add styles for login form
  • fix paypal registrations


  • add leaky_paywall_before_process_paypal_webhooks action
  • add filter after last subscription option
  • trim search term in subscriber table input
  • strip shortcodes out of content excerpt before paywall message
  • add leaky_paywall_after_create_recurring_customer action


  • add lp_transaction post type for storing registration data
  • add additional actions to registration form
  • Fix bug where Stripe charges default card (thanks samueldjack)


  • fix subscriber table display on multisite


  • update credit card update form to use Stripe button


  • fix display of subscribers on subscriber table


  • add more translatable strings
  • add custom excerpt length setting to control the amount of content (in characters) to show before displaying the subscribe nag


  • only load Stripe JS on the pages that need it
  • update translation strings
  • update admin content access when using alternative restriction handling
  • update display price to display zeros correctly


  • display subscribe nag with javascript if alternative restriction handling is enabled
  • add helper text to subscribe page if Stripe key settings are not found
  • update currency symbol for Danish krone
  • allow deactivated accounts to enter new credit card info on their profile
  • add a character normalize function for handling accent characters in plan names
  • update sanitization of email settings
  • corrected var causing new subscriber email to display wrong level
  • allow stripe checkout button text to be translated


  • add filter for restriction cookie name
  • update translation strings
  • stop creating stripe extra plans when saving settings
  • add currency options for formatting displayed prices
  • add login link to email exists error on registration form
  • fix password display on email for stripe checkout gateway


  • add filter to enabled gateways
  • adjust visibility settings for cancelled subscribers
  • update translation strings for credit card
  • use payment gateways for select option when adding a new subscriber manually
  • add data-locale flag to stripe checkout form to allow for translation


  • Add filter for adjusting cancellation confirmation text
  • Update title on wp_die calls
  • Allow subscribers to renew their current level from the subscribe page
  • Allow subscribers to delete their account from their account page


  • Update faq
  • Update upgrade function


  • Refactor level row to use action leaky_paywall_after_subscription_levels_row
  • Update password handling
  • Add setting to hide a level from the subscribe cards
  • Add filter to status dropdown on subscriber table


  • Fix display of price on subscribe cards for recurring levels


  • Add ability to search subscriber table by subscription and plan ID
  • Update subscriber table query to work with large database of users
  • Add leaky_paywall_paypal_args filter for editing paypal args before sending them to paypal
  • Update nag message and subscribe card styles
  • Add user profile fields for Leaky Paywall to an individual user page in the admin
  • Add hooks and filters needed for trials
  • General bug fixes


  • Fixed bug causing multiple charges for same checkout
  • Refactor restrictions


  • Fixing subscription expiration bug for Stripe


  • Adding some additional event tracking
  • Adding some additional hooks


  • Change in registration process
  • General code cleanup
  • New filters/hooks
  • Reminder emails!


  • Switching serialize commands to json_en/decode commands, for security reasons
  • add leaky_paywall_cancelled_subscriber hook when a paypal user cancels a subscription
  • add help tab to settings page
  • update html of subscription options details
  • Fix the php warning from stripe/lib/ApiRequestor.php:242 (h/t: Ku Lok Sun)


  • Add translation for credit card label
  • Add cancel link back to my account page for paypal subscribers
  • Add translation files for nederlands
  • Udpate domain path to translations
  • Update stripe
  • Update translation text domain to work with new translation system
  • Add filter for login form args
  • Add name column to subscriber table


  • Add fix for paypal subscription cancel webhook notification not getting processed
  • Remove avatar from subscriber table
  • Add check for user switching plugin
  • Add integration with user switching plugin by adding a switch to link to the lp subscriber table if the plugin exists
  • Add status filter to subscriber table
  • Update level filter to work with zero as a level id
  • Add level filter to subscriber table
  • Fix fatal error on checkout form in stripe fields if keys are set incorrectly
  • Update stripe calls through code for v5.1.2 of stripe library
  • Update stripe php library to 5.1.2
  • Add default case for stripe event check if the event name returned does not match any of the cases
  • Update the wording on the profile page for users who have cancelled their subscription but are still active because their expiration date has not passed


  • Fix bug when Stripe Expired set, but account not expired
  • Added JS/AJAX Version of Leaky Paywall (beta functionality)
  • Added various filters, classes, hooks, etc.


  • Removing Stripe TLS warning in favor of forcing TLS version using WooCommerce’s solution (thanks Woo)
  • Add filter to adjust leaky paywall profile table
  • Add country names to currency list and a hook for adding settings in the currency settings section
  • Add leaky_paywall_your_subscription_total filter
  • Add filter to adjust subscription price on subscribe cards
  • Removing SUBSCRIBE_LOGIN_URL from text description (still works in code)


  • Fix causing admin to break when first activation LP w/ no Stripe Key set


  • Adding Stripe TLS notice
  • Fix bug in validate username when user uses a capital letter
  • Send email notification in registration function
  • Add level_id to leaky_paywall_form_processing and leaky_paywall_form_errors actions
  • Add level arguement to leaky_paywall_create_stripe_plan filter
  • Fix index error on content variable
  • Fix index error if no plan id is submitted with registration form
  • Add filter for email message
  • Shortcode customizations
  • Add action leaky_paywall_after_your_subscription_details for adding additional items to the Your Subscription section on the registration form page
  • Add function for getting the currency symbol
  • Add leaky_paywall_create_stripe_plan filter to adjust details before creating a stripe plan
  • Add filter before login form for display content to non logged in users


  • Removing deprected function usage wp_setcookie() to wp_set_auth_cookie()
  • Better handling when Stripe fails and user is already created but not logged in


  • Add option for disabling admin notification email when a new subscriber is added to leaky paywall
  • Add a filter for editing the text of the admin email
  • Fix bug that was setting the incorrect value for restrictions


  • Add filter to expires in has_user_paid function for corporate subscriptions
  • Update email template to allow for images and html
  • Add action leaky_paywall_before_download_pdf before a restricted pdf is downloaded
  • Add leaky_paywall_cancel_subscription_description for altering text on cancel pagee
  • Add leaky_paywall_content_access_description filter for altering text on register form subscription description
  • Fix number format error in subscription details on free level


  • Refactor License Key Settings
  • Add leaky_paywall_failed_payment action for paypal webhooks
  • Add leaky_paywall_failed_payment action for Stripe webhooks
  • Update check for new leaky paywall subscriber email to be sent so that it works again with the Strip credit card form
  • Add leaky_paywall_cancelled_subscriber action after a subscriber has cancelled
  • Fix bug with cancel link not showing on user profile
  • Add current_tab value to leaky_paywall_update_settings_settings filter
  • Fix number format error for free subscriptions on registration form
  • Add hook after enabled payment gateway settings
  • Refactor leaky_paywall_has_user_paid function


  • Including User object w/ wp_login action call
  • Fix mode bug in paypal webhook processing
  • Add css class to subscription options h2 tag
  • Fix mode bug during Stripe webhook processing


  • Settings Page Rebuild


  • Fixing debug output code on Stripe card decline


  • Updating translation strings and POT file


  • Fixing bug in PayPal processing


  • Fixing India Rupee sign
  • Updating some verbage on the Profile Page for passwords


  • Show only sites in leaky paywall settings to super admins only
  • Fixing bug causing deleted plans to permanently delete, instead of just being marked as deleted
  • Update level site settings so the chosen site is selected in the dropdown after saving the plugin settings


  • Deprecating wp_get_sites usage for 4.6.x+
  • Removing upgrade path in favor of already existing functionality
  • Fixing Stripe payment form to handle existing logged in users better
  • Add filter for changing the order of the subscription card levels on the subscribe page


  • Fix for multisite subsites not showing payment data
  • Adding Created column to subscribers table
  • Fixing default sort order in subscribers table


  • Update registration form to correctly calculate coupon discounts


  • Do not show Payment Information for non-recurring payments


  • Fix a bug in Stripe onetime payment, causing HUGE payments
  • Fix credit card form display
  • Style updates and code cleanup


  • Set defaults for visibility metaboxes
  • Fixing bug w/ Stripe cancellations not displaying content if not yet expired
  • Checking for zero based level ID in registration form output w/ LP subscription shortcode


  • Hide dashboard widget from non-admin users
  • Set stripe key based on mode inside of has_user_paid function


  • Payment Gateway Redux
  • Free Subscriptions Updates
  • Default Gateway Stripe Popup
  • Added Credit Card Form for Stripe
  • Cleanup PayPal processing
  • Cleanup Bulk Import Code
  • General Code Cleanup


  • Add recent subscribers dashboard widget
  • Add a check to the new subscriber email to make sure the user does not already exist in the system
  • Add leaky_paywall_after_new_subscriber_form action on subscriber page
  • Adding HTTP Version to PayPal API calls… fixing get current user function calls
  • Fixing deprecated function call
  • Add bulk csv uploader to subscribers pagee


  • Setup ‘rememberme’ to true for set_auth_cookie calls
  • Adding support for Zero-Decimal currencies in Stripe


  • Update add ons page with publisher bundle banner
  • Fixing bug when detecting empty users and level IDs
  • Fixing bug when updating subscriber information
  • Adding filters for new payment …