WooCommerce Shipping Not Showing at Checkout — General Fix Hub
WordPress Fix Guide

WooCommerce Shipping Class, Weight & Dimension Rates Wrong Fix

Expert fix — from $59
Response in 2 min
No fix, no charge

Quick Triage: Which Shipping Problem Are You Facing?

Before diving into the technical causes, let's pinpoint the exact symptom. WooCommerce shipping issues, especially with classes, weight, and dimensions, can manifest in several ways. Identifying your specific scenario helps narrow down the root cause.

Shipping cost is always a flat rate, ignoring product classes, weight, or dimensions.

This often points to a shipping method misconfiguration within a zone, where a flat rate is overriding more granular calculations, or a plugin conflict preventing complex calculations.

Different products in the cart, even with varying classes/weights, receive the same, incorrect shipping cost.

Indicates a failure in WooCommerce's ability to process individual product data for shipping calculations. Could be incorrect shipping class assignment, method calculation type, or a data integrity issue.

Calculated rates for specific shipping classes or weight ranges are showing as $0.00 or are entirely missing.

Suggests a specific rule within a shipping method isn't matching, or the shipping class itself is not correctly linked to any rate. Check your free shipping settings too, as they can sometimes unintentionally override other rates.

Shipping cost changes unexpectedly with quantity but not with actual weight or dimensions.

Points to a 'per item' calculation type being incorrectly applied or a custom snippet interfering with the default weight/dimension logic. This is a common symptom when shipping zones are not working as expected.

WooCommerce live carrier rates (UPS, FedEx, DHL, etc.) are wrong or not calculating for specific products.

While related, this often involves API communication, credential issues, or specific carrier plugin settings. See our dedicated guide on WooCommerce Live Carrier Rates Not Calculating.

Root Causes for Incorrect WooCommerce Shipping Calculations

When your WooCommerce shipping class not working, or weight/dimension rates are wrong, it's rarely a single, simple issue. It stems from a conflict or misconfiguration within one of these core components:

CAUSE 01

Incorrect Shipping Method Configuration

The most frequent culprit. Within a shipping zone, the specific shipping method (e.g., Flat Rate, Table Rate, or a third-party plugin method) is not configured to correctly interpret shipping classes, product weights, or dimensions. This includes incorrect 'Calculation Type' for Flat Rate (e.g., 'Per Order' instead of 'Per Class' or 'Per Item'), or misconfigured rules in Table Rate plugins where conditions don't match product data.

Most common

CAUSE 02

Product Data Inconsistencies or Omissions

If products lack assigned shipping classes, or have missing/incorrect weight and dimension data, WooCommerce cannot calculate rates based on these attributes. This is especially problematic for variable products where variations might inherit or override parent product shipping settings, leading to woocommerce dimension based shipping wrong or woocommerce weight based shipping not working.

CAUSE 03

Plugin Conflicts or Theme Overrides

Other plugins, particularly those that modify checkout, cart, or shipping logic (e.g., multi-vendor plugins, custom checkout fields, or other shipping extensions), can interfere. Similarly, a custom theme or child theme might contain outdated or incorrect WooCommerce template overrides for shipping, preventing core calculations from executing correctly. This can cause woocommerce calculated shipping not updating.

CAUSE 04

Caching Issues and Stale Transients

Aggressive caching (server-side, plugin-based, or CDN) can serve outdated shipping rates, especially after you've made changes to products or shipping settings. WooCommerce also uses transients to store temporary data, and if these become stale or corrupted, they can prevent accurate, real-time shipping calculations, making it seem like woocommerce shipping class rate wrong.

CAUSE 05

Database Corruption or Inconsistencies

Rare, but possible. Corrupted entries in WooCommerce's database tables related to shipping zones, methods, or classes (e.g., wp_woocommerce_shipping_zones, wp_woocommerce_shipping_zone_methods, wp_terms for shipping classes) can lead to erratic behavior. This often requires direct database inspection.

Actionable Fix Steps for WooCommerce Shipping Class and Rate Issues

Follow these steps systematically to diagnose and resolve why your woocommerce shipping not splitting correctly or rates are wrong. Work on a staging environment first if possible.

1

Verify Product Shipping Data and Class Assignments

Incorrect product data is a primary reason for woocommerce per item shipping not calculating or class rates failing. Ensure every product (and its variations) has accurate weight, dimensions, and the correct shipping class assigned.

Where to look:

  • Navigate to WooCommerce > Products. Edit a product that's causing issues.
  • Scroll down to the 'Product data' meta box and click the 'Shipping' tab.
  • Check 'Weight (kg)', 'Dimensions (cm)', and 'Shipping class'. Ensure they are set correctly.
  • For variable products, go to the 'Variations' tab. Expand each variation and verify its individual 'Weight', 'Dimensions', and 'Shipping class' settings. Variations can override parent product settings.

What it means: If a product has no shipping class, it will default to the 'No shipping class' rate. If weight or dimensions are zero, weight/dimension-based methods will treat them as such, potentially leading to $0 rates or incorrect calculations.

✓ 5-15 minutes per product. Essential first check.

2

Inspect Shipping Zone and Method Configuration

This is where the rules for your woocommerce shipping class rate wrong are defined. A small misconfiguration here can break everything.

Where to look:

  • Go to WooCommerce > Settings > Shipping > Shipping Zones.
  • Identify the shipping zone relevant to your customer's location.
  • Click 'Edit' on the zone. Then, for each shipping method (e.g., Flat Rate, Table Rate, etc.) within that zone, click 'Edit'.
  • For Flat Rate: Crucially, check the 'Calculation Type'. If it's set to 'Per Order', it will ignore individual product classes/weights. Change it to 'Per Class' or 'Per Item' if you expect class-based calculations. Then, ensure your shipping class costs are defined correctly below.
  • For Table Rate (if using a plugin): Review all your rules. Ensure the conditions (e.g., 'Weight', 'Dimension', 'Shipping Class') match your product data and the rates are correctly applied. Pay close attention to the order of rules.

What it means: The 'Calculation Type' for Flat Rate is a common oversight. If set to 'Per Order', it will apply a single rate regardless of what's in the cart. Table Rate plugins often have complex rule sets that must be meticulously matched.

✓ 10-30 minutes. Requires careful review of all relevant zones and methods.

3

Clear All Caches and WooCommerce Transients

Stale data is a frequent cause for woocommerce calculated shipping not updating. Clear everything to ensure WooCommerce is working with the latest information.

Where to look:

  • WordPress Caching Plugins: If you use WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Rocket, etc., clear their caches from their respective settings pages.
  • Server-side Caching: If your host provides server-level caching (e.g., Varnish, Redis), clear it via your hosting control panel or by contacting support.
  • CDN Caching: If you use Cloudflare, Sucuri, or another CDN, purge the cache from their dashboard.
  • WooCommerce Transients: These are temporary data stored in your database. You can clear them via WooCommerce > Status > Tools. Look for 'WooCommerce transients' and click 'Clear transients'.

What it means: Caches can serve old shipping rates, and stale transients can prevent new calculations from being stored or retrieved correctly. Clearing them forces a recalculation.

✓ 5-10 minutes. Safe to perform, but always test on staging first if possible.

4

Perform a Plugin and Theme Conflict Test

Other plugins or your theme can override WooCommerce's core shipping logic, leading to woocommerce shipping class not working. This is a critical diagnostic step.

Where to look:

  • Plugins: Go to Plugins > Installed Plugins. Deactivate all plugins except WooCommerce. Test your shipping. If it works, reactivate plugins one by one, testing after each, until the issue reappears. This identifies the conflicting plugin. Pay special attention to any plugins that modify checkout, cart, or add custom shipping methods.
  • Theme: If deactivating plugins doesn't resolve it, switch your theme to a default WordPress theme like Storefront or Twenty Twenty-Four (on a staging site!). Test shipping again. If it works, your theme is the culprit, likely due to outdated WooCommerce template overrides in wp-content/themes/your-theme/woocommerce/.

What it means: A plugin or theme is directly interfering with WooCommerce's shipping calculation hooks or templates. Identifying the specific component is the first step to finding a replacement, update, or custom fix.

✓ 30-60 minutes. Requires a staging environment for safety. If no staging, proceed with extreme caution.

5

Check for Database Inconsistencies (Advanced)

For persistent issues, a direct look at the database can reveal corrupted or missing entries. This requires familiarity with phpMyAdmin or a similar database management tool.

Where to look:

  • Access your database via phpMyAdmin or your hosting control panel.
  • Examine the wp_woocommerce_shipping_zones table for correct zone definitions.
  • Check wp_woocommerce_shipping_zone_methods to ensure your shipping methods are correctly linked to zones and have the right 'instance_id'.
  • Verify the wp_options table for woocommerce_shipping_settings. This option stores global shipping settings.
  • For shipping classes, look at wp_terms, wp_term_taxonomy, and wp_termmeta where shipping classes are stored as taxonomies (product_shipping_class). Ensure classes are present and correctly linked.

What it means: Database issues are rare but can lead to fundamental breakdowns in how WooCommerce retrieves and processes shipping data. Incorrect entries here can cause woocommerce shipping class not working at a very low level.

SELECT * FROM `wp_options` WHERE `option_name` LIKE 'woocommerce_shipping_settings%';

✓ 15-30 minutes. Requires database access and knowledge. Back up your database before making any changes.

6

Review Custom Code Snippets or Child Theme Functions

If you have custom code, particularly in your child theme's functions.php or a custom plugin, it might be interfering with shipping calculations.

Where to look:

  • Open your child theme's functions.php file (via FTP/SFTP or your hosting file manager).
  • Review any custom code related to woocommerce_package_rates, woocommerce_shipping_method_add_rate, woocommerce_shipping_rate_cost, or similar filters.
  • Temporarily comment out suspicious code blocks and test.

What it means: Custom code, especially if not written carefully, can inadvertently override or modify shipping rates, leading to woocommerce dimension based shipping wrong or other calculation errors. An example might be a snippet attempting to force a specific rate or modify package contents.

// Example of a problematic snippet to look for
// add_filter( 'woocommerce_package_rates', 'my_custom_shipping_rates', 10, 2 );
// function my_custom_shipping_rates( $rates, $package ) {
//    // This code might be overriding your class/weight rates
//    $rates['flat_rate:1']->cost = 25; // Forcing a flat rate
//    return $rates;
// }

✓ 10-20 minutes. Requires code review skills. Use a staging site for testing.

Our Process: How WebFixHQ Resolves Complex Shipping Issues

When your woocommerce shipping class not working and you've exhausted the obvious, you need a deep dive. Our approach goes beyond generic checklists. We understand that your business relies on accurate shipping.

Here's how we tackle these issues:

  • Deep Diagnostic Setup: We immediately enable WordPress debugging and WooCommerce logging. We use tools like Query Monitor to trace database queries and hook executions during the cart and checkout process, identifying precisely where the shipping calculation breaks down.
  • Environment Replication: We prefer to work on a staging environment that mirrors your live site. This allows us to systematically deactivate plugins, switch themes, and modify configurations without impacting your customers.
  • Code-Level Inspection: Our engineers perform a targeted code review, focusing on custom snippets, child theme overrides, and third-party shipping plugin implementations. We look for filter and action hooks that might be incorrectly modifying shipping rates or package data.
  • Database Integrity Check: We directly inspect relevant WooCommerce database tables (e.g., wp_woocommerce_shipping_zones, wp_woocommerce_shipping_zone_methods, wp_postmeta for product data) to ensure data consistency and identify any corruption that might be causing woocommerce shipping class rate wrong.
  • Real-World Testing: We don't just fix; we rigorously test. We simulate various customer scenarios with different products, quantities, shipping classes, weights, and dimensions to ensure all shipping methods calculate correctly across all zones.
  • Root Cause Elimination: Our goal isn't just a temporary fix. We identify the exact root cause – whether it's a plugin conflict, a misconfigured setting, or a code error – and implement a robust, long-term solution.

Why Trust WebFixHQ with Your WooCommerce Shipping?

You're losing money every minute your shipping rates are incorrect. We've personally fixed hundreds of these exact scenarios, from simple misconfigurations to complex plugin conflicts that lead to woocommerce weight based shipping not working or woocommerce dimension based shipping wrong.

Our team consists of senior WordPress and WooCommerce engineers. We don't just follow a script; we understand the WooCommerce core, its shipping API, and how third-party plugins interact with it. We know where to look, what to look for, and how to implement a stable fix quickly.

Don't waste more time guessing. Get your shipping calculations working flawlessly again, ensuring accurate charges for your customers and preventing revenue loss.

Stop Losing Sales to Incorrect Shipping!

Our senior WooCommerce engineers will diagnose and fix your shipping class, weight, and dimension rate issues today.

Get Your Shipping Fixed Now →

Common questions

Why is my WooCommerce shipping class not working?
The most common reasons are incorrect shipping method configuration within a zone (e.g., Flat Rate 'Calculation Type' set to 'Per Order' instead of 'Per Class'), missing shipping class assignments on products, or conflicts with other plugins that modify shipping logic. Less common causes include caching issues or theme overrides.
How long does it take to fix wrong WooCommerce shipping rates?
For straightforward misconfigurations, we can often diagnose and implement a fix within 1-2 hours. More complex issues involving plugin conflicts, custom code, or deep database inconsistencies might take 3-6 hours. We prioritize rapid resolution to minimize your downtime.
Can I fix WooCommerce weight-based or dimension-based shipping myself?
If you are comfortable navigating WooCommerce settings, checking product data, and performing basic troubleshooting like clearing caches, you might resolve simpler issues. However, if the problem persists after trying the steps above, or if it involves plugin conflicts, custom code, or database checks, professional help is recommended to avoid further complications.
How much does WebFixHQ charge to fix WooCommerce shipping problems?
Our standard diagnostic and fix service for issues like incorrect shipping rates is transparently priced. You pay a fixed, affordable rate for a senior engineer to resolve your specific problem, ensuring you know the cost upfront without hidden fees. Check our service page for current pricing.
My WooCommerce per item shipping isn't calculating correctly, even with classes. What's wrong?
If per-item shipping is failing, first verify that your shipping method's 'Calculation Type' is set to 'Per Item' or 'Per Class' where applicable, and that each product or variation has its shipping class correctly assigned. Also, check for any custom code snippets that might be overriding the default per-item logic, as this is a common source of unexpected behavior.