Customize checkout fields and order confirmations
Use Checkout fields customizer to manage native fields, billing identifiers, checkout text, coupon-form visibility, age, gender and custom billing fields. Order received message remains a separate control. You need WooCommerce and permission to manage POM Tweaks settings on the current site.
Choose native fields and checkout text
Open Settings → POM Tweaks → E-Commerce → Cart & checkout → Checkout fields customizer and enable the control.
- Company name field, Address line 2 field, and Phone field select Hidden, Optional, Required, or WooCommerce default. Company and address line 2 follow WooCommerce's billing and shipping address behavior; phone follows its billing form.
- Remove billing field controls remove individual billing fields from classic checkout and the customer's billing-address form.
- Remove billing and shipping address fields at checkout removes company, street, address line 2, city, postcode, country, and state from both classic checkout sections. It does not remove names, email, phone, or tax ID.
- Order notes label, Order notes placeholder, Returning customer message, and Remove order notes customize classic checkout. Empty text retains the existing wording.
Only remove address fields when the store's taxes, shipping and payment methods can work without them. Other integrations can still require their own information; this control does not bypass gateway or shipping validation.
Hide the coupon form above checkout
Enable Hide the coupon form above checkout in Checkout fields customizer and save. The standard coupon prompt and form above classic checkout disappear, including in POM Theme checkout layouts. Disable this option to restore the native form unless another control also removes it.
This setting changes that form only: coupons entered in the cart and their discounts remain active, the cart coupon form remains available, and Checkout block keeps its own coupon interface. If Coupon below order review is enabled, its separate field still appears below the summary. See coupon placement.
Verify the change with a product in the cart, then apply a coupon from the cart and confirm the discount remains at checkout. If both coupon controls are enabled, check the lower field separately.
Collect age or gender
Enable Collect date of birth to show the date field in classic checkout. Require a minimum age makes it mandatory and accepts customers on their minimum-age birthday. Nonexistent dates and future birthdates are rejected. The date appears in the order's billing details in administration.
Enable Collect gender, choose Gender choices, and optionally select Require gender. Only the selected choices are accepted. Gender is also available in the billing-address form. Collect these values only when relevant to the order.
Add conditional custom billing fields
These fields require classic checkout. The Checkout block supports the separate billing tax ID feature below; it does not render this repeater, signatures, age, or gender controls.
- Under Custom billing fields, choose Add new.
- Give the field a unique Field name, using lowercase letters, numbers and underscores. For example,
customer_typecreates the checkout fieldbilling_customer_type. Keep the name unchanged once orders use it. - Set the label, description, placeholder and type. Supported types are Text, Textarea, Email, Phone, Number, Date, Checkbox, Select and Signature.
- For Select, choose Stable values, one per line and enter an option such as
business|Businesson each line. Translate labels without changing the values before the|. Theme comma-separated options retains the former theme editor's option values and translations. - Set Required and Priority. Lower priorities appear first; equal priorities follow repeater order.
- To show a field conditionally, enter the full controller name in Show when field, choose Condition, and enter Comparison value when needed. For example, show a business identifier when
billing_customer_typeequalsbusiness. Use1for a checked checkbox. A blank controller always shows the field. - Save, reopen the settings and test both matching and nonmatching selections.
Hidden fields are disabled in the browser, are not required, and are not saved with the order. Conditions are checked again on the server. Chained conditions are supported; missing controllers or circular conditions keep the dependent field hidden.
Preserve former theme behavior keeps previously transferred non-signature fields optional and omits their help text. Turn it off when you want the configured Required and Field description values to apply. Required signatures remain required in either mode.
Keep imported field names unchanged, including spaces, slashes, periods or accented letters. They identify existing order data. New fields should use lowercase letters, numbers and underscores. Avoid names that differ only by spaces, periods and underscores: PHP treats those characters equivalently in submitted form names, so they cannot safely identify different inputs.
Customers can draw a signature with a mouse, pen or touch and use Clear to start again. Signature captured. confirms a captured drawing. Signatures and custom values appear below billing details in order administration. Existing signatures remain readable; changing the active theme does not remove these fields. Ordinary custom fields are order data, not automatically additional email or customer-facing order sections.
Configure Billing CIF/NIF
- Open Settings → POM Tweaks → E-Commerce → Cart & checkout.
- Enable Checkout fields customizer, save to initialize its fields, then select Collect a billing tax ID.
- Set Field label, Placeholder, and Description. An empty label uses CIF/NIF.
- Select Require a billing tax ID if every checkout must provide one.
- Save, reopen the settings, and check the checkout used by your store.
Classic checkout displays the field with billing details. The block checkout displays it once under Additional order information; keep that block in your checkout layout. Block checkout needs WooCommerce's additional checkout fields API (WooCommerce 8.9 or later). It uses the configured label; placeholder and description apply to classic checkout and the billing address editor.
Values are normalized to uppercase without spaces, hyphens, or underscores before format validation. The format accepts a leading alphanumeric character, at least four digits, and a final alphanumeric character, optionally preceded by a two-letter country code, up to 32 normalized characters. This is a format check, not a checksum, VAT exemption, or tax-authority verification.
The identifier belongs to billing, never shipping. Existing saved order and customer identifiers remain available. Customers can update it in My account → Addresses → Billing address. Store managers can edit it in a customer's billing profile or an order's billing details. Editing an order does not overwrite the customer's current identifier. Clearing an optional field removes its value.
Order billing addresses and emails include the identifier. PDF templates using the existing [[CIFNIF]] placeholder receive that order's identifier. An empty order identifier does not fall back to the administrator viewing the document.
With WooCommerce Subscriptions, new checkout subscriptions copy the order identifier. A customer's billing-address update changes active and on-hold subscriptions only when the customer explicitly selects the update-all-subscriptions option. Historical completed or cancelled subscriptions stay unchanged.
Configure Order received message
- On the same Checkout tab, enable Order received message and save.
- Enter the plain-text message and save again.
- Check a valid order confirmation. Leave the field empty to retain WooCommerce's existing wording.
Failed, cancelled, and refunded order messages remain intact. A confirmation shown without access to the order also retains its existing wording. The message does not change payment status or send an email.
The label, placeholder, description, and message support the framework's Polylang string translations when Polylang is available. Save the source text before adding its translations.
Verify and troubleshoot
- Try an empty required identifier, a malformed value, and a valid value with spaces or hyphens on a staging checkout.
- Confirm the saved value in the order's billing details, then edit that order and confirm the customer profile remains unchanged.
- If block checkout has no field, check that Additional order information is present and WooCommerce supports additional fields.
- If the identifier appears twice, check whether another checkout or tax plugin also provides a billing-ID field.
- A theme can display placeholders instead of labels in classic forms. Configure both where needed.
Disabling Checkout fields customizer stops all its field customizations; disabling Order received message stops only that message. It does not erase historical order or customer identifiers. Related: Customize purchase buttons.