Adds support for creating and selling recurring subscriptions
Version 2.0.0b1:
- New: Stripe plugin talks to the Stripe REST API via jrPayment_stripe_api() - requires Payment Support 2.0.0b1
- New: Stripe subscriptions start on a Stripe hosted Checkout page (supports 3D Secure / SCA, Apple Pay, Google Pay and Link)
- New: "Update Credit Card" and "Cancel Subscription" for Stripe open the Stripe Customer Portal
- New: Canceling or renewing a subscription in the Stripe Customer Portal updates the Jamroom subscription
- New: New Stripe subscription plans are created as Stripe Products + Prices - existing plans (Plans API) keep working unchanged
- Change: Changing plans on an existing Stripe subscription updates it in place at Stripe - the user confirms the prorated amount, which is charged immediately (a downgrade leaves a credit for future payments)
- Change: A Stripe plan change is only applied once its payment succeeds - a declined card leaves the subscription unchanged, and 3D Secure is completed on the Stripe hosted invoice page
- Change: Stripe subscriptions no longer get Jamroom "credit days" on a plan change (Stripe already credits the unused time) - new "gateway_prorates" plugin metadata flag
- Change: Free trials are applied on the Stripe subscription at checkout, and only once per plan per profile
- Change: Removed the FoxyCart module subscription import tool (the FoxyCart plugin subscription convert tool is unchanged)
- Change: PayPal and FoxyCart subscribe buttons for fixed price plans go through the build_subscription view, so the plan check runs before the user is sent to PayPal / FoxyCart
- Bug Fix: Stripe subscription payments were not recorded on Stripe API version 2025-03-31 (basil) and newer
- Bug Fix: Failed Stripe subscription payments did not mark the subscription unpaid or notify the user
- Bug Fix: Converting a FoxyCart subscription to Stripe could fatal on PHP 8, or update the wrong subscription on PHP 7
- Bug Fix: FoxyCart to Stripe conversion now validates everything before creating anything at Stripe
- Bug Fix: plugin_view only loads a plugin file for a plugin name made of letters, numbers and underscore, and a missing plugin file shows the "invalid plugin view" notice instead of a 500 error
- Developer: "subscription_plan_allowed" event and jrSubscribe_is_plan_allowed() function - modules can hide a plan from the user plan list and refuse starting or changing to it
Version 1.8.1:
- Bug Fix: Modifying a subscription to a new plan may not show correct subscription amount or expiration
Version 1.8.0:
- New: Added "Trial Subscriptions" as a new selectable Dashboard Panel
- New: "View Linked Subscription Events" button added in Modify Subscription to view previous subscription transactions
- Change: Updated Grace period help to clarify how the grace Period works with Stripe subscriptions
- Bug Fix: Unpaid subscriptions with a trial period may not be canceled after the trial period expires
- Bug Fix: Canceled Stripe supscriptions could remain active in the Stripe API
Version 1.7.0:
- New: "Notify of Expiration" Global Config to enable/disable sending notification when Subscription has expired
- New: "Notify Of Trial Expiration" Global Config to enable/disable sending notification when Trial is expiring
Version 1.6.1:
- Change: Updated view structure to support new updates in Jamroom Core 6.5.12+
- Change: Searching in subscriptions updated to be faster when searching by email address
Version 1.6.0:
- Change: Free subscriptions are now handled internally and do not go through the payment gateway
- Bug Fix: "trial" and "unpaid" active subscriptions not showing in Active subscription browser
Version 1.5.1:
- Change: Small change in the way Plans are searched for
Version 1.5.0:
- New: "subscription_extend_check" event that is fired before a subscription is extended
- New: "subscription_cancel_check" event that is fired before a subscription is canceled
- New: "subscription_delete_check" event that is fired before a subscription is deleted
Version 1.4.10:
- Bug Fix: Items per page jumper was not working correctly in the Subscriptions browser
Version 1.4.9:
- Bug Fix: URL to subscriptions in email templates could be incorrect
- Bug Fix: Possible duplicate "subscription canceled" email can be sent to subscriber when canceling
Version 1.4.8:
- Bug Fix: "Active" subscriptions browser was not showing "free" and "canceled" subscriptions
Version 1.4.7:
- Change: Improved error message when there are no plans to subscribe to in User Settings
Version 1.4.6:
- Bug Fix: Possible "Invalid Free Trial" error when modifying a plan with Stripe active
Version 1.4.5:
- Bug Fix: Possible "invalid end of term quota_id" error in Activity Log is incorrect
Version 1.4.4:
- Bug Fix: Subscription plans layout was not rendering correctly on mobile phones
Version 1.4.3:
- Bug Fix: Possible "not registered notification event" messages in Activity Log
- Bug Fix: Possible "unable to determine plan_id" error in Activity Log during FoxyCart sub renewal
Version 1.4.2:
- Bug Fix: FoxyCart daily subscription feed could set end date of some subscriptions incorrectly
Version 1.4.1:
- Bug Fix: Subscription expiration date may not be set correctly when downgrading a subscription
Version 1.4.0:
- Change: Quota ID added to Subscription browser under Plan Name
- Change: Prorated days for unused amount of existing subscription is added to the end of subscription
- Bug Fix: Foxycart subscriptions could be duplicated when upgrading to a more expensive subscription
Version 1.3.1:
- Change: Updated module tables to work with new page_table_row event found in Core 6.5.0+
- Bug Fix: profile_id could be set to "1" during a subscription downgrade by admin user
Version 1.3.0:
- New: "foxycart_subscription_template.tpl" added and used when changing FoxyCart subscriptions
- Change: Additional profile information now stored in some subscription activity log entries
- Change: Check to prevent admin users from possibly signing up the wrong profile_id
- Bug Fix: profile_id could be set to "1" during a subscription downgrade with credit remaining
Version 1.2.5:
- New: Unique subscription meta data is now modifiable in Modify Subscription
- New: Search by user Email Address in subscription browser
- Bug Fix: Some FoxyCart subscriptions may not save sub_token in subscription meta data
- Bug Fix: Possible "unable to determine profile_id or plan_id" activity error on cart purchase
Version 1.2.4:
- Change: Subscription features in Subscription Browser now works with embedded items
Version 1.2.3:
- Bug Fix: Deleted plan could still show in plan browser if it ever had a subscriber
Version 1.2.2:
- Change: subscribe.tpl updated to include jrCore_format_string on sub_features variable
Version 1.2.1:
- Change: _profile key array added for use in customer email templates
- Bug Fix: Possible alert error if no "Display Quotas" are selected when creating a new Plan
Version 1.2.0:
- New: "Notify of Creation" global config setting to enable/disable subscription creation emails
- New: "subscription_created" email templates for email that is sent to user on subscription creation
- New: "Delete And Notify" option added in Delete Subscription to notify user of deleted subscription
- Bug Fix: Browsing subscribers by plan_id was not keeping plan_id when searching
Version 1.1.4:
- Bug Fix: Product plan name not being updated in the Stripe Plan when changed locally
- Bug Fix: Canceling a subscription may create an Activity Log error depending on Stripe API version
Version 1.1.3:
- Bug Fix: Incorrect Stripe subscription ID meta data could be saved depending on Stripe API version
Version 1.1.2:
- Bug Fix: Subscription Plan Browser items per page was not working correctly
- Bug Fix: Quota select fields in Plan Modify may not show the correct saved value for the plan
Version 1.1.1:
- Change: Updated to work with new Account Tabs functionality provided by Users module version 2.6.0
- Change: Updated to work with new Recycle Bin functions found in Jamroom Core 6.2.0
Version 1.1.0:
- New: "Collect Payment" Subscription plan option to cap the number of payments made on a subscription
- New: "View Subscriptions Page" button in Subscription Plan browser
- Change: Form Designer option removed from Plan Create and Modify forms
- Bug Fix: User entering a dollar sign in pay variable amount field would receive an invalid price error
- Bug Fix: Possible Activity Log error for sites using FoxyCart in the EU with GDPR enabled
Version 1.0.9:
- Bug Fix: Subscription amount may show as 1/10th the actual price in the Payments and Subscription browsers
Version 1.0.8:
- Bug Fix: Incorrect price in Payment Browser when a profile changes subscriptions when using FoxyCart
Version 1.0.7:
- Bug Fix: Possible to get 2 subscription renewal email notifications when Stripe is active processor
Version 1.0.6:
- Bug Fix: Possible "form validation" error when modifying an existing subscription more than once
Version 1.0.5:
- Change: "Display Quota" setting in Plan config updated to allow selecting multiple quotas
- Bug Fix: Past Due payment notices may not be sent with FoxyCart set as active payment processor
- Bug Fix: FoxyCart daily subscription feed may not be decoded correctly
Version 1.0.4:
- New: Stripe subscription plan API support updated to properly support Stripe API version 2018-02-05 and newer
- Change: Improved support for Subscription Grace Period to prevent premature subscription cancelation
- Change: Default value for Grace Period on subscription plans changed from 0 to 1 day
- Change: Subscription Browser updated to allow viewing and modifying inactive subscriptions
- Bug Fix: Existing FoxyCart subscriptions with different price could show wrong price on subscription page
Version 1.0.3:
- New: "Notify of Card Expiration" global config option to enable emails for card expiration
- New: Support added to Stripe for credit card expiration notification
- New: A custom image can be added to a Subscription Plan which shows in the Active Subscription form
Version 1.0.2:
- Bug Fix: Canceled subscriptions were being given a grace period if configured in plan
Version 1.0.1:
- Bug Fix: Free subscriptions were only being extended by 1 day instead of 30 days
Version 1.0.0:
- New: Ability to search by user name and/or user email address from Subscriptions browser
- New: Subscription Meta Data specific to payment processor is now show on Subscription modify screen
- New: FoxyCart subscription cancelation updated to check sub_token before canceling subscription
- New: "Notify of Cancelation" Global Config option to notify subscribers their subscription is ending soon
Version 1.0.0b17:
- New: Events added for when a subscription is created, extended, canceled and deleted
- Bug Fix: Some imported FoxyCart subscriptions could be missing the required plan_id
Version 1.0.0b16:
- New: "Notify of Subscription Payment" Global Config option to notify subscribers of upcoming payment
- New: "Grace Period" setting for subscription plans to allow a payment grace period beyond subscription end
- New: New Dashboard panels and graphs for subscriber counts, daily average value, and length
Version 1.0.0b15:
- New: Support for variable priced subscriptions - subscribers can pay what they want
- New: New calendar icon added for use in Stripe checkout modal window
Version 1.0.0b14:
- New: Individual Created, Extended and Canceled notification options added to user notifications
- Change: "Update Credit Card" button disabled if user is on a manually managed free subscription
- Bug Fix: Changing subscriptions in the middle of an active subscription may not set expiration date correctly
- Bug Fix: Subscription profile at FoxyCart may not be deactivated when a subscription is canceled
Version 1.0.0b13:
- New: Ability to "hide" specific Subscription Plans from the subscription browser
- Bug Fix: "Return to Current Quota" option not saving on Subscription Plan modify
Version 1.0.0b12:
- New: 5 new Dashboard panels have been added for use in the Dashboard
- Bug Fix: Daily FoxyCart subscription data feed may not get processed correctly
- Bug Fix: Some expired subscriptions in FoxyCart data feed may not be removed correctly
- Bug Fix: Inactive subscriptions still included in button count in subscription browser
Version 1.0.0b11:
- Bug Fix: Gateway fee not being recorded for Foxycart subscriptions using Stripe as the Foxycart gateway
- Bug Fix: Subscription Start Date being reset on subscription payment applied
Version 1.0.0b10:
- New: {jrSubscribe_get_subscription_url} function for getting just URL to start subscription
- Change: FoxyCart subscriber import no longer requires FoxyCart module be installed and configured
- Change: With Stripe as active plugin changes to subscription amount and duration are locked
- Bug Fix: Changing name of subscription now changes it correctly via Stripe API
Version 1.0.0b9:
- New: User notification of soon-to-expire subscriptions when using FoxyCart plugin
- Change: Improvements to past-due detection when importing existing subscribers from FoxyCart
- Change: Subscription Browser now orders subscriptions by those expiring the earliest
- Bug Fix: Importing subscriptions from FoxyCart may not set subscription end date correctly
Version 1.0.0b8:
- New: "Return to Current Quota" added as an End of Term quota option
- New: "Payment History" button on active subscription page to view previous subscription payments
- Bug Fix: Subscription may show as being in Trial even though plan is not configured for trial
- Bug Fix: White screen when trying to delete a subscription not created under the active payment plugin
Version 1.0.0b7:
- Bug Fix: Subscription button Javascript error in subscribe.tpl if Stripe is active plugin
Version 1.0.0b6:
- Change: Updated local subscription plans page subscribe.tpl with new look and CSS
Version 1.0.0b5:
- Bug Fix: Quota Counts not being updated when a profile successfully subscribes to a new quota
Version 1.0.0b4:
- Bug Fix: Plan browser may not show all active plans to viewing user
- Bug Fix: "Display Quota" setting when creating or modifying a Plan was not being saved correctly
Version 1.0.0b3:
- Bug Fix: User subscription data not being removed when Developer Tools "Reset System" tool is run
Version 1.0.0b2:
- Bug Fix: Clicking "active" when creating new plan is not saving the plan as active
Version 1.0.0b1:
- Initial Release