=== Free Shipping Control for WooCommerce ===
Contributors: alienartifacts
Tags: woocommerce, free shipping, shipping, product shipping, shipping rules
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 2.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
WC requires at least: 10.0
WC tested up to: 10.3

Choose exactly which products ship free. Free shipping only shows when every item in the cart qualifies.

== Description ==

WooCommerce's built-in Free shipping method can only be limited by order total or coupon. Free Shipping Control lets you decide which products qualify.

* Ship your big-ticket items free while small add-ons still pay shipping.
* Free shipping appears only when every item in the cart qualifies. One non-qualifying item and the shopper sees your normal rates.
* When the whole cart qualifies, show only the free option (or keep paid options such as express visible too).

**Set it three ways**

* Per product: Product data > Shipping > Free shipping.
* Per variation: each variation can follow its product or override it.
* Per category: Products > Categories, tick "Products in this category ship free". Sub-categories are included.

The Products list gets a "Ships free" column and bulk actions, so you can switch many products at once.

**Cart message**

Optionally tell shoppers which items are stopping free shipping, for example: "Free shipping isn't available because these items don't qualify: Replacement cable". Shown on the classic cart and checkout pages.

**Good to know**

* Free shipping itself still comes from WooCommerce's "Free shipping" method, so add it to the shipping zones where you offer it. Any minimum amount or coupon rule you set there still applies.
* Items that don't need shipping (virtual or downloadable) are ignored.
* Works with the Cart & Checkout blocks and High-Performance Order Storage.
* No settings stored outside your site, no tracking, no external requests.

Made by Alien Artifacts. See our other WooCommerce plugins at https://getalienartifacts.com/

== Installation ==

1. Upload the plugin zip under Plugins > Add New > Upload Plugin and activate it.
2. Make sure your shipping zones include a "Free shipping" method.
3. Mark products or categories as free shipping.
4. Adjust options under WooCommerce > Settings > Shipping > Free shipping by product.

== Frequently Asked Questions ==

= A customer has one free-shipping item and one that isn't. What happens? =
Free shipping is hidden and they see your normal rates. Turn on the cart message to tell them why.

= Can I keep Express shipping visible when the order ships free? =
Yes. Untick "Hide paid rates" in the settings.

= I set a category to free shipping but one product in it shouldn't be. =
Open that product and set Free shipping to "No". A product's own setting beats its category.

= Does it change my shipping prices? =
No. It only decides whether the Free shipping option is shown.

== Changelog ==

= 2.0.1 =
* Fix: free shipping was still offered when a cart had non-qualifying items and the zone had no paid rate.

= 2.0.0 - 2026-09-27 =
* Category rules, bulk actions, settings page, cart message, per-package logic, blocks and HPOS compatibility.

= 1.3.1 =
* Per-product free shipping checkbox.

== Upgrade Notice ==

= 2.0.0 =
Existing per-product settings carry over. Adds category rules, bulk actions and a settings page.
