WooCommerce Checkout Custom Fields

Add custom fields to your WooCommerce checkout page


When enabled, WooCommerce Checkout Custom Fields module lets you add custom fields to WooCommerce checkout page. This neat feature allows you to add more fields to your checkout page. Choose which section to add the custom field to (Billing/Shipping/Order notes/Account), and choose which type of information field you want to add – add a text field, text area, number, a date/time picker, a checkbox, select, radio, or a password, and give it a label or some text explaining what you want your customers to do.

WooCommerce Checkout Custom Fields

Admin Settings

WooCommerce Checkout Custom Fields

To add custom fields to Booster’s PDF invoices, you should use [wcj_order_checkout_field] shortcode.
You can use use Custom CSS Options (accessible through WooCommerce > Settings > Booster > EMAILS & MISC. > General). For example, to change default view of custom checkout radio buttons:

WooCommerce Checkout Custom Fields - Radio button
Custom CSS code for radio buttons restyling: { display: inline !important; padding-left: 5px; } { content: '\A'; white-space: pre; }
Accessible through:
  • WooCommerce > Settings > Booster > Cart & Checkout > Checkout Custom Fields
Tested on WooCommerce 3.2.6 and WordPress 4.9.2
Plugin can be downloaded here. If there are any locked fields in the module, you will need to get Booster Plus to unlock them.

Leave a Reply



  1. James July 8, 2015 at 7:00 pm #

    I would love to know what the “categories” field does? I cant find any documentation on this.

    Thanks in advance

    Reply to thread

    • Valentin Solovjov September 16, 2015 at 7:35 pm #

      Dear James,

      you can show/enable Checkout Custom Fields only for specified product categories.


  2. Amy October 12, 2015 at 6:45 pm #

    I sent an email to Support, but thought I would ask here too.

    Is there a way to get the data generated by the Additional Fields passed to the generated emails as something other than a solid block of text with no field separators? We have 8 fields and we would (ideally) like a paragraph break after each field so that we could cut and paste this information into a spreadsheet.

    Reply to thread

    • Valentin Solovjov October 13, 2015 at 7:35 am #

      Hi Amy,

      We already fixing that, let you know, when it be solved.


  3. brian valente October 20, 2015 at 11:30 pm #

    is it possible to set the default for a custom field so that a custom checkbox shows up as checked by default?

    Reply to thread

  4. Terrance November 25, 2015 at 10:07 pm #

    Is it possible to capture the information from these custom fields for the invoices/packing slips?
    I’m trying to provide the ability for a user to add the shipping recipient’s phone number.

    Reply to thread

  5. Mike January 1, 2016 at 3:38 pm #

    Is there a way to hide the information that is entered on custom fields from the customers view in their account/order history?

    Reply to thread

  6. James January 1, 2016 at 6:58 pm #

    Hi, Is there a way of using a shorcode for invoice templates with this and how would you determine which custom field it was?

    Reply to thread

  7. Valentin Solovjov January 11, 2016 at 8:01 pm #


    Where can I find out what the custom field name is? And then some samples on how to use them in side a custom email/template – (lost here, no coding expertise).


    Its a little bit tricky at start. Here what you need to do :

    1) you need to go to the checkout page for example with google chrome browser and press right mouse click on the custom checkout field you need, and click inspect element

    image here:

    2) then you need to find field ID ant the right

    in my example its : billing_wcj_checkout_field_1

    and the shortcode you need to use is here : [wcj_order_meta before="TAX ID: " before="field_8" meta_key="_billing_wcj_checkout_field_1"]

    note that you can user additional option as before or after, also meta_key used with _ in front.

    Best regards,
    Valentin Solovjov
    Algoritmika Ltd.

    Reply to thread

    • James January 12, 2016 at 6:15 pm #

      Brillaint and thanks. It works! I had to remove “field8” essentially and leave the inverted commas blank in between but it was pretty simple.

  8. Peter Pitchford January 12, 2016 at 7:42 am #

    How do I access the data collected by the custom fields? I don’t see it anywhere in the admin order page.

    Reply to thread

    • Valentin Solovjov January 12, 2016 at 3:11 pm #

      Hi Peter,

      I just tested. I able to collect info.

      1) Checkout page:
      2) Thank you page:
      3) Back end order details :
      4) Custom Checkout field settings:

    • Peter Pitchford January 12, 2016 at 3:43 pm #

      Thanks for testing, but custom fields are not showing up for me. They show up in the reciept and the pdf invoice, but not in the order page.

    • Ulrich January 14, 2016 at 1:59 pm #

      Hi Valentin,

      same situation here. I can’t find the custom created fields in the backend order details. is down so i can’t see the screenshots.
      Hope you can help

      Best regards

    • Ulrich January 14, 2016 at 2:43 pm #


      when i changed the field ‘section’ from ‘Order Notes’ to ‘Billing’ i could find the posted data in order page. Perhaps this is a solution for you, too.

  9. gamal March 29, 2016 at 5:52 am #

    Hi.. how can i show the field to order details or thank you page instead the checkout page. thanks…

    Reply to thread

    • Valentin Solovjov March 29, 2016 at 8:42 pm #


      sorry I didn`t get what you would like to do. Could you please reply with details? You would like to have a custom field on thank you page? What do you call “order details” ?


  10. Brenda April 21, 2016 at 3:53 am #

    Hi, I am working with your Booster Plus plugin and I really want to be able to change the header “Billing Info” at the top of the Checkout page to “Registration Info”. Can you help me do that? I am not a big coder, so I hope it is easy πŸ˜‰

    Many many many thanks in advance, Brenda

    Reply to thread

    • Booster Support Team April 26, 2016 at 12:10 pm #

      Hi Brenda,

      “Billing Details” text is a part of checkout template. Unfortunately there are no hooks to change it, so the best way to do it would be to edit the template itself. The file you need is “\wp-content\plugins\woocommerce\templates\checkout\form-billing.php”. The best way would be to copy it to your child theme folder, so you won’t lose changes after the updates. You can read more about editing WooCommerce templates here –

      There is another (but not recommended) method for changing that text. by using gettext filter ( The filter is intended to use for translations, but it will work for just changing the text. Add to your child theme’s functions.php file:

      Hope I made it a little more clear. Please let me know if you still will have troubles changing that text. I could log on to your server and make the neccessary changes.

      Best regards,

      Booster Support Team
  11. Kittiwat June 2, 2016 at 4:01 pm #

    Radio button
    and select didn’t work

    Reply to thread

    • Booster Support Team June 2, 2016 at 9:10 pm #


      I’ve just retested on our server, and unfortunately couldn’t reproduce the issue – both Select and Radio types for custom checkout fields seem to work fine for us. Could you please give more details on the issue? Are fields not displayed at all, or with some errors? And if possible please create/share an admin account to your server so I could login and check what’s going on. My email is If sharing an account is not an option – please let me know and I will try to solve this remotely.

      Best regards,

      Booster Support Team
  12. Felix August 23, 2016 at 3:55 pm #

    Hi there,

    I activated the radio buttons but they just showed up without the text. Does anyone know how to solve this problem?

    Looking forward to hear from you!

    Reply to thread

    • Felix August 23, 2016 at 3:57 pm #

      I’m using bridge theme btw.

  13. Dragos August 23, 2016 at 7:42 pm #

    I am having issues with displaying and charging shipping for my products since installing this plugin. The only module I have enabled is Prices and Currencies By country with 3 price zones: Canada, USA, and Europe. There are also 3 shipping zones setup, for the same areas. Canadian and Europe shipping rates and displayed and charged properly, however the USA is not.

    USA shipping zone via WooCommerce Shipping module at 4.00 flat rate. However at checkout the only information displayed for customers is “Flat Rate” with no value, and the customer is charged nothing. If I disable the plugin the information is displayed properly.

    I need your help please with solving this issue.

    Reply to thread

  14. Alain Aubry October 9, 2016 at 8:39 pm #


    I am trying to add a Checkout Custom Field, the customer DoB.
    There is a field called ‘section’ that lists ‘Billing’, ‘Shipping’, ‘Order Notes’ and ‘Account’.
    I tried them all, the new filed goes to the section specified, except for ‘Account’, when I select this one I don’t see the new field anywhere.
    ‘Account’ is my preferred option.


    Reply to thread

  15. Kat November 4, 2016 at 3:11 pm #

    I’d like to be able to include all of my custom fields in the order export data. Is this possible? I don’t see it as an option anywhere. If it’s not currently possible, is this a feature you can add in the future?


    Reply to thread

  16. Joomla Candy December 2, 2016 at 4:35 pm #

    Thanks for a great funktion. But I miss the possibility to add an error message for the required option. Desperately need that.

    Reply to thread

  17. Ulli December 8, 2016 at 7:13 am #

    This feature seems to have stopped working with WooCommerce 2.6.9. No matter how I configure the feature, my text is not showing any more πŸ™

    Reply to thread

    • Ulli December 8, 2016 at 7:16 am #

      Damn… I’m on the wrong page here. The problem exists with the “Checkout Custom Info” feature…

    • Booster Support Team December 8, 2016 at 7:58 am #


      It’s probably because of new WordPress v4.7. Issue already fixed in development version. You can download the development version here – You will need to uninstall the old version first (don’t worry your saved settings won’t disappear). Please let me know if the issue is fixed or if you have any questions.

      We are going to upload stable release to this weekend.

      Best regards,

      Booster Support Team
    • Ulli December 9, 2016 at 7:19 am #

      Thanks Tom! It’s not thaaat important, so I’ll gladly wait until you release it officially! Thanks for the quick feedback and fix! I’ll let you know if it works!

    • Ulli December 10, 2016 at 8:56 am #

      Hey Tom! I had to disable and reenable the feature for the info to show up again but not it works! Thanks so much and have a great weekend!

  18. AMC December 14, 2016 at 5:50 pm #


    I am french and i have a question on the “custom field”

    When i add a custum field and t is positioned on the left column of my command and I want to know how to put it by default on the right column below the last initial fields of woocommerce (information)

    If you have a answer i’ll be happy to know.
    (PS : excuse for my english)

    Reply to thread

  19. Matteo January 25, 2017 at 2:52 pm #

    with this plugin(also pro) is it possible to add a custom field that is required only when a customer select a particular nation?For example in Italy the fiscal code is required but not in other countries..

    Reply to thread

  20. Geoffrey January 26, 2017 at 9:00 pm #

    Hello, is there a chance to add also a custom script (Javascript) as a custom checkout field? We have a simple form, script, that lets customers choose where they want to pick up their order (physical place). And I want it to be a part of the checkout form.
    Thank you in advance for any tips! πŸ™‚

    Reply to thread

  21. Antonio Venneri April 6, 2017 at 3:12 pm #

    I am using this feature in my woocommerce site.
    I would like to edit this value from admin.
    I noticed that the mata_key is underscored, so is not possible:
    a. Add this custom field in Manual Order
    2. Edit this custom field from order detail

    Reply to thread

  22. Elita April 17, 2017 at 1:44 pm #

    Hiya! I would like to be able to hide a custom field based on whether customer is already logged in as returning customers don’t need to indicate how they found me with each order. Not sure what code to use or where to put it (newbie coder here).

    Reply to thread

  23. loic April 24, 2017 at 8:51 am #

    Would it be possible to add a feature to enable multiple choices field in the checkout page?
    Best regards

    Reply to thread

  24. Joe May 9, 2017 at 8:53 am #


    I’d like to use the date and time picker for delivery purposes. How could I sort the orders in the admin panel by the date and then by time column collected by the custom field value?

    Thanks in advance!


    Reply to thread

  25. Foots June 20, 2017 at 10:53 am #


    I’ve added 3 tick boxes to my checkout page and set them as ‘Required’.

    If the boxes are not ticked, the order still goes through, is there a way to show an error message, same as the terms and conditions tickbox?

    Many thanks.

    Reply to thread

  26. Jeff July 10, 2017 at 9:56 pm #

    I just purchased booster plus and ran into something I need some help on. I’m looking to find a way to limit the days and times of deliveries in my woocommerce store. For example, I do not want Sunday to be a delivery date and likewise, our deliveries only occur from 9:00am to 5:00pm. Any suggestions if this is possible?

    Second question – I would like to program a small modal message on a radio button choice on my checkout form so that I can display a small message if the user chooses Yes or No. Any idea how I can accomplish that as well?


    Reply to thread

  27. Johannes November 2, 2017 at 2:26 pm #

    Hi, is it possible to prepopulate a custom checkout field from a custom user meta field?

    Reply to thread

    • Booster Support Team November 2, 2017 at 9:19 pm #

      Hi Johannes,

      Not sure I understood you correctly, but after your customer fills the custom checkout field once, it is then refilled with that value each time customer visits the checkout page.

      If you mean you want to fill it with some value from some other user meta field, when customer visits the checkout for the first time – unfortunately that is not possible at the moment, but I will try to add it in next update.

      Best regards,

      Booster Support Team
    • Johannes November 3, 2017 at 9:17 am #

      “f you mean you want to fill it with some value from some other user meta field, when customer visits the checkout for the first time”

      YES, that is what I want, and fine if it could be set to editable only by admin. When do you think this vill be ready?


  28. kf November 22, 2017 at 3:43 pm #

    Sorry if I’m missing something, but how do you add multiple custom fields or is that only available for Pro?

    Reply to thread

    • kf November 24, 2017 at 6:46 pm #

      Sorry looks like the answer is pretty obvious. Change the field number with Pro version πŸ˜‰

  29. Elad December 20, 2017 at 12:00 pm #


    I am using the Booster Pro and I can’t seem to find my thank-you page!

    I wanted to tell Woocommerce to reinstall it like described in the steps below, but I don’t have this option:

    Go to the “System Status” tab on Woocommerce
    Click on the “Tools” tab at the top of the page
    On that page, the sixth option down is called “Install pages”.
    Clicking that will “install all the missing WooCommerce pages. Pages already defined and set up will not be replaced.

    Is this option moved somewhere to inside the Booster?


    Reply to thread

    • Booster Support Team December 20, 2017 at 8:55 pm #


      No, this option is not modified by Booster in any way. I’ve just checked “WooCommerce > Status > Tools” on my server, and here it’s called “Create default WooCommerce pages” (with “Create pages” button), and it’s 8th tool from the top (4th from the bottom). Which WooCommerce version do you have installed? Also if you wish you can create/share a WP admin account to your server, so I could login and check what’s going on (my private email is

      Hope that helps.

      Best regards,

      Booster Support Team
    • Elad December 20, 2017 at 9:08 pm #

      Hi Tom,
      Thank you for the reply. Yes it is there, thank you.

      Didn’t think of looking in status.

      Hope I get you while still online, If I could clear another doubt with you:

      By default the e-mail address on the check-out page is way down, is there any way I can move it up to be right after the Customer name?

    • Booster Support Team December 20, 2017 at 9:25 pm #

      Yes, why did they put “Tools” in “Status” was always a mystery to me also πŸ™‚

      Regarding moving the e-mail address field – if you mean the default WooCommerce e-mail field, you need to enable Booster’s “Checkout Core Fields” module (in “WooCommerce > Settings > Booster > Cart & Checkout > Checkout Core Fields”), then locate “Billing Email” options section there and set “priority (i.e. order)” option to 20 (so it will go right after “Last name” field). You may also want to change billing email “class” option to “Full Row” there.

      Again hope that helps. Please let me know if you have any more questions or need any help.

      P.S. If you like Booster, please leave us a rating.

      Best regards,

      Booster Support Team
    • Elad December 20, 2017 at 10:49 pm #

      Tom TX!

      Great support ! Will rate you for sure!

      However, something strange…the module for this won’t enable…I change the priority of the billing e-mail and saving and it doesn’t stay enabled.

      Any idea?


    • Booster Support Team December 21, 2017 at 12:08 am #


      Hmm.. That’s strange.. You mean the main “Enable Module” checkbox for “Checkout Core Fields” module doesn’t stay enabled? If that’s correct – unfortunately I can’t solve this unless I login to your server, as it seems to be working fine on my test server..

      Best regards,

      Booster Support Team
  30. jwebadgility January 11, 2018 at 4:55 am #

    Is there a way to have the custom field NOT prepopulate based on the last order from a customer? Particularly we have a “Gift Message” field which shouldn’t prepopulate for each order.

    Can you describe the use of “Clear” and “Customer Meta Fields” checkboxes for each custom field? Is there a place to read about these? I haven’t been able to find documentation.

    Thanks for your help,

    Reply to thread

  31. Mike Peace February 5, 2018 at 4:36 am #

    How can I default the value when using a select-box ?

    Reply to thread