• Pricing
  • Demo
  • Features
  • Get Started
  • Support
  • Docs
  • Account
  • Blog
  • Updates

CheckoutWC

  • Pricing
  • Demo
  • Features
  • Get Started

Modifying required checkout fields with WooCommerce (the easy way)

October 13, 2025 by Ian Misner in How To

Changing required fields on WooCommerce checkout with CheckoutWC

Table of Contents

  • Why WooCommerce checkout field customization is confusing now
  • How do you know which WooCommerce checkout you're using?
  • Adding required fields to the classic shortcode WooCommerce Checkout
  • Use a plugin to modify your checkout fields
  • Modify checkout fields with a code snippet
  • Modifying fields in the WooCommerce block checkout
  • Use block-compatible plugins
  • Write custom code for WooCommerce block checkout
  • Checkout design matters more for conversion

Customizing WooCommerce checkout fields trips up thousands of store owners every year. What should be quick and easy becomes a maze of outdated snippets and plugin conflicts. Google shows you a bunch of resources and you’re not sure if they apply to your situation, your theme, your combination of plugins.

Three hours later, you’re buried in conflicting tutorials, your WooCommerce checkout’s broken, and you’re wondering how a five-minute task turned into a crisis. Here’s the fix: in this guide, you’ll learn how to make the phone number required, remove the state field, and customize WooCommerce checkout fields, the right way, whether you use plugins, code, or a one-stop solution (like CheckoutWC).

Why WooCommerce checkout field customization is confusing now

Here’s the part most of the resources you find online don’t mention: WooCommerce doesn’t have one checkout system anymore. It has two by default, and they work completely differently.

  • Classic checkout uses shortcodes. It’s been around forever, and most of the tutorials you’ll find online were written for it.
  • Block-based checkout is the newer, modern version built with WordPress blocks and it’s now the default for new stores.

The problem? A snippet that works flawlessly on the classic checkout does absolutely nothing on the block checkout. No error message in many cases. So you do the work of solving the problem and it would have worked great for your WooCommerce store had you been doing the same work five years ago.

How do you know which WooCommerce checkout you’re using?

  • Go to your Checkout page in WordPress
  • If you see the traditional WordPress editor with a [woocommerce_checkout] shortcode, you’re using classic checkout
  • If you see the block editor with draggable blocks, you’re using block checkout

In this guide, we’ll cover the easiest ways to make simple tweaks to your checkout fields, such as making them required. Spoiler: the best and easiest solution is to use CheckoutWC.

The simplicity of Shopify with the power of WooCommerce. Replace your WooCommerce checkout page with CheckoutWC to boost sales and reduce cart abandonment.

Get Started

Adding required fields to the classic shortcode WooCommerce Checkout

The classic WooCommerce checkout has been around longer, so there are plenty of ways to customize it. There’s plugins that have been well-tested to do the work, and code snippets are available. Now, unfortunately, the shortcode checkout is a bit dated – ultimately, this is why WooCommerce themselves have replaced it. So you may want to consider using the block checkout (or CheckoutWC) rather than taking the easy way out. That being said, here’s how you’d make it work:

Use a plugin to modify your checkout fields

The most reliable plugin for classic checkout customization is Woo Checkout Field Editor.

What it can do:

  • Make any field required (or optional)
  • Hide fields you don’t need
  • Add custom fields
  • Reorder fields
  • Change field labels and placeholders

How to use it:

  1. Install and activate the plugin
  2. Go to WooCommerce → Checkout Form
  3. Find the field you want to modify (e.g. billing_phone)
  4. Check or uncheck the Required box
  5. Disable any field you want to remove

The catch:

  • Adds another plugin to maintain and update
  • Some field editor plugins break with WooCommerce updates

Modify checkout fields with a code snippet

If you’re comfortable with PHP, adding custom code is often lighter and more stable than a plugin.

Make the phone field required:

add_filter('woocommerce_billing_fields', 'make_phone_required');
function make_phone_required($fields) {
    $fields['billing_phone']['required'] = true;
    return $fields;
}

Where to add this code:

  • Your child theme’s functions.php file, or
  • A code snippets plugin like Code Snippets or WPCode. You can use this guide from Kestrel if you’re not sure how to safely add custom code to your WooCommerce site.

The catch:

  • No visual interface!
  • Billing and shipping fields use different hooks, you just need to look up a lot of stuff to keep tweaking stuff
  • Maintenance is your responsibility
  • Code may need updates when WooCommerce changes

It is worth noting, that despite the flaws of the shortcode checkout, you can modify it in any way you want. You can add fields, remove fields. You can really change anything, as long as your payment gateway doesn’t require that you send them that data.

Remove the state field:

add_filter('woocommerce_billing_fields', 'remove_state_field');
function remove_state_field($fields) {
    unset($fields['billing_state']);
    return $fields;
}

Modifying fields in the WooCommerce block checkout

The block-based WooCommerce checkout is newer, prettier, and more powerful but also more confusing and difficult to modify. Most of the tutorials you’ll find online still focus on the old shortcode system, so figuring out what applies to you can be maddening. Luckily, they’re gradually adding things to make customizing and tweaking the checkout easier in blocks than it was in the shortcode setup.

The block checkout does offer some built-in customization options for core fields like phone, company, and address line 2.

Customizing WooCommerce Checkout Fields in the block checkout

Here’s how to make the phone field required:

Toggle it to Required

Go to Pages → Checkout

Click on the Checkout Fields block to select it (not the entire Checkout block)

In the right sidebar block settings, look for field toggles

Find the Phone field option

This works for a handful of default fields, but that’s where the simplicity ends. The WooCommerce team has limited what can be easily modified to discourage changes that make the checkout perform poorly for conversion.

The catch:

  • Very limited, only works for fields WooCommerce exposes controls for. But if that includes yours, problem solved!
  • No way to add fully custom fields without additional plugins
  • Interface is clunky!
  • Settings are spread across multiple panels and sometimes you’ll expect to find something and won’t
  • Documentation changes faster than it’s written
  • No conditional logic – can’t show/hide fields based on other selections

Use block-compatible plugins

Some checkout field plugins now claim block support, but results vary wildly. Most field editors were originally built for the classic checkout system and are still playing catch-up with WooCommerce’s new block architecture. You’ll often find that block support is partial at best. Certain features work while others don’t, or the plugin works until a WooCommerce update breaks compatibility.

In most cases, plugin developers are still figuring out the block checkout themselves.

The Checkout Field Editor Pro from Themehigh offers support for editing blocks. You can check that out here on WordPress.org.

Write custom code for WooCommerce block checkout

Yes, you can customize the block checkout with code but it’s newer and fairly tricky compared to dealing with a snippet in the shortcode system. Should you, though?

WooCommerce introduced an “additional checkout fields” API that requires using the woocommerce_register_additional_checkout_field() function. Here’s what that looks like for making a phone field required:

add_action('woocommerce_init', function() {
    woocommerce_register_additional_checkout_field(
        array(
            'id' => 'namespace/phone-required',
            'label' => 'Phone Number',
            'location' => 'contact',
            'type' => 'text',
            'required' => true,
            'attributes' => array(
                'autocomplete' => 'tel',
            ),
        )
    );
});

But here’s where it gets complicated. The code above is for adding NEW custom fields, not modifying existing ones like phone or email. To modify core WooCommerce fields in block checkout, you’d need to use JavaScript filters (registerCheckoutFilters), which is a completely different system that requires frontend JavaScript knowledge instead of PHP.

To add custom validation, you need to use hooks like woocommerce_validate_additional_field and pass WP_Error objects:

add_action('woocommerce_validate_additional_field',
    function(WP_Error $errors, $field_key, $field_value) {
        if ('namespace/phone-required' === $field_key) {
            if (strlen($field_value) < 10) {
                $errors->add('invalid_phone', 'Please enter a valid phone number');
            }
        }
    },
    10,
    3
);

The catch:

  • Built with React and modern JavaScript, not PHP
  • Uses an entirely different method and has “curated extensibility” so even patterns that feel like they would work may not
  • Steep learning curve, even for experienced developers
  • Updates can easily break your customizations

In short: editing checkout fields on the block checkout is technically possible, but unless you’re deep in React and Woo’s internal APIs, it’s rarely worth the time or effort.

You can also read in detail within WooCommerce’s own detailed developer documentation on modifying checkout fields in the block checkout. You should provide feedback for the Woo team on their Github, too, assuming you have any trouble!

Checkout design matters more for conversion

It’s worth noting, however, that every extra field you add to your checkout potentially lowers your conversion rate.

The Baymard Institute found that nearly a quarter of shoppers abandon carts because the checkout feels too long or complicated. Each unnecessary field adds friction and every extra click gives customers another reason to leave.

The best checkout experiences share a few key traits. They only collect what’s essential, use smart autofill and address validation, and feel effortless on mobile. Scrolling is minimal, progress is clear, and the path to “Place Order” feels obvious and trustworthy.

CheckoutWC was built around those principles. It delivers a clean, two-column layout that reduces friction, includes Google-powered address autocomplete, adapts to mobile to ensure your conversion rate holds steady, and loads quickly to make the entire experience feel faster.

CheckoutWC looks nice

Whether you’re using the classic checkout or the new block-based version, you face the same choice. Track down the best solution for solving a simple problem and then do a bunch more work to ensure your WooCommerce checkout converts.

CheckoutWC replaces your default checkout with a modern, high-converting page that works beautifully out of the box. It gives you visual field controls without writing code, a proven design modeled on Shopify and Amazon’s best practices, full compatibility with both checkout systems, and a mobile-optimized experience that makes buying easy. It stays up to date with WooCommerce changes and comes with actual support from people who understand how checkout should work.

You can do a lot more than just making the phone field required, for example:

Customizing checkout fields in CheckoutWC

The simplicity of Shopify with the power of WooCommerce. Replace your WooCommerce checkout page with CheckoutWC to boost sales and reduce cart abandonment.

Get Started

Meanwhile, you avoid the usual pain: code snippets that silently fail, plugin conflicts that break checkout, and long nights maintaining fragile customizations. If you’ve ever spent more than a couple of hours trying to make a single field required, you’ve already spent more than CheckoutWC costs and it won’t just fix that one problem. It will improve your entire checkout flow and help you convert more of your existing traffic into paying customers.

Either way, CheckoutWC gives you a faster, more reliable, and more profitable checkout experience. Your checkout should work for you, not against you. Every hour you spend debugging is an hour you could spend growing your business.

Stop fighting. Start converting. Try CheckoutWC today →

Previous Article

How to Build a Shopify-Style Checkout in WooCommerce

Ian Misner

Cofounder and General Manager at Kestrel, makers of CheckoutWC. Kestrel’s WooCommerce tools power over 10,000 stores, helping agencies and merchants build faster, more reliable, higher-converting stores that scale.

Share this Post

TweetLinkedInShareEmail

Table of Contents

  • Why WooCommerce checkout field customization is confusing now
  • How do you know which WooCommerce checkout you're using?
  • Adding required fields to the classic shortcode WooCommerce Checkout
  • Use a plugin to modify your checkout fields
  • Modify checkout fields with a code snippet
  • Modifying fields in the WooCommerce block checkout
  • Use block-compatible plugins
  • Write custom code for WooCommerce block checkout
  • Checkout design matters more for conversion

The simplicity of Shopify with the power of WooCommerce. Replace your WooCommerce checkout page with CheckoutWC to boost sales and reduce cart abandonment.

Get Started

Supercharge your WooCommerce checkout

Stop losing sales at the final step. CheckoutWC is a drop-in upgrade that reduces abandoned checkouts and keeps customers happy.
Start Selling More
You won't regret it. We pinky swear.

Account

  • Account
  • Log In
  • Affiliate Program
  • Affiliate Agreement
  • Terms and Conditions and Refund Policy

Product

  • Features
  • WooCommerce Checkout Block Alternative
  • Flux Checkout vs CheckoutWC
  • CartFlows vs CheckoutWC
  • FunnelKit vs CheckoutWC
  • CheckoutWC Demos
  • Testimonials
  • Leave a Review

Support

  • Home
  • Documentation
  • Support
  • Contact
  • Need a Developer?

Our Good Friends

  • WP Sent Mail
  • Advanced Content Templates

Making the world a better place one WooCommerce checkout at a time and one support request at a time.

Made with by KestrelWP Icon Kestrel

Subscribe & Discount

Stay up to date and never miss a promotion, freebie, or update! Get a 10% OFF DISCOUNT for any premium plan for your first subscription year.

Copyright © 2025 CheckoutWC, All rights reserved.
CheckoutWC
Manage Consent

We use technologies like cookies to access or store device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting may adversely affect certain features and functions.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
CheckoutWC
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}