Skip to content

Releases: Freemius/wordpress-sdk

Pricing page 2.0, fullscreen Checkout experience and WordPress.org compliance update

21 Oct 10:30
5669671
Compare
Choose a tag to compare

Version 2.9.0 comes with various improvements and updates to provide a better experience for your users and stay compliant with the latest wp.org guidelines.

✨ Freemius Pricing Page 2.0

pricing-page-wp-sdk

Our new pricing page is officially out of beta and now bundled into the SDK! This updated version is fully responsive and open source. It supports more pricing use cases to better fit your needs. Check it out: Freemius Pricing Page on GitHub.

Breaking Change

With the removal of the iFrame-based pricing page, any custom CSS you’ve added through the Developer Dashboard will no longer work.

We understand the breaking nature of this update. While we’re working to bring back easy customizability, for now, there are two ways you can customize the CSS or the pricing app itself.

1: Using filters to modify the CSS and variables

The pricing page uses the same structure of CSS variables as our checkout. You can leverage the templates/pricing.php filter to print some inline CSS to modify the style.

For example:

my_fs()->add_filter('templates/pricing.php', function ( $template ) {
	$style = <<<'CSS'
<style>
#fs_pricing_app {
	--fs-ds-blue-10: #ECEFF1;
	--fs-ds-blue-100: #CFD8DC;
	--fs-ds-blue-200: #B0BEC5;
	--fs-ds-blue-300: #90A4AE;
	--fs-ds-blue-400: #78909C;
	--fs-ds-blue-500: #607D8B;
	--fs-ds-blue-600: #546E7A;
	--fs-ds-blue-700: #455A64;
	--fs-ds-blue-800: #37474F;
	--fs-ds-blue-900: #263238;
}
</style>
CSS;

	return $style . $template;
});

Please note that the CSS variables need to be applied on the #fs_pricing_app container.

2: Replacing the entire app

You can follow the instructions outlined here to replace the pricing page application with a custom build of yours.

In the near future, we will provide you with an easier way to modify the styles of the built-in application.

🛒 Fullscreen Checkout Experience

fullscreen-checkout

We’ve made the checkout experience even cleaner! When checking out, users are now redirected to the new fullscreen checkout version, reducing distractions while maintaining the natural and seamless user experience you’re used to. After a successful purchase, your users will be redirected back to the WP Admin, the license will auto-activate, and they’ll see a notification with a download link to the paid version.

📬 Improved In-Dashboard Contact Form

If you’re using the in-dashboard contact form, it will now open in a new tab as a full-screen view. This change along with the others, aligns us with the latest WordPress.org guidelines—say goodbye to all iFrames in the SDK!

⚡ Improved API caching

We noticed some API request caching could consume a significant amount of memory. We have now optimized the system to not cache API requests with large amounts of data.

Fixed regression with license ownership chage

19 Sep 15:56
cc31279
Compare
Choose a tag to compare

We noticed a regression from version 2.8.0, in which the system could fail to change license ownership from the UI. We have fixed this regression.

Improved Debugger, WP & PHP 8.2 Compatibility, and Various Bug Fixes

11 Sep 13:26
227cbff
Compare
Choose a tag to compare

We are excited to release version 2.8.0, which includes multiple bug fixes and improvements. Please find the details below:

Improved Debugger

persistent-freemius-debugger

The Freemius SDK has a built-in debugger that, when enabled, stores all logs in the local WordPress database. We've received reports that users sometimes forget to disable it, causing the storage size to grow. To prevent this, we now automatically disable the debugger 24 hours after it is turned on.

auto-off-debugger

Please note: this feature will only function if the WordPress instance has cron jobs enabled.

Improved Update Mechanism

We noticed a regression in the latest version of WordPress where updating a premium plugin via the plugin information dialog was not functioning correctly. This issue has now been resolved.

freemius-upgrade-dialog

Additionally, we fixed a case where a premium-only plugin mistakenly fetched data from WordPress.org. This issue could occur if the plugin shared the same slug as another WordPress.org plugin.

Other Bug Fixes and Improvements

  • Enhanced overall PHP 8.2 compatibility.
  • Removed unused styles and fixed various CSS glitches.
  • Added empty index.php files to directories that were missing them.
  • Modified the pricing_url filter to also change the pricing/upgrade submenu item.
  • Added URLs from wpengine, instawp, and 10web to the supported list of staging sites.

Fixed the escaping in the account template

07 Aug 14:13
2741ba2
Compare
Choose a tag to compare

Version 2.7.4 is a patch release where we fixed an incorrect usage of an escaping function inside a template.

Fix opt-in moderation issue with API connectivity and UI glitches

01 Jul 05:51
dad8c4f
Compare
Choose a tag to compare

Version 2.7.3 is a patch release which has the following fixes:

  1. We noticed an edge case that can happen due to API connectivity issue during opt-in moderation. This was causing license sync cronjobs to fail in some cases. We have identified and fixed it.
  2. We noticed a UI glitch in the deactivation modal. We have fixed it.

Fixed expired license notice issue, API caching, and minor UI improvements

24 Apr 10:19
eeac5f9
Compare
Choose a tag to compare

We are releasing Version 2.7.2 of our WordPress SDK with bug fixes and UI enhancements.

Remove sticky notice when an expired license is extended

We show a sticky notice in the UI if the license is expired.
sticky-license-expiration-ui

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.

Fixed issue in API caching

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.

UI text improvements

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.

Improved license white-labeling, enhanced PHP 8 support and various housekeeping

07 Apr 07:00
9fc7bd5
Compare
Choose a tag to compare

Version 2.7.0 brings various improvements and bug fixes. Please find them below:

Improved license white-labeling

The license keys will no longer be printed in the HTML form. This enhances the experience of white-labeled licenses.

PHP 8.* enhancements

  • We noticed some translated languages broke the placeholders used in printf family of functions. We have fixed the translations directly in our Transifex project.
  • We have added some annotations in the source code to suppress some dynamic property-related issues, happening on extreme edge cases.
  • Lifetime add-on license was also triggering PHP 8.1 deprecation notice in some cases. This issue was fixed as well.

Garbage Collector enhancements

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.

Other bug fixes & housekeeping

  • The SDK now properly checks for connectivity state when multiple Freemius-powered plugins or themes are used.
  • In some cases, the SDK would promote "hidden" plans for trials. This has now been fixed.
  • Fixed the incorrect signature of the fs_enqueue_local_script function.
  • We have improved the asset (CSS & JS) build process to be used against the latest NodeJS LTS.
  • We have fixed the gettext extractor library to work for various types of custom gettext functions used in the project.
  • We have created another system to upload pot files from our SDK directly to our Transifex project and then update the po and mo files.

For the build-tooling changes, please see the new CONTRIBUTING.md file.

Enable garbage collector by default

31 Dec 12:32
ea3a288
Compare
Choose a tag to compare

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.

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.