This guide shows you how to set up flat rate shipping for specific product categories in WooCommerce.
Plugin: Flexible Shipping Rules for WooCommerce
Step 1: Access Category Settings
- Go to your WordPress admin dashboard
- Navigate to Products → Categories
- Find the category you want to set up flat rate shipping for
- Click “Edit” on that category
Step 2: Enable Category Shipping Cost
- Scroll down to find “Flexible Shipping” settings
- Look for “Enable Category Shipping Cost”
- Change from “No” to “Yes”
Step 3: Set Category Shipping Cost
- Find “Category Shipping Cost” field
- Enter the flat rate amount (e.g., $5.00)
- This cost applies once per category regardless of quantity
- All products in this category will use this shipping cost
Step 4: Configure Override Settings
Override Global Settings for Cost:
- Set to “Yes” if category cost should override global shipping rules
- Set to “No” if global rules should take priority
Override Per-Product Settings for Cost:
- Set to “Yes” if category cost should override individual product shipping
- Set to “No” if product rules should take priority
Step 5: Save Settings
- Click “Update” to save the category settings
- Test by adding products from this category to your cart
How It Works
Single Cost Per Category:
- The shipping cost applies once per category
- If you have 3 products from the same category, you pay the cost once
- If you have products from 2 different categories, you pay both costs
Example:
- Electronics category: $8.00 shipping cost
- Books category: $3.00 shipping cost
- Cart with 2 electronics + 1 book = $11.00 total shipping
Example Setups
Example 1: Electronics Category
- Enable: Yes
- Cost: $10.00
- Override Global: Yes
- Override Products: Yes
- Result: $10 shipping for any electronics in cart
Example 2: Books Category
- Enable: Yes
- Cost: $2.50
- Override Global: No
- Override Products: No
- Result: $2.50 shipping for books (if no product rules apply)
Example 3: Premium Category
- Enable: Yes
- Cost: $15.00
- Override Global: Yes
- Override Products: Yes
- Result: $15 shipping for premium items regardless of other rules
Example 4: Free Category
- Enable: Yes
- Cost: $0.00
- Override Global: Yes
- Override Products: Yes
- Result: Free shipping for this category
Priority Order
- Product Override All (highest priority)
- Global Free Shipping (when override enabled)
- Category Free Shipping (when override enabled)
- Category Shipping Cost (this guide)
- Per-Product Shipping
- Global Flat Rate
- Default Shipping (lowest priority)
Combining with Free Shipping
You can set up both category shipping cost AND category free shipping:
- Enable Category Free Shipping = Yes
- Enable Category Shipping Cost = Yes
- Category Free Shipping takes priority when conditions are met
- Category Shipping Cost applies when free shipping conditions are not met
Example:
- Category: Electronics
- Free Shipping: $100+ cart value
- Shipping Cost: $8.00
- Result: Free shipping on $100+ orders, $8 shipping on smaller orders
Troubleshooting
Category cost not applying:
- Check that “Enable Category Shipping Cost” is set to “Yes”
- Verify products are assigned to the correct category
- Clear cart and refresh page
- Check priority order (higher rules override)
Multiple shipping costs showing:
- Category costs are additive (each category adds its cost)
- Check if you have products from multiple categories
- Ensure only one rule applies per category
Settings not saving:
- Make sure to click “Update” after changes
- Check for JavaScript errors
- Try refreshing the page
Cost not showing correctly:
- Category cost applies once per category, not per product
- If you have 5 products from same category, you pay the cost once
- If you have products from 3 different categories, you pay 3 costs
Quick Test
- Add products from your category to cart
- Check shipping cost shown
- Try products from different categories
- If cost matches your settings, setup is working!
Need Help?
For support with this plugin:
- Email: brad@wpsites.net
Was this helpful?
Thanks for your feedback!

Leave a Reply
You must be logged in to post a comment.