Title: Validation Muse for Contact Form 7
Author: SYMONOV
Published: <strong>January 31, 2026</strong>
Last modified: September 19, 2026

---

Search plugins

![](https://ps.w.org/validation-muse-for-contact-form-7/assets/banner-772x250.png?
rev=3450911)

![](https://ps.w.org/validation-muse-for-contact-form-7/assets/icon-256x256.png?
rev=3450911)

# Validation Muse for Contact Form 7

 By [SYMONOV](https://profiles.wordpress.org/simmotorlp/)

[Download](https://downloads.wordpress.org/plugin/validation-muse-for-contact-form-7.1.6.5.zip)

 * [Details](https://en-au.wordpress.org/plugins/validation-muse-for-contact-form-7/#description)
 * [Reviews](https://en-au.wordpress.org/plugins/validation-muse-for-contact-form-7/#reviews)
 *  [Installation](https://en-au.wordpress.org/plugins/validation-muse-for-contact-form-7/#installation)
 * [Development](https://en-au.wordpress.org/plugins/validation-muse-for-contact-form-7/#developers)

 [Support](https://wordpress.org/support/plugin/validation-muse-for-contact-form-7/)

## Description

**Validation Muse** lets you write your own validation rules and error messages 
for every Contact Form 7 field — directly in the form editor, per form, per field.
No code, no global settings page, no JavaScript hacks.

Most CF7 validation plugins broke when Contact Form 7 6.x introduced **Schema-based
Validation (SWV)**. Validation Muse runs its filters at priority 20 (after CF7 core)
and uses Reflection to replace SWV error text on already-invalidated fields, so 
your custom copy actually shows up — even on the new validation engine.

#### Why Validation Muse

 * **CF7 6.x SWV compatible** — works with the new Schema-based Validation engine,
   not just legacy hooks.
 * **Custom Regex & Length Rules** — define custom regular expression patterns, 
   min length, and max length rules per field with their own error messages.
 * **Conditional “Required-If” Rules** — make fields required only when a companion
   field is filled/checked.
 * **Client-Side SWV Integration** — standard validation rules (required, email,
   length) are injected into CF7’s native SWV engine for instant frontend feedback
   with full accessibility (A11y) support.
 * **Rule Sets Import/Export & Templates** — export/import validation rules as JSON,
   copy them from other forms, and bulk apply global templates.
 * **Placeholder Tokens** — use `{field_label}`, `{min}`, and `{max}` in validation
   messages to generate dynamic texts.
 * **Per-form, per-field** — each form keeps its own messages; no global override.
 * **Stored in post meta** — messages live with the form, compatible with CF7 form
   duplication and third-party CF7 import/export plugins.
 * **Multilingual via WPML, Polylang & Flavor** — translates rules using standard
   WPML/Polylang hooks, and features language tabs + one-click AI Translate when
   Flavor is active.
 * **Developer-friendly** — extensibility hooks `vmcf7_loaded` and `vmcf7_validation_tag_types`
   let you add custom field types.
 * **Lightweight** — no admin bloat, no tracking, no upsells.

#### Supported field types

 * Required-field messages: any required tag (`text`, `textarea`, `select`, `checkbox`,`
   radio`, `file`, etc.).
 * Invalid-format messages: `email`, `url`, `tel`, `number` (including `range`),`
   date`, and `time` fields.
 * Custom error messages on validation failure: `file` (size/type checks), `acceptance`(
   unchecked/unaccepted state), and `quiz` (incorrect answer).
 * HTML inside messages is allowed and sanitized through `wp_kses_post()`.
 * Custom Regex and Min/Max Length rules support all input fields (excluding acceptance
   and quiz).

#### Translations

The plugin ships with a `.pot` file and is already translated into German, Spanish,
French, Portuguese (Brazil), Russian, and Ukrainian. [Help translate it into your language.](https://translate.wordpress.org/projects/wp-plugins/validation-muse-for-contact-form-7)

## Screenshots

[⌊The Custom Validation panel inside the Contact Form 7 editor — enable per form,
write messages per field.⌉⌊The Custom Validation panel inside the Contact Form 7
editor — enable per form, write messages per field.⌉[

The **Custom Validation** panel inside the Contact Form 7 editor — enable per form,
write messages per field.

[⌊Per-language tabs and the AI Translate button (visible when the Flavor translation
plugin is active).⌉⌊Per-language tabs and the AI Translate button (visible when 
the Flavor translation plugin is active).⌉[

Per-language tabs and the **AI Translate** button (visible when the Flavor translation
plugin is active).

[⌊Required-field message rendered on the frontend.⌉⌊Required-field message rendered
on the frontend.⌉[

Required-field message rendered on the frontend.

[⌊Invalid-format message for an email field rendered on the frontend.⌉⌊Invalid-format
message for an email field rendered on the frontend.⌉[

Invalid-format message for an email field rendered on the frontend.

## Installation

 1. Install from **Plugins  Add New** and search for _Validation Muse for Contact Form
    7_, or upload the `validation-muse-for-contact-form-7` folder to `/wp-content/plugins/`.
 2. Activate the plugin. Contact Form 7 must already be active — Validation Muse will
    deactivate itself with an admin notice if it is not.
 3. Edit any Contact Form 7 form, open the **Custom Validation** panel, enable it, 
    and write your messages.
 4. (Optional) Install the Flavor translation plugin to translate messages per language
    with AI assistance.

## FAQ

### Does this work with Contact Form 7 6.x and Schema-based Validation (SWV)?

Yes. Since version 1.3.0, Validation Muse hooks at priority 20 (after CF7 core) 
and uses Reflection to replace SWV error text on already-invalidated fields. Since
1.6.1, standard rules (required, email/url/tel/number/date/time, min/max length)
are also injected directly into CF7’s own SWV schema, so client-side (frontend JS)
validation shows your custom messages instantly — through CF7’s native validation
engine, with no extra script from this plugin.

### How is this different from other CF7 validation plugins?

Validation Muse is the only CF7 validation plugin that (1) is compatible with CF7
6.x SWV out of the box — both server-side and in CF7’s own client-side validation,(
2) stores messages in form post meta so they live with the form (compatible with
CF7 form duplication and import/export plugins), and (3) integrates with the Flavor
translation plugin for per-language messages with one-click AI translation.

### Can I translate validation messages per language?

Yes — install the Flavor translation plugin and Validation Muse will show language
tabs in the form editor plus an _AI Translate_ button. Translations are stored in
Flavor’s database; uninstalling Validation Muse cleans them up.

### Which field types support custom invalid or validation failure messages?

 * `email`, `url`, `tel`, `number` (including `range`), `date`, and `time` support
   custom invalid-format messages.
 * `file` supports custom file size/type validation error messages.
 * `acceptance` supports custom error messages when the checkbox is not accepted.
 * `quiz` supports custom error messages when the answer is incorrect.
 * Any required field of any type can have a custom required-field message.

### Where are the messages stored?

In each form’s post meta. They live with the form, so duplicating a form (built 
into CF7) keeps the messages. CF7 has no native export, but third-party CF7 import/
export plugins read post meta — so migrations across sites work without a separate
import step.

### Can I use HTML in validation messages?

Yes, basic HTML is allowed and sanitized via `wp_kses_post()`.

### Does this plugin require Contact Form 7?

Yes. CF7 must be installed and active. The plugin shows an admin notice and self-
deactivates if CF7 is missing.

### Is there a settings page?

No. Configuration lives inside each form, in the **Custom Validation** panel. There
is no global settings page by design — every form keeps its own messages.

### Does the plugin track or send any data?

No. Validation Muse makes no external requests. The optional AI Translate button(
Flavor integration) routes through Flavor’s own configured provider.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Validation Muse for Contact Form 7” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ SYMONOV ](https://profiles.wordpress.org/simmotorlp/)

“Validation Muse for Contact Form 7” has been translated into 5 locales. Thank you
to [the translators](https://translate.wordpress.org/projects/wp-plugins/validation-muse-for-contact-form-7/contributors)
for their contributions.

[Translate “Validation Muse for Contact Form 7” into your language.](https://translate.wordpress.org/projects/wp-plugins/validation-muse-for-contact-form-7)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/validation-muse-for-contact-form-7/),
check out the [SVN repository](https://plugins.svn.wordpress.org/validation-muse-for-contact-form-7/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/validation-muse-for-contact-form-7/)
by [RSS](https://plugins.trac.wordpress.org/log/validation-muse-for-contact-form-7/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.6.5

 * New: a one-time, dismissible request to leave a review on WordPress.org. It appears
   only a week after you first save a custom validation message, only to users who
   can edit Contact Form 7 forms and only on the Contact Form 7 screens. “Maybe 
   later” snoozes it for 30 days, “Don’t ask again” hides it for good. Nothing is
   sent anywhere.

#### 1.6.4

 * Tested with WordPress 7.1 (verified on 7.1.1 with Contact Form 7 6.1).
 * Fix: removed calls deprecated in PHP 8.5 (`finfo_close()`, and `ReflectionProperty::
   setAccessible()` on PHP 8.1+), so the plugin no longer triggers deprecation notices
   on PHP 8.5.

#### 1.6.3

 * i18n: fully regenerated the `.pot` translation template — the catalog was frozen
   since 1.2.0 and covered only about 20% of the plugin’s translatable strings (
   regex/length rules, rule templates, AI Translate errors, and more were never 
   extractable before). All six shipped languages (German, Spanish, French, Portuguese,
   Russian, Ukrainian) are now fully translated against the current UI.
 * Docs: synced all translated readme files — feature list, supported field types,
   and FAQ now reflect 1.6.0–1.6.2 functionality (custom regex/length rules, required-
   if, native SWV client-side validation, rule templates); their Changelog/Upgrade
   Notice sections, previously stuck at 1.4.2, now cover every release up to 1.6.2.
 * Fix: added a missing `translators:` comment for a placeholder string (i18n code
   quality, no behavior change).

#### 1.6.2

 * Fix: messages saved by versions prior to the plugin rename (stored under the 
   legacy `_cf7cv_` meta prefix) were invisible to the current code. A one-time 
   migration now renames them to the `_vmcf7_` prefix automatically, restoring lost
   messages. Collision-safe and runs once.

#### 1.6.1

 * Fix: duplicate/overwritten validation messages on frontend by integrating with
   CF7’s native SWV engine.
 * Fix: admin panel drawers and preview cards rendered expanded due to CF7 editor
   panel stripping inline styles.

#### 1.6.0

 * New: custom regex and min/max-length validation rules per field, each with its
   own message.
 * New: validation messages for `file`, `acceptance`, and `quiz` fields; conditional“
   required-if” messages.
 * New: message placeholder tokens `{field_label}`, `{min}`, `{max}`.
 * New: client-side inline validation mirroring the server messages, with `aria-
   describedby` accessibility.
 * New: live message preview, copy messages between forms, JSON import/export of
   message sets, and editor lint.
 * New: WPML/Polylang string registration alongside the Flavor bridge; translation
   import/export.

#### 1.5.0

 * Minimum PHP raised to 8.0; minimum WordPress raised to 6.0; tested up to WordPress
   7.0.
 * New: custom validation messages for `time` fields.
 * Clearer AI Translate error feedback in the form editor.
 * Reflection-based SWV message replacement now logs failures under WP_DEBUG for
   easier diagnosis.
 * Improved handling of pending translations (no more silent fallback) with per-
   request caching.
 * Code modernized to PHP 8 idioms; output escaping hardened; first unit-test suite
   added.

#### 1.4.2

 * Plugin URI: now points to the dedicated landing page at https://plugins.symonov.
   com/validation-muse-for-cf7/
 * No code or behavior changes

#### 1.4.1

 * Readme: USP-first rewrite for SEO discoverability
 * Tags: replaced generic `messages`/`forms`/`customization` with targeted `contact-
   form-7`, `cf7`, `validation`, `error-message`, `multilingual`
 * FAQ: added entries for CF7 6.x SWV compatibility, comparison with other CF7 validation
   plugins, and multilingual via Flavor

#### 1.4.0

 * Added multilingual support via Flavor translation plugin integration
 * Validation messages can now be translated per language in the form editor
 * Language tabs appear automatically when Flavor plugin is active
 * AI Translate button for one-click machine translation of all messages
 * Translations stored in Flavor’s database, keeping plugin data portable
 * Zero overhead when Flavor is not installed — all calls behind class_exists() 
   checks
 * Flavor translations cleaned up on plugin uninstall

#### 1.3.0

 * Fixed compatibility with Contact Form 7 6.x SWV (Schema-based Validation)
 * Validation filters now run at priority 20 (after CF7 core) to replace SWV error
   messages
 * Added Reflection-based error replacement for already-invalidated fields
 * Custom messages now correctly override default CF7 “The field is required.” text

#### 1.2.1

 * Fixed variable name mismatch causing “No required fields” error

#### 1.2.0

 * Refactored codebase to follow WordPress Coding Standards
 * Reorganized file structure for better maintainability
 * Added PHPDoc blocks to all functions and methods
 * Improved accessibility with ARIA labels
 * Fixed JavaScript prefix inconsistency
 * Fixed uninstall script to use correct meta prefix
 * Added extensibility hooks (`vmcf7_loaded`, `vmcf7_validation_tag_types`)
 * Changed capability check from `manage_options` to `wpcf7_edit_contact_forms`
 * Updated POT file name to match text domain

#### 1.1.2

 * Changed plugin name.

#### 1.1.1

 * Added .gitignore file.

#### 1.1.0

 * Added WordPress repository collateral (readme, license, POT file).
 * Reworked validation hooks to override required and invalid messages without relying
   on AJAX filters.
 * Hardened sanitization, text domain loading, and uninstall cleanup for release
   readiness.

#### 1.0.1

 * Initial public iteration bundled with the project.

## Meta

 *  Version **1.6.5**
 *  Last updated **3 weeks ago**
 *  Active installations **10+**
 *  WordPress Version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP Version ** 8.0 or higher **
 *  Languages
 * [Dutch](https://nl.wordpress.org/plugins/validation-muse-for-contact-form-7/),
   [English (US)](https://wordpress.org/plugins/validation-muse-for-contact-form-7/),
   [German](https://de.wordpress.org/plugins/validation-muse-for-contact-form-7/),
   [Russian](https://ru.wordpress.org/plugins/validation-muse-for-contact-form-7/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/validation-muse-for-contact-form-7/),
   and [Spanish (Spain)](https://es.wordpress.org/plugins/validation-muse-for-contact-form-7/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/validation-muse-for-contact-form-7)
 * Tags
 * [cf7](https://en-au.wordpress.org/plugins/tags/cf7/)[contact form 7](https://en-au.wordpress.org/plugins/tags/contact-form-7/)
   [error message](https://en-au.wordpress.org/plugins/tags/error-message/)[multilingual](https://en-au.wordpress.org/plugins/tags/multilingual/)
   [validation](https://en-au.wordpress.org/plugins/tags/validation/)
 *  [Advanced View](https://en-au.wordpress.org/plugins/validation-muse-for-contact-form-7/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/validation-muse-for-contact-form-7/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/validation-muse-for-contact-form-7/reviews/)

## Contributors

 *   [ SYMONOV ](https://profiles.wordpress.org/simmotorlp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/validation-muse-for-contact-form-7/)