Skip to content
GPLWP Guides

How to customize checkout fields in WooCommerce

WooCommerce Time About 30 minutes 6 steps Updated 9 Sep 2026

WOOCOMMERCE
The short answer

You can rename, remove or adjust standard fields with WooCommerce hooks, and add simple billing or shipping fields through PHP. The manual code route applies to the classic shortcode checkout; the Checkout block needs its own API or a compatible plugin, so identify your checkout type first.

The route
  1. 01Check your checkout type
  2. 02List the data you need
  3. 03Use code for simple changes
  4. 04Handle block checkout separately
  5. 05Test saving and display
  6. 06Use a field editor for speed

What you need

  • A WooCommerce store on WordPress 6.0 or later
  • Administrator access
  • A recent backup or staging site
  • A child theme or code-snippets tool if using PHP

Check your checkout type

Open the Checkout page in WordPress and check whether it contains the WooCommerce Checkout block or the [woocommerce_checkout] shortcode. The traditional field hooks and most older checkout-field snippets apply to the shortcode checkout, not automatically to the block checkout. WooCommerce says block customisations that add fields usually need separate integration work.

If you are using the block checkout, either use a field editor that specifically confirms block support or prepare to use WooCommerce's additional checkout fields API. Do not paste a classic-checkout snippet into a block checkout and assume it worked.

List the data you need

Decide whether you need to rename an existing field, make it optional, remove it, add a billing or shipping field, or collect separate order information. Keep the checkout short: every required field adds another reason for a customer to stop.

Give each new field a unique internal name, a clear label, a suitable field type and a decision about where its value must appear, such as the order screen, customer email or admin email.

Use code for simple changes

For a classic shortcode checkout, place a small snippet in your child theme's functions.php file or a snippets plugin. WooCommerce confirms that the woocommerce_checkout_fields filter can change labels, placeholders, required status and visibility. For example: add_filter('woocommerce_checkout_fields','site_checkout_fields'); function site_checkout_fields($fields){$fields['billing']['billing_phone']['label']='Mobile number';$fields['billing']['billing_phone']['required']=false;unset($fields['order']['order_comments']);return $fields;}

You can add a billing or shipping field to the same array. WooCommerce automatically processes and saves fields defined there with the checkout field data. A field placed elsewhere on the page needs separate code to render it, validate it and save its value to the order.

Handle block checkout separately

For the Checkout block, use WooCommerce's additional checkout fields API rather than the classic woocommerce_checkout_fields approach. WooCommerce documents the woocommerce_register_additional_checkout_field() function for this purpose, and the feature requires WooCommerce 8.9.0 or later. Register the field after WooCommerce has loaded, then define its location, type, label, validation and sanitisation.

If your requirement is only to collect a straightforward extra value, a compatible field editor is usually less maintenance than writing and updating this integration yourself.

Test saving and display

Place a test order using the same checkout type your customers use. Check the field on the order edit screen, the thank-you page and the relevant customer or admin emails. Also test an empty required field, invalid input, a mobile screen and a checkout with a different billing or shipping country.

A common failure is seeing the field on screen but finding no value in the order. That usually means the field was rendered outside WooCommerce's recognised checkout field array without separate save logic, or the customisation was written for the shortcode checkout while the page uses blocks.

Use a field editor for speed

For drag-and-drop editing, conditional logic, multiple field types and field ordering, install and activate WooCommerce Checkout Field Editor, then open its checkout-field settings. Add or edit a field, choose its label and type, set whether it is required, arrange its position and save the changes. This is the fast route when you need more than a couple of code edits.

Confirm that the product supports your checkout implementation before changing a live store. Some WooCommerce field-editor documentation still limits particular extensions to the legacy checkout, while block support varies by extension.

The fast route

Let WooCommerce Checkout Field Editor do it

Drag-and-drop checkout field editing with conditional logic; choose it when you need customer data collection beyond WooCommerce defaults.

Get WooCommerce Checkout Field Editor

Sources

  1. developer.woocommerce.com /docs/code-snippets/customising-checkout-fields/?utm_source=…
  2. developer.woocommerce.com /docs/block-development/tutorials/how-to-additional-checkout…
  3. woocommerce.com /document/checkout-field-editor/
  4. woocommerce.com /document/woocommerce-store-editing/customizing-cart-and-che…
  5. woocommerce.com /document/custom-fields-editor/?utm_source=openai

Questions

Can I customise WooCommerce checkout fields without a plugin?
Yes, if you use the classic shortcode checkout and are comfortable with PHP. The <code>woocommerce_checkout_fields</code> filter can change existing fields and add billing or shipping fields, while action hooks can render, validate and save separate custom fields. This approach is fine for a small, stable change, but you must maintain the code and test it after WooCommerce, theme or payment updates.
Why is my checkout field not appearing?
The most common reason is that the snippet targets the classic shortcode checkout but your page uses the Checkout block. Classic hooks do not automatically add fields to blocks. Check the Checkout page first, then either use WooCommerce's additional checkout fields API, switch to a compatible field editor, or revert the page to the classic shortcode if your extensions require it.
Will a custom checkout field be saved to the WooCommerce order?
A billing or shipping field added to WooCommerce's recognised checkout field array is processed and saved with the order data. A field rendered separately, such as one added after the order notes, needs its own validation and order-saving code. Always place a test order and check the admin order screen and emails before relying on the value.
Can I make a checkout field conditional?
Yes, but conditional display is not a standard setting in WooCommerce core. You can build the condition with custom PHP and front-end logic, but that adds maintenance and validation work. A checkout-field editor is the practical choice when fields must appear based on another selection, product, category or customer situation. Check its compatibility with the Checkout block before installing it.
Should I use code or a checkout-field plugin?
Use code for one or two predictable changes, such as renaming a label, removing order notes or making a phone field optional. Use a plugin when you need a visual editor, several field types, conditional logic, field ordering or email display controls. The plugin route is also easier for non-developers, but you still need to confirm compatibility with your checkout type and payment extensions.