WooCommerce
B2B Customer Registration in WooCommerce: NIP, Company Details and Account Approval

B2B customer registration in WooCommerce needs two things. First, a registration form extended with company details and the NIP (the Polish tax ID). Second, approval of new accounts (manual or rule-based) before a business gets to see your wholesale offer. I’m writing this guide for store owners and admins who want to serve businesses alongside retail customers. I’ll show you which fields to collect, how to check the NIP, how to set up approval and how to put it all in place without rebuilding your store.
Table of Contents
How is B2B customer registration in WooCommerce different from a regular account?
A standard WooCommerce account is basically an email address and a password. A business customer needs more: invoice details and some kind of verification. You turn on registration in the WooCommerce settings, under Accounts & Privacy, and the form then shows up on the My Account page. The catch is that by default it has no company fields. It can’t tell a retail buyer from a wholesale one. And there’s no approval step. In a WooCommerce B2B store that’s a real problem, because wholesale prices, payment terms and trade documents shouldn’t end up with random people. Right?
What company details should the registration form collect?
Only what you actually need for invoicing and verification. Every extra field is one more reason for someone to close the tab halfway through. In my view, a sensible set looks like this:
- full company name,
- NIP,
- registered office address,
- contact person,
- phone number,
- business email address,
- optionally, industry or expected purchase volume.
Name, NIP, address and email - required. Without them you can’t issue an invoice or check the company. Phone and industry can safely stay optional. Next to the form, briefly explain why you process the data and where your privacy policy is. As for the details of legal compliance? That’s a conversation for a lawyer, not a developer.
The NIP field in registration: how to add it and validate it
Validate the NIP right in the form. Otherwise wrong numbers get into your database and then onto invoices (and the corrections begin). A script can check the format and the checksum before the form is submitted and catch a typo straight away. Customers from other EU countries give an EU VAT number, which you can verify in the EU’s VIES system. Oh, and save the number in the user profile, not just in the application itself. That way it appears on the order and the invoice automatically, and the customer doesn’t have to retype it with every purchase.
Approving customer accounts before the first order
Customer account approval is simply a waiting room: a new business waits until an admin approves it, and only then sees the wholesale offer or can place an order. In practice it goes roughly like this:
- The business fills in the registration form.
- The admin gets a notification about the new application.
- Someone on the team checks the details.
- The account is approved or rejected.
- The customer gets a message with the decision.
When verifying a wholesale buyer, check that the company name matches the NIP, plus the registered address and contact details. Nothing complicated overall. But one thing often gets skipped: the message shown right after registration. The customer should know straight away that the account is waiting for approval, roughly how long that takes and what will land in their inbox. Without it, they write to support. Or they leave.
Custom registration form and notifications with Custom User Forms PRO
The Custom User Forms PRO plugin replaces the standard login and registration forms with your own, matched in look and behaviour. You drop the [custom-register-form] shortcode onto a separate page for businesses. The package also includes [custom-login-form], [custom-password-lost-form] and [custom-password-reset-form]. The [account-info] shortcode lets customers manage their own profile. For developers there’s the cuf_notification_new_user hook - use it to set where and what notification goes out after an account is created, for example to the person who approves B2B customers. And cuf_pages_args gives you control over page arguments.
Setting up B2B customer registration in WooCommerce step by step
There are a few steps, and I recommend clicking through all of them on a copy of the store first, not on production. Checklist:
- a separate registration page for businesses,
- company detail and NIP fields with validation,
- an admin notification about each new application,
- a written approval procedure with a named person in charge,
- messages for the customer after registration and after the decision,
- a test of the whole path, from application to first order.
Where do people trip up most often? A form that’s too long. No information that the account is waiting for approval. A NIP accepted with no validation at all. And no one who actually approves the accounts - that last one hurts the most, because applications sit for weeks while customers go to the competition.
Well-organised B2B customer registration in WooCommerce gives you control over who sees your wholesale offer. And correct company details in the profile save you a lot of fiddling with invoices.
Frequently asked questions
Does WooCommerce have a NIP field in registration without extra plugins?
No. The standard WooCommerce registration form has no NIP field. You have to add it with a custom form or with code in your theme or a plugin. While you’re at it, add number validation and saving to the user profile right away.
How do I notify the admin about a new business account?
The simplest way is by email, right after registration. You can set the content and recipient with, for example, a hook that fires after the user is created. Just make sure the message goes to the person who actually verifies wholesale buyers, not to a general inbox nobody reads.
Can retail and business customers use the same store?
Yes, as long as they have separate registration paths. A retail customer creates an account instantly, a business account waits for approval. That’s it. One store serves both groups, and the wholesale offer stays reserved for verified businesses.