View my basket

Bug in WooCommerce 8.6 affects Cart-to-Quote

WooCommerce 8.6 contains a bug that affects our cart-to-quote plugin. Here we’ll cover a bit about the bug, and how to workaround the problem until it’s fixed in WooCommerce.

No shipping methods available

When a customer reaches the checkout page and enters their billing address, WooCommerce should split their cart into packages and show the shipping rate of each package (if it can be shipped). If there are no shipping methods available, you should see the message, “There are no shipping options available…”. Or, if you’re running our cart-to-quote plugin, you should see a button that lets the customer convert their cart into a quote.

No Shipping Methods bug in WooCommerce checkout
No shipping methods

As of WooCommerce 8.6, this has stopped working because of a recent change made to the WooCommerce template file:

woocommerce/templates/cart/cart-shipping.php

We’ve filed a bug report on GitHub, here:

Failure to show “no shipping options” method in the cart-shipping.php template #44920

Temporary workaround

Because the problem is in a WooCommerce template file, we can workaround it by copying the broken template file into the custom child and fixing it.

In your site’s child theme, create a folder called “woocommerce/cart” so you will have a folder structure like this:

  • themes/
    • twentytwentyfour/
    • yourtheme/ << replace “yourtheme” with your theme’s name
      • functions.php
      • style.css
      • woocommerce/
        • cart/

Navigate to your site’s “plugins” folder and locate the file…

/woocommerce/templates/cart/cart-shipping.php

Copy “cart-shipping.php” into your child theme’s “woocommerce/cart” folder and then edit it. Find the section around line 30 that looks like this:

<?php if ( isset( $available_methods ) && is_array( $available_methods ) ) : ?>

Change the line to this:

<?php if ( isset( $available_methods ) && is_array( $available_methods ) && count( $available_methods ) > 0 ) : ?>

…and save the file.

Check the problem has been fixed by taking something to the checkout and selecting a country that you don’t ship to. You should see the original functionality restored 👍

Fixed WooCommerce checkout broken shipping message
Fixed the broken WooCommerce 8.6 checkout shipping behaviour

This fix has been tested with WooCommerce 8.6.1.

If you’re a Power Plugins customer and you want some help applying this fix, log in to your Power Plugins account, raise a support ticket and we’ll help you fix the problem.

Leave a comment