- Avoid conflicts with other plugins using the translation loader library.
- Check for translations in add-ons when available.
- Fix "View Details" showing for core LifterLMS. #52
- Adding additional security checks.
- Obfuscates license keys. #47
- Updated the appearance of the license dropdown.
- Fixed incorrect HTML code for single Add On displayed on the LifterLMS > Add-ons & more screen.
- Added new paramater
$force
,false
by default, to the static methodLLMS_Helper_Keys::activate_keys()
. It'll allow to force a remote call instead of using ccached results.
- Cache results from the activate keys calls to the LifterLMS license API. This prevents issues where sites are pinging the license server too often, specifically if they are "cloned" sites.
- Fixed an issue where adding new license keys with an end-of-line symbol after the last key would result in an invalid license key error.
- Fixed an issue that caused PHP warnings in the "Plugins -> Add New" page because the
plugin
property was missing. #36
- Fixed undefined index error encountered when programmatically deactivating a key that was not previously activated on the site.
- Only runs localization functions when loaded as an independent plugin.
- Replace the textdoman 'lifterlms-helper' with 'lifterlms'.
- Use
llms_helper()
in favor of deprecatedLLMS_Helper()
in various locations.
- Don't attempt to run migrations from versions less than 3.0.0 during first run when loaded as a library.
- Load
llms_helper()->upgrader
WP_CLI context in preparation for forthcoming thelifterlms-cli
.
- This plugin is now included by default via the LifterLMS core in versions 5.0+. Installing this plugin directly will use the plugin version instead of the version included with the core. Direct installation is likely only required for development purposes when using LifterLMS 5.0+.
- The main function
llms_helper()
is declared conditionally when the classLifterLMS_Helper
is not yet declared. - Added a constant
LLMS_HELPER_DISABLE
which allows disabling of the plugin. - Distribution release zips now include a
composer.json
file to allow for installation via composer.
- Flush cached update and add-on data when adding or removing license keys and when changing channel subscription for a package.
- Enable updating to beta versions of packages that don't require a license when no license is present.
- Moved the class
LifterLMS_Helper
class to its own file fromlifterlms-helper.php
. - Use
self::$instance
in favor ofself::$_instance
. - Use
llms()
in favor of deprecatedLLMS()
. - Use
llms_filter_input()
to access$_POST
data in various places. - Use strict comparison for
in_array()
.
- Fixed usage of incorrect textdomain in various places.
- Replaced usage of protected class property
$instance
in favor of$_instance
in various singleton classes. - Function
LLMS_Helper()
is deprecated in favor ofllms_helper()
. - File
includes/model-llms-helper-add-on.php
is deprecated, useincludes/models/class-llms-helper-add-on.php
instead.
- Load changelogs from the make.lifterlms.com release notes archive in favor of from static html files.
- Remove reliance on
file_get_contents()
causing errors on servers without access to the function.
- Fixed fatal errors encountered as a result of failed API calls
- Fixed broken links output on the plugins update screen when an add-on is unlicensed and has an update available
- Fixed issue causing non-beta versions of the LifterLMS core to be served from LifterLMS.com instead of from WordPress.org
- Fixed an issue causing key migration to run on the frontend resulting in a fatal error related to missing admin-only functions
- Fixed an issue causing multiple submitted keys to not work properly on certain environments
- Fixed issue causing installation script to make an activation API call even when no keys exist
- Improved installation script message to only display a migration message when keys are actually migrated
- This is nearly a complete rewrite of the codebase. Things have moved but no features have been removed.
- Requires LifterLMS version 3.22.0 or later
- License key activation is now on a per-site basis as opposed to a per product basis. This means that if you have a license key for a bundle you don't have to enter the key for each add-on, you enter the key only once and it will activate ALL the add-ons.
- The "Licenses" tab has been removed and your add-ons and licenses are now managed via LifterLMS -> Add-ons & More
- A migration script exists to move license keys from previous versions of the helper to this version. After upgrading check LifterLMS -> Add-ons & More to ensure your keys were successfully migrated.
- You can now install add-ons through the this plugin without having to download and install them manually. Enter your license key(s) and select the add-ons you wish to install to have them installed automatically. You can bulk install as well.
- You can now subscribe to beta channels of LifterLMS and any LifterLMS add-ons. Visit the LifterLMS -> Status -> Betas screen to subscribe to betas. Always use betas at your own risk, by nature they're unstable!
- Uses the LifterLMS.com v3 REST api for all API calls
- Added RTL language support
- Added i18n support
- Removed and replaced various functions
- Fixes many bugs and almost certainly introduces some new ones
- Fix issue causing false activations which cannot be deactivated due to blank activation keys
- Allow add-ons to be bulk deactivated
- Integrates with LifterLMS site clone detection in order to automatically activate plugins on your new URL when cloning to staging / production.
- Following clone detection if activation fails the plugin will no longer show the add-ons as activated (since they're not activated on the new URL)
- Minor admin-panel performance improvements
- Now uses minified JS and CSS assets
- Now fully translateable!
- Handle undefined errors during post plugin install from zip file
- Handle failed api calls gracefully
- Cache add-on list prior to filtering
- Added a unified Helper sceen accessible via LifterLMS -> Settings -> Helper
- Activate multiple addons simultaneously via one API call
- Site deactivation now deactivates from remote activation server in addition to local deactivation
- Upgraded database key handling prevents accidental duplicate activation attempts
- Fixed several undefined index warnings
- Normalized option fields keys
- Fixes issue with theme upgrade post install not working resulting in themes existing in the wrong directory after an upgrade
- Significantly upgrades the speed of version checks. Previously checked each LifterLMS Add-on separately, now makes one API call to retreive versions of all installed LifterLMS Add-ons.
- Adds support for the Universe Bundle which is one key associated with multiple products
- After updates, clear cached update data so the upgrade doesn't still appear as pending
- After changing license keys, clear cahced data so the next upgrade attempt will not fail again (unless it's still supposed to fail)
- After updating the currently active theme, correctly reactivate the theme
- Prevent hijacking the LifterLMS Core lightbox data when attempting to view update details on the plugin update screen.
- Added Parsedown to render Markdown style changelogs into HTML when viewing extension changelogs in the the lightbox on plugin update screens.
- Includes theme-related APIs for serving updates for themes
- Better error reporting and handling
- A few very exciting performance enhancements
- Fixed an undefined variable which produced a php warning when
WP_DEBUG
was enabled - Resolved an issue that caused the LifterLMS Helper to hijack the "details" and related plugin screens that display inside a lightbox in the plugins admin page.
- Added a .editorconfig file
- Added changelog file
- Actual public release
- Initial public release