INDEPENDENT WEBSITE SUPPORT · NORTHERN IRELANDPlain answers. Work done properly.

Resources · Article

WooCommerce Local Pickup Not Working? Checkout Blocks and Legacy Local Pickup Are Not the Same

By THEED REWORK.CO · Published 31 August 2026

If Local Pickup isn’t showing in WooCommerce, the first thing I’d check is which Local Pickup system the shop is actually using.

WooCommerce currently has two of them.

One is the older Local Pickup shipping method that lives inside Shipping Zones.

The other is the newer Local Pickup system built for the Checkout Block.

They are not set up the same way, and advice for one can be completely wrong for the other.

That is why you can search for something like “WooCommerce Local Pickup not showing” and find one guide telling you to add Local Pickup to a shipping zone, while another tells you to go to:

WooCommerce → Settings → Shipping → Local Pickup

Both can be right.

They are just talking about different systems.

The important bit is knowing which one your checkout is using before you start changing anything.

WooCommerce has two Local Pickup systems

The older method is the one WooCommerce now calls legacy Local Pickup.

You add it to a Shipping Zone under:

WooCommerce → Settings → Shipping → Shipping Zones

If a customer matches a zone with Local Pickup enabled, they can see it.

The newer version works with the Checkout Block.

That one is configured separately under:

WooCommerce → Settings → Shipping → Local Pickup

It supports one or more pickup locations, doesn’t need the customer to enter a shipping address first, and can use the selected pickup location for tax calculations.

From the customer’s side, both options still look like “I’ll collect my order.”

Behind the scenes they work quite differently.

Which Local Pickup are you using?

A quick place to start is the checkout page itself.

If the page uses the modern Checkout Block, then it can use the newer block-based Local Pickup setup.

Customers get a Delivery section where they can switch between Ship and Pickup, then choose from whatever pickup locations you’ve added.

If the checkout page still uses:

[woocommerce_checkout]

then you’re on the older shortcode checkout, and Local Pickup is normally handled through Shipping Zones.

I’d check that before touching any shipping settings.

Otherwise it is very easy to follow the right instructions for the wrong checkout.

The new Local Pickup does not need a Shipping Zone

This is probably where most of the confusion comes from.

With the Checkout Block version, WooCommerce does not use Shipping Zones to configure Local Pickup.

You enable it from the dedicated Local Pickup settings and add your pickup locations there.

So if the shop is using the block version and somebody tells you:

“Just add Local Pickup to every shipping zone.”

I wouldn’t do that without checking the setup first.

That advice is for the legacy method.

WooCommerce also recommends not running both Local Pickup systems together because customers can end up seeing duplicate or confusing pickup choices.

Why is Local Pickup showing to customers outside my area?

This catches people out with the newer version.

Checkout Block Local Pickup is not restricted by Shipping Zones.

So somebody nowhere near the business can still see Pickup as an option.

That does not automatically mean something is configured wrong.

It is how the newer core Local Pickup works.

If the business needs Pickup to be available only in certain postcodes, countries or shipping zones, WooCommerce currently points people back towards the legacy Local Pickup method.

There are extensions and custom ways around that, but I wouldn’t start adding more to the shop until I knew the built-in behaviour didn’t suit what the business actually needs.

Why have my Local Pickup settings disappeared?

This is another one where the checkout type matters.

The dedicated:

WooCommerce → Settings → Shipping → Local Pickup

setup belongs to the Checkout Block version.

So if somebody changes the checkout back to the classic shortcode version, they can easily think WooCommerce has moved or removed the setting.

Before assuming anything is broken, I’d check whether the checkout itself has been changed.

That is often a much quicker answer than digging through Shipping Zones and plugins.

Seeing Local Pickup twice?

If customers can see two Pickup choices, I’d check whether both systems are enabled.

You can have:

  • legacy Local Pickup inside a Shipping Zone
  • Checkout Block Local Pickup

running on the same shop.

WooCommerce recommends avoiding that unless there is a very specific reason for it.

If the shop is using the newer Checkout Block setup, I wouldn’t leave the old zone-based version switched on as well just because it was already there.

The tax behaviour is different too

There is another difference that can cause confusion.

The older Local Pickup method uses the store location for its pickup tax behaviour.

The newer Checkout Block version can use the address of the pickup location the customer actually selected.

That matters more if the shop has several pickup points.

So if the tax changes after moving from legacy Pickup to the block version, I wouldn’t assume the tax settings are broken straight away.

I’d check whether WooCommerce is now calculating from a different location.

Old Local Pickup snippets may be for the wrong system

A lot of Local Pickup customisations online were written for the old shipping method.

They may be looking for things like:

local_pickup

Shipping Zones or classic checkout hooks.

The newer block-based Pickup system doesn’t work exactly the same way.

So if I found an old PHP snippet that claims to hide fields, restrict Pickup or change how Local Pickup behaves, I’d check what checkout it was written for before putting it anywhere near a live shop.

The fact it says “WooCommerce Local Pickup” doesn’t mean it works with both versions.

Local Pickup appears, but Place Order does nothing

This is where the Pickup setup itself may be fine.

WooCommerce currently has confirmed Checkout Block bugs involving customers switching between Ship and Pickup during checkout.

One affects customers who start with Shipping and then change to Pickup.

The other affects the reverse direction.

Both are connected to validation information being left behind when WooCommerce swaps one address form for another.

Shipping to Pickup

WooCommerce issue #67674 was opened on 12 August 2026.

A customer can start with Ship selected and leave part of the shipping address incomplete.

WooCommerce records an error for the missing field.

If the customer then switches to Pickup, that Shipping form disappears.

They can fill in everything they can see and press Place Order, but checkout may still refuse to continue because the old Shipping error is still sitting in WooCommerce’s validation store.

From the customer’s side, it can look like the button simply isn’t doing anything.

Pickup to Shipping

Issue #67618, opened the day before, covers the other direction.

A customer starts with Pickup, then switches to Shipping and selects a complete address using address autocomplete.

A stale Billing validation error can interfere with the address data WooCommerce uses when recalculating shipping.

Again, what is on screen can look perfectly fine while WooCommerce still has an old validation problem sitting in the background.

A hidden error is still an error

This sounds odd until you look at how Checkout Blocks handles validation.

WooCommerce can mark an error as:

hidden: true

That hides the message.

It does not clear the error.

So if WooCommerce still has that error in its validation store when the customer tries to place the order, checkout can stop.

That’s the important bit with these current bugs.

The customer can complete every field they can actually see and still be blocked by something from a form that has already disappeared.

How I’d diagnose Local Pickup not working

I wouldn’t start by clearing caches or adding random shipping methods.

I’d first work out what the customer actually means by “Local Pickup isn’t working.”

If Pickup never appears, I’d check which checkout is being used, which Local Pickup system is enabled and whether that system is configured properly.

If Pickup appears twice, I’d check whether both the old and new systems are active.

If Pickup appears for customers outside the area you expected, I’d check whether the shop is using the newer block version, because that one is not limited by Shipping Zones.

If checkout only breaks after switching between Ship and Pickup, I’d look at the current Checkout Block validation bugs before rebuilding the shipping setup.

Those are all very different problems.

Should I add Local Pickup to every Shipping Zone?

Only if you’re using the legacy Local Pickup method and you actually want it available in those zones.

I wouldn’t do that on a Checkout Block shop just because a search result tells you to.

The newer Local Pickup system isn’t set up that way.

This is one of those cases where an old answer can still be technically correct and still be wrong for the shop in front of you.

Should I switch back to legacy Local Pickup?

Maybe.

The newer version gives you a cleaner Pickup flow, multiple pickup locations and better handling of pickup-location tax.

But it also ignores Shipping Zones when deciding who can see Pickup.

If the business genuinely needs Pickup limited to certain areas, the legacy method may still suit that setup better.

I wouldn’t use one just because it is newer.

I’d use the one that actually does what the shop needs.

Should I change back to the classic checkout?

Not just because Local Pickup has a problem.

If the issue is one of the confirmed Checkout Block bugs, moving back to classic checkout may make the symptom disappear.

That doesn’t automatically make it the right long-term fix.

I’d first check whether WooCommerce has released a fix, whether the problem can be reproduced cleanly and whether anything else on the shop depends on the block checkout.

Changing the whole checkout is a much bigger job than fixing one delivery option.

Don’t fix the wrong Local Pickup

There are two WooCommerce Local Pickup systems with the same name.

One lives in Shipping Zones.

One has its own Local Pickup settings and works with the Checkout Block.

One can be limited by Shipping Zones.

The other can’t.

And the block version currently has its own Ship and Pickup validation bugs.

So before changing anything, I’d check which one the shop is actually using.

Otherwise you can spend ages fixing a Shipping Zone that the checkout doesn’t use, adding PHP written for the wrong Local Pickup method, or chasing a configuration problem when WooCommerce itself is holding onto an old validation error.

A lot of the advice online isn’t necessarily wrong.

It is just talking about a different Local Pickup system.

Frequently asked questions

Why is WooCommerce Local Pickup not showing?

That depends on which Local Pickup system the shop uses.

For the legacy method, check the customer’s Shipping Zone and make sure Local Pickup is enabled there.

For Checkout Block Local Pickup, check that the modern Local Pickup option is enabled and that at least one pickup location has been added.

Does WooCommerce Local Pickup need a Shipping Zone?

The legacy method does.

The newer Checkout Block version does not.

Why do I have two Local Pickup options?

Usually because both the legacy Shipping Zone method and the newer Checkout Block method are enabled.

I’d check that first.

Can I restrict Checkout Block Local Pickup by postcode?

Not through WooCommerce’s normal Shipping Zones.

If Pickup has to be limited geographically, the legacy method may suit the shop better unless you’re using an extension or custom setup.

Why does Place Order stop working after I switch to Pickup?

If you’re using the Checkout Block, there are confirmed WooCommerce bugs involving stale validation errors when customers switch between Shipping and Pickup.

If it only happens after changing delivery method, I’d check those before assuming the Pickup settings themselves are wrong.