Cash on delivery stores in Bangladesh lose real money when customers mistype their mobile number. The courier calls a dead number, the parcel comes back, and the SMS gateway silently drops the order updates.
Nombar BD Mobile Validator fixes the number at the moment it is typed. Every valid number is cleaned and saved in the one format your tools expect, and obviously broken ones are stopped at checkout with a friendly message in Bangla or English.
What it does
[nombar] shortcode adds a self-validating phone field to any page or plain HTML form.nombar_normalize_phone() and nombar_validate_phone(), plus filters for prefixes, error messages and more.Why it stays free
This plugin is pure PHP and a few regular expressions. It runs entirely on your own site: no API calls, no SMS, no OTP service, no external servers, nothing to pay for. It intentionally does not verify that a number is switched on or owned by the customer — real OTP verification costs money per SMS, and this plugin is designed to cost nothing.
No, on purpose. OTP verification requires a paid SMS gateway. Nombar BD Mobile Validator does the free part well: it makes sure the number is a real, complete, correctly formatted Bangladeshi mobile number before it reaches your orders.
All Bangladeshi mobile prefixes: Grameenphone (013, 017), Robi (018), Airtel (016), Banglalink (014, 019) and Teletalk (015).
Yes. Use the [nombar] shortcode on any page, or call nombar_normalize_phone() / nombar_validate_phone() from your own plugin or theme.
No. It validates mobile numbers only, because mobile numbers are what couriers and SMS tools need. Numbers starting with the Dhaka area code 02 and other landline codes will not pass.
Yes, with the nombar_operator_prefixes filter:
add_filter( 'nombar_operator_prefixes', function( $prefixes ) { $prefixes['0132'] = 'Custom'; return $prefixes; } );
The fake-number check rejects numbers whose last eight digits are all identical, like 01711111111. If you would rather accept anything with a valid prefix, untick the strictness option on the settings page, or use the nombar_reject_repeated_digits filter.
Yes. The classic checkout validates through the standard checkout hooks. The block checkout (the default on new WooCommerce installs) works too: Bangla digits are normalized before WooCommerce checks them, and anything with a bad prefix, wrong length or fake pattern is blocked when the order is placed, with the same friendly error.