How to show WooCommerce Shipping rates only for wholesale customers.
Show special shipping rates only to customers with a Wholesale user role. Retail shoppers won’t see these rates, so pricing stays fair and clear.
💰 Real Revenue Impact: What You Lose Without This Rule
🚫 Without rules | ✅ With rules |
---|---|
Retail buyers can see and use wholesale-only shipping, which cuts margin on every retail order. | Only wholesale users see the wholesale rate. Retail buyers use normal rates, so margins are protected. |
Mixed options confuse shoppers and support. | Clean checkout by role → fewer tickets, faster purchase. |
Example: 120 retail orders/month using a $6 cheaper “wholesale ship” → $720 lost monthly. | The same 120 orders use the correct rate → $720 saved monthly. |
In The Article
How to use
- Create a Wholesale shipping method (e.g., “Wholesale Freight” or “Wholesale Flat Rate”).
- Show it only to the Wholesale role.
- (Optional) Hide retail methods for wholesale users, or hide the wholesale method for retail users.
Benefits
- Protects B2B margins and negotiated rates.
- Keeps checkout simple and accurate for every buyer type.
- Reduces support caused by wrong method selection.
- Works with zones, states/ZIPs, weight, subtotal, and more.
How to configure
Prerequisite: You have a Wholesale user role (from your wholesale plugin or a role manager).
Create a wholesale-only shipping method
- Go to WooCommerce → Settings → Shipping → Shipping zones and open your target zone (e.g., United States).
- Click Add shipping method → choose your shipping plugin method (e.g., Dotstore Advanced Flat Rate).
- Name it (e.g., Wholesale Shipping). Set the cost.
- In Method Conditions, set User role = Wholesale.
- Save.
Test on the front end
Add any products to the cart and log in as a wholesale customer to allow free shipping and hide other shipping methods.
Ready to See All Features in Actions?
Access our complete advanced features instance, allowing you to configure every feature with real checkout scenarios.
Real examples
Example 1 — US wholesale flat rate
- Method: Wholesale Shipping $12
- Condition: User role = Wholesale, Zone: United States
- Retail users do not see this rate. Wholesale users do.
Example 2 — US wholesale freight (heavy orders)
- Method: Wholesale Freight $39
- Conditions: User role = Wholesale AND Cart weight ≥ 40 lb
- Retail users see normal rates; wholesale users see Freight $39 when heavy.
Expected outcome
- Wholesale buyers see only the wholesale shipping rate(s).
- Retail buyers see standard rates.
- Checkout is cleaner; margins and policies are enforced automatically.
FAQs
1) Do I need a special plugin for the Wholesale role?
You need a role (e.g., “Wholesale”). Any wholesale/role plugin works.
2) Can I show different wholesale rates by state or weight?
Yes. Add extra conditions (State/ZIP, Weight, Subtotal, Category, Day/Time).
3) Can I keep Free Shipping for wholesale?
Yes. Make a wholesale-only Free Shipping method and set User role = Wholesale. Keep (or hide) retail Free Shipping as needed.
4) What if retail shoppers still see the wholesale rate?
Check the method’s User role condition, zone assignment, and any Hide Shipping rules. Clear the cache and test again.
5) Can one product force wholesale freight?
Yes. Use Shipping Class or Category plus User role = Wholesale in the method conditions.