Description
Yelocate improves WooCommerce checkout by validating customer addresses, email addresses, and phone numbers in real time using an external validation API.
The plugin works by collecting checkout field values in the browser and sending them to a server-side AJAX handler in WordPress. The handler securely calls the configured validation API and returns a normalised response displayed to the customer as an inline banner near the relevant field.
Each validation type (address, email, phone) can be enabled or disabled independently and configured with its own CSS selectors, so the plugin adapts to any checkout layout — classic WooCommerce or block-based.
External Services
This plugin connects to the Yelocate API (https://yelocate.com) to perform
real-time validation of addresses, email addresses, and phone numbers at
WooCommerce checkout.
What data is sent and when:
- Address validation — billing address fields (address line 1, address
line 2, city, state/province, postcode, country) are sent to the API when
the customer fills in their billing address at checkout. Only triggered for
the 40 supported countries listed below; all other countries are silently
skipped. - Email verification — the email address entered in the billing email
field is sent to the API as the customer types. - Phone verification — the phone number entered in the billing phone
field, along with the billing country code, is sent to the API when the
customer leaves the field (on blur), provided at least 7 digits are present.
Each validation type can be independently disabled. No API calls are made for
disabled validation types. The API key is stored server-side and is never
exposed to the browser.
This service is provided by Yelosoftware:
* Terms of Service: https://yelocate.com/terms
* Privacy Policy: https://yelocate.com/privacy
Features
- Address validation — verifies billing address in real time; detects missing components, suggests field-level corrections, and silently skips unsupported countries
- Email verification — validates deliverability and detects disposable or malformed addresses as the customer types
- Phone verification — validates phone numbers on blur once at least 7 digits are present; passes the billing country as the region code for accurate international validation
- Server-side API calls — the API key is never exposed to the browser
- Works with both classic and block-based WooCommerce checkout
- Each validation type has its own configurable CSS selectors and banner mount point
- Per-type enable/disable toggles — only enabled validations trigger API calls
- Intelligent address diffing — for suggested addresses, the plugin compares entered vs. suggested values field by field; if the only differences are formatting or language conventions, the address is treated as valid
- Graceful handling of incomplete addresses and unsupported countries
- Fully configurable via WordPress Admin Settings Yelocate Validation
Supported Countries (Address Validation)
Address validation is only triggered for the following countries. For all other countries the plugin stays silent and no API call is made.
Argentina (AR), Austria (AT), Australia (AU), Belgium (BE), Bulgaria (BG), Brazil (BR), Canada (CA), Switzerland (CH), Chile (CL), Colombia (CO), Czechia (CZ), Germany (DE), Denmark (DK), Estonia (EE), Spain (ES), Finland (FI), France (FR), United Kingdom (GB), Croatia (HR), Hungary (HU), Ireland (IE), India (IN), Italy (IT), Japan (JP), Lithuania (LT), Luxembourg (LU), Latvia (LV), Mexico (MX), Malaysia (MY), Netherlands (NL), Norway (NO), New Zealand (NZ), Poland (PL), Puerto Rico (PR), Portugal (PT), Sweden (SE), Singapore (SG), Slovenia (SI), Slovakia (SK), United States (US)
Configuration
Shared
- API Key — authentication key generated in your Yelocate dashboard (https://yelocate.com). Sign up, purchase validation credits, and generate a key before configuring the plugin. The key is stored server-side and never sent to the browser.
- Strictness — controls address validation strictness (
normalorstrict)
Address Validation
- Enable address validation — tick to activate; untick to disable completely
- API URL — address validation endpoint
- Banner mount selector — CSS selector for the element above which the address banner is inserted
- Address line 1 selector
- Address line 2 selector (optional)
- City selector
- State / province selector (optional)
- Postcode selector
- Country selector
Typical WooCommerce (classic) selectors:
Address line 1: #billing_address_1
Address line 2: #billing_address_2
City: #billing_city
State: #billing_state
Postcode: #billing_postcode
Country: #billing_country
Banner mount: #billing_address_1_field
Email Verification
- Enable email verification — tick to activate
- API URL — email verification endpoint
- Banner mount selector — CSS selector for the element above which the email banner is inserted
- Email input selector — CSS selector for the email input field
Typical WooCommerce (classic) selectors:
Email input: #billing_email
Banner mount: #billing_email_field
Phone Verification
- Enable phone verification — tick to activate
- API URL — phone verification endpoint
- Banner mount selector — CSS selector for the element above which the phone banner is inserted
- Phone input selector — CSS selector for the phone input field
Validation fires when the customer leaves the phone field, provided at least 7 digits are present. The billing country is automatically passed as the region code.
Typical WooCommerce (classic) selectors:
Phone input: #billing_phone
Banner mount: #billing_phone_field
License
This plugin is licensed under the GPLv2 or later.
https://www.gnu.org/licenses/gpl-2.0.html
Installation
- Upload the plugin folder to
/wp-content/plugins/ - Activate the plugin via Plugins Installed Plugins
- Go to Settings Yelocate Validation
- Configure the shared API key, then enable and configure each validation type as needed
- Visit your WooCommerce checkout page and test the validation banners
FAQ
-
How do I get an API key?
-
Create an account at https://yelocate.com, purchase validation credits, and generate an API key in your dashboard. Paste this key into the API Key field in WordPress under Settings Yelocate Validation.
-
Does this plugin expose the API key to the browser?
-
No. The API key is stored in WordPress options and used only in server-side AJAX requests. It is never included in the JavaScript configuration passed to the browser.
-
Does this plugin block checkout if validation fails?
-
No. The plugin provides informational feedback but does not prevent the customer from completing checkout. You may extend this behaviour if desired.
-
Does it work with custom or block-based checkout layouts?
-
Yes. All field selectors and banner mount points are fully configurable, so the plugin supports custom and block-based checkout implementations as long as the correct CSS selectors are provided.
-
Why is address validation not triggering for some countries?
-
Address validation is silently skipped for countries not covered by the underlying API. See the “Supported Countries” section above for the full list. Email and phone validation are not restricted by country.
-
Why does phone validation only fire when I leave the field?
-
Phone numbers are validated on blur (when the field loses focus) rather than on every keystroke, to avoid unnecessary API calls while the customer is still typing. Validation is also skipped if fewer than 7 digits are present, which prevents calls on partially entered numbers.
-
The plugin compares the entered and suggested address field by field (street, city, postcode, state). If the API returns a suggestion but the actual data values are identical — for example when the only difference is formatting or language — the plugin treats the address as valid and shows a success message instead.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Yelocate” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Yelocate” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.3.0
- Added email verification with configurable field selector and banner mount
- Added phone verification with configurable field selector and banner mount; fires on blur with a minimum of 7 digits
- Each validation type can be independently enabled or disabled
- Address validation now silently skips countries not covered by the API (40 supported countries hardcoded)
- Replaced message-string matching with field-by-field comparison of entered vs. suggested postal address components (street, city, postcode, state); formatting-only differences are treated as valid
- Passed billing country as region code in phone validation requests
- Added hidden input alongside each checkbox to ensure unchecked state is correctly persisted in WordPress options
- Settings page renamed to “Yelocate Validation” and restructured into sections: API Credentials, Address Validation, Email Verification, Phone Verification
0.2.0
- Initial release
- Address validation via external API
- Configurable checkout selectors
- AJAX validation endpoint