Checkout Fields for Woo — WordPress plugin by Onne Kierkels
Woo plugin · v2.0.0

Stop asking for fields
that don't apply.

Configure per-product which Woo checkout fields are required, optional or hidden. Free for the standard fields. PRO adds custom fields per product, conditional logic, per-category settings and validation patterns (Dutch postcode, KVK, IBAN, EU VAT).

Woo 6.0+ WordPress 6.0+ PHP 8.0+ HPOS-ready Cart & Checkout Blocks
Checkout"E-book download" cart
First nameRequired
EmailRequired
VAT numberPRO custom
Order notesOptional
No shipping address for digital goods — checkout asks only what matters.

Default Woo checkout is one-size-fits-nothing.

Woo asks for the same 11 billing + 9 shipping + 1 order fields on every order. For a digital product, half is irrelevant. For a B2B order, you need VAT and project codes Woo doesn't have. Settings → Advanced is too coarse.

01
Digital products don't need shipping address

Asking for it kills conversion ("why do they need my address for a PDF?"). Free lets you hide all shipping + address fields per digital product.

02
B2B needs more than B2C

Companies need a VAT field, a KVK, sometimes a project code. PRO's conditional logic shows them only when the customer is buying for a company.

03
Catalogs are big

Editing 200 products by hand is unworkable. PRO's per-category settings let you set the same rule for a whole category at once.

04
Wrong data costs real money

A wrong postcode = a returned shipment. PRO's validation patterns (Dutch postcode, KVK, EU VAT, IBAN) catch typos at checkout before they cost you.

Three small moves,
zero code.

All inside the standard Woo product edit screen — new "Checkout fields" tab in Product Data.

1

Configure

Open a product, click the new "Checkout fields" tab. Toggle each Woo standard field to Default / Required / Optional / Hidden.

21 standard fields4 statusesQuick actions
2

Add (PRO)

In PRO, add custom fields per product (text, email, dropdown, …) and validation patterns. Or set defaults per product category. Or wire conditional logic ("show X when Y = Z").

Custom fieldsConditional logicPer category
3

Cart-aware checkout

When the cart contains multiple products, the strictest rule wins. One product requires phone → phone is required for the order. Custom fields collected at checkout land as order item meta — visible in admin orders, emails and PDF invoices.

Strictest winsOrder item metaNo code

Free covers what every shop needs.
PRO covers what B2B and big catalogs need.

No upsell tax on basic functionality — the strictest-wins resolver, hidden/required/optional toggle, multi-product carts and HPOS support are all in the free version.

Per-product config (free)

The core feature, no limits.

  • 21 Woo standard fields covered (11 billing + 9 shipping + order notes)
  • 4 statuses per field — Default / Required / Optional / Hidden
  • Quick actions — "All required" / "All optional" / "Hide all" / "All default"
  • Cart-aware resolution — strictest rule wins across multiple products

Custom fields per product (PRO)

Beyond Woo's standard set.

  • 6 field types — text, email, phone, textarea, dropdown, checkbox
  • Required toggle per field
  • Auto-saved as order item meta — shown in admin order screen, customer emails and PDF invoices
  • Cart de-duplication — two products requesting "VAT number" only render once

Conditional logic (PRO)

"Show X when Y = Z."

  • Lightweight JS rule engine — no jQuery, no flicker
  • Per-product rules stored as _cffw_conditions meta
  • Cross-field — trigger on standard or custom fields

Per-category settings (PRO)

Configure a whole category at once.

  • Term-level meta — set rules on the product_cat edit screen
  • Per-product overrides still win — category fills gaps
  • Same UI as the per-product tab — no extra learning

Validation patterns (PRO)

Catch typos at checkout.

  • Dutch postcode 1234 AB
  • KVK (8 digits) · EU VAT · IBAN · Dutch phone
  • Custom regex per field
  • Server-side validation on woocommerce_checkout_process — blocks invalid orders

Under the hood

Built on standard Woo APIs.

  • Woo product data tab — no separate menu screens
  • Classic checkout + Cart & Checkout Blocks compatible
  • HPOS-compatible
  • Auto-updates via OCW License Server (PRO)

No external services. No code.

Free runs on standard WordPress + Woo. PRO uses the OCW License Server for license validation + updates — that's it.

WordPress

6.0 or higher

Woo

6.0 or higher

PHP

8.0 or higher

Version

2.0.0

Start free.
Upgrade when checkout becomes a conversion lever.

Free covers per-product field toggling. PRO is for B2B-leaning shops and bigger catalogs.

Free

Checkout Fields for Woo

Per-product checkout field toggling, no limits.

0

Free forever · 1 site

  • Per-product config — 21 Woo standard fields, 4 statuses
  • Quick actions (All required / Hide all / …)
  • Cart-aware resolution — strictest rule wins
  • HPOS + Cart & Checkout Blocks compatible
  • Tutorial submenu with progress detection
  • OCW house-style admin (teal / navy / pink)
  • No limit on number of products

No signup, no API keys required.

PRO

Checkout Fields for Woo PRO

For B2B-leaning shops and bigger catalogs.

39

per year · 1 site · excl. VAT

  • Everything in Free, plus:
  • Custom fields per product (text, email, phone, textarea, dropdown, checkbox)
  • Conditional logic — "show X when Y = Z"
  • Per-category settings — configure a whole category at once
  • Validation patterns — Dutch postcode, KVK, EU VAT, IBAN, custom regex
  • Custom fields saved as order item meta + visible in admin + emails
  • Automatic updates via OCW License Server
  • Priority support — personal help via email

Per year. Instant access after payment. Cancellable annually.

What people usually want to know
before they install.

Answers to the questions I get most often.

My cart has 3 different products with conflicting rules — which one wins?

Strictest wins. Required > Optional > Hidden > Default. If one product says "phone is required" and another says "phone is optional", phone becomes required for the whole order. Safe choice — never accidentally skips data.

Does it work with Cart & Checkout Blocks?

Yes. The plugin declares cart_checkout_blocks compatibility and ships a small JS shim (assets/js/checkout-blocks.js) that applies hidden/required rules in the block-based checkout too.

Where do PRO's custom field values end up?

As order item meta on the line item that triggered them. Woo automatically shows order item meta in the admin order screen, customer emails, and any PDF invoice plugin that respects order item meta. No manual hook needed.

What's the validation regex if I want a Dutch postcode?

Use the "Dutch postcode (1234 AB)" preset — the underlying regex is /^[1-9][0-9]{3}\\s?[A-Z]{2}$/i if you want to match the same pattern elsewhere.

Can I move a PRO license to another domain?

Yes. Clear the key on the old site (this triggers /deactivate on the license server) and enter it on the new site. Single Site = 1 active domain at a time.

How do PRO updates work?

Updates appear in your normal WordPress updates screen. The plugin checks the OCW License Server with your license key, and only an active license receives the new ZIP.

Questions about the plugin?

Or you'd like something adjusted for your situation — I'd love to hear it. I always reply personally.