Version 2.9.4, September 22, 2017

  • Fix: Payments over 999 were being improperly saved in the database with a comma for a thousand separator, which caused the invoice to show the incorrect amount due to currency formatting.
  • Fix: Move the rcp_form_processing hook to run later in the registration process, to fix some integration issues with other plugins.
  • Fix: %amount% email tag was sometimes showing the incorrect amount.
  • Fix: Registration form hanging when signing up for a free plan and Braintree is the only gateway enabled.
  • Fix: Login form now supports the class attribute on the [login_form] shortcode.
  • Fix: PHP notice when saving a post if "Members of subscription level" is selected but a radio option below it was not selected.
  • Fix: Updated admin-styles.min.css
  • Tweak: Improve description in the tooltip for the Email Verification setting.
  • New: Allow an empty space to be saved in the message attribute for the [restrict] shortcode.
  • New: %discount_code% email tag now supported, to show which discount code was used, if any.
  • New: Added Norwegian translation.

Version 2.9.3, September 15, 2017

  • Fix: The subscription level dropdown when editing Pending members now shows their pending subscription level instead of the first one in the list.
  • Tweak: Subscription level ID numbers are now easier to read in the admin list.
  • New: rcp_post_excerpt filter added for developers to customize the excerpt content.
  • New: rcp_verification_redirect_url filter added for developers to customize the redirect URL for email verification links.

Version 2.9.2, September 7, 2017

  • Fix: Improved security of Prevent Account Sharing feature.
  • Fix: Avoid sending personally identifiable information (the email address) in email verification links.
  • Fix: Renewal Payment Email no longer sent when a Stripe payment is declined during initial registration.
  • Fix: Braintree payment profile ID not set on some members under certain conditions.
  • Fix: Incorrect expiration date on PayPal non-recurring payments.
  • Fix: Member status and expiration issues when a member renews early with the Manual Payment gateway.
  • Fix: PHP notice when rcp_user_can_access() is used in a template on a 404 page.
  • Fix: Recurring flag is now removed from members when they changed to free subscription levels.
  • Fix: Remove _is_paid post meta data when Remove Data on Uninstall option is enabled.
  • Tweak: Improve text on subscription cancellation notice.
  • Tweak: Payment Received Emails no longer sent for free registrations.
  • New: Search members by payment profile ID.
  • New: Edit / View links on Page settings for quicker access to editing and viewing.
  • New: Add link to member profile on the Edit Payment page.
  • New: rcp_reminder_subscription_args filter to allow developers to change email reminder behavior.

Version 2.9.1, August 29, 2017

  • Fix: Some email template tags not working.
  • Fix: Payments made with Manual Payments option now remaining pending until approved.
  • Fix: Removed duplicate query on payment view page in admin.
  • Fix: RCP_Payments::get_earnings() now supports querying earnings of multiple user ids
  • Fix: Incorrect number of table columns in payment view screen when there are no payments.
  • Fix: Payment date on invoices is now translation ready and will use your date format in the WordPress settings.
  • Fix: Username search results overlapped on Add New Subscription page.
  • Fix: PayPal Express confirmation page is now responsive and looks better on mobile devices.
  • Fix: Zip code field is now longer so that input doesn't get cut off visually.
  • Fix: Join date is no longer overwritten when someone renews the same subscription level.
  • Fix: CSS now loads on pages with the [subscription_details] shortcode to make it look better.
  • Fix: When updating PayPal billing card you will no longer get the error "Error updating subscription".
  • Fix: Postal code and CVV are now sent to Braintree to help with fraud detection.
  • Fix: Misspelled description on settings page.
  • Fix: Undefined variable $note on the rare occasion a member's expiration date fails to update.
  • Fix: Authorize.net transactions linked to the wrong gateway in the admin payment view.
  • Fix: HTML span nesting issue in register.php template.
  • Fix: Paid users no longer given "free" status when the subscription level duration is set to 0. They now get "active" status.
  • Fix: Member join date now uses the local timezone.
  • Fix: Incorrect "subscription renewed" note during new signups.
  • Fix: PayPal Express auto-renewing members not being marked as recurring.
  • Fix: Added back the rcp_edit_member action hook that was mistakenly removed in 2.9.
  • Tweak: Allow subscription price to be entered with only one digit after the decimal.
  • Tweak: rcp_print_user_payments() function is now deprecated.
  • New: Added rcp_payments_page_table_row_actions action hook for developers.
  • New: Added rcp_set_status_value filter for developers to allow filtering of new status in RCP_Member::set_status().
  • New: Added rcp_payments_total_columns filter to payment view table for developers.

Version 2.9, August 14, 2017

  • New: Added subscription renewal reminder notice emails
  • New: Added support for restricting complete post types
  • New: Added support for custom user roles in user role restriction options
  • New: Added Debug Mode option to assist in resolving problems
  • New: A template tag has been added to email settings for retrieving the URL to the most recent invoice on a member's account
  • New: Password reset emails are now sent in the standard HTML email as all other RCP emails
  • New: Admin screens for subscription levels, discount codes, and payment records now include status filters
  • Tweak: The [register_form] shortcode now permits multiple subscription level IDs to be specified
  • Tweak: The redirect performed after logging in now uses wp_safe_redirect()
  • Tweak: The process-data.php file has been broken up into multiple PHP files to make it easier for developers
  • Tweak: RCP_Payment_Gateway now includes better inline documentation
  • Tweak: The register-single.php template file now includes a log in link
  • Tweak: A new action hook has been added that fires after successful member registration
  • Tweak: Payment records now get created earlier and include a pending status
  • Tweak: Payment records now store the discount code that was used
  • Tweak: Payment records now store the exact subscription level ID related to the payment
  • Tweak: Payment records now store the slug of the payment gateway used, such as stripe
  • Tweak: Invoice download links are now available from the edit member screen
  • Bug: Memberships were not properly renewed in Authorize.net if they included a free trial
  • Bug: PayPal Express could return a fatal error on the confirmation screen for some PayPal accounts
  • Bug: Stripe customer ID not saved early enough during registration
  • Bug: rcp_member_get_expiration_date filter did not include necessary $formatted and $pending variables
  • Bug: WooCommerce: products in restricted category/tag were still accessible via direct URL
  • Bug: WooCommerce: active members could not view products restricted to "Active subscribers only"
  • Bug: Expiration date incorrectly calculated for manual renewals
  • Bug: Subscriptions that auto renew but started with a 100% discount expire improperly
  • Bug: Registration submit button disabled improperly if reCaptcha is enabled but API keys are not entered
  • Bug: Stripe Checkout modal shows price even when signing up for a free trial with the [register_form_stripe] shortcode
  • Bug: Filter in rcp_currency_filter() not used properly
  • Bug: Subscription ID saved to Stripe customer metadata before subscription is actually created in Stripe
  • Bug: Pending users can view content protected by [restrict] shortcode
  • Bug: Duplicate subscriptions created on customers in Stripe if their customer record had a previously delinquent subscription

Version 2.8.6, June 7, 2017

  • Fix: Login redirect now works with the redirect_to parameter when added by WordPress.
  • Fix: Incorrect filter names for registration headers in register-single.php template.
  • Enhancement: Registration form now passes more form fields when calculating totals, for better add-on compatibility.

Version 2.8.5, April 17, 2017

  • Fix: Misspelling of Province on credit card form.
  • Fix: Memberships sometimes cancelled in when moving from recurring to non-recurring subscription.
  • Update Finnish translation.
  • Fix: Round pending subscription amount, which fixes calculation issue with certain gateways like PayPal.
  • Add member and subscription level metadata to subscriptions on stripe.com.
  • Fix: Developers - RCP_Member::get_renewed_date() now properly returns a string instead of an array.
  • Fix: Extra slashes are no longer added to discount code descriptions when saving/updating.

Version 2.8.4, April 5, 2017

  • Fix: Stripe Checkout popup loads twice under certain conditions.
  • Fix: Trailing zeroes stripped from the price displayed on invoices.
  • Fix: Post restrictions not working as expected under certain conditions when restricted to tags, categories, or other custom taxonomies.

Version 2.8.3, March 30, 2017

  • New: Add confirmation dialog when deleting a discount code.
  • Fix: PHP notice when exporting payments if the member's account has been deleted.
  • Fix: Rounding errors with percentage discounts.
  • Fix: Only show admin notices to users that have necessary capabilities.
  • Fix: Free trial email being sent twice.
  • Fix: Stripe receipt emails will now respect the Stripe account settings.
  • Fix: Missing closing anchor element on View Receipt link.
  • Fix: Incorrect trial end dates in PayPal Express.
  • Fix: Trailing zeroes not required when editing payments.
  • Fix: System info report not showing parent theme template overrides.
  • Fix: Stripe subscriptions sometimes cancelled during upgrades if the webhook is delayed.
  • Enhancement: Improve performance of can_access() method.

Version 2.8.2, March 17, 2017

  • New: You can now require new members to verify their email before gaining access to restricted content (Restrict > Settings > Emails).
  • New: There's now a confirmation screen when cancelling a subscription via [subscription_details].
  • New: Add a member note when the user's subscription level changes.
  • New: Add filter for the login redirect URL ( rcp_login_redirect_url ).
  • Fix: Upgrades improperly given both proration and full expiration date extension.
  • Fix: If initial PayPal Express payment fails, user's account is not set back to "pending".
  • Fix: Stripe customer balance not removed if payment fails.
  • Fix: Posts restricted by term not included in rcp_is_restricted_content().
  • Fix: Styling issues on payments table on Edit Member screen. Payments table is also now responsive.
  • Fix: Cancelled member who signs up for a recurring Stripe subscription incorrectly receives the "Expired" email.
  • Fix: Username validation fails on multisite installations when using uppercase characters.
  • Fix: Stripe.js loaded twice when EDD Stripe is also activated.
  • Fix: Disabling upgrades removes renewal link from [subscription_details] page.
  • Fix: Auto renew checkbox remains visible when selecting a free level with an unlimited duration.
  • Fix: SQL syntax error on plugin activation.
  • Fix: Display an error message when attempting to edit a member that doesn't exist.
  • Fix: PayPal subscr_eot IPN incorrectly expiring some memberships that have since been updated.
  • Tweak: Always use RCP_Member::get_expiration_date() method where possible instead of getting user meta directly.
  • Tweak: Improve member notes format during initial signup.
  • Tweak: When reCAPTCHA is activated you can no longer submit the registration form until it's been filled out.
  • Tweak: Removed the second display of the subscription level price on the register-single.php template.
  • Tweak: Changed the heading on the members page from "Paid Subscribers" to "Members".

Version 2.8.1, March 9, 2017

  • Fix: Error on sites running a WordPress version prior to 4.7.

Version 2.8, March 9, 2017

  • New: Added Braintree Payments gateway.
  • New: Added support for one-time discounts.
  • New: Added an option to remove all data from the database when uninstalling Restrict Content Pro.
  • New: Payment profiles for member accounts can now be cancelled directly from the member Edit screen when setting their status to "Cancelled".
  • New: Added filter to allow custom metadata to be attached to Stripe subscriptions.
  • New: Added a setting to select whether Auto Renew is checked on by default for new subscribers.
  • New: Admin emails can now be customized and configured with template tags.
  • New: Added actions in metabox display template and in save meta function.
  • Tweak: Help tabs have been updated and made available for translation.
  • Tweak: All plugin CSS has been refactored to be more clear and consistent.
  • Tweak: Use count on discount codes now get properly adjusted when account registration fails.
  • Fix: If registration with a free trial fails, it is not possible for members to try again.
  • Fix: Manual renewals improperly prorate payment amounts.
  • Fix: Payment profile IDs do not have whitespace removed.
  • Fix: Responsive tables do not work with all themes.
  • Fix: Incorrect behavior with some restriction functions due to empty metadata being saved.

Version 2.7.4, March 3, 2017

  • Fix: Two subscriptions with the same name may result in incorrect charge/duration in Stripe.
  • Fix: Content restricted to 'any' level was accessible to pending members.
  • Fix: Some posts incorrectly being included in rcp_get_post_ids_assigned_to_restricted_terms(). This would only be noticed if "Hide Restricted Posts" is checked on.
  • Fix: Incorrect expiration date given to member if they register, don't complete payment, then register again days later.
  • Fix: Stripe Checkout spinner icon still visible after closing modal without completing payment.
  • Fix: Payment form not re-appearing when removing an applied discount code.
  • Tweak: Pass $event variable to hooks in Stripe gateway, like rcp_stripe_charge_succeeded and rcp_stripe_charge_failed.
  • New: Add user note when recurring charge fails.
  • New: Add new RCP_Member methods for set_subscription_id() and set_subscription_key().
  • New: Filters for expiring soon email message and subject. Filters are: rcp_expiring_soon_email and rcp_expiring_soon_subject.

Version 2.7.3, February 21, 2017

  • Fix: Free trials not working properly in PayPal Express.
  • Fix: Older unrestricted posts being improperly treated as restricted.
  • Fix: Undefined variable in rcp_stripe_charge_failed hook.
  • Fix: Payments made with Authorize.net have invalid date attached.
  • Fix: Register button text not passed through rcp_registration_register_button filter.
  • Tweak: Stop using deprecated functions internally.
  • New: Per Stripe's recommendation, load Stripe.js on all pages if Stripe is enabled. Helps with Stripe's fraud detection.
  • New: Add dynamic rcp_set_status_{$status} developer hook in RCP_Member.
  • New: Email admin when a new manual payment is received.
  • New: Add [is_expired] shortcode for showing content to expired members only.
  • New: rcp_save_settings filter for developers to use when RCP settings are saved.
  • New: Option to Always/Never show excerpts, or decide on an individual post by post basis. The new option is under Restrict > Settings > Misc.
  • New: Search by first/last name on the Members list page.

Version 2.7.2, February 14, 2017

  • Enhancement: Add a note to a member's record when the "expiring soon" email is sent.
  • New: Added the rcp_export_members_get_data_row and rcp_export_payments_get_data_row filters, making it easier to custom data to member and payment exports.
  • New: Introduced a new function, rcp_is_valid_currency(), to determine if a given currency code matches the currency selected in the settings.
  • New: Added action hooks to the invoice template, making it easier to programmatically add information to the invoice. New hooks are: rcp_invoice_items, rcp_invoice_items_before_total_price, rcp_invoice_additional_info, rcp_invoice_after_additional_info.
  • Enhancement: Set user display name to username if first and last names are not filled out during registration.
  • Fix: Member notes added programmatically not saved when editing a member in the admin.
  • Fix: jQuery Migrate notice on registration form.
  • Fix: Login failure if username is an email address but is different from the account's actual email address.
  • Fix: Two cancellation emails sent when a member cancels.
  • Fix: rcp_get_current_url() not working when used behind a reverse proxy.
  • Fix: Only send the trial email when a member signs up for an old style trial plan, instead of the trial and active emails.
  • Fix: Remove brackets from lost password email link, making it work better with some email apps.
  • Fix: Don't load gateway webhook processing when not needed, such as during ajax, cron, and admin page views.
  • Fix: Totals not showing on the registration form on mobile devices.
  • Fix: Trial members not getting an activation email.
  • Fix: Table layout issue with [subscription_details] shortcode.
  • Fix: HTML emails have extra spacing when sent through Mandrill with the WPMandrill plugin.
  • Fix: Quick/bulk editing WooCommerce products no longer wipes out restriction settings.
  • Fix: Incomplete email subject line on admin notifications of free trials.
  • Fix: PHP notice: undefined gateway_obj on free registrations.
  • Fix: Email tags not parsed on plain text emails.
  • Tweak: Deprecate the unused rcp_rstrstr() function.
  • Developer: Introduced can_cancel() and cancel_payment_profile() methods in RCP_Member. rcp_can_member_cancel() and rcp_cancel_member_payment_profile() are now wrappers for these new methods.

Version 2.7.1, February 8, 2017

  • Fix: Missing Stripe token when using Stripe Checkout

Version 2.7, February 8, 2017

  • New: Added Authorize.net integration
  • New: Added support for free trials with payment detail collection
  • New: Added support for failed payment email notifications
  • New: Added support for HTML emails with new email templates
  • New: Added a better integration with Easy Digital Downloads
  • New: Added support for automatically removing subscription level-assigned user roles when members expire / cancel
  • New: Content restricted via taxonomy term is now compatible with our redirect feature
  • New: HTML classes now added via post_class to restricted content
  • New: Members now redirected away from all restricted content when they do not have access and Hide Restricted Posts is enabled
  • New: An option to hide the WordPress toolbar has been added
  • New: A column for "Payment Status" has been added to the [subscription_details] shortcode
  • New: Automatically apply a discount code by including it in the registration URL
  • Tweak: [subscription_details] is now fully responsive
  • Tweak: Payment method selection now uses radio buttons
  • Tweak: Direct links to merchant details screens has been added to payments list in the member edit screen
  • Tweak: All back-end pages now use h1 tags for page headers
  • Fix: First/last name and billing address not sent to PayPal Pro
  • Fix: Incorrect language detected by System Info report
  • Fix: Incorrect payment / discount ID sometimes returned when creating new records
  • Fix: Incorrect description under 2Checkout Test Seller ID field
  • Fix: Invalid integer error when using Alipay in Stripe Checkout
  • Fix: Existing users cannot subscribe with Stripe Checkout
  • Fix: Invalid HTML markup in profile editor
  • Fix: Fatal error when attempting to create a discount code when Stripe API credentials are not set up
  • Fix: Database tables inaccessible in WordPress multisite when network activated
  • Fix: Registration form validation skipped when using Stripe Checkout
  • Fix: Account details not emailed to customers when using Stripe Checkout shortcode
  • Fix: Users with rcp_manage_discounts capability unable to add new discount codes
  • Fix: Memberships are now activated immediately after successful PayPal Pro payment (rather than a few second delay)

Version 2.6.16, January, 21 2017

  • Fix: Issue where expired and pending members were locked out of all site content, regardless of restriction settings.

Version 2.6.15, January, 19 2017

  • Fix: Issue where expired members could still restricted access content under certain conditions.

Version 2.6.14, January, 6 2017

  • New: Added option for opting into beta updates.
  • Updated Spanish es_ES language files.

Version 2.6.13, December 9, 2016

  • Fix: Conflict with AffiliateWP REST API

Version 2.6.12, December 5, 2016

  • Fix: Missing Stripe token error when using Stripe Checkout gateway.

Version 2.6.11, November 29, 2016

  • Fix: Properly show errors on password reset form when errors occur during password resets.
  • Fix: Ensure valid prices are entered the subscription level add/edit screen.
  • Fix: Fatal error on Stripe purchases when card fails.
  • Fix: Fatal error when activating the plugin on old, unsupported versions of PHP.
  • Fix: Prevent Account Sharing didn't work properly under certain conditions.
  • Fix: Stripe Checkout prevented other payment options from being used if Stripe Checkout was selected first.
  • Fix: Alipay showed on Stripe Checkout even if not enabled.
  • Fix: Incorrect expiration date shown in Active Subscription emails.
  • Fix: PayPal issue where the URL was formatted incorrectly on certain web hosts.
  • Fix: First level not automatically selected on the registration form.
  • Enhancement: Add Swedish translation files.

Version 2.6.10, October 27, 2016

  • Fix: Bug introduced in 2.6.9 that caused some members to not be able to see content they have access to.

Version 2.6.9, October 26, 2016

  • Fix: Alipay option shows in Stripe Checkout on some sites when it's disabled.
  • Fix: Expiration date formatted incorrectly on the member edit screen for some sites.
  • Fix: Wrong expiration date showed for some pending members on the Members page.
  • Fix: Comments visible for users without access on some posts when the post was restricted by role only.
  • Fix: Duplicate HTML ID in the profile editor template.
  • Fix: Member status did not get set to pending if upgrading from a free trial to a paid membership when using the Manual Payment gateway.
  • Fix: Member expiration date was incorrectly calculated when upgrading from one membership to another when using the Manual Payment gateway.
  • Fix: Set From Name and From Email headers in the Expiring Soon emails.
  • Fix: Invalid character in SoftDescriptor during registration when using PayPal Pro.
  • Tweak: Pass the discount and subscription ID to the rcp_discounts_once_per_user filter.
  • Enhancement: Added "View User Account" link to payment records on the Payments page.

Version 2.6.8, October 3, 2016

  • Fix: User registration does not complete when using Stripe Checkout with a 100% discount code.
  • Fix: Unrecognized options in Stripe Checkout.
  • Fix: Cancellation emails were sent twice when a member cancels a subscription.
  • Fix: improve security of all member-facing forms.
  • Tweak: use rcp_get_currency() helper function throughout the plugin instead of direct option calls. Improves compatibility for developers.
  • Enhancement: Send RCP plugin name, version, and your site URL to Stripe when making charges. Useful for debugging issues with Stripe. Stripe refers to this as setAppInfo.

Version 2.6.7, September 20, 2016

  • Tweak: Better error handling for Stripe processing failures
  • Tweak: Improved performance of registration form processing
  • Tweak: Removed "Cancel" button from edit member screen to reduce confusion
  • Tweak: Notice is now displayed when enabling login redirect without a login form on the redirect page
  • Fix: Logos on invoices can extend beyond container
  • Fix: Invalid integer error with Stripe when using discounts
  • Fix: Custom date range not clickable in Reports
  • Fix: Content improperly restricted to free members when using access levels
  • Fix: Incorrect filter name in payment meta DB class
  • Fix: Check if DONOTCACHE page is already defined before defining it
  • Fix: Incorrect capability checked when generating invoice
  • Fix: Member join date not set properly when manually changing a member's subscription level
  • Fix: Memory leak on edit member page that could cause session expired notices
  • Fix: [restrict] shortcode improperly restricts to free members
  • Fix: User role not updated when downgrading / upgrading
  • Fix: Subscription level cache not flushed when updating subscription level
  • Fix: Free accounts cannot be registered when 2Checkout gateway is active

Version 2.6.6, August 8, 2016

  • Fix: Payments not logged with PayPal Pro and PayPal Express when auto-renew is disabled.
  • Fix: Incorrect subscription level selected on the registration form when manually specifying the subscription level ID in the URL.
  • Fix: A subscription level's metadata is now deleted when the subcription level is deleted in the admin.
  • Enhancement: Removed the use of PHP extract function from all shortcodes.
  • Enhancement: The rcp_locate_template function now supports registering custom template locations via the rcp_template_stack filter.
  • Enhancement: Added the rcp_available_template_tags action hook to let developers add new email template tags to the Available Template Tags display in the Email settings tab.

Version 2.6.5, August 1, 2016

  • Fix: Stripe gateway not working properly on some sites. Fixes invalid request errors due to TLS.
  • Fix: "Last Week" earnings report not working properly.
  • Fix: PayPal Pro gateway not working properly on some accounts that do not use automatic renewals.
  • Fix: Issue where paid members could not renew their expired subscriptions on the registration form.
  • Fix: Remove empty spaces from Stripe API keys when saving to prevent copy and paste errors when entering the keys in settings.
  • Fix: Show an error message on registration form if Stripe keys are not entered.
  • Fix: Define CAL_GREGORIAN constant on systems that do not do it already.
  • Fix: Update settings description for Hide Premium Posts.
  • Enhancement: Add Recurring column to member CSV export.

Version 2.6.4, July 26, 2016

  • Fix: Discounted total calculation bug when discounted total is $1000 or more.
  • Fix: Stripe Checkout missing token error when used with the [register_form] shortcode and the ID option.
  • Fix: Stripe subscription expiration dates improperly extended under certain conditions.
  • Fix: Subscription name blank in emails when the subscription was added manually.
  • Fix: Timezone configurations not always respected when calculating expirations.
  • Fix: Invoices not showing the email address defined in settings.
  • Fix: Registration form error message when a site only has free subscriptions activated.
  • Fix: Auto-fill the email address on the Stripe Checkout form when possible.
  • Enhancement: Added a rcp_is_sandbox helper function for determining if a site is in sandbox mode.
  • Updated: Dutch language files.

Version 2.6.3, July 11, 2016

  • Fix: Issue with taxonomy restrictions introduced in 2.6.2.

Version 2.6.2, July 11, 2016

  • Fix: Issue with content restriction interface on post edit screen that caused it to show the improper setting when "Members of any subscription level" was set.

Version 2.6.1, July 8, 2016

  • Fix: Issue that caused content to be visible when the Paid Only option was used without any other restrictions defined.
  • Fix: Display issue with the new user interface for restricting content.

Version 2.6, July 7, 2016

  • New: Redesigned user interface for restricting content on posts and pages
  • New: All admin list tables are now fully responsive
  • New:  Added contextual tool tips and improved setting descriptions throughout the plugin
  • New: Replaced PDF invoices with HTML invoices, making invoices faster and easier to customize, and also reduced the size of the plugin files significantly
  • New: Comments on restricted content are now automatically hidden from members without necessary access privileges
  • New: A new Add-ons page has been added to the Restrict menu
  • New: Added support for Alipay in Stripe Checkout
  • New: Payment transaction IDs are now linked directly to the merchant processor page
  • New: PayPal customers can now update the credit / debit card attached to their subscription
  • New: Join and renewal dates are now stored in meta data for members
  • New: Added metadata APIs for subscription levels and payments
  • New: Added improved database upgrade API
  • Tweak: Fixed widths have been removed from labels on registration form
  • Tweak: Improved member counts that are significantly faster
  • Tweak: Indexes have been added to all database tables to improve performance
  • Tweak: Stripe API libraries have been updated to the latest version
  • Tweak: Updated French translation
  • Fix: Expiring / renewing soon email not sent to customers that upgrade
  • Fix: "Cannot combine currencies on customer" error in Stripe
  • Fix: "No such plan: false" error in Stripe
  • Fix: Incorrect locale parameter passed to Stripe Checkout
  • Fix: Payment Received emails are sent even when disabled
  • Fix: Payment amount not properly sanitized in PayPal IPN processing
  • Fix: Incorrect support forum link
  • Fix: Pending expiration date shown in subscription.php template file
  • Fix: Coupon codes not created in Stripe when only Stripe Checkout is enabled
  • Fix: Revoke access link does not actually revoke access
  • Fix: <LI> tag cannot be changed in register.php without breaking registration
  • Fix: Editing a discount code results in a duplicate code being created in Stripe
  • Fix: Activate License button missing
  • Fix: Password not validated during Change Password form submission

Version 2.5.4, May 16, 2016

  • Fix: Missing amount verification during PayPal IPN processing
  • Fix: Incorrect page set for "Update Billing Card Page" during plugin install
  • Fix: Incorrect submit button text shows when using Stripe Checkout and a free level is selected
  • Fix: %subscription_name% email tag returns wrong subscription name when upgrading subscription
  • Fix: Non-translatable strings in PayPal Express Confirmation template
  • Fix: WP cron events not deleted when plugin is uninstalled
  • Tweak: Improved access checks for [restrict] shortcode, including the introduction of a new "rcp_restrict_shortcode_has_access" filter

Version 2.5.3, April 29, 2016

  • Fix: Missing text domains on strings
  • Fix: One-time charges through Stripe not connected to customer in Stripe
  • Fix: Currency sign on Stripe Checkout modal incorrect when not using USD
  • Fix: Missing text strings in POT file
  • Fix: Formatting problems with amounts over 1000
  • Fix: Unrestricted WooCommerce products get restricted improperly
  • Fix: Previous subscription not always cancelled in merchant processor when upgrading subscription levels
  • Fix: Previous subscription not cancelled when upgrading to one-time payment option
  • Fix: Refunds report introduced in 2.5 accidentally removed
  • New: Added Portuguese translation

Version 2.5.2, April 7, 2016

  • Fix: Trailing zeros missing from final price on registration form
  • Fix: Incorrect column span on registration form
  • Fix: Incorrect date recorded for some Stripe payments

Version 2.5.1, April 5, 2016

  • Fix: Prorating amounts over 1000 fails
  • Fix: WooCommerce products incorrectly hidden when catalogue visibility is disabled
  • Fix: Nav menus cannot be saved when Restrict Content Pro is active
  • Tweak: Removed Description column in pricing details section of registration form

Version 2.5, March 29, 2016

  • New: Added support for upgrading and downgrading between subscription levels with proration
  • New: Added improved discount, signup fee, and price display on registration
  • New: Added support for Stripe Checkout
  • New: Improved payment history display on Member details page
  • New: Added a View Member link to payment history rows
  • New: Added a System Info report to aid in technical support
  • New: Added a Refund report to the Reports page
  • New: Added improved support for detecting re-activated subscriptions in Stripe
  • New: Added new shortcodes for displaying membership information of currently logged in member
  • New: Currently stored credit / debit card details now show on card update form
  • New: Content restriction options added to custom taxonomies
  • Fix: Is Recurring flag not set properly on successful but late payments
  • Fix:  Initial payments not collected in PayPal Pro gateway
  • Fix: Members not emailed when membership is added manually by site admin
  • Fix: WP Approve User integration improperly disallows access to content with no restrictions
  • Fix: PayPal Express and Pro show an error if the initial amount is less than 0
  • Fix: Zero-decimal currencies not supported properly in Stripe
  • Fix: Incorrect URL to Help page
  • Fix: WooCommerce products still accessible even when restricted
  • Fix: Payment dates do not match up with payment processor
  • Fix: Subscription price not updated in Stripe when updated in Restrict Content Pro
  • Fix: Renewal dates not properly synced with merchant processor when payments are processed
  • Fix: PayPal Express logs the profile ID instead of the transaction ID

Version 2.4.11, February 12, 2016

  • Fix: PayPal Sandbox rejecting Express and Pro signups due to http version
  • Fix: Recurring payments in 2Checkout not processed properly
  • Tweak: Updated PayPal APIs to version 124

Version 2.4.10, February 7, 2016

  • Fix: Signup fees reversed in Stripe resulting in credits being given instead of fees

Version 2.4.9, February 2, 2016

  • Fix: Expiration date not set when a pending date was already set
  • Fix: Custom report ranges that span year boundaries display improperly
  • Fix: Discount codes permitted non-valid amounts to be saved
  • Fix: Subscription levels could be created without a name
  • Fix: HTML emails were not possible due to htmlspecialchars() function
  • New: Added new hooks for when payment processing during signup fails

Version 2.4.8, January 22, 2016

  • Fix: Duplicate 0.00 transactions with Stripe when using a signup fee
  • Fix: Incorrect expiration dates with registrations through Stripe

Version 2.4.7, December 29, 2015

  • Fix: Expiration dates incorrectly set after renewing or upgrading an existing account
  • Fix: "Profile Description Invalid" error sometimes in PayPal Express
  • New: Added class names to table columns for the Members table
  • Tweak: Added nocache headers to the lost password processing screens

Version 2.4.6, December 18, 2015

  • Fix: Apply Discount button was missing from register-single.php template file
  • New: Members can now log in via email

Version 2.4.5, December 11, 2015

  • Fix: Logged out users shown Account Pending Verification message on all posts and pages

Version 2.4.4, December 10, 2015

  • Fix: Expiration date doubled when members subscribe with PayPal, cancel before completing payment, then subscribe again.
  • Fix: Typo email settings

Version 2.4.3, November 24, 2015

  • Fix: Bug with upgrading currently active subscriptions
  • Fix: Missing INS processing for 2Checkout
  • Fix: Undefined variable when discount code is not used
  • New: Added action hooks to the top and bottom of the Restrict this Content metabox
  • New: Added filters to the member queries run during cron jobs

Version 2.4.2, November 7, 2015

  • Fix: Bug with Stripe webhook processing that could prevent account cancellations from working properly when cancelled from Stripe

Version 2.4.1, November 4, 2015

  • Fix: Discount codes not discounting price in payment gateways

Version 2.4, November 2, 2015

  • New: Added support for 2Checkout
  • New: Added support for WP Approve User plugin for requiring admins approve user accounts
  • Fix: PayPal payment dates and expiration dates getting out of sync

Version 2.3.8, October 21, 2015

  • Fix: Duplicate active email sent for users that register with a 100% discount code
  • Fix: Active email not sent properly for new registrations
  • Fix: Trial email sent improperly when 100% discount code is used
  • Fix: 100% discount code generates "Free subscriptions cannot be automatically renewed" error

Version 2.3.7, October 21, 2015

  • Fix: Missing Stripe token error

Version 2.3.6, October 20, 2015

  • Fix: Active / Welcome emails sent even for non-new accounts
  • Fix: Admin notification after updating payment persists across page loads
  • Fix: Manually created payments do not flush the earnings cache
  • Fix: User search field results shown incorrectly when no results found
  • Fix: Spelling errors across several admin pages
  • Fix: New Subscription emails show incorrect expiration date in some cases
  • Fix: Non-numeric amounts can be entered for payments
  • Fix: Stripe customer credit properly supported now

Version 2.3.5, October 6, 2015

  • Fix: Expiration date is sometimes shown incorrectly in Payment Received emails
  • Fix: Payment dates not always respecting server's timestamp
  • Fix: Undefined index notices when activating/deactivating discount codes when Stripe is enabled
  • Fix: Spelling error, "logout" should be "log out"
  • Fix: Spelling error, "Mail Chimp" should be "MailChimp"
  • Fix: Grammar error, "Setup" should be "Set Up"
  • Fix: Incorrect link to documentation
  • Fix: Undefined index notices when settings have not been saved

Version 2.3.4, September 24, 2015

  • Fix: Variable typo that caused PayPal Standard IPN processing to not work properly

Version 2.3.3, September 22, 2015

  • Fix: renew() method incorrectly setting member status in some cases

Version 2.3.2, September 22, 2015

  • Fix: PayPal Express IPNs not being processed properly on all accounts

Version 2.3.1, September 18, 2015

  • Fix: Reset password URL not working

Version 2.3, September 18, 2015

  • New: Added the ability to bulk edit member accounts
  • New: Added support for reCaptcha v2.0 from Google
  • New: Added Payment Received email option
  • New: Account, Profile, and Card Update pages are now created automatically during install
  • Fix: account page text is too large in Twenty Fifteen theme
  • Fix: Renew link improperly shown for free members
  • Fix: Last Week earnings not shown properly when it crosses a month boundary

Version 2.2.7, August 19, 2015

  • Fixed a bug that caused expiration dates to be set too far in the future during registration.

Version 2.2.6, August 11, 2015

  • Fixed a bug with negative signup fees and recurring subscriptions in Stripe
  • Fixed a bug that caused declined card errors to not get caught when updating the billing card
  • Added a confirmation message to the Update Billing Card form

Version 2.2.5, August 6, 2015

  • Fixed a bug with expiration dates getting set too far ahead for customers that register through Stripe

Version 2.2.4, August 3, 2015

  • Fixed a bug with expiration dates being calculated incorrectly when calculating for a subscription level that never expires
  • Fixed a bug that caused the Active Subscription email to include the wrong expiration date
  • Fixed a bug that caused the Screen Options tab to not save properly
  • Tweak to ensure the member's display name is set during registration

Version 2.2.3, July 20, 2015

  • Fixed an issue with fatal errors when updating pages that contain the RCP shortcodes on some websites.
  • Updated New User notification emails to contain the user login names
  • Tweak registration form JS to ensure that clicking Register multiple times doesn't cause issues
  • Added member status to the member export

Version 2.2.2, July 9, 2015

  • Fixed an issue with calculating member's new expiration date when accounts are renewed.

Version 2.2.1, July 8, 2015

  • Fixed an issue with WooCommerce products not being shown to registered users

Version 2.2, July 6, 2015

  • Added support for restricting WooCommerce products
  • Added support for 2-factor authentication through Google Authenticator
  • Added members' payment profile IDs to member export file
  • Added new action hooks to login form template file
  • Fixed issue with members not being logged in automatically during registration
  • Fixed "unexpected output" during activation

Version 2.1.11, June 18, 2015

  • Fixed a PHP notice during installation
  • Fixed an issue with discount code validation on single registration forms
  • Fixed an issue with discount codes not being re-validated when the level is changed
  • Fixed an issue with one-time Stripe charges getting attributed to the wrong user
  • Fixed an issue with the Help page not redirecting to the documentation site

Version 2.1.10, May 27, 2015

  • Fixed an issue with signup fees not working in Stripe
  • Added new useremail template tag for emails

Version 2.1.9, May 27, 2015

  • Fixed an issue with credit/debit card form not displaying if the first level is Free
  • Fixed a fatal error in the PayPal Pro gateway that occurred if API credentials had not been entered
  • Tweaked the card number field to have a max length of 20 characters
  • Tweaked the description text in settings

Version 2.1.8, May 21, 2015

  • Fixed an error message when updating discounts with Stripe active
  • Fixed an issue with payment settings disappearing when plugin is reactivated
  • Fixed a typo in the settings page
  • Fixed an issue with email notifications not being sent when accounts are cancelled

Version 2.1.7, May 21, 2015

  • Fixed a bug with reCaptcha over SSL

Version 2.1.6, May 13, 2015

  • Fixed a fatal error when updating credit / debit cards in Stripe
  • Fixed a bug that caused the "Active" email to be sent to trial subscribers

Version 2.1.5, May 12, 2015

  • Fixed a bug with expiration dates on Unlimited plans
  • Fixed a bug with the price not showing up on the single register template
  • Fixed a bug with the Stripe libraries not being loaded if another plugin had already loaded it

Version 2.1.4, May 11, 2015

  • Fixed a bug that caused emails to not be sent to free or trial members.

Version 2.1.3, May 9, 2015

  • Fixed a bug that caused the credit / debit card form to not be displayed when passing the id="x" parameter to the register form short code.

Version 2.1.2, May 6, 2015

  • Fixed a bug that caused PayPal Standard subscriptions to not get activated

Version 2.1.1, May 4, 2015

  • Fixed a bug with editing / creating discount codes when the Stripe gateway is inactive

Version 2.1, April 30, 2015

  • This is a major release. Please see release post for detailed information.
  • Stripe, PayPal Pro, and PayPal Express now included for free. Braintree integration is also free as an add-on.
  • New payment gateway API for developers to build additional payment processor integrations.
  • New Manual Payment gateway for processing manual payments.
  • Dramatically improved registration form processing.
  • Registration form now submits via ajax and displays error messages without a page  reload.
  • Better member cancellation options from member's account pages
  • Site admins can now cancel member's payment profile from Restrict > Members.
  • Improved and re-organized settings screen.
  • New RCP_Member class for developers.
  • New RCP_Payment_Gateway class for developers.
  • New rcp_user_can_access() function for developers.
  • Numerous other new functions for developers.

Version 2.0.17, April 20, 2015

  • Minor XSS security fix

Version 2.0.16, February 11, 2015

  • Fixed a conflict with The Event Calendar plugin
  • Updated the French translation files

Version 2.0.15, January 29, 2015

  • Fixed a bug with signup fees in PayPal over 1,000
  • Updated the plugin updater class
  • Fixed a spelling error
  • Modified the shortcodes include file to always be included
  • Fixed an incorrect user ID variable during the process that adds a manual subscription to a user
  • Introduced rcp_before_subscription_form_fields hook
  • Fixed two method declarations in the WP_Logging class

Version 2.0.14, November 19,  2014

  • Added an option to let non-recurring members renew their access from their account page

Version 2.0.13, October 29, 2014

  • Fixed a bug in the updater that caused update checks to run too often.

Version 2.0.12, October 21, 2014

  • Improved plugin updater class

Version 2.0.11, October 7, 2014

  • Updated language files

Version 2.0.10, October 1, 2014

  • Fixed a bug with adding subscriptions manually to user accounts

Version 2.0.9, August 27, 2014

  • Updated the Restrict menu icon to use dashicons
  • Automatically add / remove user roles anytime their subscription level is changed in the admin
  • Default the login redirect to the home page
  • Fixed a few typos
  • Added a fallback cal_days_in_month() function for hosts that don't have it enabled

Version 2.0.8, August 14, 2014

  • Fixed a bug  with CSS not loading on the subscription details and profile editor short codes
  • Added an Edit Member button to the View Member details screen
  • Improved the Members page filtering and search
  • Added support for setting the From Name and From Email address in Settings > Emails
  • Cancelled members now actually get marked as Cancelled instead of staying as Active and then getting marked as Expired
  • Linked the admin notice on first install to the Restrict > Settings page
  • Fixed an inaccurate field description in settings
  • Improved the license activation process and fixed a bug that prevented license keys from being activated

Version 2.0.7, June 24, 2014

  • Fixed a bug with the Payment Export not including all payments.

Version 2.0.6, June 19, 2014

  • Fixed a bug with payment method forms showing when signing up for a free subscription level
  • Fixed a bug with the discount field showing when signing up for a free subscription level
  • Fixed a bug with the Auto Renew field showing when signing up for a free subscription level

Version 2.0.5, May 20, 2014

  • Added an option to control the number of members that are exported with the CSV export
  • Fixed a bug with the auto-renew options not showing on individual registration forms
  • Fixed a bug with pending members getting the Expiring Soon notice
  • Added year/month options to the Payment CSV export
  • Added an option to manually toggle a member's trialing status
  • Fixed a bug with amounts in the PDF Invoices

Version 2.0.4, May 13, 2014

  • Fixed a bug with the wp_editor() used in the Messages section of settings
  • Fixed a bug with user roles not being set properly on registration

Version 2.0.3, May 13, 2014

  • Fixed a bug with discount codes not getting attached to user accounts
  • Fixed a bug with rcp_get_user_role() when the user isn't part of the site

Version 2.0.2, April 21, 2014

  • Fixed a bug with custom registration forms related to the Stripe payment gateway

Version 2.0.1, April 18, 2014

  • Fixed a bug that caused a fatal error with wp_get_current_user() during certain actions
  • Fixed a bug with the login form redirect on the subscription_details short code

Version 2.0, April 11, 2014

  • Added support for PDF Invoices of subscription payments
  • Greatly improved the member's subscription details area
  • Added support for custom registration pages with the [register_form id="x"] short code
  • Added improved caching / performance throughout the plugin, primarily related to subscription level and payment queries
  • Added support for restricting posts based on the category they are filed in
  • Added integration for the Limit Login Attempts plugin
  • Added custom capabilities for all admin pages
  • Added a new setting for PayPal Page Style
  • Added an option to control whether all subscriptions auto renew or not
  • Added new rcp_edit_member hook
  • Added new RCP profile editor hooks
  • Added options to disable each of the emails individually
  • Tweak: improve the way the login form shows when a user is logged in
  • Tweak: properly set the exact time when creating a manual payment
  • Tweak: improve issue with members expiring on the wrong day when signing up on the last day of the month
  • Tweak: always show the registration levels on the registration page
  • Tweak: improved expiration cron jobs

Version 1.9.6, February 5, 2014

Added better support for 100% discount codes and non-PayPal payment gateways. Added better caching to the subscription level database class.

Version 1.9.5, January 21, 2014

  • Improved validation of the user information when saving the profile form.
  • Fixed a bug that would allow a user to update their email to that of another user.
  • Fixed a bug that would allow a user to completely remove their email.

Version 1.9.4, December 23, 2013

  • Fixed a bug with the user role not saving when first creating a subscription level
  • Improved the UI of the Cancel buttons in admin headers
  • Added a JS action for rcp_discount_applied
  • Added .rcp_gateway_fields class

Version 1.9.3 - December 9, 2013

  • Improve reliability of license activation and deactivation
  • Only setup user transients if single-login is enabled
  • Fix bug with Last Month report view when current month is December
  • Rewrite PayPal redirect to make all args filterable
  • Removed erroneous ID attribute
  • Better filters for email messages and receipients
  • Better organization of user level checks
  • Add support for setting the user role on a per-subscription basis
  • Fixed bug with updating subscription levels when no changes were made
  • Improved the expired users cron job

Version 1.9.2 - October 25, 2013

  • Fixed a bug with payment amounts over 1000

Version 1.9.1 - October 21, 2013

  • Fixed an undefined index error on the subscription Add New screen.
  • Fixed a bug with the subscription level order getting overwritten when updating a level.

Version 1.9 - October 4, 2013

  • Added support for signup fees and discounts for subscription levels.
  • Added the ability to search payments.
  • Added payment transaction ID tracking.

Version 1.8.1

  • Fixed a bug with subscription level duration units not saving correctly.

Version 1.8

  • Added a brand new Reports page with earnings and signup graphs.

Version 1.7

  • Added support for manually creating payments.
  • Fixed a bug with 'class' and other attributes getting stripped from Subscription Level descriptions.

Version 1.6.3

  • Fixed a bug with the Expiring Soon emails getting sent to recurring subscribers.

Version 1.6.2

  • Fixed a problem with the discount table creation.

Version 1.6.1

  • Fixed a problem with the [restrict] short code.

Version 1.6

  • Added the ability to restrict discount codes to specific subscription levels
  • Added a "Remember Me" checkbox to the login form
  • Added new options to the "Restrict This Content" meta box that allows content to be restricted to multiple subscription levels
  • Non-recurring subscribers can now renew their membership at any time
  • Added new Renewal Notice reminders that can be automatically sent before a user expires.

Version 1.5.7

  • Fixed a problem with not being able to set subscription durations to higher than 127 days/months/years.
  • Added Hebrew translation files

Version 1.5.6

  • Added a new, better plugin updater system. You MUST enter your license key in the plugin settings to get future updates.
  • Improved the expiration / renewal date text on the Subscription Details short code.
  • Renamed the Payments settings tab to General.

Version 1.5.5

  • Improved RTL compatibility.
  • Fixed an issue with LI and UL tags getting stripped from subscription level descriptions.

Version 1.5.4

  • Fixed another issue with UTF8 encoding/decoding.

Version 1.5.3

  • Fixed an issue with UTF8 encoding/decoding.

Version 1.5.2

  • Updated manual update_user_meta() calls for member status to use rcp_set_status()
  • Fixed an additional issue with PayPal payments not getting recorded.

Version .1.5.1

  • Fixed and issue with PayPal payments not getting recorded.

Version 1.5

  • New: Trial memberships can now upgrade to paid memberships at any time.
  • New: Site admins can view all pad content.
  • New: Usernames in Restrict > Members are now linked to the user\'s profile.
  • New: Members can now be searched from Restrict > Members.
  • New: Added a new [rcp_profile_editor] short code.
  • New: Registration, login, change password, and profile editor forms now included template files that can be easily, and safely modified.
  • New: Added an option to delete payments.
  • New: Added an option to view all payments by user.
  • New: Added member first names to user export.
  • New: Rewrote export system to be more flexible and extensible.
  • New: Wrote new database interaction classes to make it easier for extensions to record / modify data.
  • New: Added an option to revent account sharing.
  • New: Added new action hooks.
  • Fix: email field on registration wasn\'t given a .valid or .error class.
  • Fix: Admin javascript alerts are now localized for translation.
  • Fix: Expiration date could not be left blank.
  • Fix: User expiration dates were not localized.
  • Fix: reCaptcha caused a fatal error if not configured correctly.
  • Fix: stripslashes on subscription level names.
  • Fix: The Upgrade link in [subscription_details] was shown even when only one free subscription level was active.
  • Tweaked: Improved the registration processing function.
  • Tweaked: Improved the default CSS.

Version 1.4.4.2

  • Added new email tags for %firstname%, %lastname%, and %displayname%.
  • Fixed a bug with the %username% email tag.

Version 1.4.4.1

  • Fixed a missing parameter error with rcp_count_members()

Version 1.4.4

  • Introduced new Logs page to view gateway error logs
  • Fixed an error in the PayPal gateway that caused members to not renew correctly

Version 1.4.3

  • Added new %amount% tag to the email templates
  • Fixed a bug with teh PayPal cancellation link
  • Fixed the subject line of the free email
  • Fixed the %blogname% email template tag
  • Improved file structure and organization
  • Improved code documentation

Version 1.4.2

  • Fixed a security vulnerability with the function that writes to the database
  • Fixed a bug with setting discount codes to percentage type
  • Fixed a JS bug on the registration form for showing / hiding auto renew and the discount

Version 1.4.1

  • Forced auto-renew to false when signing up for a forever plan
  • Fixed a bug with wpdb->prepare()

Version 1.4

  • Renamed Redirect page to Success page
  • Added new rcp_is_paid_content filter
  • Added a new logging system for tracking payment gateway errors
  • Fixed issues with $wpdb->prepare() notices
  • Made "View Details" always visible on the Users page
  • Improved data sanitization
  • Added a new notice when a user is updated
  • Added new feature for "User Notes"
  • Improved default CSS
  • Added Arabic language files
  • Added Portuguese language files
  • Added new rcp_redirect_from_wp_login() function
  • Removed user-registration-enabled check for the registration form

Version 1.3.3

  • Updated default language files.
  • Fixed some missing text domains.
  • Fixed a double slash in script URLs.
  • Improved the function that checks to see if a payment has been recorded yet.
  • Added a function to ensure RCP can be network activated.
  • Fixed problem with HTML in subscription level descriptions.

Version 1.3.2.3

  • Added new rcp_pre_edit_discount action
  • Improved data sanitization for discount codes
  • Added new rcp_pre_add_discount hook
  • Added Spanish translation files
  • Added new rcp_show_subscription_level() function for determing if a level should be shown on the signup form

Version 1.3.2.2

  • Fixed a bug with a white screen after free signups

Version 1.3.2.1

  • Fixed a small bug with subscription lengths

Version 1.3.2

  • Moved reCaptcha to a new rcp_show_captcha() function so it can be more easily modified
  • Added new "rcp_return_url" filter so that the URL users are returned to can be more easily modified
  • Fixed several potential security flaws
  • Improved data validation and sanitization throughout the plugin
  • Improved internationalization of date formats
  • Fixed a problem with restricting to free users and access levels at the same time
  • Added do_shortcode() to teaser messages so that they render short codes
  • Improved documentation and help text throughout the plugin
  • Added new "rcp_access_levels" filter for modifying the available access levels
  • Fixed some broken images in the Help page
  • Updated French language files
  • Fixed a problem with calculating users first expiration date that caused members to expire before their renewing payment was made
  • Added new "rcp_errors_before" and "rcp_errors_after" for adding content before/after error messages are displayed
  • Improved the functions that calculate a discounted price
  • Added a new function for storing discount codes in user\'s meta
  • Added new registration-functions.php and performed significant code cleanup
  • Added a new filter "rcp_default_user_level" for the default user role given to members on signup

Version 1.3.1.1

  • Fixed a problem with allow furl_open

Version 1.3.1

  • Fixed a bug with the auto updater
  • Replaced a global with a constant
  • Fixed a bug with expired users cron jobs

Version 1.3

  • Documentated conflict with object caching
  • Improved the email setting labels
  • Hid the payment gateway checkboxes unless more than one gateway is available
  • Added new rcp_get_currencies() function that can be filtered to allow more currencies
  • Dramatically improved the rcp_curreny_filter() function with filters for other plugins to use to customize currency display
  • Added new meta key for storing the PayPal recurring payment ID
  • Improved security checks in IPN listener
  • Fixed incorrect email address in IPN email log
  • Added an option to disable IPN verification from PayPal
  • Fixed the code prettifier in the help page
  • Fixed a problem with the expired users cron job and users with no expiration date
  • Fixed a bug with subscription level IDs in the registration form
  • Fixed incorrect variable in rcp_set_status
  • Added unique ID to each subscription level in the registration form
  • Made default user level filterable
  • Rewrote the settings page to follow the WP core UI
  • Fixed a problem with the update notifier
  • Improved the Paid Only option label to make it more clear
  • Added a new filter to the meta box fields array to allow extra fields to be added
  • Improved front end JS
  • Added new filter to the rcp_excerpt_by_id() function
  • Added Polish language files
  • DIscount code input now gets hidden when a free subscription level is selected
  • Added improved number formatting
  • Improved rcp_get_members()
  • Replaced custom SQL query with rcp_get_subscription_levels()
  • Fixed problems with sorting users by subscription level

Version 1.2.4

  • Added an ID to the discount codes P tag on the registration form
  • Fixed a security flaw in the signup process that created a way for users to get access to premium content for free
  • Registration fields now retain their information on submission error
  • Fixed a missing argument in rcp_log_user_in()
  • Fixed a problem with the function that calculates the discounted price
  • Made discounts active by default
  • Added some additional hooks to PayPal gateway
  • Added an option to cancel subscription from the [subscription_details] shortcode for new signups
  • Minor improvements to the PayPal gateway

Version 1.2.3

  • Made some improvements to the PayPal verification to help prevent verification failures
  • Updated default language files
  • Fixed a problem with the JS that hides the auto renew option when a free subscription is selected
  • Added new option to disable admin notifications
  • Added an option to export free users
  • Fixed the level query arg for auto plan selection

Version 1.2.2

  • Fixed a bug with the user expiration cron job that sends out expiration notices

Version 1.2.1

  • Fixed a couple of minor bugs with the user page columns
  • Changed "Free" to 0 in the rcp_currency_filter() function
  • Removed the IPN error log option
  • Added tax=0 to the PayPal redirect
  • Updated the login form to auto redirect to the current page
  • Added JS to hide the auto renew option when a free subscription is selected
  • Improved markup of the subscription details short code
  • Added support for the Turkish Lira currency
  • Moved load_plugin_textdomain() to an init hooked function
  • Added action hooks and filters to the PayPal listener

Version 1.2.0

  • Fixed a bug that caused bad encoding of apostrophes in the email "From" name.
  • Fixed a bug that prevented admins from manually adding subscriptions to users.
  • A few minor code improvements.
  • Improved file organization.
  • Updated language files.

Version 1.1.9

  • Updated the default language files to include new strings for translation.
  • Added do_action() hooks to the add/edit subscription level functions.
  • Improved the payment gateway system.
  • Added ajaxed live search to the "Add New Subscription" form.
  • Fixed a bug with the PayPal Sandbox mode

Version 1.1.8

  • Fixed a bug that caused non-active members to have an expiration date of 1970 in the [subscription_details] shortcode.
  • Improved the registration form CSS slightly.
  • Added a new advanced query arg that can be used on the Members page in the admin for displaying all members that signed up live vs. those that were added by admins.
  • Added missed jQuery UI theme images for the datepicker.
  • Fixed the double message problem with admin alert emails.

Version 1.1.7.2

  • Fixed a formatting bug with the discounts table when no codes have been created yet.
  • Fixed a formatting bug with the subscriptions levels table when no levels have been created yet.
  • Fixed the data type of the payment\'s table "amount" column.

Version 1.1.7.1

  • Fixed a bug that caused the cron job added in the previous version to run constantly.

Version 1.1.7

  • Added a cron job that checks for expired users every day and sends an email to the user when they have expired.
  • Fixed a bug were subscription access levels were reset to 0 when editing.
  • Fixed a few issues with utf8 encoding.

Version 1.1.6

  • Added a meta box option for restricting content based upon the subscription level.
  • Added a "subscription=ID" parameter to the [restrict] short code for limiting content to specific subscription levels.
  • Updated Help page with information about access levels and restricting to subscription levels.
  • Improved some admin CSS and jQuery loading.
  • Improved the layout of the "Restrict this Content" metabox so that it can now be placed in the side column.
  • Added new demonstration videos to the Help page on how to restrict content.

Version 1.1.5

  • Moved the "members per page" and "payments per page" to the screen options tab.
  • Added FAQs to the Help page.
  • Added a div.rcp-payment-history around the user\'s payment history.
  • Added missing class attribute to "no payments recorded" message in the [subscription_details] shortcode.

Version 1.1.4

  • Added support for access level restriction on free content.
  • Added do_shortcode() to the [is_not_paid] short code.
  • Made the first subscription level checked by default on the registration page.
  • Added missing HTML element classes to the registration form.

Version 1.1.3

  • Released the Math Verification add-on: http://codecanyon.net/item/restrict-content-pro-math-verification/1876095
  • Fixed an undefined variable bug in the front end JS.
  • Added option to redirect default WP login URL to custom page.
  • Added and in-dashboard plugin updater so that new releases can be updated to automatically from Wordpress.
  • Fixed a bug with the "Hide Premium Posts" option.