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.

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 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.