How to enable free shipping for WooCommerce subscriptions
WooCommerce does not automatically apply free shipping rules to subscription renewals — you have to configure it separately in your shipping settings. The most direct method is to create a shipping zone, set a minimum order amount or cart total, and mark that rule as free. Subscription renewals will then use the same shipping calculation as regular orders, provided they meet your threshold.
The process takes about five minutes and requires access to your WooCommerce dashboard. You do not need to install additional plugins unless you want to offer free shipping only to existing subscribers or apply different rules to first orders versus renewals.
Key Takeaways
- Free shipping for subscriptions works through WooCommerce's standard shipping zones and methods — create a zone, set a minimum order total, and enable the free shipping option.
- Subscription renewals use the same shipping rules as one-time purchases, so a free shipping threshold applies to both equally.
- If you want free shipping only for subscribers or different rules for renewals, you will need a plugin like WooCommerce Subscriptions Pro or a custom code snippet.
- Test your setup by creating a test subscription and checking the renewal email to confirm the shipping cost displays correctly.
Creating a shipping zone with free shipping
Start in your WooCommerce dashboard and navigate to Settings > Shipping > Shipping zones. Click Add shipping zone and give it a name — for example, "Domestic Free Shipping" or "Free Shipping Over $50".
Set the zone to cover the regions where you want free shipping available. You can select specific countries, states, or postcodes, or leave it broad to cover your entire service area. Then click Add shipping method and select Free shipping from the dropdown.
In the free shipping method settings, you can set a minimum order amount. For example, entering $50 means free shipping only applies to orders totaling $50 or more. Leave the field blank if you want free shipping on all orders in that zone. Save your changes and the rule takes effect immediately for both new orders and subscription renewals.
Why subscription renewals might not show free shipping
If you have free shipping enabled but renewals still charge a shipping fee, the most common cause is that your minimum order threshold is not being met. Subscription renewal amounts are calculated from the product price alone — any discounts, coupons, or signup fees are not included in the shipping calculation.
For example, if a customer has a $30 monthly subscription and your free shipping minimum is $50, the renewal will not may have access to for free shipping. Check your renewal email or the customer's account page to see what amount WooCommerce is using for the shipping calculation.
Another possibility is that your shipping zone does not cover the customer's location. Verify that the zone you created includes the country or state where the renewal is being shipped. If you have multiple zones with conflicting rules, WooCommerce uses the first matching zone in your list.
Offering free shipping only to subscribers
WooCommerce's built-in shipping rules do not distinguish between one-time customers and subscribers. If you want to offer free shipping only to people with active subscriptions, you will need additional functionality.
The WooCommerce Subscriptions plugin (the official extension) includes conditional shipping options that let you create rules based on subscription status. You can also use a plugin like Conditional Shipping and Payments to show free shipping only when a subscription product is in the cart.
If you prefer not to add a plugin, a developer can write a custom code snippet using WooCommerce hooks to check whether a customer has an active subscription and apply free shipping accordingly. This approach requires access to your theme's functions.php file or a code snippets plugin.
Testing your free shipping setup
Create a test subscription product and purchase it with a test customer account. Use your store's test mode (Stripe, PayPal, or your payment processor's sandbox) so no real charge occurs. Complete the purchase and note the shipping cost shown in the order confirmation.
Wait for the first renewal to process — this usually happens within 24 hours, depending on your payment processor. Check the renewal order in your WooCommerce dashboard under Orders and verify that the shipping cost matches what you expected. Also check the renewal email sent to the customer to confirm the shipping amount displays correctly there.
If the shipping cost is wrong, review your shipping zone settings and minimum order amounts. Make sure the renewal order total meets your free shipping threshold and that the shipping zone covers the test customer's location.
Applying different shipping rules to renewals
Some stores want to charge shipping on the first order but offer free shipping on renewals, or vice versa. WooCommerce's standard shipping settings do not separate these scenarios — renewals use the same rules as regular orders.
To create renewal-specific shipping rules, you can use the WooCommerce Subscriptions extension, which includes hooks and filters for customizing renewal behavior. Alternatively, a custom code snippet can check whether an order is a renewal and apply different shipping logic.
Another approach is to use a plugin like Flexible Shipping or Advanced Shipping, which offer more granular control over when shipping rules apply. These plugins let you set conditions based on order type, product category, or customer history.
Common shipping mistakes with subscriptions
One frequent error is forgetting to save your shipping zone after adding the free shipping method. Always click Save changes at the bottom of the page, or your settings will not take effect.
Another mistake is setting a minimum order amount that is higher than your subscription price. If a customer's monthly renewal is $25 and your free shipping minimum is $50, they will never see free shipping. Review your subscription prices and adjust your threshold accordingly.
Some store owners also create multiple overlapping zones without realizing that WooCommerce applies only the first matching zone. If you have a "Domestic" zone and a "United States" zone, and both cover the same area, only the first one in your list will be used. Organize your zones to avoid overlap, or use the zone priority setting to control which applies first.
Frequently Asked Questions
Do I need a plugin to offer free shipping on subscriptions?
No. WooCommerce's built-in shipping zones and free shipping method work for both one-time orders and subscription renewals. You only need a plugin if you want to offer free shipping exclusively to subscribers or apply different rules to renewals versus first orders.
Will free shipping apply automatically to existing subscriptions?
Yes. Once you create a free shipping rule in your shipping zones, it applies to all future renewals of existing subscriptions, not just new ones. The renewal order will be recalculated using your current shipping settings.
What if my subscription price is below the free shipping minimum?
The renewal will not may have access to for free shipping. You can either lower your minimum order threshold, increase your subscription price, or offer a discount code that includes free shipping as an incentive for subscribers.
Can I offer free shipping on renewals but charge for first orders?
Not with WooCommerce's standard settings — both use the same shipping rules. You would need the WooCommerce Subscriptions extension or a custom code snippet to distinguish between first orders and renewals in your shipping logic.
How do I test free shipping without processing a real payment?
Use your payment processor's test mode (available in Stripe, PayPal, Square, and most others) and create a test customer account. Process a test subscription purchase and wait for the renewal to process, then check the renewal order details in your dashboard to verify the shipping cost.