Home > Tips & Tricks > Conditional Show / Hide WooCommerce Checkout Fields

Conditional Show / Hide WooCommerce Checkout Fields

WooCommerce provides us lots of customization to customize the checkout page using the woocommerce_checkout_fields filter hook.

When you add a custom field to the checkout page, there may be some situations where you want to add a condition to appear or disappear that field based on what your customer chooses.

In this trick, we will see how to conditional show / hide WooCommerce checkout fields by adding magic with conditional logic. This adds a personal touch, making their journey even more enchanting.

WooCommerce Conditional Checkout Fields

Let’s consider a situational example where you want to add a condition to show or hide the ‘Company Name‘ field in the billing section based on whether the customer selects a business account during checkout.

function custom_checkout_fields_condition($fields) {

    // Check if the customer has selected a business account
    $is_business_account = isset($_POST['account_type']) && $_POST['account_type'] === 'business';

    // Add conditional logic to show/hide billing company field
    if ($is_business_account) {
        $fields['billing']['billing_company']['required'] = true;
        $fields['billing']['billing_company']['class'][] = '';
    } else {
        $fields['billing']['billing_company']['required'] = false;
        $fields['billing']['billing_company']['class'][] = 'hidden';

    return $fields;

add_filter('woocommerce_checkout_fields', 'custom_checkout_fields_condition');

In this example, We check whether the customer has selected a business account or not. Depending on the account type, we adjust the billing company field.

If they choose a business account, the ‘Company Name‘ field becomes required and visible; otherwise, it remains optional and hidden. This type of customization ensures a more tailored checkout experience for different customer scenarios.

More Tricks

Being Tricky 😉


How can I customize WooCommerce checkout fields based on customer choices?

Use conditional logic with a few lines of code to show or hide WooCommerce checkout fields dynamically.

Is it possible to make a field mandatory only in certain checkout scenarios?

Yes, with conditional logic, you can adjust field requirements based on specific conditions.

Can I personalize the checkout for different customer types, like businesses and individuals?

Absolutely! Customize fields dynamically based on choices, tailoring the experience for diverse customers.

Photo of author

About Aman Mehra

Hey there! I'm Aman Mehra, a full-stack developer with over six years of hands-on experience in the industry. I've dedicated myself to mastering the ins and outs of PHP, WordPress, ReactJS, NodeJS, and AWS, so you can trust me to handle your web development needs with expertise and finesse. In 2021, I decided to share my knowledge and insights with the world by starting this blog. It's been an incredible journey so far, and I've had the opportunity to learn and grow alongside my readers. Whether you're a seasoned developer or just dipping your toes into the world of web development, I'm here to provide valuable content and solutions to help you succeed. So, stick around, explore the blog, and feel free to reach out if you have any questions or suggestions. Together, let's navigate the exciting world of web development!

Leave a Comment