Skip to content

Releases: Freemius/wordpress-sdk

Fix block theme preview issue on WP 6.3.2 and above

03 Dec 15:11
9fb47e3
Compare
Choose a tag to compare

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.

New Garbage Collector system and various bug fixes

30 Oct 12:02
8a2bb8f
Compare
Choose a tag to compare

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.

Garbage Collector

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:

  1. Enabling the Garbage Collector in one product will result in it being activated for all Freemius products in the same WordPress instance.
  2. Since the initial activation of the Garbage Collector system, all inactive data will stay for WP_FS__GARBAGE_COLLECTOR_EXPIRATION_TIME_SECS time before being deleted.
  3. In the next release, we will make the Garbage Collector system activated by default.

Fix conflict between new block theme loader

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.

Fixed retrieval of affiliate email address

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.

Fixes of PHP 8.2 related notice

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.

License activation link in the duplication website notice

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.

Fixed update notice issue when free and premium versions of a plugin is running in parallel

03 Sep 10:47
47aaeb6
Compare
Choose a tag to compare

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.

Fixes in clone resolution and multisite license activation

27 Aug 13:07
f37ab4e
Compare
Choose a tag to compare

Version 2.5.11 brings the following bug fixes:

  1. Properly acknowledge the use of the constant WP_SITEURL so that the clone resolution mechanism can work thoroughly in the necessary edge cases.
  2. Fixed multisite license activation mechanism where it would not include inactive sites in some cases.

Additionally, we've done some housecleaning:

  1. We implemented PHPStan for static analysis to eagerly encounter zero-day bugs.
  2. PHPCS' PHPCompatibility was also added to make sure we're supporting PHP versions from 5.6 to the latest.

Security-Related Enhancements

18 Jul 06:37
05bac84
Compare
Choose a tag to compare

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.

Enhancements to the affiliate page, add-ons page and GDPR admin notice with a few bug fixes

12 Jun 06:59
e9e3b37
Compare
Choose a tag to compare

Version 2.5.9 brings the following improvements:

  1. We updated the URL in GDPR opt-in notice to navigate to the new ec.europa.eu website.
  2. Following updates in AWS S3 deprecating TLS v1 and v1.1, we made the screenshot URLs compatible. Our API now returns such URLs with full https URL schema.
  3. Fixed an issue where the AJAX URLs were not correctly generated for client-side JS code in some cases.
  4. Fixed an issue where the dynamically added "affiliation tab" would sometime not work.

Update links in the License Activation UI

16 May 13:46
bbbcf3d
Compare
Choose a tag to compare

After many months of work and optimization, we’re excited to release a short explainer video about Freemius license activation 🤩

Jessica front view_You tube

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.

image

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}/

Fix translation files bug causing blank strings in the Opt-In UI

24 Apr 06:40
78b876e
Compare
Choose a tag to compare

Due to recent changes in the Transifex service, po files were formatted differently than before. This in turn caused erroneous compilation of mo files.

This resulted in strings showing up as blank in the new Opt-In UI.

image

We are serving a quick patch to fix the error in this release. We will also revamp our build process to update it with the current Transifex conventions.

Bug fix in the library used to communicate with the API throwing fatal error

29 Mar 07:16
095fc9c
Compare
Choose a tag to compare

We improved the error handling in the library code used to communicate with the API. This will prevent the issue where wp_remote_request could return a WP_Error instance and the system would fail with an error message:

Fatal error: Uncaught Error: Cannot use object of type WP_Error as array

Compatibility fix due to custom SDKs - [RESOLVED] `Call to undefined method Freemius_Api_WordPress::RemoteRequest()`

20 Mar 08:31
72c4f4e
Compare
Choose a tag to compare

In version 2.5.4, among many other improvements, we enhanced the internal PHP SDK used to communicate with the Freemius API and added new helper functions. Those changes are meant for internal use of SDK, and changing them shouldn't have caused any issues.

However, after developers started to release new versions of their products with version 2.5.4, we began to receive reports of the following fatal PHP error:

Fatal error: Uncaught Error: Call to undefined method Freemius_Api_WordPress::RemoteRequest()

After being able to investigate some of the affected sites, we found that all of them were running a plugin that was using a custom-modified version of the SDK, which bypassed the SDK's logic that is responsible for using the latest SDK available in the environment while using the same class names for the internal PHP SDK. Meaning when WordPress loaded a plugin with such a custom SDK before a plugin/theme that uses 2.5.4, an outdated version of the internal PHP SDK was loaded, which was missing the newly added Freemius_Api_WordPress::RemoteRequest() method.

We reached out to the developers that made those customizations but haven't yet heard from them. Plus, even if they would release new versions of their plugins with the standard SDK, it will take time until those changes propagate to the affected websites. So, to mitigate those compatibility issues, we are releasing 2.5.5, where our SDK can work in harmony parallel to those custom-modified, non-standard integrations, with a minimum impact.

Whether you received complaints about the incompatibility or not, we urge that you update and release a new version of your product with the latest release.

As a long-term solution, we consider identifying unexpected SDK customizations during deployment and either warn the developer about the potential consequences or prohibit those altogether.