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.

Customize Customer Portal Links in Transactional Emails

Whenever someone buys your Freemius-powered product, Freemius automatically includes a link to the Customer Portal. This is especially useful for downloadable software where Freemius acts as the direct agent of fulfilment. Your customers can download the product and manage license information from a single place.

Freemius post-purchase email with link to Customer Portal

However, we understand that there are cases where, as a maker, you may not want links to the Customer Portal included. For example, in SaaS products this experience is often managed directly within the application. Similarly, for downloadables, some makers prefer to handle the portal experience themselves.

To support these scenarios, we’ve rolled out a new option under the Emails section of your product. Simply go to Emails → Customization and control whether post-purchase emails should contain the Customer Portal link or not.

Freemius post purchase email config

To simplify the experience, this setting is turned off by default for SaaS products, while for downloadable products (such as apps or WordPress plugins/themes) it is turned on by default.

New Safeguard Against Uploading Premium Code to the WordPress.org Repository

We’ve been working closely with the WordPress.org plugin review team to implement a new safeguard in our system that prevents accidental uploading of premium versions of a product to the WordPress.org plugin repository.

Freemius’ deployment mechanism automatically creates a free, wp.org-compliant version of your product whenever you upload the premium version’s zip file. Makers are then expected to upload that free version to the official repository. However, mistakes can happen—sometimes the premium file gets uploaded instead. This often results in wasted time and back-and-forth with the Plugin Review team.

To solve this, and based on the review team’s recommendation, we’ve implemented a gatekeeping mechanism. Our integration code now includes a unique snippet: if that snippet is present, WordPress.org will block the submission and notify the maker of the error immediately.

Freemius SDK Integration snippet with gatekeeper

Meanwhile, Freemius’ deployment process automatically strips this snippet from the generated free version. This ensures that when the correct variant is uploaded, the submission proceeds smoothly without interruption.

Please note that no updates to the WP SDK are required for this rollout. We urge existing makers to immediately update the integration snippet as shown in the Developer Dashboard to take advantage of this feature.

License Table, Date-Time, and Code Fence Fixes in Developer Dashboard

This week we are releasing several UI/UX enhancements and bug fixes in our Developer Dashboard. Please find the details below:

Fixed alignment issue in the license table

We noticed an alignment glitch when bundle license icons were being displayed on the license page. We have fixed this and repositioned the icon after the plan name to ensure a consistent visual layout.

Bundle license icon in table

This UI provides a quick way to see the licenses generated from the purchase of bundles.

Fixed date-time values in tables

We noticed that some date-time values in certain tables were incorrectly converted into the wrong time zone before being displayed. This led to confusion when compared with data from the Sales Analytics page.

Timezone fix in the Freemius Developer Dashboard

We have identified and deployed a fix. Now all dates in the Dashboard are consistently displayed in UTC timezone.

Improved code fences

We noticed a regression in the code fence components, especially in the dark mode theme.

Code fences in the Developer Dashboard with copy button

This has now been fixed and code fences render properly in all modes. We also did a small triage and ensured that all code fences include a copy button, so you can easily copy-paste snippets.

Enhancing the Registration Experience for Makers

This week we are rolling out some important improvements to the Developer Dashboard’s registration page.

Freemius Developer Dashboard Registration Page

We have introduced a mandatory question asking what the person wants to sell with Freemius. This gives us valuable insight into our new makers and ultimately enables us to provide them with better guidance and support.

We also added a direct link to the Customer Portal for potential buyers looking to access their purchases. Over time, we noticed that buyers sometimes confused the Developer Dashboard with their Customer Portal. This new link should help reduce confusion and improve the overall user experience on our platform.

Additionally, we’re now asking how the person heard about us to better understand which platforms are helping us reach new makers. This field is optional, as we don’t want to add unnecessary friction during sign-up.

If you’re a software maker looking to easily monetize your products, you can head straight to our Developer Dashboard.

Better and Embeddable Payment Recovery or Dunning Experience

This week we are releasing a milestone project. Freemius already had a solid payment recovery (dunning) experience where our system would automatically send emails to buyers when a subscription renewal failed. These emails included a link where the buyer could promptly update their credit card.

Freemius Dunning or Payment Recovery Flow

However, we wanted to elevate the experience by taking it several steps further:

  1. Offer the same polished experience as our Checkout, making customers “feel at home” when updating their payment method.
  2. Support switching payment gateways (e.g., between PayPal, Card, or iDEAL) within the same flow.
  3. Allow makers to embed the payment recovery flow within their own website—just like our Checkout—boosting conversion rates by keeping buyers on a familiar, trusted brand domain instead of the Freemius subdomain.

Today, we’re excited to announce that all these improvements are now live.

New Payment Recovery UI by Freemius

Our new payment recovery flow presents a clear UI where buyers can seamlessly switch between various payment gateways. No additional configuration is required on your end.

Setting up custom recovery URL

From the Developer Dashboard → Plans → Customization page, you can now set a custom payment recovery URL.

Enable custom payment recovery URL from Freemius Developer Dashboard

When configured, our system will link to your URL, and the Checkout JS snippet will automatically trigger the recovery flow. More details are available in our documentation.

Note for the Checkout JS SDK

If you’re using the CDN method, simply ensure the script tag is included in the page, and everything else will work automatically.

<script src="https://checkout.freemius.com/js/v1/"></script>

If you’re using the @freemius/checkout npm package, please update to the latest version 1.3.0 and follow the instructions in our GitHub repository.

Improved WordPress SDK Integration Flow with Smarter In-Page UX

This week we did a small overhaul to our WordPress SDK integration page available from our Developer Dashboard. The SDK integration page provides a very thorough step-by-step guide helping you integrate your WordPress products with our official SDK.

While evaluating and QAing the page — and also while going through support tickets — we noticed a few gaps for new makers. For example, before integrating, it’s possible that the maker has already created paid plans. In this case, the maker would need to create a license to follow through the integration process.

Freemius Developer Dashboard SDK Integration Page

To make it as easy as possible, we have enhanced the page so that you get all the information without even leaving it.

For the case explained above, the page will now show a dedicated button at the relevant step to create a license for the activation screen.

License key generator button in SDK integration page

Once you click to generate the license, it will now be displayed right on the page so you can copy it and activate your test product.

Generated license key Freemius SDK integration page

Several other improvements have also been applied to make the integration steps as seamless as possible, depending on your product’s exact configuration.

SDK integration flow for non-paid plans

We hope these changes help you launch your product faster with us. And at any stage, if you need assistance, our support is just an email away.

Update Your Freemius Account Password from the Profile Page

Starting today, you can change your password directly from the Profile page in your Developer Dashboard.

Previously, the only way to change your password was through the reset link on the login page. But we understand that there are valid scenarios where you’d prefer to change your password without going through a reset flow.

Freemius password reset from the Developer Dashboard

 

Simply head to the Profile page (top right menu) → Security and look for the new Change Password button.

When changing your password from here, you’ll be prompted to enter your current password along with your 2FA code (if enabled). Once changed, all other sessions will be logged out, just like with the standard reset flow.

Freemius password reset form

 

As a side note, we strongly recommend enabling 2FA to protect your account from unauthorized access and potential misuse.

Back Button Icon Improvement & Social Proof UI Bug Fix

Back Button Icon Improvement

When using the hosted version of Freemius Checkout, we render a back button at the top of the page to give buyers a sense of continuity with your website. For example, if your site is https://awesome-saas.com and you open Freemius Checkout from there, our Checkout will automatically display a button that says “Back to awesome-saas.com”.

Freemius Checkout Back Button

Additionally, we also show an auto-detected favicon next to the back button, if one is available from your website.

Back button with Favicon in Freemius Checkout

Previously, we noticed that when our system failed to retrieve a favicon, a generic placeholder image was shown instead. This could cause confusion or even suspicion among buyers who didn’t recognize the placeholder image.

To address this, we’ve made some enhancements to the system. Now, a favicon will only be shown if we’re able to reliably fetch one from your website. If not, we simply omit the icon altogether – avoiding any misleading visuals.

To understand how the back button works and how to customize it, please refer to our documentation.

Social Proofing UI Bug Fix with Redirect Feature

We discovered a bug where the social proofing UI—such as the “Money-Back Guarantee” badge and reviews, were being hidden when the checkout redirected after a successful purchase.

Freemius Checkout Social Proofing UI

This has now been fixed, ensuring buyers continue to see relevant trust signals even during post-purchase redirection.

Fixed Regression in Managing Custom Development or Localhost URL

With Freemius and our WordPress SDK, you can offer free localhost or development mode activations to your customers. While our system already recognizes many known development and staging environments, we also allow you to define custom development URLs per buyer. This flexibility is especially useful for agencies or power users—for example, a buyer might have staging environments like https://staging-123.agency.com.

To support such use cases, you can head over to the User page in the Developer Dashboard and add a custom URL directly from the UI.

Custom Localhost URL - Freemius

Recently, we identified a regression in this UI where data from other products in your store could mistakenly appear. This led to confusion, making it seem like a URL couldn’t be updated or removed, or even that a custom URL was already configured, when in reality, it belonged to a different product.

This issue has now been resolved. You can confidently manage custom localhost or development URLs for your users without any interference across products.

Legacy Opt-In Moderation UI Removed from Developer Dashboard

Our Freemius WordPress SDK offers flexibility to existing product owners by allowing them to choose what percentage of users will see the Opt-In screen. This has been a great tool for gradually migrating from a legacy system to Freemius without impacting all users at once.

Previously, this configuration was available through the Developer Dashboard. However, in alignment with wordpress.org guidelines, we had already moved this control from our API side into the WordPress SDK itself.

Today, we’re officially retiring the old UI in the Developer Dashboard that allowed configuring these legacy settings.

Moderation UI update for Freemius WordPress SDK

We had kept this UI active for a while since it takes time for our makers to update to the latest SDK versions. But now, with the majority already migrated and the legacy UI creating confusion for newer makers, we’ve decided to replace the interface with a deprecation notice. In the future, we plan to completely remove it.

Fix: Rebranded Emails Now Properly Scaled on iOS Devices

With our recent deployment of rebranded milestone and transactional emails, we noticed a small regression where a few email templates were not scaling correctly on iOS devices.

Freemius Responsive emails

We’ve identified and resolved the issue. All rebranded emails now render correctly across iOS devices, ensuring a consistent and responsive experience for your users.

We’ve Retired Freebo from Profile Avatars

As part of our ongoing rebranding project, we’ve updated the default profile picture used across our system.

Previously, we rendered our (now retired) mascot Freebo as the default avatar in various places. That has now been replaced with a more modern approach — an image showing the initials of the user.

Freemius new User Avatar

You’ll see this change reflected in the Developer Dashboard and Checkout (for example, when showing reviews).

Full Locale Support in Checkout: Numbers & Currencies Now Localized

Quite some time ago, we introduced localization for our Checkout, releasing it in five languages other than English. Our goal at Freemius is simple when it comes to the Checkout: provide the most optimized experience for buyers.

With that in mind, this week we’re rolling out an enhancement to the existing localization. Now, all numbers and currencies displayed in the Checkout will follow the selected locale or language.

Freemius Checkout currencies localization

This update applies to both the cart section and the final review step shown before payment.

Freemius Checkout Review phase localization with currencies and numbers

We hope this improvement offers a more seamless and familiar experience to your buyers, helping you drive more conversions.

Buyers can always choose their preferred language directly from the UI.

Freemius Language Selector UI

If you’re looking to automatically pre-select the language based on the buyer’s location, you can refer to our documentation for implementation details.

Cart Recovery Coupons Now Respect Your Coupon Rules

Freemius Cart Abandonment Recovery Coupons are a great way to bring back hesitant buyers. Previously, these coupons could only be used in recovery emails if they were completely unrestricted. That meant the coupon had to be:

  • Usable by all users
  • Valid for all plans, licenses, and billing cycles

Freemius Coupon Configuration Window

Many makers asked for finer-grained control, for example, offering a discount only on annual plans or only to first-time buyers. Requiring an unrestricted coupon created extra overhead and risked accidental site-wide discounts.

The recovery engine now honours every rule on your chosen coupon. If a cart-recovery coupon is limited to certain users, plans, licenses, or billing cycles, Freemius detects those restrictions and skips attaching the discount in recovery emails whenever the buyer doesn’t meet the criteria. You get targeted incentives without unintended giveaways.

“Log in as User” Now Safer for Debugging Without Triggering Cart Recovery

Freemius has a very handy feature called “Log in as User”. While working with customer support, it is often helpful to view the Freemius Customer Portal exactly as your customer would see it. This allows you to pinpoint the exact button a customer should click or the specific information they need to look for. To use this feature, simply click the Log in as User button from the Users page of your product in the Developer Dashboard.

Freemius Log in as User feature from the Developer Dashboard

Recently, we noticed that when makers were using this feature to debug license upgrade scenarios, it sometimes created a cart entity on Freemius on behalf of the user. As a result, our cart recovery mechanism was triggered, and recovery emails were sent to the buyer. This could understandably be a little annoying to your customers.

To address this, we’ve now ensured that carts are not created in these scenarios. This means you can safely use the Log in as User feature to debug customer issues without triggering any unnecessary cart recovery workflows or side-effects.

Load more