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 Dutch, German, Russian, Spanish (Chile/Spain). Help translate it into your language.