WooCommerce Subscriptions: How to Offer Free Shipping on Renewal Orders

One of the best ways to capture more revenue, and make it more predictable, is to offer your products or services on subscription. But rather than going full throttle with a new, subscriptions-based model, a safer approach is to make subscription plans available as an option, and offer extra incentives for subscribing; such as discounts, or free shipping.

Free shipping is always a great perk to offer. However, WooCommerce does not provide any options for limiting free shipping to customers who purchase a subscription. One workaround is to create a Recurring Discount coupon and enable free shipping on it. However:

  • Customers will still need to apply the coupon before checking out.
  • Applying the coupon will enable free shipping as an option, but will not select it by default, or hide other options.

Things can get even more complicated if you only want to offer free shipping on renewals.

Fortunately, there’s little WooCommerce can’t handle. One option is to hire a developer to write some custom code for you; another is to install a plugin that lets you restrict shipping methods conditionally, like Conditional Shipping and Payments.

Conditional Shipping and Payments

Let’s find out how Conditional Shipping and Payments works, with an example!

“Bean Box” is a pick-and-mix subscription box for coffee beans that is available for purchase either one time, or on subscription. To encourage customers to subscribe, we are offering free shipping on subscription renewals, and a 20% discount when customers choose the weekly delivery option:

A pick-and-mix box available for purchase one time, or on subscription.

Free shipping is unavailable when customers make a one-time purchase. In this case, the only available shipping option is a $10 flat rate:

Free shipping is unavailable when making a one-time purchase.

Renewal orders are shipped for free when customers choose the weekly or monthly subscription. The initial subscription order costs $10 to ship:

Free shipping on renewal deliveries.

Here’s how to do this:

1. Create Shipping Zones

  1. Go to WooCommerce > Settings > Shipping.
  2. Create a Shipping Zone, or double-check that everything looks right.
  3. Add a Free Shipping instance to the zone where you want to offer free shipping.

The “United States” shipping zone.

2. Create Shipping Restrictions

To hide the Free Shipping option in every shipping package that is not a weekly or monthly subscription renewal:

  1. Go to WooCommerce > Settings > Restrictions.
  2. Add a new Shipping Restriction.
  3. Under Exclude Methods, choose the Free Shipping instance(s) you created earlier.
  4. Add a Recurring Package condition, choose the is not modifier and add the weekly and monthly options to the “Select a billing period” box.

To hide all other shipping options in (weekly or monthly) subscription renewal packages:

  1. Add a new Shipping Restriction.
  2. Under Exclude Methods, choose all methods other than Free Shipping.
  3. Add a Recurring Package condition, choose the is modifier and add the weekly and monthly options to the “Select a billing period” box.

Restrictions for enabling Free Shipping on renewal orders only.

Well, that’s it… except for one thing! If you want to enable Free Shipping on every order that contains only recurring items, including initial subscription orders, you’ll need to make a slight change: Substitute the Recurring Package condition with the Product on Subscription condition, and use the all items in package and not all items in package modifiers — like this:

Enable Free Shipping on orders that contain recurring items, including initial subscription orders.

Leave a reply

Basic HTML is allowed. Your email address will not be published.