How to Remove Specific Billing and Shipping Fields from WooCommerce Checkout and My Account Address Page

Hey everyone, Paul here! I’ve always enjoyed experimenting with WooCommerce, especially if it helps make the checkout process simpler for customers. Today, I’m going to walk you through a neat way to remove certain billing and shipping fields from WooCommerce’s checkout and My Account address pages. Whether you want to shorten your forms to reduce cart abandonment, or you only ship digital products that don’t need a physical address, this will come in handy. By the end of this post, you’ll be ready to fine-tune your store’s checkout flow like a pro.

remove specific billing shipping fields woocommerce 01

Understanding WooCommerce Checkout and My Account Pages

Before diving into the code, I want to lay some groundwork about WooCommerce’s checkout and My Account pages. By default, WooCommerce sets up a fairly detailed checkout form to accommodate both physical and digital product sellers. Most fields revolve around collecting the buyer’s personal and shipping details—like their address, phone number, and zip code. The My Account page, on the other hand, provides a place for customers to update their profile information or check their orders.

Now, these forms are robust, but sometimes they’re overkill. Maybe you’re selling digital products, like online courses or downloadable PDFs. In those cases, you don’t really need someone’s street address or phone number. By trimming the extra fields, you can streamline the process, reducing potential friction for your customers. After all, fewer fields often mean fewer barriers to purchase.

I’ve found that customizing these fields is a direct way to improve user experience. When customers see a short and sweet checkout form, it boosts trust and speeds them through to payment. That’s why removing certain billing and shipping fields can be a game-changer—especially if your products or services don’t require shipping. Let’s move on to the reasons you might consider stripping away these fields, then I’ll show you how to do it with a neat code snippet.

Why Remove Billing and Shipping Fields?

You might be wondering: “Paul, why bother messing with default fields?” I get it—sometimes it’s easier to just roll with WooCommerce’s defaults. But there are plenty of good reasons to customize these checkout pages:

  1. Faster Checkout: Fewer fields means customers spend less time typing, which can reduce cart abandonment rates. It’s not unusual for customers to ditch a purchase simply because the form seems too long.
  2. User Experience: Imagine you’re only selling digital downloads or subscription-based services. Asking for someone’s street address and phone number can feel unnecessary and even invasive.
  3. Data Privacy: With privacy regulations popping up around the globe, collecting less data can be a plus. It shows your customers you respect their personal information, and it reduces your liability.
  4. Better Branding: A simpler checkout can feel more in line with a modern, tech-savvy brand. If you’re all about convenience, your forms should reflect that.

Personally, I love how making a checkout more intuitive can build trust. Customers appreciate an effortless purchase process. And if you’ve got a customer’s shipping details hidden away simply because you don’t need them, you’re making everyone’s life easier. Now that we’ve covered the “why,” let’s jump into the actual “how” of removing specific fields—step by step.

Quick Overview of the Code Snippet

The code you’ll be adding or modifying in your WordPress theme primarily targets WooCommerce’s billing and shipping fields. Once you drop this into your functions.php file—or a custom plugin if you prefer not to touch the theme directly—it will remove certain fields from the checkout form. It also removes them from the My Account address page to keep things consistent.

Here’s a high-level overview of what the snippet does:

  1. Hooks into WooCommerce Checkout Fields: By using add_filter( ‘woocommerce_checkout_fields’, … ), we can modify or unset certain billing and shipping fields before they’re displayed on the checkout page.
  2. Removes Specific Fields: We target addresses, phone numbers, and more. For billing, it’s things like billing_address_1, billing_city, etc. For shipping, it’s shipping_first_name, shipping_city, and so on.
  3. Adjusts My Account Fields: By hooking into the woocommerce_address_to_edit filter and others, we make sure these fields don’t show up on the customer’s My Account page either.
  4. Removes Validation: Just removing fields from the page isn’t enough. We also need to disable validation for them, so WooCommerce doesn’t throw errors for missing information.

This snippet is a straightforward way to customize your store’s checkout experience. Don’t worry if you’re not super technical—I’m breaking down each part so it’s easy to follow.

The Code Snippet in Detail

Below is the main code snippet you can use. Copy and paste it into your theme’s functions.php file or a custom plugin. Remember, always back up your site before making changes!

Pretty straightforward, right? Let me show you exactly what each part does in the next sections so you can tweak it if needed.

Removing Billing Fields

In the snippet, the core function for removing billing fields from the checkout page is within the custom_remove_woo_fields function. It uses the unset() function on items such as billing_address_1, billing_address_2, billing_city, billing_state, billing_postcode, and billing_phone. Because WooCommerce organizes these fields into arrays, targeting them is as simple as referencing ‘billing’ => array( ‘field_name’ ) and unsetting the fields you don’t need.

Here’s why this is crucial: if your store doesn’t require a physical location for orders—for instance, you sell only PDFs or software—then removing the address fields helps streamline the checkout flow. If you still need them, simply comment out the lines you don’t want to remove. This allows you to tailor the experience to your store’s exact needs.

Remember, if you remove too many fields and your business actually does require a shipping address (for physical goods), you’ll end up with incomplete orders. So make sure you remove only what isn’t necessary for your workflow. The flexibility here is what makes WooCommerce so powerful, especially when you want a frictionless user experience.

Removing Shipping Fields

Next up is the shipping section of the code. You’ll notice that within the same custom_remove_woo_fields function, there’s a block specifically for shipping:

This part clears out all the standard shipping fields: first name, last name, company, country, address lines, city, state, and postcode. It’s perfect if you don’t require shipping details at all. Maybe you’re shipping everything to a single location, or your store is purely digital.

Additionally, the code snippet includes a filter for removing the shipping address fields from the My Account page. That way, users won’t see these fields under their address settings. It keeps things consistent across your site—nothing is more confusing for customers than seeing mismatched forms. If you want to keep shipping addresses for your physical products, you can comment out or remove the lines that unset those fields. Fine-tuning is key here, and that’s one of the best parts of this snippet.

Removing Fields from the My Account Address Page

At the heart of customizing the My Account address page is the custom_remove_woo_account_fields function. This function hooks into woocommerce_address_to_edit and checks whether the loaded address is billing or shipping. Depending on what’s being loaded, it unsets the corresponding fields. This ensures that if you decided to remove the address fields at checkout, you won’t have them mysteriously reappear in a user’s account page later on.

As a bonus, you’ll notice the snippet also includes a filter:

This one-liner removes the shipping address section entirely from the My Account page if that fits your business model. That’s convenient for stores that don’t ship physical products. Less clutter, more clarity—your customers will thank you.

As always, I like to remind folks: think about your store’s needs first. If you do ship products, maybe you just want to keep the shipping details but remove the phone number or zip code. This is all about customizing the user experience in a way that matches your brand and product line. By keeping only the relevant fields, you’ll simplify account management and keep your customers focused on what matters: their orders.

remove specific billing shipping fields woocommerce 02

Disabling Validation for Removed Fields

Removing fields from the user interface isn’t always enough. If WooCommerce still tries to validate these fields on submission, you’ll end up with error messages that confuse shoppers. That’s where the custom_unset_required_account_fields function comes in. It unsets the validation requirements for the removed fields so WooCommerce doesn’t complain about missing data.

In simpler terms, it’s like telling WooCommerce, “Hey, we no longer need the billing address or phone number, so don’t ask if they’re missing.” This step is crucial if you want a truly seamless checkout. Otherwise, your fancy removal of these fields might be all for nothing because the system would still demand the information.

If there are other fields you decide to remove later, don’t forget to update this validation filter. And if you change your mind and add fields back, you’ll want to remove them from this filter so they’re once again validated. WooCommerce is flexible, but always keep the code consistent with whatever fields you show on the front end.

Testing and Troubleshooting

Once you’ve implemented your changes, it’s time to test! Testing is super important. Here’s my usual checklist:

  1. Check the Checkout Page: Open a private browsing session to simulate a new customer. Add an item to your cart and head to checkout. Confirm that the removed fields are gone and that there’s no error message about missing data.
  2. Check My Account Page: Log in as a customer, then go to the Addresses tab. See if the removed fields or the entire shipping address section are indeed hidden. Make sure it still looks tidy and professional.
  3. Review Email Notifications: Sometimes removing these fields can affect order emails. Place a test order and see if the details show correctly in both the admin and customer emails.
  4. Try Different Products: If you have both digital and physical items, test orders with each type to ensure the checkout still meets your needs.

If something looks off, don’t panic. Usually, it’s a small detail like the function’s priority or a spelling error in the field key. Double-check your code, especially the field names. WooCommerce is pretty clear about what each field is called in its documentation, so verifying that you’re unsetting the right fields is key.

By running through these tests, you’ll catch any quirks before your actual customers do. It’s all about delivering a smooth experience, so don’t be afraid to take a few extra minutes to validate everything.

remove specific billing shipping fields woocommerce 03

Going Beyond: Further Customizations

Now that you’ve seen how to remove fields, what else can you do? The possibilities are endless. For instance, you might:

  • Rearrange Fields: Maybe the order of fields could be more logical. WooCommerce lets you reorder them by hooking into the same filters, adjusting the priority or sorting array keys.
  • Change Labels or Placeholders: If you still need an address field but want to rename it (e.g., “Where should we email your eBook link?”), you can do that by customizing the label.
  • Use Conditional Fields: Show or hide fields based on user choices. For example, if someone selects “Physical Product” from a dropdown, then reveal the address fields. Otherwise, keep them hidden.
  • Style Changes: Don’t forget you can always tweak the CSS to style your form and make it consistent with your site design. If you’re using a page builder or a custom theme, you might do it from within those tools.

Really, the goal here is to streamline and personalize. WooCommerce is flexible, but it’s up to you to make it feel like a perfect fit for your brand. Removing unnecessary fields is a great start, but don’t hesitate to keep refining to give your shoppers the best possible experience. It’s all about building trust and ensuring a frictionless path to that final “Place Order” button.

Conclusion

And that’s a wrap! Removing extra billing and shipping fields in WooCommerce isn’t just about tidying up your checkout page—it’s about boosting conversion rates, building trust, and simplifying the user experience. Whether you sell digital goods that don’t need a physical address, or you just want a leaner form, this tweak can make a big impact. With a few lines of code, you can smooth out the checkout process, remove potential hurdles, and keep your customers focused on completing their order. Thanks for reading, and feel free to explore even more customizations to make your online store stand out.

FAQ

Will removing these fields affect my tax calculations?

Not usually. WooCommerce calculates tax based on the information you choose to keep. If you remove all address fields, tax settings might need to rely on your base store location. Always verify your tax setup after making changes.

What if I need to collect partial information, like only the phone number?

Just comment out the lines for the fields you still need. For example, remove unset($fields[‘billing_phone’]); from the code snippet, and phone fields will remain.

Is it safe to remove all shipping fields if I use dropshipping?

That depends on your dropshipping process. If your supplier still needs a shipping address, you probably shouldn’t remove those fields. Always align your checkout fields with your fulfillment processes.

signature

Leave a Comment

Shopping Cart
Scroll to Top
Receive the latest news

Subscribe to my Newsletter...

Get notified about new articles