Hi @jnorris66,
Thank you for reaching out and for providing such a detailed explanation of the issue. I agree, it can become quite tricky.
There are several possible approaches, but I’d recommend either setting up a separate shipping method for each combination in the same shipping zone or using a conditional shipping plugin such as WooCommerce Advanced Shipping, Flexible Shipping by WP Desk, or WooCommerce Table Rate Shipping.
Hi @jnorris66,
In addition to that, I recommend checking out these two extensions:
Table Rate Shipping
- It enables complex shipping calculations using formulas, lets you build multiple rate tables based on shipping classes, and also supports conditional logic for add-on services like liftgate or inside delivery.
Conditional Shipping and Table Rates
- It is tailored for dynamic shipping costs based on condition-based rules, supports arithmetic formulas and shortcodes for flexible calculations, and can show/hide shipping methods depending on cart contents, location, etc.
To set them up: Instead of modifying flat rates directly, you’d create distinct shipping methods like:
- Standard Delivery – base rates ($50 / $150 / $300 depending on class)
- Liftgate Delivery: base rate + $75
- Inside Delivery: base rate + $150
- Liftgate + Inside Delivery: base rate + $225
That way, each method would use formulas to dynamically calculate the final cost based on the shipping class in the cart.
If you prefer a more customized checkout experience, you could use Product Add-ons or Checkout Field Editor to let customers select these services, then use woocommerce_cart_calculate_fees hook to adjust shipping costs accordingly. However, that would require custom development which we don’t support.
I hope that helps. Let us know if you need anything else.
Since there’s been no recent activity on this thread, I’m marking it as resolved. Don’t hesitate to start a new thread if you need help in the future.
We’d really appreciate if you could take a moment to leave us a review: https://wordpress.org/support/plugin/woocommerce/reviews/