=== Expandable Paywall ===
Contributors: mattpramschufer, emoxie
Tags: paywall, metered paywall, external authentication, cambey, remote authentication
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mattpram%40gmail%2ecom
Requires at least: 3.8
Requires PHP: 8.3
Tested up to: 7.0.2
Stable tag: 2.2.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

A paywall solution that can be easily expanded with integration with several third party providers.

== Description ==

The Expandable Paywall plugin offers a robust solution for implementing paywalls on WordPress sites. Its core functionality includes a simple hard paywall using native WordPress authentication. The plugin is uniquely designed to integrate with various circulation fulfillment providers, making it ideal for magazine publishers. Premium add-ons expand its capabilities, supporting multiple paywall types, authentication methods, and advanced reporting features.


== Installation ==

1. Activate the plugin through the `Plugins` menu in WordPress
1. Browse to Admin->Expandable Paywall
1. You can find out more on how to install by visiting [https://pramadillo.com/documentation/expandable-paywall/](https://pramadillo.com/documentation/expandable-paywall/)


== Frequently Asked Questions ==

= Do you offer installation and customization services? =
Yes, if you need help with installation and/or would like additional customization work done for your website, you can fill out a request form at [https://emoxie.com/contact](https://emoxie.com/contact)

= I wish this plugin had XZY feature =

While I try to do my best to incorporate new features all the time, I implemented a new Feature Request board located at [https://emoxie.com/contact](https://emoxie.com/contact)

== Screenshots ==

1. Admin Screen (Basic Paywall & Auth)
2. Admin Screen (Basic Paywall)

== Changelog ==

=2.2.0=
* SECURITY - The "Enable Structured Data for Search Engines" option no longer puts the full article in the page. If you had it switched on, your paywalled articles were readable by anyone. See the upgrade notice.
* FEATURE - Protect posts by tag or by any custom taxonomy as well as by category. A post is protected if it matches any one of them.
* FEATURE - Create subscriber roles from the settings screen. A new role is a clone of the built-in Subscriber role under a name you choose.
* FEATURE - Optionally let verified Google and Bing crawlers read the whole article so it can be indexed on its full text. Off by default. Verification is by published crawler address, not by user agent.
* UPDATE - Installing the plugin no longer creates a "Paid Subscriber" role on its own. Roles already created are left exactly as they are.
* UPDATE - Paywall structured data is now JSON-LD in the page head, and is only added to articles that are actually protected.
* UPDATE - Plugin data is removed on uninstall. User roles are deliberately left alone.
* BUGFIX - Fixed sixteen strings that could never be translated, including every label on the login and registration forms, and rebuilt the translation template.
* BUGFIX - The upgrade notice on the Plugins screen no longer shows its own markup as text.
* BUGFIX - Replaced deprecated jQuery shorthands and stopped inserting server error messages as markup.

=2.1.11=
* SECURITY - Registration through the paywall form is now off by default, behind a new setting. Sites using the registration form must enable it after updating. See the upgrade notice.
* SECURITY - Roles that can edit or manage the site are no longer offered or accepted as subscriber roles.
* SECURITY - Registration now validates the email address and requires a password.
* SECURITY - New bypass links use a cryptographically random code. Existing links keep working.
* SECURITY - Reading and clearing the debug log now requires the same permission as the Log screen.
* SECURITY - Category, post type and role names are escaped on the settings screen.
* SECURITY - The forgot password link escapes its URL, and is omitted when none is configured.
* SECURITY - The Log screen no longer opens its own database connection or prints database errors to the browser.
* UPDATE - DataTables is bundled with the plugin instead of loaded from a CDN, and is about 117KB smaller.
* UPDATE - Tested up to WordPress 7.0.2.
* BUGFIX - Fixed a fatal error that took out the front end when the paywall was enabled but its settings had never been saved.
* BUGFIX - Fixed login failing for passwords containing < or >, and for usernames or email addresses containing an apostrophe.
* BUGFIX - Filters registered on init, which is where add-ons register them, are no longer ignored for protected categories and bypass roles.
* BUGFIX - Bypass links are now generated for posts saved in the block editor.
* BUGFIX - A second login or register shortcode on the same page now renders.
* BUGFIX - Logged user agents no longer store escaped slashes, and a missing User-Agent no longer raises a notice.

=2.1.10=
* UPDATE - Login Form redirects with cache busting parameter.

=2.1.9=
* UPDATE - Login Form shortcode now redirects back to page you were on when logging in

=2.1.8=
* BUGFIX - Removed Debugging Code

= 2.1.7 =
* BUGFIX - Fixed load_plugin_textdomain PHP Notice

= 2.1.6 =
* UPDATE - Updated all third-party vendor packages
* UPDATE - Added new filter for controlling when to show show_authentication_role_paid

= 2.1.5 =
* UPDATE - Updated all third-party vendor packages

= 2.1.4 =
* UPDATE - Excluded the search screen from paywall trigger

= 2.1.3 =
* UPDATE - Add stub function back into public class for extendability

= 2.1.2 =
* BUGFIX - Fixed issue with 500 error when trying to create a new user on specific installs

= 2.1.1 =
* HOTFIX - Corrected logic for displaying paywall
* UPDATE - Added in new helper functions

= 2.1.0 =
* UPDATE - Updated all third party libraries to latest versions
* UPDATE - Refactored all code to PHP 8.1 standards
* UPDATE - Added many more functions to core Helper class
* BUGFIX - Fixed PHP warning on login.php template


=2.0.23 =
* BUGFIX - Fixed issue with protecting categories and sub categories on some installs.

=2.0.22 =
* UPDATE - Added in new helper function to check if we should show paid authentication user role.
* UPDATE - Added function to clear logs

=2.0.21 =
* UPDATE - Paywall Category now allows for any sub category under the main protected category to automatically be protected.
* UPDATE - Added option to disable paywall.

=2.0.20 =
* FEATURE - Added whole new logging section

=2.0.19 =
* UPDATE - Updated addon on handling and vendor paths.

= 2.0.18 =
* UPDATE - Updated all third-party vendor libraries
* BUG FIX - Fixed issue where protected content could not be seen by some users.

= 2.0.17 =
* UPDATE - Updated all third-party vendor libraries

= 2.0.16 =
* Feature - Added in meta box to posts that will generate a unique bypass link for articles to not show paywall.

= 2.0.15 =
* Feature - Added in new filter for allowing to programmatically bypass paywall

= 2.0.14 =
* UPDATE - Updated logic for when locks appear on articles
* Feature - Upon logging in the user will now be redirected back to where they were with ?cache_busting=RANDOM

= 2.0.13 =
* BUG FIX - Fixed item with archives not being excluded from protection level.

= 2.0.12 =
* UPDATE - Updated to the latest version of Freemius.
* BUG FIX - Fixed bug where roles were not being read in certain instances.
* BUG FIX - Fixed bug where Locks were not showing when enabled.
* UPDATE - Added more error reporting options to error_log

= 2.0.11 =
* UPDATE - When debug is turned on it will send email to site admin.

= 2.0.10 =
* UPDATE - Updated vendor libraries

= 2.0.9 =
* UPDATE - Added in new shortcode to protect pieces of content on any page/post.  [expandable-paywall-protect] Protected Content [/expandable-paywall-protect]

= 2.0.8 =
* UPDATE - Updated all vendor libraries
* UPDATE - Code Cleanup and Refactoring

= 2.0.7 =
* UPDATE - Added in debug mode
* UPDATE - Added in new filter to allow set basic role

= 2.0.6 =
* BUG FIX - updated authentication to account for case-sensitivity in
* UPDATE - removed erroneous error_logging. :)

= 2.0.5 =
* BUG FIX - corrected issue with the Lock icon showing up on non-protected pages.

= 2.0.4 =
* FEATURE - Added ability to display a lock icon next to protected posts
* FEATURE - Added ability to fade out excerpt into paywall.
* FEATURE - Added ability to output Schema Structured Data.
* UPDATE - Updated to latest version of Freemius SDK
* UPDATE - Added a logging function to helper files.
* UPDATE - Added in more support for multisite installs
* UPDATE - Added in default styles to fade out the excerpt text

= 2.0.3 =
* FEATURE - Added in logout shortcode
* UPDATE - Updated Paywall CSS Styles

= 2.0.1 =
* BUG FIX - Corrected improper function calls when initially installing.

= 2.0.0 =
* Reworked a ton of filters and hooks.  Updated all latest 3rd party SDKs

= 1.1.2 =
* BUG FIX - Corrected issue which registration would throw a 500 error behind the scenes.

= 1.1.1 =
* BUG FIX - Corrected issues with data sanitization.

= 1.1.0 =
* Initial Version

== Upgrade Notice ==

= 2.2.0 =
Recommended for everyone. If you used "Enable Structured Data for Search Engines", the full text of your paywalled articles was being sent to every visitor inside a hidden element and could be read from the page source. This release stops that. No settings need changing after updating, and the new crawler indexing option is off by default.

= 2.1.11 =
Registration through the paywall form is now off by default. If your site uses the [expandable-paywall-register] shortcode, enable "Let visitors create an account through the paywall registration form" under Expandable Paywall > Settings after updating. This release also fixes a fatal error that could take out the front end, so updating is recommended.
