We are releasing Version 2.7.2 of our WordPress SDK with bug fixes and UI enhancements.
We show a sticky notice in the UI if the license is expired.
However, the product owner can extend the license from the Freemius Developer Dashboard. In such cases, we were not clearing the sticky notice. We have made improvements to clear it automatically from now on. The user needs to simply click on the "Sync" button on the "Accounts" page to make it happen.
We noticed an edge case issue in the API caching layer. Sometimes, the cache would indefinitely fall back to the last valid response instead of expiring after a certain time. This was affecting the staged rollout feature. We have fixed this issue.
We noticed we were using some strings in some parts of the UI that were not properly capitalized and translated. We have made fixes for the same.
Note: We have removed v2.7.1
from the release as it contained a fatal bug. If you're using v2.7.1, we urge that you upgrade ASAP.
Version 2.7.0 brings various improvements and bug fixes. Please find them below:
The license keys will no longer be printed in the HTML form. This enhances the experience of white-labeled licenses.
printf
family of functions. We have fixed the translations directly in our Transifex project.We discovered an edge case where the garbage collector could delete data, in case the slug of the product was changed from the Freemius Developer Dashboard. We have introduced a fix for this.
fs_enqueue_local_script
function.gettext
extractor library to work for various types of custom gettext functions used in the project.po
and mo
files.For the build-tooling changes, please see the new CONTRIBUTING.md file.
Starting v2.6.2 we have enabled the garbage collector system by default. More information about it can be found here.
If for some reason you want to explicitly disable it (for example, while you are developing something locally), you can do so by defining this constant in your wp-config.php
file.
// Disable Freemius WP-SDK Garbage Collector
if ( ! defined( 'WP_FS__ENABLE_GARBAGE_COLLECTOR' ) ) {
define( 'WP_FS__ENABLE_GARBAGE_COLLECTOR', false );
}
The Garbage Collector will run once every day and will clear data of any plugins/themes that have not been active for more than 1 week.
You can configure the expiration time with another constant:
// Set expiration time to 30 days
if ( ! defined( 'WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS' ) ) {
define( 'WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS', ( 30 * 24 * 60 * 60 ) );
}
Additionally, we also identified and fixed a typo in the logic which could have caused a regression in the GC logic.
We identified (thanks to the community) that our temporary patch to fix the block theme preview issue for WP versions 6.3 and 6.3.1 had regressions for WP version 6.3.2 and above.
Since the original issue itself was a bug from the WordPress core that has now been fixed, we have scoped our fix for the specific WP 6.3 and 6.3.1 versions. We plan to remove the patch altogether after a few months when the usage is low enough. This ensures we continue supporting WP 6.3, 6.3.1, and 6.3.2+ versions.
We are pleased to announce the release of v2.6.0 of our WP SDK, of which the main highlight is the new Garbage Collector system. You can find more details below.
Following our efforts to reduce the storage space required by the Freemius SDK, we’ve introduced a Garbage Collector system. The system will proactively check for inactive products and will clean their data from the storage.
Since this is a new beta feature, it is currently opt-in only. To turn on the system, you need to define the following constant before you load the Freemius integration code:
if ( ! defined( 'WP_FS__ENABLE_GARBAGE_COLLECTOR' ) ) {
define( 'WP_FS__ENABLE_GARBAGE_COLLECTOR', true );
}
It can be placed inside the main plugin file or functions.php
of a theme before the require
of Freemius SDK.
By default, the Garbage Collector will run once every day and will clear data of any plugins/themes that have not been active for more than 1 week.
You can configure the expiration time with another constant:
// Set expiration time to 30 days
if ( ! defined( 'WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS' ) ) {
define( 'WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS', ( 30 * 24 * 60 * 60 ) );
}
We invite the community to enable this on their product and help us test it in the wild. Please note that:
WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS
time before being deleted.We found an issue in WP 6.3 where previewing a block theme became broken. We’ve identified the root cause and have included a fix.
If the user hadn’t opted in, we relied on the application form to determine their email. There was an error in the system that didn’t account for the email address from the form. This has been fixed.
We found an edge case where configuring the navigation
with tabs
could trigger a PHP notice. Similarly, we found another use case in which the site is configured with relative URLs that could trigger another kind of PHP notice while trying to parse the URL. We’ve identified the causes and have included a fix.
We found a regression where the license activation link in the duplication website notice (clone resolution) wasn’t working. We fixed it and also improved the UX to show a spinner while the system is working.
We discovered an edge case in our SDK when a plugin's free and premium version needs to be running in parallel. In some cases, the updates from the premium version would show up under the Free version, causing confusion.
The SDK v2.5.12 fixes the issue.
Version 2.5.11 brings the following bug fixes:
WP_SITEURL
so that the clone resolution mechanism can work thoroughly in the necessary edge cases.Additionally, we've done some housecleaning:
5.6
to the latest.Version 2.5.10 brings various security-related enhancements and fixes to the WordPress SDK. For more details, please check our blog post. It is recommended that you update your products as soon as possible.
Version 2.5.9 brings the following improvements:
ec.europa.eu
website.https
URL schema.After many months of work and optimization, we’re excited to release a short explainer video about Freemius license activation 🤩
The video comes with a complementary, dynamic landing page (example) explaining the relationship between your product, the customer, and Freemius. It also delves into data permissions (what and why), GDPR and privacy practices, and more. The page is now automatically linked from the footer of the License Activation UI through the Powered by Freemius button.
It’s a dynamic page, and you can access yours using:
https://freemius.com/product/license-activation/{product_id}/{product_slug}/
Which is an addition to the previously added opt-in landing page for products with a free version:
https://freemius.com/product/opt-in/{product_id}/{product_slug}/