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.

Improvements to the VAT Refund feature

We have enhanced the newly introduced VAT Refund feature. After making the refund, in the system, we mark the original payment as fully refunded, and then we create a new payment without the VAT while giving a refund to the customer.

Previously you had to click on the “Refunds” or “All” filter to see all three transactions.

But now, the three transactions will appear under the “Not Refunded” filter right out of the box.

Showing years to the Developer Dashboard Charts UI

We’ve done a minor enhancement to the charts UI in the Developer Dashboard.

Charts hover date range on Freemius Developer Dashboard

While hovering on a point, if the selected date range spans over different years, the UI will show the full year of the given node. This helps quickly understand which year the point falls on.

Fixed Freemius Version Deployment adding unintentional line breaks in PHP comments

We saw a regression in our latest upgrade of Freemius Deployment. If a PHP file was written with CRLF (Windows) line-ending, then the system added additional line spaces in block comments.

For example, the following block comment:

/**
 * The main plugin file.
 * @since 1.0
 * @package MyAwesomePlugin
 */

was becoming

/**
 * The main plugin file.

 * @since 1.0

 * @package MyAwesomePlugin

 */

While this did not break any functionality, we’ve made a quick fix to prevent this from happening.

Fixed checkout bug allowing unintentional downgrade or re-purchase of a lifetime license

We got a report where a user, in an edge case, could accidentally re-purchase a lifetime license from our Checkout. They already had a lifetime license for a particular plan. Then they accidentally entered that license key for “upgrade” to the same plan and therefore got charged again.

In this iteration, we have fixed this behavior by simply blocking it from happening. The UI will also show a proper message to the user asking to choose a different number of licenses.

Fixed expired exit-intent coupon showing negative countdown

Freemius supports Special Coupons & Discounts, the Exit Intent Coupon. This coupon helps in conversion by providing a coupon right when the user is about to abandon the checkout.

Incorrect expiration countdown Freemius Exit Intent Coupon

We noticed that the checkout was showing a negative countdown timer if the coupon had an expiration set from the Developer Dashboard and if the coupon had already expired.

Setting expiration date of a coupon Freemius Developer Dashboard

The expiration date of any coupon can be set from the Developer Dashboard as shown in the screenshot above.

In this deployment, we have fixed this. If the exit intent coupon expires, it will no longer be applied.

Also like before, if the coupon expires in the future, then the FOMO counter will count down to the expiration date of the coupon.

New feature to allow VAT Refunds

This has been one of the big feature requests from our partners. Being a merchant of record, Freemius handles taxes for  EU/UK customers on behalf of our partners.

Freemius checkout collecting tax

Sometimes a customer would purchase a product and forget to enter their VAT number. In such cases, the customer will not get any tax exemption. Later the customer could contact the developer asking for a VAT refund.

So far, the only way to do this is to cancel the original subscription or lifetime purchase and recreate it to ensure the customer properly puts their VAT number.

To ease the process, Freemius now supports VAT refunds against a valid VAT number, right out of the box.

Navigate to the “Payments” section of your Developer Dashboard and click on the “Refund” button. You will find a new option to do a “Tax refund”.

Doing tax refund from Freemius Developer Dashboard

Not only have we enhanced the user experience for buyers and simplified the process for you, but we’ve also devised a behind-the-scenes implementation that ensures you won’t lose the gateway fee for the entire transaction. Instead, you’ll only forfeit a partial percentage of the VAT. This not only streamlines the entire process but also saves you money.

Please note that

  1. Right now we support only EU/UK VAT refunds.
  2. You must supply a valid VAT number for the customer for a tax refund.
  3. If the payment is associated with a subscription, the subscription will be automatically updated to exempt taxes for renewals.

The option to do a tax refund will only show up if the associated payment has a tax. If you don’t see this option, it simply means Freemius did not collect any taxes for that payment.

It is worth mentioning that the process will

  1. Do a full refund of the original payment.
  2. Create a new payment, excluding the VAT.

Payment entities after doing a tax refund in Freemius Dveloper Dashboard

This will also be reflected in the Developer Dashboard after you’ve done a tax refund.

 

Added support for PHP 8.2 through Freemius deployment

Version Deployment is one of the powerful tools Freemius provides to our Software makers to ease their lives. The concept is simple; wrap your code in if ( my_fs()->is__premium_only() ) family of methods and Freemius will strip out the premium code to make a WordPress.org-compliant free version of your WordPress theme or plugin.

So far, this feature has been limited to parsing PHP 7.1 code. With today’s update, you can start using PHP syntax up to version 8.2 and our deployment mechanism will properly strip off premium codes.

Create deployment Freemius Developer Dashboard

We have also made subtle improvements to the prettifier. It will now output code closer to WordPress formatting standards.

Improving the 2FA UX with manual code

Not long ago, we introduced two-factor authentication to tighten the security of the Developer Dashboard. The 2FA UI shows a QR code for scanning from your favorite authenticator app.

Improved 2FA UX with manual code UI in Freemius Developer Dashboard

Following requests from our partners, we’ve added an enhancement so you can copy the code directly and put it in your authenticator app, without scanning the QR code. This is handy when the authenticator is on the same device from where the Developer Dashboard is opened.

Improvements to the Version Deployment system

Our Version Deployment feature is a powerful tool for developers. Recently, it came to our attention that the readme.txt processor was unintentionally adding extra line spaces while stripping codes in between [//]: # fs_{free|premium}_only_{begin|end} tags.

Improved readme.txt parser in Freemius Version Deployment system

We’ve fixed the issue and added improvements to handle both block and inline tags. As seen above, texts are properly stripped off and consistently maintain the space and new lines.

Improved UX while refunding a payment to cancel associated subscription

While refunding a payment, we’ve always had the option to cancel the associated subscription. But it was not selected by default.

Improved UX while refunding payments in the Freemius Developer Dashboard

Following feedback from our partners, we are now auto-selecting the checkbox while issuing a refund. You can of course still uncheck the box to keep the subscription going.

To further emphasize the action that will cancel the subscription, the button now says “Yes – Refund & Cancel” when the checkbox is selected.

New Average Order Value chart & improvements to the analytics

We’ve added tons of shiny new updates to the Freemius analytics. Starting today, you’ll see a new “Average Order Value” chart on the Sales Analytics page. We’ve also improved the categories of the “Total Installations” chart.

Average Order Value

Average Order Value (AOV) is the average revenue per order, including subscription renewals, lifetime purchases, and paid trials. On the Sales Analytics page, a new card displays the AOV since you first published your product with Freemius.

Average Order Value metric Card showing Lifetime value

Further down the page and under the Revenue section, a chart showing AOV changes for a selected period is displayed.

Average Order Value chart showing trend

Total Installations

New "Uninstalled Installs" category in the Total Installs chart

We’ve added a new category called “Uninstalled Installs” to make the Total Installations chart more useful. This new category displays the number of installs explicitly uninstalled or removed.

Made the Currency Selector persistent

This was a feature request from our partners.

The currency picker UI in Freemius Developer Dashboard under Sales Analytics

From now on, when you select a currency for a product or a store, the selection will persist in your browser.

Improved the legend of the Net Payments & Transactions chart

The first legend of the Net Payments & Transactions chart used to be labeled as “New Subscriptions”. This created some confusion as the metric was showing the first payment of a subscription. If you’re offering a paid trial, the first payment of a subscription can come weeks later.

To clear up the confusion, we’ve renamed the legend to Subscription 1st Payments. Thanks to our partners for reporting this!

Updated legend of the Net Payments chart

Various Checkout improvements

We’ve released several updates to our Checkout application:

Fixed VAT validation issues

We noticed some valid VAT IDs were being blocked by the Checkout app.

Improved VAT ID verification

We fixed this by rolling out a more robust VAT ID validation system for the front-end app.

Improved translations

Certain strings — especially those coming up as exceptions (for example, “Invalid coupon code”) — were not getting translated.

Improved translation in the Checkout

We’ve introduced fixes for them. You can also use the Freemius Checkout Buy Button API to load the Checkout in one of the supported languages.

Improved Country Selector search algorithm

Improved search algorithm in the country dropdown

We’ve improved the “fuzzy” logic of the Country Selector UI search feature. The search is now more natural and accurate.

Other bug fixes

  • In cases where a coupon is used, the correct discounted first payment price on the billing cycle UI is now displayed.
  • We’ve fixed an issue in the SDK Checkout mode, where the “Resend email” button was not working properly.
  • We’ve added ZIP code validation in the Dunning app and made general improvements to the form validation UX.
  • The responsiveness of the Checkout footer has also been fixed.
Load more