FunnelKit
FunnelKitBlogs

How to Remove the Address Field from WooCommerce Checkout

Updated:  Jun 26, 2026
Written by: 
Author: Editorial Team
Editorial Team
Author: Editorial Team Editorial Team

The FunnelKit Editorial Team is a group of WooCommerce experts with 10+ years of combined experience. We create actionable guides based on hands-on testing, industry research, and user feedback to help eCommerce businesses grow.

How to Remove the Address Field from WooCommerce Checkout

Removing the address field from WooCommerce checkout means taking out the billing and shipping address lines that your customers do not actually need to fill in.

For stores selling digital products, services, or subscriptions, those fields add friction without serving any purpose.

In this guide, we will show you how to remove the billing and shipping address from your WooCommerce checkout in four ways: with a WordPress plugin and no code, through the block checkout editor, and with custom PHP for both the classic and the block checkout.

We will also show you how to fix the address required error that can block orders after you remove a field, and how to remove address fields only for virtual products.

Quick Answer: Pick Your Method

MethodWorks on classic checkoutWorks on block checkoutCode needed?Best for
1. Checkout plugin (FunnelKit)✅ Yes✅ Yes (replaces the checkout)❌ NoAnyone who wants it to stick through updates
2. Block editor field toggles❌ No✅ Yes (Phone, Company, Address 2 only)❌ NoQuick wins on the default checkout
3. PHP snippet✅ Yes (woocommerce_checkout_fields)✅ Yes (woocommerce_get_country_locale)✅ YesDevelopers who want full control
4. WooCommerce settings✅ Yes✅ Yes❌ NoHiding shipping on virtual-only carts

Let’s explore all these methods one by one.

Classic Checkout vs. Block Checkout: Why Your Method Matters

WooCommerce ships two different checkouts, and they don’t respond to the same code.

The block checkout (built on the Cart and Checkout blocks, sometimes called the Gutenberg checkout) has been the default for new stores since WooCommerce 8.3, but only on sites running a block theme.

The classic checkout uses the [woocommerce_checkout] shortcode and is still what most older stores and classic-theme sites run.

The old woocommerce_checkout_fields filter to remove WooCommerce address fields does nothing on the block checkout.

The block checkout took back control of how fields are rendered and validated.

So if your old snippet suddenly stopped removing the address, it's not broken. Your checkout changed underneath the code.

How to tell which checkout you’re running:

  • In your WordPress dashboard, go to Pages ⇨ Checkout and open it in the editor.
  • If you see a single Checkout block with its own settings panel on the right, you’re on the block checkout.
  • If you instead see [woocommerce_checkout] sitting inside a shortcode block, you’re on the classic checkout.

Every method below is labeled for the checkout it works on.

Method 1: Remove Address Fields With a Checkout Plugin (Works on Any Checkout)

If you want a method that works on both checkouts and survives WooCommerce updates, a dedicated checkout plugin is the most reliable route. FunnelKit is built for exactly this.

FunnelKit's checkout replaces the native WooCommerce checkout entirely. That means it’s immune to the block-hook lockdown that’s breaking everyone’s PHP snippets.

You’re no longer fighting the block checkout’s field restrictions because you’re using a no-code checkout field editor that lets you add, reorder, and delete fields with drag-and-drop.

The code that kept breaking isn’t your problem anymore because it's gone.

Get FunnelKit Funnel Builder for your WordPress site by clicking on the button below:

Make sure to install and activate FunnelKit Funnel Builder on your website. 

Step 1: Create a store checkout

First, you need to create a store checkout page.

Navigate to the FunnelKit > Store Checkout and click on the Create Store Checkout.

WooCommerce Remove Address from Checkout

Choose the best checkout template that fits your needs. We recommend using the “Shoppe”. Because it’s sleek, elegant and seems nice.

You can also choose a page builder, such as Elementor, Divi, Gutenberg, Bricks, or Oxygen, to customize your page.

Choosing the template for the checkout

Once you have checked everything, click on “Import this Funnel”.

WooCommerce Remove Address from Checkout

Then, provide a good name for your store checkout page.

Provide a name for the template

Step 2: Customize the store checkout page

Next, click on the “Checkout” button to customize it.

Customize the store checkout page

On the checkout page, you’ll get the available checkout fields.

Customizing the checkout page

Step 3: Remove the billing address from the WooCommerce checkout page

Imagine you sell digital products like eBooks or online courses. Since no shipping is involved, you don't need to ask for a billing address.

On the customization page, click the cross icon to remove the billing address from the checkout form.

removing the address

So, it’s removed from the checkout.

Removed the address field

After removing the billing address, this is how it looks:

Full page of the checkout form

Step 4: Remove the shipping address from the WooCommerce checkout page

Suppose you sell digital products like software or online memberships. Since no physical delivery is required, you don’t need a shipping address.

On the same page, just click on the cross button, or you can click on the “Delete” icon to remove the entire address section.

Removed the address

After removing the shipping address, you can see that the section is no longer here.

Since we are removing the shipping address, there is no need to keep the shipping method. So we are also removing it.

WooCommerce Remove Address from Checkout

Let’s see how it looks on the checkout page without the shipping address.

checkout page without the shipping address.

Because FunnelKit handles validation on its own checkout, you also sidestep the “field is required” error that trips up the code methods.

This is the path we’d point most non-developers to because it’s the one that doesn’t break on the next update.

Method 2: Hide Address Fields in the Block Checkout Editor (Works on Block Checkout Only)

To remove the address field in the settings, navigate to Appearance > Themes > Customize, then select the checkout option under WooCommerce.

In the block settings panel on the right, you’ll see options to set Phone, Company, and Address line 2 as optional or hidden.

Note: Different themes have different options for theme customization. Check out your theme to find the theme editor. Here, we’re using the StoreFront theme.

Here, make the address line 2 hidden. The extra address line is disabled on the checkout page.

making the address field hide

These three fields are special as their state (required, optional, or hidden) is saved to the database as a WooCommerce option, so the setting sticks.

The other address lines (address 1, city, state, postcode) can't be toggled here. For those, you need Method 1 or Method 3.

Please note that if you hide address line 1, address line 2 is skipped automatically, so you don’t need to hide it separately.

This is the fastest no-code win on the default checkout, but it only gets you partway. To clear the full address section, keep reading.

Method 3: Remove Address Fields With PHP

If you want more control over the checkout fields in WooCommerce, you can remove the address fields using custom PHP code.

Always add custom PHP through a child theme’s functions.php or a code snippets plugin like WPCode, and never directly in the parent theme, or your changes will vanish on the next theme update.

We recommend that you back up your site first before proceeding.

Block checkout snippet (woocommerce_get_country_locale)

On the block checkout, the filter that actually reaches the address fields is woocommerce_get_country_locale. This snippet hides and un-requires the street-level address fields for every country:

add_filter( 'woocommerce_get_country_locale', function( $locales ) {
    foreach ( $locales as $country => $locale ) {
        foreach ( array( 'address_1', 'address_2', 'city', 'state', 'postcode' ) as $field ) {
            $locales[ $country ][ $field ]['required'] = false;
            $locales[ $country ][ $field ]['hidden']   = true;
        }
    }
    return $locales;
}, 100 );

Follow these rules to help you save time when debugging:

  • Adding the country to the loop above causes the block checkout to break and re-show all the fields. Country has to stay (hide it with CSS if you must, see the validation fix below).
  • Use boolean true/false, not the strings "true"/"false". The string version silently fails.

Classic checkout snippet (woocommerce_checkout_fields)

This is for classic (shortcode) checkout only. This snippet removes the billing fields entirely:

add_filter( 'woocommerce_checkout_fields', function( $fields ) {
    unset( $fields['billing']['billing_company'] );
    unset( $fields['billing']['billing_address_2'] );
    unset( $fields['billing']['billing_city'] );
    unset( $fields['billing']['billing_postcode'] );
    unset( $fields['billing']['billing_state'] );
    // Keep billing_country, or the order will fail.
    return $fields;
}, 100 );

To strip shipping fields instead, target $fields['shipping']['shipping_city'] and so on. To remove only billing, leave the shipping array untouched (and vice versa).

When you unset fields with woocommerce_checkout_fields, keeping the locale in sync is quite crucial.

On classic checkout, pair field removal with a locale update (or just keep your changes minimal and test thoroughly).

The code path works, but if you’re not comfortable maintaining snippets through every WooCommerce release, Method 1 is the safer long-term home.

Method 4: Hide the Shipping Address via WooCommerce Settings (Virtual Products Only)

This method works for both checkouts but has a limited scope (as mentioned below).

If your products are virtual (no shipping at all), WooCommerce will stop asking for a shipping address on its own:

  • Edit each product and tick the Virtual checkbox under the Product data panel. This removes the Shipping tab and tells WooCommerce there’s nothing to ship.
  • Go to WooCommerce ⇨ Settings ⇨ Shipping and, if you have no physical products at all, you can disable shipping zones entirely.

This removes the shipping address prompt, but the billing address fields stay on the form. So this is a partial fix, not a “name and email only” checkout.

To clear the billing address too, combine this with Method 1, 2, or 3. If you came here to drop both address blocks, treat this as a complement to the other methods rather than a replacement.

Tip: Before editing any code, it’s always a good idea to back up your functions.php file. This ensures you can restore it if anything goes wrong.

How to Fix the 'Address Is Required' Error After Removing Fields?

Even if you hide the address, the order won’t be placed. An error with "Postcode is required", "Please enter an address", or the Place Order button does nothing.

Here are the reasons why and how to fix each cause.

The core problem is that hiding a field on the front end doesn’t make it optional on the back end.

WooCommerce still validates it server-side, so a hidden-but-required field blocks the order if the customer can’t even see it.

Work through these four fixes:

  • Make it "not required": Whenever you set 'hidden' => true, also set 'required' => false for the same field (as in the Method 3 block snippet). A hidden field that’s still required is the most common cause.
  • Keep the Country field: WooCommerce needs a country to calculate tax and complete the order. Don’t remove or hide the country in the locale filter, as it'll break the block checkout and re-show fields. If you don’t want customers to see it, leave it in place and hide it visually with CSS instead: billing_country_field { display: none; }
  • Use boolean values, not strings: 'required' => false works; 'required' => "false" does not. The string is truthy in PHP and keeps the field required silently.
  • Don’t disable validation by leaving a required field on the form: If a field exists for a gateway or tax, but you want it optional, set it to not required rather than hiding it. A visible-but-empty required field is what prevents the Place Order button from being enabled.

Remove Address Fields for Virtual Products Only (Conditional Logic)

Keep the full address for physical orders, but strip it when the cart contains only virtual/downloadable products.

You can do this conditionally on the classic checkout by checking the cart before WooCommerce renders the fields:

add_filter( 'woocommerce_checkout_fields', function( $fields ) {
    if ( ! WC()->cart ) {
        return $fields;
    }

    $only_virtual = true;
    foreach ( WC()->cart->get_cart() as $item ) {
        $product = $item['data'];
        if ( $product && ! $product->is_virtual() ) {
            $only_virtual = false;
            break;
        }
    }

    if ( $only_virtual ) {
        foreach ( array( 'billing_address_1', 'billing_address_2', 'billing_city', 'billing_state', 'billing_postcode', 'billing_company' ) as $field ) {
            unset( $fields['billing'][ $field ] );
        }
    }

    return $fields;
}, 100 );

On the block checkout, conditional field logic based on cart contents is far harder to implement reliably with the locale filter alone, since locale is country-based rather than cart-based.

For mixed catalogs where you need this behavior on the block checkout, a checkout plugin that owns its own rendering (Method 1) is the pragmatic answer.

Remove the Address From Order Emails, Admin, and the Thank-You Page

Once the address is gone from checkout, the next question is why it is still showing up in the order confirmation email, the admin order screen, and the thank-you page.

Those pull from order meta and address formatting, not the checkout form, so removing the field doesn’t clear them automatically.

To stop an empty or unwanted billing address block from rendering in emails and on-screen, filter the formatted address:

add_filter( 'woocommerce_order_formatted_billing_address', function( $address, $order ) {
    // Return only the fields you kept (e.g. name + email handled elsewhere).
    return array(
        'first_name' => $order->get_billing_first_name(),
        'last_name'  => $order->get_billing_last_name(),
    );
}, 10, 2 );

For the admin order screen, the same formatted-address filters apply, and you can hide leftover blocks using targeted CSS.

5 Things to Consider While Removing the Address Field from the WooCommerce Checkout Page

Removing address fields from your WooCommerce checkout page might seem like an easy way to simplify the process, but there are a few things you should keep in mind before making those changes.

Let’s review some important considerations to ensure you’re doing it right.

1. Are you selling physical products?

Removing address fields entirely isn’t ideal if your store sells physical products. You'll still need accurate shipping details to fulfill orders. However, you can sometimes safely remove shipping and even billing fields for digital products or services.

To further optimize checkout, consider a multi-step process that breaks the checkout into clear steps to improve the user experience.

You can also A/B test checkout pages to find the version that converts best, ensuring a smooth and efficient checkout process.

2. Compliance with tax regulations

In some regions, the law may require you to collect billing addresses to calculate taxes properly. For example, collecting the billing address in the EU is important for VAT (Value Added Tax) compliance.

Make sure removing billing address fields doesn’t violate your business region's tax or legal obligations.

3. Fraud prevention

Payment gateways, such as credit card companies, often use billing address information to help detect fraud. 

Removing the billing address field could increase the risk of fraudulent orders, especially if you rely on payment methods like credit cards.

Consider how this might impact your ability to verify transactions and protect against fraud.

4. Impact on shipping calculations

Without address fields, you'll no longer have shipping details to calculate shipping costs. If you need to charge customers based on their location, you’ll have to find another way to determine their location. 

If you plan to offer shipping, consider using a "one-page checkout" or enabling customers to enter their location another way.

5. Test before going live

Before you change your checkout page live, test it thoroughly. Ensure you can process orders properly, especially if you’ve altered shipping or billing details.

Test it across different devices (especially mobile) and try completing orders as a customer to ensure a smooth user experience. You don't want to make changes that might break your customers' checkout process.

Frequently Asked Questions

Why should I remove the address field from my WooCommerce checkout?

WooCommerce’s default checkout collects a lot of information, but if you're selling digital products or services, much of it may be unnecessary.

Removing the address field can simplify the process, speed up checkout, and improve the overall experience. Here's why it's worth doing:

  • Faster checkout: Customers complete purchases more quickly with fewer fields.
  • Ideal for digital products: No need to collect shipping addresses when nothing is being shipped.
  • Reduced cart abandonment: Long forms frustrate shoppers. A simpler checkout keeps them moving.
  • Cleaner layout: A tidy, focused form improves the user experience.
  • Mobile-friendly: Fewer fields are easier to fill out on small screens.
  • Less manual work: You save time by skipping data you don’t need to process.

A simplified checkout helps you sell more while making things easier for your customers.

Can I have a WooCommerce checkout with only name and email?

Yes, for virtual products. Remove the address fields, but keep the Country field running in the background so WooCommerce can complete the order. A checkout plugin makes a true name-and-email checkout much easier to maintain.

Is it safe to use custom code to remove the address field in WooCommerce?

Using custom code might seem like a quick fix, but it comes with risks. Even a small error can break your checkout or conflict with theme or plugin updates. If you're not experienced with PHP or WooCommerce hooks, you could unintentionally impact order processing or customer data collection.

For a safer, more reliable solution, it's better to use a trusted plugin like FunnelKit Funnel Builder, which lets you remove fields without touching any code. We shared the whole process in this blog.

Will removing the billing address break Stripe or PayPal?

It might. Some gateways use the billing address for AVS fraud checks or to authorize the charge. Always run a live test order with your real gateway before going live.

Streamline Your WooCommerce Checkout and Recover Lost Sales!

The reason this used to be a one-snippet job and now isn’t is because WooCommerce split into a classic checkout and a block checkout, and they don’t obey the same code.

Figure out which one you have, then strip the address fields the way that checkout supports, block editor toggles, or the get_country_locale filter on the block checkout, the classic checkout_fields filter on the shortcode checkout, or a no-code checkout editor that sidesteps the whole hook problem by replacing the checkout entirely.

For most stores, we recommend FunnelKit Funnel Builder, since it removes fields with a few clicks, works regardless of the block-checkout limitations, and optimizes the rest of your funnel at the same time.

Ready to build a faster checkout that converts? Get FunnelKit Funnel Builder and start streamlining your checkout today.

Related Blogs
WooCommerce Cross Sell - FunnelKit

Editorial Team

How to Cross-Sell Products in WooCommerce to Boost Sales and AOV (2026 Guide)

WooCommerce ships with a built-in cross-sell field, but it only fires on the cart page, which covers only a fraction of where shoppers actually decide to add more to their...

Best WooCommerce Payment Gateways - FunnelKit

Editorial Team

The 8 Best WooCommerce Payment Gateways in 2026 (Detailed Comparison)

Choosing the right payment gateway is one of the most important decisions for your WooCommerce store because it directly affects your sales, cash flow, and customer trust. I learned this...

How to Customize WooCommerce Order Confirmation Emails for Better Engagement

Editorial Team

WooCommerce Order Confirmation Email: A Complete Setup Guide

There are two things most people get wrong about the WooCommerce order confirmation email. First, they don't realize it's the Processing order email they need to switch on and not...

Published by: Editorial Team
The Editorial Team at FunnelKit (formerly WooFunnels) is a passionate group of writers and copy editors. We create well-researched posts on topics such as WordPress automation, sales funnels, online course creation, and more. We aim to deliver content that is interesting and actionable.
Thank you for reading. Stay connected with us on the Facebook group, X (Twitter), LinkedIn and YouTube channel for more tips to help grow your business.
Join Over 40,300+ Sellers Increasing Profits with FunnelKit! 🚀
Join FunnelKit
FunnelKit Checkout gives you beautiful, ready-to-use WooCommerce checkout templates, embed order forms, one-page checkouts, and more.
Join FunnelKit
Related Blogs
WooCommerce Cross Sell - FunnelKit

Editorial Team

How to Cross-Sell Products in WooCommerce to Boost Sales and AOV (2026 Guide)

WooCommerce ships with a built-in cross-sell field, but it only fires on the cart page, which covers only a fraction of where shoppers actually decide to add more to their...

Best WooCommerce Payment Gateways - FunnelKit

Editorial Team

The 8 Best WooCommerce Payment Gateways in 2026 (Detailed Comparison)

Choosing the right payment gateway is one of the most important decisions for your WooCommerce store because it directly affects your sales, cash flow, and customer trust. I learned this...

How to Customize WooCommerce Order Confirmation Emails for Better Engagement

Editorial Team

WooCommerce Order Confirmation Email: A Complete Setup Guide

There are two things most people get wrong about the WooCommerce order confirmation email. First, they don't realize it's the Processing order email they need to switch on and not...

Ready to Transform Your Store?
Join 40,300+ successful store owners who trust FunnelKit to power their businesses.
Conversion Optimized Checkout Pages
Increase Revenue with Smart Upsells
Capture Emails & Recover Abandoned Carts
Automate Winbacks & Repeat Sales
986+ 5 star reviews on WordPress.org
Transform your store to power your business with FunnelKit
🚀 Maximize Your Profit with FunnelKit – Highest Rated with 986+ 5-Star Reviews
Get Started