Every store owner knows how important it is to have a good conversion rate. The simplicity of a checkout can effect the conversion rate greatly. Having a long dreaded checkout will stop more users from checking out then having a simplistic checkout.

Having a simplistic checkout works best for lower-value/cost products, if you purchase a new iPhone online I don’t mind having to fill out / showing me more fields. If its just a charger though I don’t see the need to enter a phone number, order notes for example. 

Removing Checkout Fields

Removing a checkout field completely is quite simple in WooCommerce. In theory you can remove all the checkout fields without issues in WooCommerce Core. Be aware that some plugins could be counting on certain fields to exist / be available and not handle it nicely when those fields are removed. 

The Phone and Order notes are fields that I’d consider relatively save to modify, but be careful with priority fields like the name, country etc. 

Removing the Phone Field

The following code completely removes the Phone field from the billing details fields (shipping doesn’t have it). I’ve also included some (commented out) code to remove the Company field to show how it looks for the shipping fields. If you want to use that, just uncomment the code and you’re good to go. 

Removing the Order Notes Field

Removing the Order notes field is very similar to the Phone field.

But besides that way, there’s also another beautiful one-line option that can be used to remove the Order notes field from the checkout.

add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );

You can use either one of the snippets, go with the one-liner if you’re only removing the Order notes field and no other, otherwise I’d suggest to use the other one.

Making Checkout Fields Optional

The Order notes field already is optional, but the Phone field is required by default. If you don’t want to completely remove it, you can make it optional for customers to enter. The code snippet looks a little bit different from the prior ones.

Modifying Other Checkout Fields

In the above examples I’ve only shown examples for the Phone and Order notes fields, but there are of course many other checkout fields that you may want to change. This is a full list of all the checkout field slugs that can be used per fieldset.

  • billing
    • billing_first_name
    • billing_last_name
    • billing_company
    • billing_country
    • billing_address_1
    • billing_address_2
    • billing_city
    • billing_state
    • billing_phone
    • billing_email
  •  shipping
    • shipping_first_name
    • shipping_last_name
    • shipping_company
    • shipping_country
    • shipping_address_1
    • shipping_address_2
    • shipping_city
    • shipping_state
    • shipping_postcode
  • order
    • order_notes

Advanced Checkout Fields for WooCommerce

I can’t leave this post without a bit of shameless self-promotion. If you have a more complex requirement then just completely removing or making the a field optional then the Advanced Checkout Fields for WooCommerce plugin will be useful for you.

With the plugin you can setup fields to be conditionally added, removed, sorted, required/optional according to a whole range of conditions. For example, based on the products / shipping class / category present in the cart. 

About the author: Jeroen Sormani is actively building WordPress, WooCommerce and Easy Digital Downloads plugins. Slightly obsessed by writing high quality code.
Follow Jeroen on Twitter

3 comments

  1. Thank you very much, I’ve searched many times to solve this problem but I couldn’t find any thing. Now, I found your perfect soulotion!

  2. Might want to put WHAT file in particular we make these changes to as I do not see that anywhere. Great info and code but not sure what file to edit. Functions.php maybe?

Leave a Reply

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