How to Charge WooCommerce Extra Fees Based on Shipping Class Total
Charging extra fees based on the subtotal of products within specific shipping classes allows you to recover handling, packing, or transportation costs more accurately.
Using the WooCommerce Extra Fees Plugin, you can set rules like applying a $10 surcharge for “Heavy” items if the subtotal of those items is under $200, or waive the fee if it’s above.
In the article
How it works
The plugin calculates the subtotal of all items in the cart that belong to a specific shipping class (e.g., Poster Pack, Heavy, Lighter, Special). Based on the subtotal range you define for each class, it applies a corresponding extra fee.
You can configure:
- Separate fees for each shipping class
- Different fee amounts based on the subtotal ranges
- Conditions combined with quantity, user role, or shipping method
Benefits
- Recover shipping/handling costs specific to product weight or category
- Add logic-driven surcharges per shipping class subtotal
- Customize checkout pricing with full transparency
- Encourage customers to buy more to avoid extra charges
- Seamless automation—no manual calculation needed
Steps to configure the extra fee
Step 1: Add the new extra fee rules
- Go to WooCommerce → Extra Fees Plugin → Add New Fee Rule.
- Enter a title/name for your fee (example: Poster Packaging Fee).
- Under Advanced Fee Rules, select “Cost on Shipping Class Subtotal” from the left menu
Step 2: Set up the shipping class-based extra fee limits
- Go to the “Cost on Shipping Class Subtotal” section.
- Set the Minimum Subtotal (example: $9 → fee applies only if customer buys poster pack products).
- Set the Maximum Subtotal (example: $99 → fee applies only if customer buys heavy products above $999).
Step 3: Set the fee amount
Enter the Fee Amount (example: $21 for a specific shipping class).
Step 4: Save and test
- Click Save Rule.
- Go to your store and add products to the cart.
- Check that the fee is applied once the product quantity meets the set limit.
Example 1: Poster pack shipping class fee
If a customer buys posters categorized under the "Poster Pack" shipping class, and the subtotal is less than $200, a $7 packaging fee is applied.
This helps cover extra care and materials needed for safe packaging.
Once the order total crosses $200, the fee is waived to encourage bulk purchases.
Shipping Class | Subtotal Range ($) | Fee ($) | Description |
---|---|---|---|
Poster Pack | $0 – $199.99 | $7 | Fee for packing of poster items |
Poster Pack | $200 and above | $0 | No fee for bulk poster purchases |
Example 2: Heavy shipping class fee
For items assigned to the "Heavy" shipping class, if the subtotal is under $500, a $15 handling fee is added to manage heavy-lifting and transport.
This ensures operational costs are covered for low-quantity heavy-item orders.
Orders above $500 get free handling, rewarding larger purchases.
Shipping Class | Subtotal Range ($) | Fee ($) | Description |
---|---|---|---|
Heavy | $0 – $499.99 | $15 | Handling fee for heavy items vehicles |
Heavy | $500 – $999.99 | $30 | Handling fee for heavy items vehicles |
Heavy | $1000 and above | 0 | No charge for large, heavy-item orders |
FAQs
What is a shipping class subtotal in the WooCommerce Extra Fees Plugin?
It’s the total price of all products in a specific shipping class added to the cart.
Can I apply different fees to different shipping classes in the same order?
Yes, each shipping class can have its own fee rule, and it will apply independently.
What if the cart has multiple shipping classes?
The plugin checks each rule separately. All matching fee rules will apply based on their respective class subtotals.
Can I disable the fee for specific user roles or locations?
Yes, you can combine shipping class subtotal rules with user role or location-based conditions.
Is this feature available in the free plugin version?
No, subtotal-based rules for shipping classes are only available in the Pro version of the plugin.