Customize checkout without losing validation
Use this workflow to change checkout fields, content, policies, gateways, and fees while preserving WooCommerce validation and the data required by payment, tax, shipping, fraud, and fulfillment integrations.
Identify the checkout implementation
Confirm whether the checkout page uses Classic Checkout or Checkout Block. Classic checkout hooks and PHP field filters do not automatically reproduce their output in Checkout Block.
Establish a test matrix
Include:
- guest and logged-in customers;
- physical, virtual, and mixed carts;
- every shipping zone, tax condition, and payment gateway;
- coupons, zero-value orders, and a failed payment;
- the required desktop and mobile viewports.
Change the form in layers
- Under Settings → POM Tweaks → E-Commerce → Cart & checkout → Checkout fields customizer, change labels or the order-notes field before removing billing data.
- Use the Remove billing field controls only after confirming that downstream integrations do not require the selected billing fields. Test minimum-age and gender validation separately when enabled. Test each custom field condition in both states, including required signatures.
- Configure Settings → POM Tweaks → E-Commerce → Accounts & privacy → Required checkout checkbox for a general acknowledgment recorded on each accepted order. Enable its block option when using Checkout block and include the Additional information block.
- For product-specific policies with recorded order evidence and Checkout Block support, use Settings → POM Tweaks → E-Commerce → Accounts & privacy → Product specific Terms & Conditions instead.
- Add trusted content under Settings → POM Tweaks → E-Commerce → Cart & checkout → Checkout content hooks only for Classic Checkout positions.
- Apply product- or role-based gateway filtering before adding gateway fees, so the fee is tested only against gateways that remain available.
Place the coupon field beside the summary
Enable Settings → POM Tweaks → E-Commerce → Cart & checkout → Coupon below order review for classic checkout. It follows the summary in every POM Theme checkout layout. Test a valid code, an invalid code and removal, checking totals and notices without advancing the checkout step. See coupon placement for details. The Checkout block keeps its native coupon interface.
To hide only the standard form above classic checkout, enable Hide the coupon form above checkout within Checkout fields customizer. Cart coupons and applied discounts remain available. This option also leaves the separate lower coupon field and Checkout block unchanged.
Assist an existing customer
Use Shop as customer to load a customer in classic checkout. Choose the order owner explicitly, review shipping and custom fields, and verify both account profiles remain unchanged. Staff identity and role prices remain active; they do not switch to the customer. With the required acknowledgment, changing the selected customer requires a fresh confirmation.
Validate the final checkout
- Confirm every intended field is visible, required, and stored correctly.
- Submit without each required checkbox, age value, or product policy and confirm the order is rejected.
- Submit a valid order and inspect billing, shipping, custom values, policy evidence, fees, tax, and totals.
- Change the selected gateway and confirm availability and taxable fees recalculate.
- Test a mixed cart where one item changes gateway availability.
- Inspect the resulting order in administration and its customer and administrator emails.
When an integration fails, restore the last removed field or gateway rule first and retest the same matrix. Do not compensate for missing required data with visual checkout text.
Related guides
- Require product-specific terms at checkout
- Remove selected checkout fields
- Add content to checkout hooks
- Limit payment gateways by product
- Add fees by payment gateway
Configure shipping presentation and table service
Use Settings → POM Tweaks → E-Commerce → Shipping for independent shipping descriptions and logos, free-rate preference and table orders. Define the underlying zones and rates in WooCommerce first. Check ordinary delivery and table service separately in the checkout interface your store uses.