Skip to content

Premium Changelog / Readme.txt, Custom Premium Slug, Subscription Cancellation

Compare
Choose a tag to compare
@vovafeldman vovafeldman released this 27 Nov 08:19
· 1538 commits to master since this release
553553d

Important

Please notice that if you have a freemium plugin on Freemius that has a paid version (free plugin + paid add-ons doesn't count), and like to utilize the full power of the new SDK, the integration snippet requires an update. Your updated code needs to look like that:

<?php
    /**
     * Plugin Name: My Very Awesome Plugin
     * .....
     */

    if ( ! defined( 'ABSPATH' ) ) {
        exit;
    }

    if ( function_exists( 'my_fs' ) ) {
        my_fs()->set_basename( true, __FILE__ );
    } else {

        // ... Freemius integration snippet ...

        // ... my plugin's code ...

    }
?>

It has to be integrated into the plugin's main file. If you like to include it in a different file, make sure to replace the __FILE__ with the absolute path to the plugin's main file.

Premium Changelog and readme.txt

I’m pleased to share that you can now create a custom readme for your paid product version, and the new WordPress SDK will pick that data up from our API. This was on our list for quite a while and we have finally managed to prioritize it. These are great news for premium only product owners: now you can finally show your readme’s content in the WP Admin, including changelog changes.

Like with everything we do, we try to build the best mechanism to save you time and avoid duplicate work. After some brainstorming we decided to follow the same pattern of auto-generating the readme.txt files dynamically, using special Markdown-friendly syntax. If you have a premium-only product, you are all good. Just write your readme.txt as you would. If you have a freemium plugin or theme, you’ll only need to have a single readme.txt file (yep, that’s right!), it will include all of your data. For premium-only content wrap it as follows:

[//]: # fs_premium_only_begin
 
Whatever goes in here will be only in the premium readme
 
[//]: # fs_premium_only_end

For content that should appear only in the free version, wrap it as follows:

[//]: # fs_free_only_begin
 
Whatever goes in here will be only in the free readme
 
[//]: # fs_free_only_end

Content that will not be wrapped in neither of the above will simply appear both in the free and premium readme.txt files.

Please notice that it will only work for new deployments that include the new version of the SDK. You can learn about the version deployment mechanism in general, and the new premium readme.txt support here:

https://freemius.com/help/documentation/selling-with-freemius/deployment/

Custom Premium Slug / Folder-Name

Due to historical reasons, whether if you have a freemium product or a premium one, our deployment mechanism would automatically add a “-premium” suffix to the product’s folder name. This convention was essential for making the upgrade process of freemium products more user-friendly, so they could install and activate the paid product version without the need to deactivate and uninstall the free one. But this was far from optimal:

  1. Premium-only products had to have a redundant “-premium” suffix in their product’s folder name.
  2. Over the years, we learned that many freemium themes are using “-lite” as the suffix for their free WordPress.org slug. In those cases, the deployment mechanism would generating awkward theme folder names like “awesome-theme-lite-premium”.
    Drums…

You can now fully customize your premium version folder name! And also customize the “(Premium)” suffix that we add to the premium version product’s name. You can do both in the SDK INTEGRATION section in the dashboard:
image

IMPORTANT:

If you already have customers that are using your paid version and would like to rename it, to avoid any PHP errors during the update process, you’ll have to do it incrementally by releasing 2 new versions:

  1. The 1st release should remain with the same default premium slug and will needs to include the newest SDK which comes with a special mechanism that supports folder renaming.
  2. Then, customize the premium slug and release the 2nd version (minor version). Our updates mechanism will make sure that the 2nd release will only be available for users that are already using the latest SDK, the one that supports renaming.

Terms of Service Update

We updated the URL of the “Terms of Service” link shown in the opt-in screen:
image

Instead of linking it to our general website’s terms, which leads to some confusion among admins, it is now linked to your product’s specific usage tracking “terms” page that detail all the information about the usage-tracking and collected data:

https://freemius.com/wordpress/usage-tracking/<productID>/<productSlug>/

When running the premium version, the link label is now changed to “EULA” and its URL refers to the auto-generated EULA for the product:

https://freemius.com/terms/<productID>/<productSlug>/

Support Forum Link

The optional submenu item that links to the WordPress.org support forum now opens on a new page. This was a repeating request so we finally prioritized it 😉

Subscription Cancellation

From a consumer point of view, being billed for a subscription renewal unexpectedly is a real pain. Not only is it annoying, it requires the user to “work” to get their money back. Money that, in theory, shouldn’t have been taken from their account in the first place. Moreover, it drives negative emotions like anger and frustration and affecting the way a consumer perceives your business. From the business owner’s point of view, it means dealing with angry customers, which is mentally hard and not the fun part of the business. So you end up wasting time on “refund support”, that could be invested in the actual product or into helping customers that have real problems.

Therefore, we are constantly trying to come up with techniques to eliminate those unexpected charges, saving you, the seller, the time and the emotional hassle of dealing with those issues. As well as making the experience of customers that buy products through Freemius as pleasant as possible.

In the last year, we discovered two use-cases in which some customers assume that the following actions will also cancel all of their future billing:

  1. Deactivation and uninstallation of the product
  2. Deactivation of a license (without cancelling its subscription)

This assumption actually makes a lot of sense, as this is how things are working with most online services (SaaS). If you deactivate your account, the subscription will (usually) be canceled.

To avoid this confusion, when a user is about to deactivate your plugin/theme and it’s associated with an active subscription with a license that’s only been activated on that website, before showing the deactivation feedback form, the SDK will now prompt the customer and let them cancel the subscription, as part of the product deactivation sequence. This is how it looks like:
freemius-sdk-after-plugin-deactivation-subscription-cancellation-prompt

Similarly, when the user clicks on the license deactivation option from their Account page, if the subscription license has only been activated on that site, we ask the customer if they would also like to cancel the subscription, in addition to deactivating the license:
image

We are aware that it will most likely increase the subscriptions churn a bit, but it will save you time and hassle, as well as have a positive effect of your brand. If users will feel more confident when buying your products because you are using Freemius, that’s a win-win-win for everyone.

After Purchase Notice

The after in-dashboard purchase admin notice was enriched. Instead of immediately guiding the customer to download and install the premium code base, the logic now first checks if the premium version is already installed on the site. If it is, instead of guiding the user to download and install, simply suggest to activate it with a single click:
image

Translations – Dutch

The SDK was fully translated to Dutch! Huge thanks to Benny Vluggen, Mike van der Sluis, and Patrick Buntsma. The SDK is now translated to:

  • Spanish
  • Dutch
  • Italian
  • Japanese
  • Hebrew
  • Russian
  • Danish

If your native language is not English and you have a high-level of English, please join our translations efforts to help us maintain the current translations and translate it into new languages:

https://www.transifex.com/freemius/wordpress-sdk/

Freemium License Activation & Deactivation

Prior to this SDK release, when a user would upgrade a freemium plugin/theme directly within the WP Admin, our WordPress SDK would automatically take care of the license activation in the background. But, if the user would purchase the paid version from your site (outside the WP Admin) and would have already opted-in/skipped the opt-in in the free version before, they would have to activate the license by clicking on the “Activate License” link, either on their Account page (if they ever opted-in), or on the plugins/themes page. Basically, there was no clear path or instructions for the customer on how to activate the license, which usually generated a support ticket.

So now, after installing and activating a paid version of a freemium product, even if the user had already opted-in/skipped the opt-in on the free version before, the SDK will now automatically prompt the customer with the license activation screen.

Also, if a user deactivates their license they will also be redirected and prompted with the license key screen.When the product is freemium, they do have an option to just continue using the free version without activating a license.

WooCommerce Extensions Compatibility

WooCommerce has a custom plugin header to confirm compatibility with the latest versions:

image

Due to the execution order of the Freemius WordPress SDK and WP core’s caching, the headers data wasn’t getting retrieved, which resulted the following errors:

image

Bug Fixes

  • Fixed a UI layout bug of the in-dashboard contact, pricing, and checkout pages for iPhones.
  • Fixed a bug when an add-on’s license was activated before the parent plugin was opted-in/skipped.

Official release notes: https://freemius.com/blog/users-management-dashboard-premium-readme-custom-premium-slug-free-trials/