1. Home
  2. Documentation
  3. Selling with Freemius
  4. Offering Free Trials

Offering Free Trials

Freemius enables you to easily offer Free Trials for your users, with or without requiring a payment method. Offering a Free Trial may help you increase your product’s distribution and sales. Check out The Ultimate Guide To Free Trials For Premium WordPress Plugins And Themes.

Supported Trials Types

“Free Trial” – A Free Trial Without A Payment Method

You can set a trial period in your plan settings. Just make sure to turn the “Require Credit Card or PayPal” option off.

“Paid Trial” – A Free Trial With A Payment Method

You can set a trial period in your plan settings and turn on the “Require Credit Card or PayPal” option.

How To Activate & Use Trials

Setting up a trial is done from within each specific product plan configuration settings:

  1. You can choose one of the following optional trial periods: No trial, 7 Days, 14 Days, 30 Days
  2. If you wish to require a payment method, switch the “require credit card or paypal” option on:
  3. Once you add a trial to a plan the SDK integration snippet will change slightly, so you’ll need to update the snippet in your code. Note that users who have already opted-in will also be exposed to in-dashboard trials, even if you don’t deploy a new version with the snippet update.
  4. To activate the trial in the Freemius Checkout on your site you’ll need to add trial: 'free' or trial: 'paid' (depending on the type of the trial) to the open() method.

Leveraging Trials in Your Free Product Version with Freemius’ WordPress SDK

If you have a freemium product integrated with the Freemius’ WordPress SDK, 24 hours after installing the free plugin/theme version, a dismissible admin notice with a trial offer will automatically appear in the WP admin dashboard.

In addition to the admin notice, the Upgrade submenu item will change it’s label to Start Trial and the color will match the blue color of the promotional admin notice:

And if you have a top-level menu item, it will automatically add a pretty counter to even attract more attention:

Clicking on the “Start free trial” button will redirect the user to the product’s in-dashboard pricing page with the option to start a trial with any of the plans.
Once the user selects a plan and starts the trial, the premium version is securely accessible through a download link which will appear in an admin notice and in an automated email.

You can fully control the free trial notice copy and when it will show up:

my_freemius()->override_i18n( array(
    'hey'                                        => 'Hey',
    'trial-x-promotion-message'                  => 'Thank you so much for using %s!',
    'already-opted-in-to-product-usage-tracking' => 'How do you like %s so far? Test all our %s premium features with a %d-day free trial.',
    'start-free-trial'                           => 'Start free trial',
    // Trial with a payment method required.
    'no-commitment-for-x-days'                   => 'No commitment for %s days - cancel anytime!',
    // Trial without a payment method.
    'no-cc-required'                             => 'No credit card required',
) );

#region Show the 1st trial promotion after 7 days instead of 24 hours.

function my_show_first_trial_after_7_days( $day_in_sec ) {
    // 7 days in sec.
    return 7 * 24 * 60 * 60;

my_freemius()->add_filter( 'show_first_trial_after_n_sec', 'my_show_first_trial_after_7_days' );


#region Re-show the trial promotional offer after every 60 days instead of 30 days.

function my_reshow_trial_after_every_60_days( $thirty_days_in_sec ) {
    // 60 days in sec.
    return 60 * 24 * 60 * 60;

my_freemius()->add_filter( 'reshow_trial_after_every_n_sec', 'my_reshow_trial_after_every_60_days' );


You can also add your own controllers to link to a trial, even not during the promotional trial period, by simply calling my_fs()->get_trial_url().

If you are using the licensing methods is_plan() or is_plan__premium_only() in your integration with the SDK, make sure to transition to is_plan_or_trial() and is_plan_or_trial__premium_only() correspondingly.