LifterLMS Stripe

LifterLMS Stripe Version 3.0.2

  • Resolved an issue where recurring payments with a free trial would attempt to charge 0 through the Stripe API and encounter an error. Free trial payment plans now correctly subscriber your customers to a plan with a free trial and no payment is attempted during checkout confirmation.

LifterLMS Stripe Version 3.0.1

  • Added the LifterLMS Helper helper class shared by LifterLMS extensions. This adds a few functions that make working with the LifterLMS Helper a bit easier.
  • In combination with LifterLMS Update 2.3.1 resolves an issue where users could not checkout with a 100% off coupon when using Stripe as the payment method.
  • Reorderd the API key boxes on the LifterLMS Stripe Gateway settings screen to reflect the UI on Stripe’s account dashboard where you locate your keys.
  • Fixed an undefined variable notice
  • Fixed a CSS issue on FireFox that prevented users from being able to click in certain dropdown areas on the credit card form.

LifterLMS Stripe Version 3.0.0

  • Deprecated reliance on the Plugin Update Checker class from the LifterLMS core in order to allow update and activation via the new free LifterLMS Helper plugin.
  • This version requires LifterLMS 1.5.0 at a minimum and will not function with older versions of LifterLMS.
  • Upgrading to v3.0.0 from older versions of LifterLMS Stripe is easy, simply retrieve the update automatically from your WordPress installation. Please Note that after updating to v3.0.0 you will no longer be able to receive automatic updates without installing the free LifterLMS Helper plugin. Version 2.0.0 of LifterLMS (coming soon) will remove update functionality so we urge you to update to Stripe v3.0.0 soon and install the updater plugin to continue receiving automatic updates.

LifterLMS Stripe Version 2.0.0

Completely rewritten for improved performance and stability

Improvements and Enhancements
  • Now entirely Object Oriented codebase
  • Proper error handling and catching for all processing errors and interactions.
  • A new “debug mode” setting has been created to allow for better debugging of processing issues. This setting will output the raw error response of any unsuccessful API calls made to Stripe during payment processing.
  • Improved frontend validation via Stripe.js helps identify potential typos and missed fields prior to payment processing without a page reload.
  • Prevent users from accidentally double charging themselves by locking the credit card form upon submission.
  • A CSS-only loading animation during payment processing that was a lot of fun and only warrants and changelog item because I enjoyed coding it.
  • User and plan data is now identified as either “live” or “test” data. This prevents test mode id’s from being used after switching to live mode (and vice versa).
  • Test transactions are clearly marked as “TEST” when viewing the LifterLMS order inside LifterLMS
  • A testing interface has been added when test mode is enabled to help you prefill the credit card form with a few of the available test mode cards that Stripe provides.
  • New filters to allow customization of error messages, on screen language, and more.
  • Removed the dependency on Stripe’s PHP SDK in favor of CURL requests via the WordPress Core function wp_safe_remote_post. This results in a significantly smaller and simpler codebase and enables compatibility with servers on older versions of PHP that don’t support namespacing.
  • Added support for Stripe Metadata. On Stripe dashboards it is now easier to see the related WordPress post or user ID.
  • On LifterLMS Orders, Stripe Metadata is now clearly visible in the admin panel. Links to the Stripe Customer, Charge, and more are available for all Stripe transactions.
Upgrading from previous versions to v2.0.0
  • Almost all data saved by LifterLMS Stripe has been reformatted so previously saved subscriptions and customers will be stored in a new location
  • Because test and live mode identifiers were never stored by previous version of LifterLMS Stripe, we cannot migrate existing IDs during upgrade. However, all plans and customers will be automatically found or created during payment processing so no migration is actually needed anyway!
  • A new database table ({$wpdb->prefix}lifterlms_stripe_plans) will be installed to hold all created plans
  • Existing LifterLMS Stripe Tables that were required for previous versions are no longer needed be are being preserved for historical purposes. If you wish to delete these tables, you may do so using the method of your choosing. The deprecated tables are {$wpdb->prefix}lifterlms_stripe_orders and {$wpdb->prefix}lifterlms_stripe_subscription_plans
Deprecated Functions and Classes


  • LLMS_Settings_Integrations_Stripe was replaced by LLMS_Stripe_Settings


  • llmsstripe_locate_template() is no longer needed
  • llmsstripe_theme_override() is no longer needed
  • llmsstripe_get_template() is no longer needed
  • llmsstripe_enqueue_scripts() was replaced by LLMS_Stripe_Checkout_Form->enqueue()
  • llmsstripe_person_edit_account_url() is no longer needed
  • llmsstripe_generate_random_plan_id() is no longer needed
  • llmsstripe_save_subscription_plans() is no longer needed
  • llms_stripe_locate_payment_plan() was replaced by LLMS_Stripe_Plan->locate()
  • llms_stripe_create_new_payment_plan() was replaced by LLMS_Stripe_Plan->create()
  • llms_stripe_get_trial_days() was replaced by LLMS_Stripe_Plan->get_trial_days()
  • llms_stripe_setup_expired_subscription_check_schedule() was replaced by LLMS_Stripe_Crons->schedule()
  • cancel_expired_subscriptions() was replaced by LLMS_Stripe_Crons->cancel_expired_subscriptions()
  • get_public_key() was replaced by LLMS_Stripe_Settings->get_publishable_key()
  • get_secret_key() was replaced by LLMS_Stripe_Settings->get_secret_key()
  • llms_get_stripe_subscription_plans_table_name() is no longer needed