Set up delivery charges in WooCommerce so customers see the right price at checkout. You'll create shipping zones (where you deliver), add rates to each zone (flat rate, free delivery over a set amount, or collection), and use shipping classes to charge more for bulky items.

  • Applies to: WooCommerce on any Host Dada plan
  • Time: 15 to 30 minutes
  • Difficulty: Intermediate

Before you start

  • WooCommerce installed, with your store address and Shipping location(s) set under WooCommerce → Settings → General (see Set up your online shop).
  • Your delivery prices worked out: what you charge for the UK mainland, any surcharge areas, and international delivery if you offer it.
  • Weights entered on your products if your courier prices by weight (see Add and manage products).

How shipping zones work

A shipping zone is an area you deliver to, such as "UK mainland" or "Europe". Each zone has one or more shipping methods (the delivery options customers choose from). WooCommerce checks the customer's address against your zones from the top of the list down and uses the first one that matches. So put small, specific zones (such as Highlands and Islands postcodes) above bigger ones (such as the whole UK).

Any address that doesn't match a zone falls into Rest of the world at the bottom of the list. If it has no methods, those customers can't check out, which is a simple way to stop orders from places you don't deliver to.

Create a zone for UK delivery

  1. Open shipping settings. Go to WooCommerce → Settings → Shipping. You'll see the Shipping zones list.
  2. Add a zone. Click Add zone and give it a Zone name customers won't see but you'll recognise, such as UK mainland.
  3. Choose the region. In Zone regions, start typing and choose United Kingdom (UK).
  4. Add a delivery method. Click Add shipping method, choose Flat rate and continue. Set the Name customers see (for example Standard delivery (2-3 working days)) and the Cost, such as 3.95. Save.
  5. Add free delivery (optional). Click Add shipping method again and choose Free shipping. Under Free shipping requires, choose A minimum order amount and enter it, for example 50. Save the method and the zone.
Hide paid delivery when free delivery appliesWooCommerce shows every available method, so a customer who qualifies sees both "Standard delivery £3.95" and "Free delivery". Most customers pick the free one, but a free "hide shipping when free is available" plugin can tidy this up.

Charge extra for remote UK postcodes

Couriers often charge more for the Scottish Highlands and Islands, Northern Ireland, the Isle of Man, the Isles of Scilly and the Channel Islands.

  1. Add another zone called something like UK surcharge areas, with region United Kingdom (UK).
  2. Limit it to postcodes. Use the option to limit the zone to specific postcodes, and enter one per line. Use * as a wildcard, for example BT* for all of Northern Ireland, HS* and ZE* for the Western Isles and Shetland, or a single district such as KW15*. Check your courier's own list of surcharge postcodes.
  3. Add a Flat rate with the higher cost.
  4. Drag this zone above your UK mainland zone in the list, so it's matched first, then save.

Set up local pickup (click and collect)

If your shop uses the modern checkout (the default on new WooCommerce shops), go to WooCommerce → Settings → Shipping → Local pickup. Tick Enable local pickup, set a title and an optional cost, then click Add pickup location and enter the location's name, address and collection details (such as opening hours). Customers can then choose between delivery and collection without typing a delivery address.

On older shops using the classic checkout, add Local pickup as a shipping method inside a zone instead.

Want customers to pay when they collect? Enable Cash on delivery for the local pickup method (see Take payments in WooCommerce).

Charge more for bulky items with shipping classes

  1. Create a class. Go to WooCommerce → Settings → Shipping → Classes, click Add shipping class, give it a name such as Large items and create it.
  2. Assign it to products. Edit each bulky product and, on the Shipping tab of Product data, choose the class. To do lots at once, use Bulk actions → Edit in the products list.
  3. Set the extra cost. Open each zone's Flat rate method. You'll now see a cost field for each shipping class. Enter the extra charge for Large items, and choose a Calculation type: Per class adds the charge for every class in the basket; Per order charges only the most expensive class.

Flat rate cost formulas

The Cost field of a flat rate can be a simple amount or a formula:

You wantEnter in Cost
£3.95 per order3.95
£3.95 plus £1 per item3.95 + ( 1 * [qty] )
10% of the order value[fee percent="10"]
10% of the order value, at least £4[fee percent="10" min_fee="4"]

For pricing by weight or by courier service, use a table-rate shipping extension or your courier's WooCommerce integration. Many UK couriers offer one; check your courier's website.

Other shipping options

Under WooCommerce → Settings → Shipping → Shipping settings (called Shipping options on some versions) you can show a delivery cost calculator on the basket page, hide delivery costs until an address is entered, and choose whether orders ship to the billing or delivery address by default.

Troubleshooting

"No shipping options were found" at checkout

The customer's address doesn't match a zone that has methods. Check the zone regions and postcodes, and that each zone has at least one enabled method. Also check the country is included in Shipping location(s) under Settings → General.

Customers are charged the wrong rate

Zones are matched top to bottom. Drag more specific zones (postcode-based) above general ones (whole country) and save.

Free delivery doesn't appear when it should

Check the minimum order amount, and whether it's calculated before or after coupon discounts (the Apply minimum order rule before coupon discount option). If prices include VAT, the minimum is checked against the order total including VAT.

Shipping costs don't change after editing them

Remove the item from your basket and add it again, or use a private browser window. WooCommerce remembers shipping costs for an existing basket.

Still stuck? Our UK support team is happy to help with anything hosting-related. Open a support ticket and tell us your domain name and an example address that's getting the wrong delivery price.

Last reviewed: October 2026

Was this answer helpful? 0 Users Found This Useful (0 Votes)