Skip to content

Releases: Freemius/wordpress-sdk

Mega Release!

13 Dec 23:27
Compare
Choose a tag to compare

Better Upgrade Flow

With the new SDK, users no longer need to deactivate the free version before activating the premium one. This is a huge improvement to the after upgrade user-experience that we are really proud of making it happen! (Kudos to @fajardoleo).

We updated the after upgrade admin notice and also the emails will be tweaked for users that are running the new SDK during the upgrade.

Obviously, a seamless experience would be automatically installing the premium version, but unfortunately, it is still against the wp.org guidelines.

Better Control for Usage Tracking

Users that opted-in can now disable/re-enable usage-tracking by clicking on a new link in the plugins page named "Opt-Out/In". The opt-out click will trigger the following confirmation message:

image

If the user opt-out it will be tracked with a new event labeled `install.disconnected' that you can see in the user's profile page on the Freemius dashboard.

Users that skipped the initial opt-in will be now able to click the "Opt-In" link in the plugins page to redirect to the opt-in screen.

The opt-out option will only be available for free users to maintain premium plugin version updates from the API. Also, if the user opted out and later upgraded, they will be automatically re-opted in for the same reason.

In addition, we added a special method that returns a magic URL that you can add to your settings and re-prompt the users that skipped, to opt-in again (Issue #42). Here's the simplest usage:

<?php if ( my_freemius()->is_anonymous() ) : ?>
<a href="<?php echo my_freemius()->get_reconnect_url() ?>">Re-Connect</a>
<?php endif ?>

Trials for Everyone!

We made a huge update in our trial mechanism which was only working for opted-in users so users who've skipped can get trials as well. Here's how this mechanism works:

  1. After 24 hours from the plugin installation (or update with Freemius for the first time), a promotional admin notice will appear with a trial CTA:
    image
  2. If you want the trial to work for the skipped users, since we can't pull any data from the Freemius API, you'll have to add new special params we've added to your init_sdk method. The easiest way would be to login to your Freemius Dashboard, and copy the updated code from the SDK INTEGRATION page.
  3. In addition to the admin notice, the Upgrade submenu item will change it's label to Start Trial and the color will match the blue color of the promotional admin notice:
    image
    And if you have a top-level menu item, it will automatically add a pretty counter to even attract more attention:
    image
  4. When the user clicks on any of the buttons, the pricing page will load in trial mode and will identify if the site is eligible for a trial based on the WordPress home URL, allowing the same user to start a trial on multiple sites.
  5. Clicking the trial start button will prompt the user with a confirmation dialog box, a contextual "opt-in" modal that explains the user why we need to capture his data:
    image

If the user confirms, they will be opted-in, and the trial will start right away.

Testing The Trials
Instead of waiting for 24-hours to trigger the trial promotion, we've added a new button to the Freemius Debug page which you can click and will start the promotional notice right away (if eligible):
image

Also, the multi-site license prices are now hidden when viewing the pricing page in trial mode.

100% Coupon Code ;)

After numerous requests, we managed to prioritize this use-case, and it's now fully supported (both from within the dashboard + Freemius Checkout).

Editable Billing Business Information

So far users billing information was only editable in the Freemius Developer dashboard. We noticed it triggered support tickets, especially from European business customers, asking to update the billing information on their invoices. Therefore, we enriched the billing tab on the account page so customers can update their billing information themselves to get rid of those support requests and make it "self-served":

image

Conversion Optimization

We changed the default color of the Upgrade button to light green. It will only affect non-paying users:
image

We've experimented that with RatingWidget and noticed better conversion. And it makes more sense, simply more people notice it :)

You can easily modify the color to whatever you want by adding the following CSS:
.fs-submenu-item.pricing.upgrade-mode { color: yellow }

WordPress.org Compliance

Due to recent updates in the .org guidelines, we approved a new default opt-in message for new users directly with the review team:

Never miss an important update -- opt-in to our security and feature updates notifications, and non-sensitive diagnostic tracking with freemius.com

It took us a while to get to this messaging, as you can see, it highlights the benefits of opting in, instead of asking a favor.

Other

  1. This version introduces new filters enabling an override of all sticky messages (messages with a "dismiss" button). The filters structure is sticky_message_{$messageID} and sticky_title_{$messageID}. You can add those filters with my_freemius->add_filter().
  2. Added a downgrade button to premium add-ons in the Account page.
  3. API Connectivity issues admin notices will be now also shown for users running a premium code version. These notices are an important feedback mechanism that outputs the reason for the connectivity issue and provides troubleshooting solutions (when possible). We still haven't figure out what to do when domain lookup is failing. We were sure it's cURL specific issue, but after doing some debugging on a customer with that problem, also the WordPress native "streams" HTTP API fails for the same reason. We understand it's annoying and adds some burden to the support (we feel you). That's still a work in progress...
  4. Bug Fix: WordPress core changed their wp_nonce_url() which causes a redirect to an empty page after activating a license using the link from the plugins page.
  5. This SDK introduces a new permission request that will be added by default to the opt-in screen:
    image
    First of all - it's a great way to set expectations with users by letting them know that your product will periodically show admin notices. Secondary... I can't tell yet, but we are cooking a new revolutionary killer feature! (in stealth mode).

Official release notes: https://freemius.com/blog/december-2016-wordpress-skd-release-notes/

Localization + License Sync + Deactivation Form

22 Sep 18:56
Compare
Choose a tag to compare

This is a major release (more than 80 commits) with a bunch of enhancements and one crucial license related bug fix for developers who monetize with Freemius.

Bug Fixes

  1. [Major] There was a problem with the daily wp-cron execution for plugins and themes with a premium offering. This issue sometimes caused to a license expiration, even though payments were successfully processed. If you monetize with Freemius and your module supports monthly payments, I would highly recommend updating the SDK asap.
  2. Submenu items are now inheriting permissions from the parent menu item (issue #81).
  3. Fixed discount calculations with annual and multi-site licensing (issue #79).

Localization

We are finally loading Freemius translations using load_plugin_textdomain(). The SDK is fully translated into English and Italian (thanks to Alessandro Benassi), it would be awesome if you can help us translating to additional languages.

Deactivation Feedback Form Enhancements

  1. The order of the uninstallation reasons is now randomized. By randomizing the order, if a subset of the users is just picking the 1st option, it will be equally distributed, and will help devs to identify the main uninstallation reasons by removing the noise.
  2. Even if the user skipped the opt-in mechanism, we added an option to be identified when sending uninstallation feedback: plugins wordpress wordpress

This gives the ability to contact with users who deactivated and didn't opt-in (unless they check the anonymous feedback box).

After Upgrade Instructions

We've improved the admin notice triggered after a successful upgrade process (thanks to the guys at @fooplugins):
14269655_10153674887447890_890824466_n

Mobile Friendly

We adjusted the in-dashboard Contact us page to be responsive and work well on mobile. We'll be working on making the pricing and checkout pages responsive as well.

Official release notes: https://freemius.com/blog/septmber-2016-wordpress-sdk-release-notes/

Localization related bug fixes + License related enhancements

17 Aug 20:37
Compare
Choose a tag to compare

This is a major version release (89 commits) with many important bug fixes and significant enhancement of the licensing mechanism for the paid plugin authors.

Bug Fixes

  1. Quotes Localization: I'm not going to dive deep here, but there was a problem with quotes localization due to the early call of get_plugin_data() in the SDK. The problem was fixed. Click here to learn more.
  2. Updates Mechanism: When a user had both the free plugin version and the premium plugin version installed in parallel, version updates were not showing for the premium version in plugins.php page until the free version was uninstalled.
  3. Free plugin version uninstallation: Uninstalling a free plugin version while the premium was running generated PHP errors due to the uninstall hook mechanism was unintentionally triggered.

Licensing

  1. Paying user who purchased a license outside the in-dashboard checkout, can now easily activate the license from the Account page by clicking the Activate License button:
    image
    image
    If the user can't find his license, we added a simple mechanism to email the license on the fly by clicking the Can't find your license key?:
    image
  2. We also added the same license recovery mechanism to the plugin's initial activation screen:
    image
  3. Users can now find their activated license key in the Account section:
    image

We understand the licensing management is a big hurdle and time waste in the WP plugins ecosystem, and we are doing our best to keep iterating and improving that mechanism, making it as seamless as we can. If you have any further suggestion on how we can improve it, please let us know!

Billing

Since at the moment users doesn't have a "Member Area" outside of the WP admin, we added a billing tab for paying customers where the user can see his billing history and easily print invoices:
image

The goal is to extend this area with other billing related components, like payment methods, billing address & company information (currently only editable via the developer's dashboard), etc.

Themes Support

We released the beta of our themes integration. If you have a theme and like to be part of the beta please send us a note to [themes AT freemius DOT com ] and we'll provide you with further details.

Happy SDK update!

Official release notes: https://freemius.com/blog/august-2016-wordpress-skd-release-notes/

New plugin install identification fix + License Key Activation

10 Jun 23:00
Compare
Choose a tag to compare

Bug Fixes

  1. Major bug fix for all devs using the "Activate Freemius only for new plugin installs" feature from the dashboard. We fixed the logic that determines if it's a new plugin install or a plugin update [aba9c51].
  2. Another important bug that we resolved related to licensing. When from some reason a license sync fails and the user tries to activate a license. So far the request was failing, since on our backed, the license was already activated and reached its quote. The fix check if the site is already associated with that license, and instead of trying to activate another license, it just syncs it [1746110].

License Key Activation

So far we were focused on freemium products monetization, and everything was API based directly from within the WP admin dashboard (no need for keys). With the recent launch of Freemius Checkout we introduced the concept of license keys. Once a user installs a premium code version of a plugin, instead of just showing an opt-in, the user will be prompted to enter his license key:
image

For freemium plugins, the user would be able to click on Activate Free Version and just use the free features. While for premium only plugins, this option would not be available, and the user won't be able to use the plugin without a valid license key.

The additional benefit of the license keys concept is to prevent confusion when activating a multi-site license on siteX; that was purchased on siteY. The license key eliminates the process of the additional email authentication (assuming that if a user has a valid license key, he got it in his email), and also prevents the mess that happens when the wp admin user that tries to active the plugin on siteX has a different email then on siteY.

If the user used the plugin before on siteX, then purchased a license via Freemius Checkout, the user will be able to activate the license in the plugins page by clicking the Activate License link:
image

Here's what happens when it clicked:
image

We are still working on the after purchase email instruction changes, facilitating all the use-cases, while trying to keep the upgrade instructions short and sweet.

Official release notes: https://freemius.com/blog/june-2016-wordpress-skd-release-notes/

Submenu Visibility & Premium Auto-Updtes fixes

05 May 18:33
Compare
Choose a tag to compare
  1. Show submenu items like "Add-Ons", "Contact Us" & "Pricing" also when Freemius is turned off (skipped), or pending activation.
  2. Fixed the premium plugin version automatic updates mechanism.
  3. Following the .org team suggestion, modified the deactivation's form button label from "Deactivate" to "Skip & Deactivate" to make it even more clear that the feedback form is optional.
  4. Sticky messages are now hidden from non-admins.
  5. Added the option to programmatically start a plugin's trial (only for freemium plugins).

Official release notes: https://freemius.com/blog/may-2016-wordpress-skd-release-notes/

Deactivation Form + Add-Ons

20 Apr 00:23
Compare
Choose a tag to compare

Deactivation Feedback Form

  1. Added new option "It's a temporary deactivation. I'm just debugging an issue."

image
2. Made the "Other" input field required. Hopefully, this will increase the amount of descriptive feedback.

image

Admin Menu

Show Contact Us, Support Forum and Add Ons submenu items also for users who skipped or pending activation.

Add Ons

  1. Added the capability of add-on trial without a payment method (just a free trial). This is currently working only for users that opt-in. We might expand that in the future.
  2. Added visual support for multiple billing cycles.

image
3. If a premium add-on comes with a trial period, we add the tag Trial right after the add-ons price.

image

Misc

Replaced the deprecated add_object_page with add_menu_page.

More Data

We prepared the infrastructure to capture installed plugins & themes for opted-in users. It's still work in progress, and we don't capture it yet on our side. The goal is to help you understand your users better, see what other plugins/themes are frequently used with yours, etc.

Last but not least - please test!

We ran as many tests as we could and also deployed it in production with our plugin before releasing it to you. Having said that, please run some sanity tests before deploying it. You know WordPress, it's impossible to release something that is bullet proof for all environments.

Coming soon...

  1. One of the developers we work with found that if the "Turn Freemius on only for new users" is turned on in the Freemius dashboard, submenu items like the Contact Us are not appearing in the dashboard for users who've been using the plugin before the Freemius integration. That's a problem, especially for developers who monetize with Freemius and don't want to opt-in their previous users. We already have this in testing, so it should be ready very soon.
  2. I recently was doing some testing with WooCommerce, and noticed that they've added an opt-in as well:

woocommerce opt-in
First of all, I'm excited that opt-ins are becoming mainstream 👍 What was also cool about this opt-in is the link it reference, the "Find out more". It's a great inspiration, and we are going to create a similar page for Freemius and reference it instead of our current link that some end users might find confusing.
3. We are wrapping the development of coupons, discounts and promotional codes support. Hope it will be released in the next few weeks.

Official release notes: https://freemius.com/blog/april-2016-wordpress-skd-release-notes/

Bug Fixes + Anonymous Mode

19 Apr 14:54
Compare
Choose a tag to compare

Major release!

15 Jan 14:04
Compare
Choose a tag to compare
  • Added special logic to make sure that every Freemius powered plugin will ALWAYS be loaded with the newest SDK from the active Freemius powered plugins. Since Freemius SDK is backward compatible, this will make sure that all Freemius powered plugins will run correctly.
  • Added new optional "permissions" parameter with "newsletter" to request permissions subscribing the user to your mailing list subscription. This data is currently only visual for the user; it's not stored on Freemius backend. Example:
    fs_dynamic_init( array(
            'id'                => '1234',
            'slug'              => 'my_plugin_slug',
            'public_key'        => 'pk_123456781234567812345678',
            'is_premium'        => false,
            'has_addons'        => false,
            'has_paid_plans'    => false,
            'menu'              => array(
                'slug'       => 'my_plugin_slug',
                'account'    => false,
                'support'    => false,
            ),
            'permissions' => array(
                'newsletter' => true,
            ),
    ) );
  • Created default "lighter" (less aggressive) opt-in message in case of users that get the opt-in after plugin update (already been using the plugin without Freemius platform). Goes like that (Thanks, Corey!):

Please help us improve My Plugin! If you opt-in, some data about your usage of My Plugin will be sent to freemius.com. If you skip this, that's okay! My Plugin will still work just fine.

  • Closed issue #6. If account menu item is hidden, after email verification, redirect to plugin's main settings page instead of loading the account page.
  • Added special mechanism to override all plugin's i18n strings - fs_override_i18n(array $key_value, $slug).
      fs_override_i18n( array(
          'opt-in-connect' => __( "Yes - I'm in!", '{your-text_domain}' ),
          'skip'           => __( 'Not today', '{your-text_domain}' ),
      ), 'your_plugin_slug' );