Product Icon

Phone Validator and Formatter for WooCommerce

Catch bad phone numbers before they cost you a delivery. Real-time validation, clean formats, and an optional country flag selector.
Choose a billing option
$29
Save 20%
$58 $46.40

Subscription includes

  • Product updates and improvements
  • Customer support
  • 30-day money-back guarantee

Take control of every phone number in your store. Phone Validator & Formatter brings real-time phone number validation to WooCommerce and makes sure each number a customer enters is real, callable, and saved in one clean format – so deliveries arrive, SMS notifications get through, and your CRM, shipping, and marketing tools never trip over bad data.

It works everywhere a phone number enters your store – classic and block checkout, My Account, order edits, profile edits – and validation always runs on your server using Google’s libphonenumber. Nothing to bypass, no customer data sent to third-party services, no per-lookup fees.

And your checkout? You decide how it looks. Keep the plugin completely invisible – customers see the same phone field as always – or switch on the country flag & dial code selector, new in 1.5.


Two Ways to Show It at Checkout – You Choose

Checkout phone validation and formatting always work the same – you only choose what customers see at the checkout phone field.

Invisible phone validation mode next to the country flag and dial code selector with a dropdown offering only the countries the validation rules accept

Invisible – Customers Notice Nothing

The default, and for many stores the right choice. The phone field looks exactly the way it always has; validation and formatting happen quietly in the background. No new UI to explain, and no extra JavaScript added to your pages.

Flag + Dial Code – the Field Customers Know from Stripe and Shopify

One setting, and the phone field shows a country code selector – flag plus dial code. The dropdown only ever offers countries your validation rules accept. When your store matches the phone to the billing/shipping country, the flag mirrors the address and swaps automatically when it changes. There is nothing extra to configure – the initial flag and the country list are derived from your validation settings. It speaks your customer’s language, including right-to-left scripts.


What You Get: Valid, Formatted Phone Numbers on Every Order

Invalid phone number error message at WooCommerce checkout

No More Wrong Numbers in Your Orders

Typos are caught before the order exists. Real-time validation blocks invalid numbers during checkout, with clear, contextual error messages that help customers self-correct instantly. Because the final check always runs on your server, it works even when JavaScript is disabled or a browser extension interferes – the cases where front-end-only validators silently let bad numbers through.

Nothing slips past. If an invalid number does enter your store another way (imported orders, manual edits), it’s flagged directly in your WooCommerce orders list – before the parcel ships, not after the courier calls a dead number.

Invalid phone number flag in the WooCommerce orders list


Automatic dial code addition – customer types a national number, it is saved in international format

Zero Friction for Your Customers

With the invisible validation your customers type their number the way they always do. Most shoppers skip the country code – and that’s perfectly fine. The plugin matches the phone to the selected country and adds the correct dial code behind the scenes; customers who prefer to type it themselves can.

You get properly formatted international numbers. They get a checkout that just works. No new habits to learn, no extra fields.


One number, the format you choose - E.164 + International + National

Numbers Ready for Whatever Comes Next

One consistent format across your whole stack. Store every number in your preferred format – E.164 (+420777123456) for SMS gateways and APIs, international with spacing for readability, or national for regional teams. Applied on order creation, order edits, My Account updates, and profile edits.

Easy further processing, zero manual cleanup. CRM, SMS marketing, shipping labels, customer support – every tool receives the same clean number, and the “+42 0777…” mysteries disappear from your exports.


Phone number validation restriction settings in WooCommerce

Rules That Match How You Sell

Sell to one country, a region, or the whole world. Accept numbers from all 200+ countries and territories, require the phone to match the billing/shipping country, or define your own list of allowed countries.

Reduce failed deliveries and COD losses. A phone number that matches the shipping country is a number your carrier can actually call. Set the rule once and the plugin enforces it on every order.


Fast Either Way – Built for Core Web Vitals

Flag selector loads 3 kB of JavaScript instead of a typical 300 kB phone input widget

Invisible mode adds nothing to your storefront. And the flag selector is engineered for Core Web Vitals: assets load only on checkout and My Account pages, the heavy phone engine is fetched lazily, and in the most common configurations the flag renders with roughly 3 kB of JavaScript – up to 100× less than the ~300 kB a typical phone-input widget ships.

No CDN. No third-party requests. No tracking. All assets are bundled with the plugin and served from your own site – good for GDPR, great for reliability.


Ready for AI Agents, MCP, and Automations

WordPress Abilities API, MCP and REST endpoints for phone validation and standardization

Your phone data, available to the tools of 2026. The plugin registers validate and standardize abilities via the WordPress Abilities API (WordPress 6.9+), so AI agents and automation platforms can discover and call them out of the box – for example through MCP.

Prefer classic integrations? Optional REST API endpoints expose the same validation and standardization, and a full set of filters and actions lets developers tailor everything to their stack.


How It Works

Phone number options settings in WooCommerce – validation restrictions, standardize on save and display mode

  1. Install & enable – activate the plugin and tick one checkbox in WooCommerce → Settings → General → Phone number options.
  2. Pick your rules – choose country restrictions, the stored format (E.164 recommended), and how the checkout should look: invisible or flag + dial code.
  3. Done – every phone number entering your store is validated and standardized from now on. Existing orders are never modified. Full setup details are in the documentation.

Why Merchants Choose Phone Validator & Formatter

  • Server-side, not just browser-side. Most phone plugins validate only in the browser; this one always verifies on the server, so no invalid number reaches your database.
  • Every entry point, not just the billing field at checkout. Billing and shipping phones, classic and block checkout, My Account, order edits, and profile edits.
  • No external service, no per-lookup fees. Validation runs locally on Google’s libphonenumber – customer numbers never leave your server, and there is no API quota to worry about.
  • Invisible by default, flag selector when you want it. Either way it’s light: zero extra JavaScript in invisible mode, as little as 3 kB in flag mode – instead of a ~300 kB widget on every page.
  • Consistent by design. The flag dropdown, the front-end check, and the server-side rules always agree, because they share one configuration.

Every phone number under control – set it up once, benefit on every delivery.


Frequently asked questions

Does it work with the WooCommerce block checkout?

Yes. Validation, formatting, and the flag selector all support both the classic (shortcode) checkout and the Cart & Checkout blocks, plus the My Account address forms. HPOS is fully supported.

Will the flag selector slow down my checkout?

No. Nothing loads until you enable it, assets load only on checkout and My Account pages, and in the most common configurations the flag renders with about 3 kB of JavaScript. The full dropdown library is fetched lazily and never blocks rendering.

Is customer data sent to a third-party service?

No. All validation and formatting happens on your own server using the libphonenumber library. There are no external API calls, no CDN assets, and no per-validation costs — a straightforward setup for GDPR compliance.

Will enabling the plugin change phone numbers on existing orders?

No. Validation and standardization apply from the moment you enable them — past orders are left untouched. Invalid numbers already in your store are simply flagged in the orders list.

 

Where are phone numbers stored?
In the standard WooCommerce billing and shipping phone fields in your own database — no extra tables, no external storage. Deactivate or remove the plugin and your data stays exactly where it always was.
Can I skip front-end validation and only standardize on save?

Yes. Choose Skip phone validation in the settings to format numbers on save without blocking checkout; invalid numbers are then flagged in the admin instead.

Will my customers see anything different at checkout?

Only if you want them to. By default the plugin is completely invisible — the phone field looks the same as always and bad numbers are simply caught. Switch Display Mode to Flag + dial code and the field shows a country flag with the dial code instead.

What happens if a customer doesn’t include a dial code in their phone number?

If a customer doesn’t provide a dial code with their phone number, the plugin assumes the phone number belongs to the same country as the one selected in the billing or shipping address. This mirrors typical behavior when entering phone numbers in real life, where users often omit the country code for local numbers.

When are phone numbers validated, and when are they only formatted?

Wherever the customer enters the number, validation is enforced: an invalid phone number blocks Checkout (classic and block) and the My Account phone edit. Back-office saves — editing an order, creating one manually, or updating a user profile — are never blocked: the number is simply reformatted to your chosen style on save.

Orders whose number failed validation are flagged with a notice in the WooCommerce orders list, so nothing slips through silently.

Can I add a shipping phone field to the classic checkout?
Yes. One setting adds an optional shipping phone field to the classic checkout (the block checkout ships its own). Every number entered there is validated and formatted like any other phone in your store.
Which countries and languages are supported?

Numbers from all countries and territories covered by Google's libphonenumber (200+). The plugin ships in nine languages — Czech, Dutch, English, French, German, Italian, Portuguese, Slovak, and Spanish, across 23 locales including regional and formal variants — is translation-ready, and the flag selector supports right-to-left languages.

Which format should I choose for SMS gateways and CRM integrations?

E.164 (e.g. `+420777123456`) — it is the format SMS gateways, telephony APIs, and most CRMs expect, so numbers flow through your stack without any transformation. Prefer the international format when readability matters, or the national format for a single-country store with regional teams.

How can I report security bugs?

You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. Report a security vulnerability.

Extension information

  • WordPress version required: 6.2
  • WooCommerce version required: 8.3.0
  • PHP version required: 8.1
  • Tested with WordPress: 7.1
  • Tested with WooCommerce: 11.0.1
  • Requires at least WordPress: 6.2
  • Requires at least WooCommerce: 8.2.0

Compatibility

  • Block editor
  • Cart & checkout blocks
  • High performance order storage (HPOS)
  • Product editor

Countries

  • Worldwide

Languages

Czech, Dutch, English (United States), French (France), German, Italian, Portuguese (Portugal), Slovak, Spanish (Mexico), Spanish (Spain)

Requirements

  • WooCommerce 8.2+
  • WordPress 6.2+

Customer reviews

Average rating 5.0

6 reviews from verified users

5 stars, 100% of reviews
4 stars, 0% of reviews
3 stars, 0% of reviews
2 stars, 0% of reviews
1 star, 0% of reviews
  • Rated 5 out of 5
    andrewandwineSpainJun 16, 2025
    Great support and easy to use. Thanks Karolina
  • Rated 5 out of 5
    Simon TomkinsIrelandJun 13, 2025
    This plugin has been a game-changer for keeping our client's customer phone numbers clean and consistent. Now everything gets automatically validated and formatted properly at checkout. What they really appreciate is how smart it is about handling local numbers. When customers don't include their country code, it automatically assumes they're using the same country as their billing address, which makes perfect sense. The setup was straightforward, and I really like that you can choose whether to validate on entry or just format when saving. The plugin catches invalid numbers right away and shows clear error messages, which has reduced customer service inquiries about delivery issues. But what really sets this apart is Karolína's support. She's incredibly responsive and helpful. It's rare to find that level of personal attention with plugins these days. If you're running a WooCommerce store and need reliable phone number handling, don't hesitate on this one.
  • Rated 5 out of 5
    dudlaj4Czech RepublicMay 28, 2025
    Installed. Setup is simple - to fit your needs. Must have plugin for those who like to have correct data from the store.
  • Rated 5 out of 5
    Michal MalátCzech RepublicMay 26, 2025
    We're using Phone Validator because we prefer not to correct phone numbers manually. It's simple to set up and works exactly as expected. Thank you for this useful add-on!
  • Rated 5 out of 5
    Rodolfo MelogliItalyMay 15, 2025
    The plugin is exactly what I needed — simple settings, lightweight code, and it just works out of the box. No unnecessary bloat or complications. On top of that, support is fast, skilled, and clearly knows what they’re doing.

Related Products

Price $79 annually
Rated 3.4 out of 5 stars
Price $279 annually
Rated 3.2 out of 5 stars
Price $59 annually
Rated 3.1 out of 5 stars
Price $109 annually
Rated 2.7 out of 5 stars
Price $109 annually
Rated 2 out of 5 stars
Price $49 annually
Rated 4.1 out of 5 stars
Price $109 annually
Rated 2.3 out of 5 stars
Price $109 annually
Rated 2.6 out of 5 stars
Price $109 annually
Rated 2.3 out of 5 stars
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.