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 learned that some password managers like LastPass, were not providing a good UX when our buyers tried to reset their passwords.
The issues happened especially when a buyer has multiple accounts with Freemius.
In some cases, it would force fill in incorrect email addresses during the reset, while in some cases it would not prompt you to save the password against the right account. We have pushed a fix to improve this UX.
Now LastPass will prompt for a new auto-generated password in the reset form.
Once saved, LastPass will ask for a password update against the right account.
Freemius sends review request emails to your buyers as part of marketing automation. We learned that the review request emails were not working in some email clients like Outlook.
To improve the UX of the checkout when PayPal fails to create a subscription, we have modified the UI shown to the buyer.
As you can see in the image above, we now show a clear message on how to contact PayPal support for payment-related issues and also a way to reload the checkout and try with a different payment method.
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 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