Keep-Alive, Gutenberg, Add-Ons, and Bug Fixes
Important Bug Fixes
Fix for a Conflict with WordPress Websites Management Solutions
We optimized the logic that programmatically identifies the caller’s product main file to support environments that run services like ManageWP, which intervene in the theme/plugin’s inclusion mechanism. Previously, when a site was running a service such as ManageWP, the SDK would fetch ManageWP's agent plugin version, instead of the version of the actual plugin, which would cause conflicts with the updates mechanism. Due to that bug, if a site was running an agent plugin version that was newer than your upcoming version, the (previous) updates mechanism would "think" that a newer version of the product is already installed, and an update would, therefore, not be served via the WP Admin. On your next release email, we recommend adding the following paragraph:
ManageWP / InfiniteWP / MainWP User?
Due to a conflict found between those services and the SDK which we are using to serve updates, if you are eligible for automatic updates and you don't receive an update notice for the product in your WP Admin during the next 48 hours, you'll need to get it manually. Log in to https://users.freemius.com/downloads, download the latest release, deactivate and uninstall the previous version, and then install and activate the newest release. This is a one time manual operation, and once you update to the latest release with the fixed SDK the updates will start working automatically again. Apologies for the inconvenience and we appreciate your patience.
Fix of The Multisite Networks Storage Model
We identified a bug in the SDK's storage model on multisite networks. After a bunch of testings, the fix for the bug should not break any backward compatibility. BUT, if your product is commonly used on multisite networks, kindly spend some extra efforts on testing the new SDK with your product. We would recommend releasing a beta version with the SDK update to a few multisite customers first, before releasing it to the rest of your customers.
Gutenberg
Avoid conflicts between admin notices and the new Gutenberg editor by hiding all notices on Gutenberg-powered pages (thanks @alanef for the PR).
Reference: 8a87d38
Add-Ons
Freemium Add-Ons
Disabled the SDK's software updates and custom readme.txt
mechanism on the WP Admin's plugins and themes search pages to avoid conflicts with freemium add-ons. This change is particularly relevant when the site has a plugin/theme that has a freemium add-on with a free version on WordPress.org activated.
After Opt-in Redirection
The SDK now supports custom first-page/getting-started redirection after an opt-in/skip.
Caching & Updates
Due to the recent changes we made in the SDK's updates mechanism, which now supports custom readme.txt
files for your paid versions, if there's no newer version than the one installed on a given site, our RESTful API endpoint returns the 404 HTTP error - not found
. We spotted several environments that, for some reason, were not handling 404 errors gracefully, triggering the WordPress updates mechanism to keep checking for updates on almost every page view in the WP Admin. To tackle that, we enriched our caching layer to cache the result of requests that generated a 404 HTTP response in order to avoid slowing down the site and exhausting the API.
Reference: c725cf0
Keep-alive Mechanism
In previous releases, the SDK would send weekly updates only if there was at least one change in the tracked metrics. So, if the API didn't receive any requests from a plugin/theme for six months, it was impossible to determine whether the product is still active or if for example, the admin had deleted the product using FTP. As we strive to provide more accurate information on the sites that are using your WordPress plugins and themes, we have introduced a weekly keep-alive mechanism which will trigger an API request at least once a week, regardless of whether or not any updates occurred in the tracked metrics. Not only will this enable us to empower you with better analytics, but it also allows us to optimize different commercial and marketing mechanisms which your users and customers benefit from. For example, if a user has subscribed for your paid product and the purchased license is only activated on a site that didn't send a keep-alive for more than 30 days, then the renewal reminder notice will be different and require the customer to take action by choosing if they would like to go ahead with the renewal, or cancel. In case they don't take any action (e.g. ignore the email), the subscription will automatically be canceled one week before the renewal.
Admin Notices
The admin notices template was enriched to indicate the slug and the type of product it is associated with. For example, if your plugin's slug is awesome-product
you can now target and customize all the notices that are added by the SDK using the following CSS rules:
.fs-notice.fs-slug-awesome-product.fs-type-plugin {
// Custom CSS rules.
}
Reference: 516a9b2
Bug Fixes
- Properly include static resources (JS, CSS) even when the plugins/themes folders are customized (i.e. the plugins are not in
wp-content/plugins/
). - Hide the Upgrade tab for freemium themes that only sell add-ons without having a paid plan of the theme.
Localization
- A new translation of the SDK to Hungarian (thanks @Surbma!).