LifterLMS Stripe Version 2.0.0

Posted in

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

Leave a Reply

Your email address will not be published. Required fields are marked *