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.
We are super excited to announce the beta availability of the new checkout app we’ve been working on. It is not just a reskinning, but a complete overhaul of the UI/UX to make it more user-friendly and help more conversions. The new checkout is in the beta phase right now. To test it out right now, you can
Add checkout_style=phase2 in the URL parameter of the direct checkout link.
Or use checkout_style: 'phase2' in the JS integration code.
We have a nice header to communicate the pricing to the user properly. Then comes the different line items to show different discounts, breakdowns, taxes, etc, which subsequently leads to the total value.
We also present the checkout in two columns to make more of the real estate in modern screens.
Various upsells
We have three upsells built into the checkout.
Annual upsell when the checkout is loaded with the monthly billing cycle.
Lifetime license upsell.
Unlimited license upsell.
All of them are configurable and you can turn them off (more on it later).
Full-Screen mode
Our checkout now supports a Full-Screen mode to take the entire real estate of the screen.
Checkout opened with the JS snippet are still sized as modal.
Checkout opened directly through a link will be full-sized by default.
You can set the size yourself with a configuration parameter (more on it later).
The users can also toggle between full-size and modal-size themselves.
Social proofing
To aid in conversion, we have introduced two social proofing UIs in the checkout itself.
Money-back guarantee: Shows the type of refund policy you have.
Featured Review: You can selectively show a featured review on the checkout page. Set a review as “Featured” from the Developer Dashboard and it will show up here. If you have multiple featured reviews, then the latest one will show up.
They don’t show up by default if the checkout opens with the JS integration. But they do show up if the checkout is opened as an independent page. However, you have total control to show/hide them individually, when you want.
Improved Bundle UI
We’ve improved the bundle UI by introducing a button to expand or collapse the products inside the bundle. You can control the initial state of the list. The users will always be able to expand/collapse as wanted.
Available configuration option
This new version comes with various appearance-related configurations. All of them can be used either directly in the URL parameter or through the JS snippet as configuration properties.
Property
Description
Accepted values
Default value
layout
Specify the layout of the form on a larger screen. This cannot be horizontal in cases like payment method updates or free plans. If set null the system will automatically choose the best default for the current checkout mode.
'vertical' | 'horizontal' | null
null
form_position
Specifies the position of the form, in double column view.
'left' | 'right'
'left'
fullscreen
Whether to take the entire viewport while rendering the form. If kept null, then in iFrames, the size will be set to false, otherwise, it will be set to true.
true | false | null
null
show_upsells
Whether or not showing the upsell toggles.
true | false
true
show_reviews
Whether or not showing featured reviews in the checkout. If kept null then it will be shown if the checkout page is loaded directly, without any JS snippet (iFrame) integration call.
true | false | null
null
show_refund_badge
Whether or not showing Refund Policy UI in the checkout. If kept null then it will be shown if the checkout page is loaded directly, without any JS snippet (iFrame) integration call.
true | false | null
null
is_bundle_collapsed
Determines whether the products in a bundle appear as hidden by default. Is applicable only to bundles.
Fixed some store-scoped API endpoints not working properly
Since we released the multi-store Developer Dashboard, we noticed some API endpoints were not working properly. We have investigated all such endpoints and have made fixes.
Improved the email address verification mechanism for users
We noticed that if a Developer changes a User’s email from the Developer Dashboard, the User will see a blank screen upon clicking the confirmation button. Although their email change was getting verified, this still presented a poorer UX. We have improved this UX, by redirecting the User to the User Dashboard and showing an appropriate message.
We also took this opportunity to improve the email message itself.
Fixed loading of white-listed sites for license activation
In some edge cases, we found that a few users were facing issues activating their white-listed licenses. We found out the cause and have fixed it.
Fixed coupon code issues with PayPal
One partner of ours reported that some coupons were not working with the PayPal payment method. We investigated the cause and have deployed a fix.
Small Analytics graph improvement
We noticed in some cases we were plotting incorrect 0 values on some graphs where data was not available.
We have fixed this by removing the zero points from the graph, which presents a nicer UX.
We have made subtle changes to make the SaaS selling experience better with Freemius. If you create a new product with SaaS type like below
You will notice several changes and improvements throughout the system. For example:
The checkout will show a better message after completion.
The User Dashboard will not show the “Download” button for SaaS products.
Different transactional and marketing emails sent by Freemius are now optimized for SaaS usage.
Various wordings in the Developer Dashboard and the checkout also emphasize the SaaS type by using the term product instead of plugin, widget, theme etc.
These are only the first changes we are rolling out to improve SaaS experience with Freemius. Please stay tuned for more updates.
This week, we are glad to announce some major improvements to the Mailchimp integration. Please find out below.
Using the same Mailchimp account for multiple products
Our system was not working when the same Mailchimp account was used for multiple products. We identified the root cause and fixed it.
Improvements to the Mailchimp UX
We took this opportunity to further improve the UX of Mailchimp connection. Now instead of a single button saying “Connect to Mailchimp” you will see a dropdown, in case you already have Mailchimp integrated with other products from your Developer account.
You can then choose to create a “New connection” or simply click an existing connection.
From here on, the workflow remains the same. You can add/modify rules for different events. Here’s a quick video to demonstrate the new “one-click” connection UX.
Improvements to the Readme.txt missing notice in the Deployment page
We noticed that the message we were showing the Deployment page, had some visualization glitch.
We have fixed the glitches and made improvements to the message itself.
Fixed broken geo.json endpoint
We noticed a regression where the endpoint https://checkout.freemius.com/geo.json got broken. It is a feature Freemius provides using which you can determine the location to dynamically set currency on your pricing page. We have fixed the regression.
We are glad to announce a new Developer Dashboard feature to duplicate coupons easily.
You can click on the new “Duplicate” button to get started. It will create a new coupon copying all its settings and attributes. The newly created coupon code will become, OLDCODE_COPY which you can change from the edit screen.
Please note that if you’re copying a product-level coupon from the Store view, the duplicated coupon by default will only apply to the product itself.
You can edit the coupon to make the necessary adjustments, for example, you can activate it for more products, plans, and billing cycles etc.
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.
We’ve done a minor enhancement to the charts UI in the 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.
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.
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.
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.
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.
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.
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”.
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
Right now we support only EU/UK VAT refunds.
You must supply a valid VAT number for the customer for a tax refund.
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
Do a full refund of the original payment.
Create a new payment, excluding the VAT.
This will also be reflected in the Developer Dashboard after you’ve done a tax refund.
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.
We have also made subtle improvements to the prettifier. It will now output code closer to WordPress formatting standards.
We use tools, such as cookies, to enable essential services and functionality on our site and to collect data on how visitors interact with our site, products and services. By clicking CONTINUE, you agree to our use of these tools for advertising, analytics and support