How to Remove the Billing Details from WooCommerce Checkout

If you purchase through a link on our site, we may earn a commission. Learn more.

When using WooCommerce, it will by default add a form for your customer to enter their billing details. Now for some cases, you might not want that, for example when purchasing a simple virtual product. Similarly, you might want to disable billing details for free virtual products. There is no option within WooCommerce to disable the billing details, but there's a plugin that makes it all very simple.
Table of Contents
WP Engine High Performance Hosting
BionicWP Hosting

When using WooCommerce, it will by default add a form for the client to enter their billing details. Now for some cases, you might not want that. In this post, we’ll look at a simple way to remove billing details from WooCommerce.

Skip ahead to the WooCommerce Checkout Field Editor plugin to remove additional information from WooCommerce checkout.

Let’s take a couple of examples. When purchasing a simple virtual product you may only want to send the user to PayPal without any other interference. Similarly, you might want to disable billing details for free virtual products. There is no option within WooCommerce to hide or disable the billing details, but there is a simple plugin that can do it for you.

If you want to easily edit the checkout fields in WooCommerce we highly recommend the official extension that exists specifically for this purpose.  If you’re not a developer and want a reliable solution for your e-commerce business, this is the way to go.

WooCommerce Checkout Field Editor

The WooCommerce Checkout Field Editor plugin includes a helpful set of options from which you can add, edit, and remove checkout fields shown on your WooCommerce checkout page.

Pro Tip: The WooCommerce checkout page isn’t great by default. Use the WooCommerce Fast Cart plugin to replace multiple checkout steps with a single on-page order form and simplify the process for everyone.

You can do everything from adding and removing information in the billing and shipping sections to inserting new fields after those sections where you typically find the “Order Notes”.

Remove billing details from WooCommerce with the Checkout Field Editor plugin.
Image courtesy of

Aside from the option to remove billing details from WooCommerce’s checkout, you’re free to move around the core fields without ever touching the code too. This gives you full control over your checkout experience so you can optimize it for your store’s and your customers’ needs.

The checkout field editor supports different custom field types. You can add and edit text fields, select fields, password fields, checkboxes, and even date-pickers. There’s a full list of them in their documentation.

If you’re a bit more creative you can also modify the “Billing details” section of your checkout (and others) in other ways. For example, you can assign each field to either be aligned right, aligned left, or take up the full width. This alone can make your checkout process feel shorter and simpler, which will help to increase your conversions.

Checkout Field Editor

Easily add, edit, and disable additional information from your WooCommerce checkout. Start improving your conversion rates today!

Get started today!

Add Custom Fields

That’s right. Aside from just editing existing fields in the WooCommerce checkout page, you can also add your own custom ones!

For example, add a delivery date field so customers can pick the date when to have their shopping delivered. 

If you’re selling food items, add a “Food allergies” field so customers can pick specific food allergies from a list or enter their own.

These small touches will improve your checkout experience and build trust with your customers, encouraging them to come back and purchase from you again.

Disable Billing Details from WooCommerce Checkout

The WooCommerce Checkout Field Editor plugin is priced at $49 and also offers a 30-day trial period option so you can test out the extension on your website before investing any money. If that sounds a little expensive, think of it this way…

You spend $49 to optimize your checkout experience. Thanks to those changes, you convert 2 new customers a week at $25 per order. You’ve made your money back from week 2 and immediately increased your revenue in just a few clicks.

Jean Galea

Jean Galea is an investor, entrepreneur, and blogger. He is the founder of WP Mayor, the plugins WP RSS Aggregator and Spotlight, as well as the podcast. His personal blog can be found at

Discover more from our archives ↓

Popular articles ↓

67 Responses

  1. This didn’t let me remove shipping fields . It kept asking for those fields as if they were required

  2. I have a custom placeholder text for the phone field. So the code does not hide the phone field. When I remove the custom placeholder text then it will hide. How can I have the placeholder text and hide the billing phone when only virtual products?

  3. On my wordpress site I am currently using woocommerce plugin for checkout with woocommerce First data Payeezy gateway plugin integration for credit cards. The registration form and checkout are all in one page using Registration magic for the registration page that also integrates with woocommerce.
    I hired a developer to design the registration age and woocommerce checkout to one page so there is only registration with payment. While the developer was doing coding he must have added coded that removed the woocommerce fields for billing address, city, state and phone number since it was added to the registration page, but the credit card company tells me that the credit cards are not being processed due to having no billing address and phone number for the credit card holder.
    The developer that did the work states he doesn’t remember where he put the code in the back end to remove the billing address and phone number and is not willing to help find it or add it back in. I have only minimal experience with coding from trial and error on a staging site and youtube but I have tried to uninstall and reinstall woocommerce, tried making a new checkout page and tried a new registration form but the code for the removal must be deep in my theme. I even tried changing from child theme to another theme and making a new checkout form but still the billing details would not show up also tried woo checkout field editor and no matter what I enter it doesn’t add back the woocommerce billing address and phone number to checkout page to checkout page. Current checkout page only shows under billing details: student first name, last name, email and password then goes into registration form that has address and phone number but checkout process isn’t pulling that information into credit card processing. Im stuck at this point. Does anyone know what code I could add to my child theme function.php to add woocommerce billing address and phone number back to the checkout page?
    All plugins are up to date Woocommerce 3.4.4 and Woocommerce First data payeezy Gateway 4.3.3

  4. This is a really useful piece of code, but I have found a problem when I have ‘guest’ checkout. Essentially, it works fine to hide the country field for example when the purchaser is a registered user and logged in on the web site; but when a purchase is made by someone who is not logged in I still get the missing address error after clicking the purchase button.

  5. Is this working with the woocommerce 3.1.2? I put it in the functions and nothing changed fields are still there ( i am using dokan also but i dont think it has influence) should i remove fields also from template?

  6. Whenever I add code to functions.php it brakes my site (all updated Bridge theme). I know I am just putting it in the wrong place. Can you be a bit more specific about what exactly to put in and where it goes? thanks!

  7. This is great but I have a problem, I can’t remove address and postcode fields, I can remove other fields but these 2 can’t.
    Does anyone know why?

  8. I just entered this into my child themes funcionts.php file and now my site and admin panel are unreachable. Fantastic.

  9. Hello,

    Is there any reason why we should not remove the billing address ?

    Thank you for this post.

  10. Heyall, just wanted to share a tiny little tip for super beginners like me.

    If you already have some custom code in your “functions.php” you must delete the top “<?php" and the last "}" otherwise you may get a pesky error.

    Basically you have to insert just the code, and comment out with "//" the lines that you DO WANT to appear.

    I can confirm that it works like a charm in 2017 as well.

    Last but not least,
    Big thanks to mr. Galea for sharing the code with the world : )

  11. To anyone having syntax error issues with this –

    1. Use “My Custom Functions” plugin to save yourself the hassle of trying to add code.

    2. Change the name of the fucntion
    add_filter( ‘woocommerce_checkout_fields’ , ‘custom_checkout_fields’ );

    function custom_checkout_fields( $fields ) {

    Note: I changed ‘custom_override_checkout_fields’ to ‘custom_checkout_fields’ as I found there was a duplicate function causing problems.

    If you get really stuck read the readme.txt in the plugin files and there are troubleshooting steps.

  12. I put in your code as instructed and

    Parse error: syntax error, unexpected ‘<' in /home/content/91/4857491/html/marketplace/wp-content/themes/seller/functions.php on line 304

    it was caused by the superfluous
    <?php in your code, so after having to fix the code through FTP it did nothing. I still have the option to enter billing information on the checkout page :/

  13. Hello. I buy theme from, so if something changes new updates will delete this from function.php. So instead I use Child Theme and create function.php, copy this chunk of code, but it doesn’t works… If i put this in parent theme everything good. So how I can make it work?

  14. Hi Jean,

    I have a related issue.

    I want to be able to use a single login for a group of people (players on a team, or teachers in a school) so I can show them team-specific products in a woocommerce store (I already have this set up). BUT, I want each person to use their own info for purchases (name, address, payment details, etc). In other words, I want to capture ORDER info but not USER info, and I don’t want to auto fill any fields upon checkout except the login name to identify the group.

    Is this even possible??

  15. Hello Jean. I made a plugin and it do the same and more. It can remove fields from checkout page, and also can remove/rearrange hooks in single product page and shop page. It is totally free, in fact I uploaded it to WordPress repository. If anyone is interested, here you can download it WooEnhacer – WooCommerce Customizer

  16. Hi,
    How hide or show billing fields after selected a different country or my custom selected?

  17. hey there, i am using exactly this method and there’s one strange issue i am experiencing. If a required field is missing, and the payment button is clicked – i get an error: `SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data`
    no matter which field i removed.

  18. Late question, but after removing the billing fields only(keeping shipping fields as such), the order and the email does not have the shipping address. I have set the Delivery Destination to shipping by default.

    Any idea what I did wrong?

    1. I have the same situation. Do you know how can I maintain shipping fields and delete billing ones?

  19. The opening php tag looks lost in there. There is no supportive tag at the other end. I guess that may be why it produced a blank page (syntax error) for Lana and papa0urs.

    Thank you for the code. It was useful to me.

    By the way, if anyone would like to remove the header texts, paste the following code in your theme’s custom.css (if you have a child theme, use its style.css instead):

    .woocommerce-billing-fields h3 {
    display: none;
    .add_info_wccs {
    display: none;


    1. Whoops.. error in code. Please use the this code instead:

      .woocommerce-billing-fields h3 {
      display: none;
      .woocommerce-shipping-fields h3 {
      display: none;

  20. Can you make it work if you want to only have it apply to digital downloads? I will be selling physical products as well, not connected to my digital downloads.TIA.

  21. Hay, I want to make it conditional. I’m making it easier, recently I installed BitPay payment method my woocommerce site. I have another payment option. I want to disable Billing details for BitPay only. Not for other payment option. Is it possible??

  22. Lana, you might have placed that code inside the braces of already existing code in theme’s functions.php. I did that too and “fucked up my site” anyway, i undo the modification via ftp and added the whole code outside the braces of the already existing code. That did the job.

    1. hello? hope you are online, can you tell me how to undo the modification via ftp? thanks a lot

    1. Hey Lana.

      Where did you place the code?

      If you access your site via ftp, you should be able to locate the file and delete the code you put in.

  23. Hey Jean,

    Thank you for the code! I was wondering if you knew how to turn it into more of an if statement? Meaning, I have two options on my checkout page (CC & Paypal) if the user clicks on Paypal, I would like your code to run.

    Do you know how/where to do that?


  24. Hey Jean, thanks, very nice post!

    Do you know a way (manually or automatic) to remove the whole section “additional information/billing and shipping address”?


    1. I’d like to know how to do this too!
      It’s kinda strange when the titles still appear whilst there are no fields below them to fill….


  25. Worked perfect! Thanks. Is it just me or are there several quarks with WooCommerce? Seems like they would make a lot more money if they offered a pro version for $50 with additional features like this than trying to upsell a boat load of plugins for $100 each that only do one thing.

  26. “If I were you, I would just do it programmatically.” you just made me to get my hands dirty… again 🙂
    Thank you !

  27. Thanks much for this helpful info., I used woocommerce checkout manager plugin, it removed all the fields but anyone knows how to remove the billing address title that shows on the checkout page?


    1. Hi, you’d need to edit form-billing.php which can be found inside \wp-content\plugins\woocommerce\templates\checkout\ line 23 put two forward slashes \\ infront of _e( this will comment the line out.

  28. That plugin was mentioned in the article already, and I do use that plugin for the checkout page. But I need the same limited fields ( First name, Last name, and email address only) on the Edit Address page and My Account page that are part of Woocommerce. Can anyone help me figure out how to do that?

  29. Thank you for this code! Do you know how i can do this same thing for the Edit Address & My Account pages in Woocommerce? Thanks!

    1. I know this is like wicked late but try this:

      function wpdebug_disable_account_addresses( $fields ) {
      return array();
      add_filter( ‘woocommerce_my_account_get_addresses’, ‘wpdebug_disable_account_addresses’ );

  30. Perfect timing. I was just going to do this and had found a tutorial on YouTube but it recommended putting this same code in a woocommerce file which kind of freaked me out. Good to see it works in the theme.php file as well … cheers!

Share Your Thoughts

Your email address will not be published. Required fields are marked *

Claim Your Free Website Tip 👇

Leave your name, email and website URL below to receive one actionable improvement tip tailored for your website within the next 24 hours.

"They identified areas for improvement that we had not previously considered." - Elliot

By providing your information, you'll also be subscribing to our weekly newsletter packed with exclusive content and insights. You can unsubscribe at any time with just one click.