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.

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

  1. Go to WooCommerce → Extra Fees Plugin → Add New Fee Rule.
  2. Enter a title/name for your fee (example: Poster Packaging Fee).
  3. 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

  1. Go to the “Cost on Shipping Class Subtotal” section.
  2. Set the Minimum Subtotal (example: $9 → fee applies only if customer buys poster pack products).
  3. 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

  1. Click Save Rule.
  2. Go to your store and add products to the cart.
  3. Check that the fee is applied once the product quantity meets the set limit.
Get the extra fee

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

Get the extra fee

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.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.