Gatemi Registration Fields adds your own questions to WooCommerce's registration form: a company name, a VAT number, how they heard about you, whether they are a trade account — with the answers stored on the customer, shown on their profile, and available to them in My Account when you say so.
One form, everywhere WooCommerce renders it
Fields go on through woocommerce_register_form, which is the My Account page and the checkout's "create an account" box. A required field that one of those renders and the other does not is an account nobody can create, and the merchant hears about it from a customer who could not check out.
A rejected registration keeps what they typed
WooCommerce re-renders the form after an error. A plugin that renders its fields from the stored configuration alone hands the customer an empty box beside the one complaint, so they retype eight answers to fix one. This one reads the submission back. It is the most-reported complaint in this category and it is four lines.
Conditional fields are decided on the server
The script that shows and hides them is a convenience; the same rule is evaluated in PHP, and that is what validation and storage read. A field hidden by a rule is not validated and not stored — otherwise a required question the customer never saw refuses their registration.
It is personal data, and it is treated that way
Answers live in user meta under one namespace, and the plugin registers with WordPress' own personal-data exporter and eraser rather than adding a button of its own — because a customer asking a store for their data expects one export, and a plugin with its own screen is data the store forgets to include.
Features
- Text, text area, dropdown, radio, checkbox, email, phone, number and date fields
- Required fields, ordering, placeholders, and your own CSS classes
- Conditional display: show a field only when another holds a value
- Answers on the user's profile screen, editable by anyone who can edit users
- Fields the customer can edit themselves in My Account — and ones they cannot
- One field as a column on the Users screen
- Keys namespaced automatically, so a field can never overwrite
user_email - Every type names its own sanitizer, and an unknown type falls back to the strictest
Built for stores that mean it
Strict types throughout, PHPStan level 8 with no baseline, WordPress-Extra coding standards at zero errors and zero warnings, and a 208-check simulation suite that runs with no database and no network.
Every license includes
- One year of updates and priority support, delivered straight to your WordPress dashboard.
- Use on 1, 5 or 25 sites depending on your license — local, staging and development sites are always free.
- 30-day money-back guarantee — full refund, no questions asked.
- Keeps working after expiry — if you choose not to renew, the plugin keeps running exactly as installed; it simply stops receiving updates and support until you do.
Requires WordPress 6.4+ · PHP 7.4+ · tested up to WordPress 7.0. Works with the classic and block checkout alike.

Hannah R. (verified owner) –
Been running it on a live store for a couple of months now. Happy to have found it.
Megan Fletcher (verified owner) –
Nothing wrong with it. Nothing that made me sit up either. I’d like one more option in Registration Fields, but it’s fine as it is. Decent bit of kit.
Silvia P. (verified owner) –
Bastante más ligero que lo que tenía antes. Le he exigido bastante a Registration Fields y ha aguantado. No cambiaría nada.
Ian (verified owner) –
Does the job, once you get the settings right. No conflicts with Registration Fields so far, and that’s the main thing. Happy enough.
Brian H (verified owner) –
Doesn’t do quite everything, but what it does it does well. Been running Registration Fields a few weeks now with no trouble. A good four.