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”.
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.
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.
67 Responses
This didn’t let me remove shipping fields . It kept asking for those fields as if they were required
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?
Hello do you know how to remove city field from billing order in dashboard ?
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
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.
it worked.. thanks for the code..
This code does not work for my site? what is wrong?
That doesn’t work for me neither, woocommerce 3.2.1
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?
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!
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?
I just entered this into my child themes funcionts.php file and now my site and admin panel are unreachable. Fantastic.
I got it to work. Thanks to the tip from the previous ommenter.
Hello,
Is there any reason why we should not remove the billing address ?
Thank you for this post.
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 : )
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
i.e.
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.
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 :/
Hello. I buy theme from themeforest.com, 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?
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??
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
thanks
How can we fetch the total bill of the customer order ?
Hi,
How hide or show billing fields after selected a different country or my custom selected?
Br
Max
Thanks Jean, we just added this to our site. Worked perfectly!
i add the code, then my site turn blank, cant be visited~!!!!
Try with the add-on it’s much easier.
How ? Can you please show us specific so that we can try.
thank you so much this information!! it works perfectly!
Thanks so much. Works!
Great Help thanks π
This plugin can broke AJAX
Great help – thank you!
how to remove default country selected in checkout page?
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.
@JeanGalea: thank you for providing the work around, it was just what I needed π
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?
I have the same situation. Do you know how can I maintain shipping fields and delete billing ones?
Thanks
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;
}
Cheers.
Whoops.. error in code. Please use the this code instead:
.woocommerce-billing-fields h3 {
display: none;
}
.woocommerce-shipping-fields h3 {
display: none;
}
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.
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??
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.
hello? hope you are online, can you tell me how to undo the modification via ftp? thanks a lot
This totally fucked up my site. Now I can’t access it!!
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.
how to access site via ftp
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?
Thanks!
Judah
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”?
Cheers!
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….
Cheers
hi i just want to empty the default billing details from my checkout page is ther any possibility for this.
thanks for sharing this tips. it solves my prob..
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.
Yeah man! Thanks.
“If I were you, I would just do it programmatically.” you just made me to get my hands dirty… again π
Thank you !
It works! Thank you for this code.
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?
Thanks,
Andrew
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.
Nice!
I did it and now i have a blank screen and i cant login my wp account ;(
I had this issue as well…
I wrote how to avoid this here:
just removed extra spaces from function.php file
This worked a treat – thanks!
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?
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!
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’ );
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!
Glad you found it useful Bob!