Changelog

Welcome to the changelog section of Freemius, here you'll find our weekly technical update notes. You can subscribe to all posts via Newsletter or follow us on Twitter to stay updated.

Improved GDPR cookie tracking in embedded pricing page

We noticed that when the pricing page is loaded through our WordPress SDK, the cookie consent UI is always being shown, regardless of whether the user has already consented or rejected it.

The issue was rooted in how modern browsers are now treating iFrames and third-party cookies. We have fixed this issue. Additionally, to make it future-proof and more secure, we have implemented the partitioned cookie policy.

Fixed logging of license events for bundle purchases

We noticed an edge case where if a bundle was being manually renewed, the license.extended event of the child licenses was not being logged.

In this deployment, we have fixed the issue. So, in case you are listening to this through a webhook, you will now get the said event for child licenses.

Fixed bug of extending license with deleted plans

We noticed that if a plan was deleted with active subscriptions, the associated license would fail to extend its expiration date when renewals took place.

With today’s deployment, we’ve fixed this issue. However, we still recommend not deleting a plan with active subscriptions.

Hide plans from Freemius Developer Dashboard

If you do not want the plan to appear on the pricing page, consider hiding it.

Fixes to the sales charts in the Developer Dashboard

We noticed that we had two issues with the sales charts in our Developer Dashboard.

Fixed charts showing future data points

If today’s date was selected as the ‘End Date’ with an ‘Hourly’ resolution, then the charts were showing future hours.

Clamping chart dates to current UTC time - Freemius Developer Dashboard

As you can see – after the fix – the charts will show until the current GMT hour from now on.

Fixes in the trial chart

We noticed that we’ve been incorrectly showing ‘Trial cancellation count’ on the ‘Trial cancellation volume’ chart. We’ve fixed this typo.

Trial cancellation charts - Freemius Developer Dashboard

Additionally, we’ve also added the missing ‘Trial cancellation count’ chart to the page.

Improvements to the new checkout app and changes in rollout plan

Following feedback from our partners, we’ve made several improvements to the new version of our checkout app.

Fixed sticky footer issue

We noticed that – in some cases – during browser and/or UI resizing, the sticky footer was not properly stuck.

We were able to identify and fix the root cause.

Form font size improvements

We’ve increased the font size from 14px to 16px for better readability and more breathing space.

Form validation and UX improvements

We’ve made several improvements to the form validation, notably:

  1. Clicking on the ‘Review Order’ or ‘Subscribe’ buttons would sometimes not focus the first visible invalid form element. For example, if both the email and credit card fields were empty, clicking on the ‘Review order’ might have focused the credit card field instead of the email field. This has been fixed. The first visible invalid form element will now be focused.
  2. We identified an edge case where the zip code field was incorrectly focused even after entering a valid value. We fixed it.
  3. In sandbox mode, using the autofill button would sometimes not clear some form-validation errors. We have fixed them as well.

Improvements to the country picker

We’ve integrated a custom dropdown with a search capability in the country picker form field. This improves the UX when going through a large list of countries.

Fixing hidden currency bug

We noticed that if the default USD currency was configured as hidden and the checkout was loaded with another currency, then the currency picker in the front end would still show up, and selecting the USD will cause bugs.

We fixed it by not letting the currency picker show up in such cases. Loading the checkout without specifying a currency will still load the hidden USD by default, though. In the future, we will further enhance it to properly load the first visible currency by default instead of always loading the USD.

New licensing unit credit

Following a request from our partner, we’ve implemented credit as a valid licensing unit.

If you’re using Freemius for your SaaS or plugins and need a custom licensing unit, please get in touch with us.

Making the new checkout the default

Due to the holiday season and to give some more time to our partners, we are enabling the new checkout for everyone who isn’t using a custom CSS for the legacy checkout starting 14 January. Please note that you can always use the checkout_style parameter to force-load the style of your choice. You can find more about it here.

Following the timeline of rollout, we plan to make the new checkout default for everyone, starting 1st February. Please read the migration guide and prepare any custom CSS before the date.

 

Improvements to the events log table

Following our push to improve the table UX of the Developer Dashboard, we’ve made subtle improvements to the events log table.

  1. You will see that hovering on the Type will give you the full text.
  2. You can use the copy button to quickly copy the event type for your custom code.
  3. The Created on column has been made consistent with other tables.
  4. The Trigger will also show the type and have a copy button for copying the user or developer ID.

You will find these improvements wherever the events log table is visible, for example:

  • The Events Log page.
  • Events & Webhooks under the Sites and Users, etc.

Fixed Upgrade License and Change Plan feature

When navigating to a particular site under the Developer Dashboard, you have the option to upgrade the site’s license or change the plan (depending on the site).

We noticed that the feature was broken due to a regression. In this deployment, we have fixed it and it works as expected.

Checkout Cart and Developer Dashboard UI improvements

Cart and coupon bug fix

We identified an issue with the checkout’s cart system where entering a coupon would break the cart updation process. We’ve pushed a fix for this.

2FA UI/UX improvements

Freemius Login - 2FA UI now supports copy/paste

Following partner feedback, we’ve added copy/paste support in the 2FA input.

Fixing UI regression on the Payout method’s Account type

We noticed a UI regression where we were mistakenly showing ‘Verified/Unverified’ in the ‘Account type’ dropdown when the payout method was set as ‘Bank Wire’.

Freemius Payout Account Type

We’ve pushed a fix to the UI regression – no updates from your end are necessary.

Checkout redesigning Phase 1 – features & migration guide

We are gradually rolling out a new design for the Freemius Checkout. The new design applies to both the dialog mode and the embedded WP Admin (aka dashboard) mode. Below, we provide a breakdown of the gradual rollout plan and our roadmap.

Freemius Checkout Redesigning Phase 1
View a Live Demo

Gradual rollout

We deployed the new checkout design on 18 December 2023. Initially, it will be in beta mode for a week. After that, we will roll it out for a wider user base.

1st Week – 18 December 2023

  • The existing style will keep on showing up as default.
  • But you will have the opportunity to test it (more on this later).

3rd Week – 1 January 2024

  • Starting from 1 January 2024, the new checkout design will become the default.
  • However, this will only apply to the legacy checkout if you have custom CSS.
  • If you have custom CSS for both the legacy and the new checkout, the new checkout will show up by default.

Developers who use custom CSS are given two extra weeks of grace to update their code.

5th Week – 14 January 2024

  • From 14 January 2024, the new checkout will become the default and the legacy checkout will not be shown.
  • You will, however, have the option to keep using the legacy checkout for some more time.

Custom CSS migration

Starting from the 1st week of the gradual rollout, you’ll notice that under Plans > Customization, the CSS URL you had has been put under the (Legacy) Custom Checkout CSS file field and the regular Custom Checkout CSS file field is now empty.

Freemius Checkout CSS migration on the Developer Dashboard

The CSS URL under the Legacy field will now only apply to the legacy checkout. To style the new checkout, you have to create another custom CSS file under your server and put it in the first field.

This way, we ensure you don’t accidentally break the new checkout design by including the incorrect CSS file.

The new design comes with several CSS variables that you can use to quickly change the colors and appearance. Please read the Checkout CSS customization documentation for more information.

Previewing or using the new checkout during the beta phase

You simply need to add checkout_style=next to the URL query parameter. So, if your checkout URL is:

https://checkout.freemius.com/mode/dialog/plugin/_plugin_id_/plan/_plan_id_/

Change it to:

https://checkout.freemius.com/mode/dialog/plugin/_plugin_id_/plan/_plan_id_/?*checkout_style=next*

For the JS integration code, include checkout_style: 'next' when doing the configuration.

const handler = FS.Checkout.configure({
        plugin_id:  'plugin_id',
        plan_id:    'plan_id',
        public_key: 'pk_public_key',
        // Force load the new checkout style.
        checkout_style: 'next'
});

It’s also possible to generate code and links from the Developer Dashboard. Kindly navigate to Plans and enable the toggle Use new checkout style in code and preview links.

Enable preview links and code for the new Checkout Style from Freemius Developer Dashboard

Now, clicking the Checkout Link or Get Checkout Code buttons will ready the URL or the code for you.

Forcing the Legacy Checkout after 1st week

If you need more time to migrate the CSS, you can force the checkout to always load in legacy mode.

  • Make sure checkout_style=legacy is used as a URL query parameter.
  • While using the JS integration, make sure to pass checkout_style: 'next' as a configuration option.

But please be aware that we do not intend to keep the legacy checkout for long. We therefore urge you to migrate your CSS ASAP.

WP Admin Embedded Checkout

The checkout that we embed inside WordPress Admin Dashboard, will strictly follow the rollout plan. You won’t be able to force-use the new or the legacy checkout.

Feature improvements

Apart from the style and appearance changes, we’ve improved many of the UI/UX components. Here are some of them.

Improved optional inputs

The license key, coupon, and VAT ID fields have been redesigned to have a better UI/UX than before.

Better UI in the review step

Freemius Checkout improved review step

When reviewing before the final payment, we now do not show the user form. This helps to reduce the amount of information shown on the page.

Improvements to the meta dropdowns

The language and currency selectors have been pushed to the bottom footer to prevent distractions.

Freemius Checkout - Improved meta dropdowns

The UX of the dropdowns has also been improved.

Dunning app improvement

We’ve also reskinned the dunning app to make it look on par with the checkout.

Please note that the dunning app will not retain its legacy style during any phase of deployment.

Future roadmap

This is only Phase 1 of the checkout redesign process. In Phase 2, which we are going to start working on very soon, we intend to:

  • Change the checkout to two columns, and
  • Continue to simplify the UI and the UX

The result would look like this:

Freemius finalized Checkout Reskinning

Any CSS changes you make during this first phase will be majorly backward compatible. We urge you to only work with CSS variables for now to minimize the chances of it breaking in the future.

Table UI/UX improvements for the Developer Dashboard

Following feedback from our partners, we allocated resources to improve the UI/UX of the tables in the Developer Dashboard. Here are the (significant) changes:

Licenses now appear as names instead of IDs

From now on, the licenses column will always correspond to the name of the plan. However, given that it’s also useful to search by IDs, the ID of the licenses will display when you hover over them. You can even click on the ID to copy it.

Subscriptions now appear as billing cycles instead of IDs

Similarly, we’ve changed how the subscriptions column shows up.

Better format of the Date column

We now show a human-friendly absolute date format in the date columns.

Hovering over it gives you the relative date from the current day.

We hope these changes will make the Developer Dashboard easier to navigate. Please let us know if you have any feedback.

Checkout coupon and billing UI-related bug fixes

Lifetime Billing Cycle UI bug fix

We received a report from our partners that the checkout billing cycle UI for a ‘Lifetime’ purchase wasn’t responding to the coupon code.

We fixed the issue and all billing cycle UI will now respond to the entered coupon code if supported.

Supported coupon filtering in the Billing Cycle UI

We also received feedback from partners that a coupon code’s discount is shown in all billing cycles even if they are not supported. For example, if a particular coupon was applied to the annual billing cycle only, the monthly billing cycle would also show the (wrongly) discounted price after applying the coupon as long as the annual billing cycle was selected. We identified the root cause and fixed this.

Added 2FA recovery and backup code support for the Developer Dashboard

Following our latest feature release of the 2FA security enhancement, we’re pleased to announce the availability of recovery or backup code support. Please see the authentication flow below:

Enabling 2FA with a backup code

When you enable 2FA using the same method as before, a backup code will be generated automatically for you.

Please click on the copy button and store the backup code somewhere safe.

Regenerating the backup code

In case you’ve lost your backup code or enabled 2FA before we rolled out the feature, you can still re-generate it as long as you have your 2FA authenticator device with you.

From the Profile page, simply click on the ‘generate a backup code’ link and follow the on-screen instructions.

It will ask for the authenticator code.

Upon entering a valid code, you will be given a new backup code. Please note that the old backup code will stop working as soon as you generate a new one.

New Security Feature: Two-Factor Authentication in the Developer Dashboard

We are pleased to announce that a Two Factor (2FA) authentication system is now available in your Developer Dashboard. Please see the feature in action below:

Activating the 2FA Flow

Activate 2FA Freemius Developer Dashboard

  • Go to the Profiles page under the Developer Dashboard.
  • Under the Security section, click the toggle to activate the two-step authentication.
  • Follow the on-screen instructions.

We recommend the Google Authenticator or Microsoft Authenticator app from the PlayStore or AppStore.

Deactivating the 2FA

If you want to deactivate the 2FA, you can do so from the Profiles page.

Deactivate 2FA Freemius Developer Dashboard

Simply click on the ‘Deactivate two-step authentication’ toggle and follow the on-screen instructions. You’ll need both your password and the authenticator app to deactivate.

What if I lose my Authenticator app?

We are enhancing this feature with recovery codes, which you can use to recover your account. Until we deploy this, please get in touch with our support, and we’ll help you out.

Checkout app improvements

We’ve made some minor improvements to the Checkout app to pave the way for big upcoming projects.

Fixed form validation issues

Freemius Checkout Form Validation

We realized we weren’t validating the user form from the front end in some edge cases. We’ve fixed this and the form can now only be submitted once it is validated completely.

We also saw some regression in the error message in the zip/postal code field. We fixed this as well.

Fixed marketing opt-in UI

In some edge cases, marking the marketing opt-in as ‘Yes’ would make the section disappear. We found the root cause and applied a fix.

Other notable changes:

  • We found out that the HMRC API we use to get exchange rates for invoices had been migrated. We’ve moved to the new API which should fix broken invoices.
  • A few countries appeared out of order in the dropdown. This has also been fixed.
  • Internal build script optimization is now resulting in smaller asset size, making our Checkout app load faster.
Load more