Title: MDL Local Service Lead Validator
Author: Monday Digital Lab
Published: <strong>June 4, 2026</strong>
Last modified: June 4, 2026

---

Search plugins

![](https://ps.w.org/mdl-local-service-lead-validator/assets/banner-772x250.png?
rev=3560935)

![](https://ps.w.org/mdl-local-service-lead-validator/assets/icon.svg?rev=3563674)

# MDL Local Service Lead Validator

 By [Monday Digital Lab](https://profiles.wordpress.org/mondaydigitallab/)

[Download](https://downloads.wordpress.org/plugin/mdl-local-service-lead-validator.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/mdl-local-service-lead-validator/#description)
 * [Reviews](https://wordpress.org/plugins/mdl-local-service-lead-validator/#reviews)
 *  [Installation](https://wordpress.org/plugins/mdl-local-service-lead-validator/#installation)
 * [Development](https://wordpress.org/plugins/mdl-local-service-lead-validator/#developers)

 [Support](https://wordpress.org/support/plugin/mdl-local-service-lead-validator/)

## Description

**MDL Local Service Lead Validator** helps local service businesses stop receiving
leads from outside their service area. When a visitor fills in a phone number on
a contact or lead form, the plugin checks the area or regional code against your
configured service area. If the number is outside your allowed coverage, the submission
is blocked and the visitor sees your warning message.

#### How it works

 1. You configure your service area in **Lead Validator > Settings**.
 2. The plugin builds and stores the allowed code list from your selected countries,
    regions, or manual entries, and also stores the structured picker selection used
    by the admin UI.
 3. When a visitor submits a form, the plugin validates the number in the browser for
    instant feedback and on the server for supported integrations.
 4. Valid numbers submit normally. Invalid numbers are blocked and show your warning
    message.

#### Admin screens

 * **Lead Validator > Settings**: General, International, and Logging tabs
 * **Lead Validator > Form Overrides**: per-form allowed code lists
 * **Lead Validator > Blocked Leads**: blocked submission log with CSV export

#### Validation modes

 * **NANP**: for standard US and Canada style numbers
 * **International**: for non-NANP countries or multi-country setups

The General tab controls which countries and regional codes are allowed. The International
tab controls how those selected countries are parsed when international mode is 
enabled.

#### Supported form plugins

 * **Contact Form 7** (free)
 * **WPForms** (free and Pro)
 * **Gravity Forms**
 * **Elementor Pro Forms**
 * **Generic HTML forms** — any `<form>` on the page via client-side JS, plus an
   optional AJAX endpoint for custom server-side validation

#### Features

 * Two-layer validation for supported integrations: client-side JavaScript (instant)
   + server-side PHP (secure)
 * World country and region picker for building allowed code lists
 * Configurable list of allowed codes (comma or newline separated)
 * Customisable warning message
 * Configurable CSS selectors for phone fields and target forms
 * NANP and international parsing modes
 * Country-specific international parsing overrides
 * Per-form area code overrides
 * Blocked lead logging with CSV export
 * Multisite support with network-wide default codes
 * Accessible warning UI (`role="alert"`, keyboard focus management)
 * Fully internationalised — translation-ready with `.pot` file included
 * No external API calls — all validation is local
 * Cleans up all data on plugin deletion

#### Privacy

This plugin does not transmit any data to external servers. All phone number validation
is performed locally on your WordPress installation.

## Screenshots

[⌊General settings — select countries and regions, then build the allowed-code list.⌉⌊
General settings — select countries and regions, then build the allowed-code list
.⌉[

**General settings** — select countries and regions, then build the allowed-code
list.

[⌊International settings — switch modes and manage country-specific parsing rules.⌉⌊
International settings — switch modes and manage country-specific parsing rules.⌉[

**International settings** — switch modes and manage country-specific parsing rules.

[⌊Blocked leads log — review blocked submissions and export them as CSV.⌉⌊Blocked
leads log — review blocked submissions and export them as CSV.⌉[

**Blocked leads log** — review blocked submissions and export them as CSV.

[⌊Front-end warning — inline warning shown below the phone field for out-of-area
submissions.⌉⌊Front-end warning — inline warning shown below the phone field for
out-of-area submissions.⌉[

**Front-end warning** — inline warning shown below the phone field for out-of-area
submissions.

## Installation

 1. Upload the `mdl-local-service-lead-validator` folder to the `/wp-content/plugins/`
    directory.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Go to **Lead Validator > Settings > General** and configure your service area.
 4. If needed, review **Lead Validator > Settings > International** for non-NANP or
    multi-country setups.
 5. Optionally enable blocked-lead logging under **Lead Validator > Settings > Logging**.

## FAQ

### Which phone number formats are supported?

In **NANP** mode, the plugin supports standard North American Numbering Plan formats,
including:
 * `(212) 555-1234` * `+1-718-555-0000` * `917.555.8888` * `3475551234`

In **International** mode, the plugin can also validate country-specific regional
codes using the selected countries and parsing rules from the settings screens.

### What happens if I leave the area codes list empty?

If no area codes are configured, the plugin allows all form submissions. This is
safe — the plugin only blocks submissions once you have at least one area code saved.

### Does this work with Elementor free?

Server-side validation requires **Elementor Pro Forms**. Client-side JavaScript 
validation can still work with forms rendered on Elementor pages, including forms
provided by other plugins.

### Can I use a custom CSS selector for my phone field?

Yes. Go to **Lead Validator > Settings > General** and update the **Phone Field 
Selector** to match your theme or form plugin’s phone input. The default selector
is `input[name*="phone"], input[type="tel"]`.

### Does every form get server-side validation?

No. Server-side validation is built in for **Contact Form 7**, **WPForms**, **Gravity
Forms**, and **Elementor Pro Forms**. Generic HTML forms get frontend JavaScript
validation by default, and can use the plugin’s AJAX endpoint if you want a custom
server-side check too.

### Does the plugin add any data to my database?

The plugin stores its settings in WordPress options, including your allowed codes,
warning message, selectors, validation mode, international rules, logging preference,
and per-form overrides. It also creates a custom blocked-leads table on activation.
All plugin options are deleted and the log table is dropped on uninstall.

### Is the plugin multisite compatible?

Yes. Version 1.0.0 includes multisite support, including a network admin settings
screen for default area codes and a per-site option to inherit or override those
network defaults.

### Can I give one form a different service area?

Yes. Use **Lead Validator > Form Overrides** to assign a specific allowed-code list
to an individual Contact Form 7, WPForms, Gravity Forms, Elementor, or native form
ID.

### Does the plugin log blocked submissions?

Yes, if you enable logging in **Lead Validator > Settings > Logging**. The plugin
stores a masked phone number, extracted code, form type, form ID, page URL, and 
blocked timestamp. Full phone numbers are not stored.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MDL Local Service Lead Validator” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Monday Digital Lab ](https://profiles.wordpress.org/mondaydigitallab/)

[Translate “MDL Local Service Lead Validator” into your language.](https://translate.wordpress.org/projects/wp-plugins/mdl-local-service-lead-validator)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/mdl-local-service-lead-validator/),
check out the [SVN repository](https://plugins.svn.wordpress.org/mdl-local-service-lead-validator/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/mdl-local-service-lead-validator/)
by [RSS](https://plugins.trac.wordpress.org/log/mdl-local-service-lead-validator/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Area code validation for Contact Form 7, WPForms, Gravity Forms, Elementor Pro
   Forms, and generic HTML forms.
 * Two-layer validation for supported integrations (client-side JS + server-side
   PHP).
 * Per-form area code overrides.
 * International phone number support.
 * Blocked lead logging with CSV export.
 * World country / region service area picker.
 * Multisite / network admin support.
 * Top-level Lead Validator admin menu with settings, overrides, and blocked leads
   screens.
 * Accessible warning UI.
 * Full i18n support with `.pot` file.

## Meta

 *  Version **1.0.0**
 *  Last updated **1 week ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.5 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [contact form](https://wordpress.org/plugins/tags/contact-form/)[local service](https://wordpress.org/plugins/tags/local-service/)
   [phone validation](https://wordpress.org/plugins/tags/phone-validation/)
 *  [Advanced View](https://wordpress.org/plugins/mdl-local-service-lead-validator/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/mdl-local-service-lead-validator/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/mdl-local-service-lead-validator/reviews/)

## Contributors

 *   [ Monday Digital Lab ](https://profiles.wordpress.org/mondaydigitallab/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/mdl-local-service-lead-validator/)