Validation Muse for Contact Form 7

Описание

Validation Muse позволяет писать собственные правила валидации и сообщения об ошибках для каждого поля Contact Form 7 — прямо в редакторе формы, для каждой формы и поля отдельно. Без кода, без глобальных настроек, без JavaScript-хаков.

Большинство плагинов валидации CF7 перестали работать, когда Contact Form 7 6.x представил Schema-based Validation (SWV). Validation Muse запускает свои фильтры с приоритетом 20 (после ядра CF7) и использует Reflection, чтобы заменить SWV-ошибки для уже невалидных полей — поэтому ваш пользовательский текст действительно отображается на новом валидационном движке.

Почему Validation Muse

  • Совместимость с CF7 6.x SWV — работает с новой Schema-based Validation, не только со старыми хуками.
  • Собственные правила Regex и длины — задавайте свои regex-паттерны, минимальную и максимальную длину по полю, каждое со своим сообщением об ошибке.
  • Условные правила «Required-If» — поле становится обязательным только когда заполнено/отмечено связанное поле.
  • Клиентская SWV-интеграция — стандартные правила валидации (required, email, length) внедряются в нативный движок SWV CF7 для мгновенной обратной связи на фронтенде с полной поддержкой доступности (A11y).
  • Импорт/экспорт наборов правил и шаблоны — экспортируйте/импортируйте правила валидации в JSON, копируйте их из других форм, применяйте глобальные шаблоны массово.
  • Токены-плейсхолдеры — используйте {field_label}, {min} и {max} в сообщениях валидации для генерации динамического текста.
  • Per-form, per-field — каждая форма хранит свои сообщения; нет глобального переопределения.
  • Хранится в post meta — сообщения живут с формой, совместимы с дублированием формы CF7 и сторонними плагинами импорта/экспорта CF7.
  • Мультиязычность через WPML, Polylang и Flavor — переводит правила через стандартные хуки WPML/Polylang, а также показывает языковые табы + кнопку AI Translate в один клик, когда активен Flavor.
  • Дружественен к разработчикам — хуки расширяемости vmcf7_loaded и vmcf7_validation_tag_types позволяют добавлять собственные типы полей.
  • Лёгкий — без admin-раздутия, без трекинга, без апселов.

Поддерживаемые типы полей

  • Сообщения для обязательных полей: любой required-тег (text, textarea, select, checkbox, radio, file и т.д.).
  • Сообщения о невалидном формате: email, url, tel, number (включая range), date и time.
  • Собственные сообщения об ошибке при неудачной валидации: file (проверка размера/типа), acceptance (чекбокс не отмечен) и quiz (неверный ответ).
  • HTML внутри сообщений разрешён и очищается через wp_kses_post().
  • Собственные правила Regex и Мин/Макс длины поддерживаются для всех полей ввода (кроме acceptance и quiz).

Переводы

Плагин поставляется с .pot-файлом и уже переведён на немецкий, испанский, французский, португальский (Бразилия), русский и украинский. Помогите перевести на ваш язык.

Скриншоты

Установка

  1. Установите из Плагины Добавить новый, найдя Validation Muse for Contact Form 7, или загрузите папку validation-muse-for-contact-form-7 в /wp-content/plugins/.
  2. Активируйте плагин. Contact Form 7 должен быть активен — Validation Muse автоматически деактивируется с уведомлением, если CF7 отсутствует.
  3. Откройте любую форму Contact Form 7, перейдите в панель Custom Validation, включите её и напишите свои сообщения.
  4. (Опционально) Установите плагин перевода Flavor для перевода сообщений по языкам с AI-помощью.

Часто задаваемые вопросы

Работает ли это с Contact Form 7 6.x и Schema-based Validation (SWV)?

Да. Начиная с версии 1.3.0, Validation Muse цепляется на приоритет 20 (после ядра CF7) и использует Reflection для замены SWV-ошибок для уже невалидных полей. Начиная с 1.6.1, стандартные правила (required, email/url/tel/number/date/time, мин/макс длина) также внедряются прямо в собственную SWV-схему CF7, поэтому клиентская (фронтенд JS) валидация мгновенно показывает ваши сообщения — через нативный движок валидации CF7, без какого-либо дополнительного скрипта этого плагина.

Чем это отличается от других плагинов валидации CF7?

Validation Muse — единственный плагин валидации CF7, который (1) совместим с CF7 6.x SWV из коробки — как на сервере, так и в собственной клиентской валидации CF7, (2) хранит сообщения в post meta формы, поэтому они живут с формой (совместимо с дублированием формы CF7 и плагинами импорта/экспорта), и (3) интегрируется с плагином перевода Flavor для сообщений per language с one-click AI-переводом.

Можно ли переводить сообщения валидации по языкам?

Да — установите плагин Flavor, и Validation Muse покажет языковые табы в редакторе формы плюс кнопку AI Translate. Переводы хранятся в БД Flavor; удаление Validation Muse очищает их.

Какие типы полей поддерживают собственные сообщения о неверном формате или ошибке валидации?

  • email, url, tel, number (включая range), date и time поддерживают собственные сообщения о неверном формате.
  • file поддерживает собственные сообщения об ошибке валидации размера/типа файла.
  • acceptance поддерживает собственные сообщения об ошибке, когда чекбокс не отмечен.
  • quiz поддерживает собственные сообщения об ошибке, когда ответ неверный.
  • Любое обязательное поле любого типа может иметь собственное сообщение об обязательности.

Где хранятся сообщения?

В post meta каждой формы. Они живут с формой, поэтому дублирование формы (встроено в CF7) сохраняет сообщения. CF7 не имеет нативного экспорта, но сторонние плагины импорта/экспорта CF7 читают post meta — поэтому миграции между сайтами работают без отдельного шага импорта.

Можно ли использовать HTML в сообщениях валидации?

Да, базовый HTML разрешён и очищается через wp_kses_post().

Требует ли этот плагин Contact Form 7?

Да. CF7 должен быть установлен и активен. Плагин показывает admin-уведомление и самодеактивируется, если CF7 отсутствует.

Есть ли страница настроек?

Нет. Конфигурация живёт внутри каждой формы, в панели Custom Validation. Глобальной страницы настроек нет по дизайну — каждая форма хранит свои сообщения.

Трекает или отправляет ли плагин какие-либо данные?

Нет. Validation Muse не делает никаких внешних запросов. Опциональная кнопка AI Translate (интеграция с Flavor) маршрутизируется через собственного провайдера Flavor.

Отзывы

Нет отзывов об этом плагине.

Участники и разработчики

«Validation Muse for Contact Form 7» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Validation Muse for Contact Form 7» переведён на 5 языков. Благодарим переводчиков за их работу.

Перевести «Validation Muse for Contact Form 7» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.6.3

  • i18n: полностью регенерирован каталог перевода .pot — каталог был заморожен с версии 1.2.0 и покрывал лишь около 20% переводимых строк плагина (regex-/длина-правила, шаблоны правил, ошибки AI Translate и многое другое раньше не извлекались вовсе). Все шесть поставляемых языков (немецкий, испанский, французский, португальский, русский, украинский) теперь полностью переведены под актуальный интерфейс.
  • Документация: синхронизированы все переведённые readme-файлы — список возможностей, поддерживаемые типы полей и FAQ теперь отражают функциональность 1.6.0–1.6.2 (собственные regex-/длина-правила, required-if, нативная клиентская SWV-валидация, шаблоны правил); их разделы Changelog/Upgrade Notice, ранее застрявшие на 1.4.2, теперь покрывают все версии вплоть до 1.6.2.
  • Fix: добавлен отсутствовавший комментарий translators: для строки с плейсхолдером (качество i18n-кода, без изменений поведения).

1.6.2

  • Fix: сообщения, сохранённые версиями до переименования плагина (хранившиеся под старым meta-префиксом _cf7cv_), были невидимы для текущего кода. Одноразовая миграция теперь автоматически переименовывает их в префикс _vmcf7_, восстанавливая утраченные сообщения. Безопасна при коллизиях, выполняется один раз.

1.6.1

  • Fix: устранены дублирующиеся/перезаписанные сообщения валидации на фронтенде за счёт интеграции с нативным движком SWV CF7.
  • Fix: панели и карточки предпросмотра в админке отображались развёрнутыми, так как редактор CF7 удаляет inline-стили.

1.6.0

  • Новое: собственные regex- и правила мин/макс длины по полю, каждое со своим сообщением.
  • Новое: сообщения валидации для полей file, acceptance и quiz; условные сообщения «required-if».
  • Новое: токены-плейсхолдеры сообщений {field_label}, {min}, {max}.
  • Новое: клиентская inline-валидация, отражающая серверные сообщения, с доступностью через aria-describedby.
  • Новое: живой предпросмотр сообщений, копирование сообщений между формами, JSON импорт/экспорт наборов сообщений и lint редактора.
  • Новое: регистрация строк WPML/Polylang наряду с мостом Flavor; импорт/экспорт переводов.

1.5.0

  • Минимальный PHP повышен до 8.0; минимальный WordPress повышен до 6.0; протестировано до WordPress 7.0.
  • Новое: собственные сообщения валидации для полей time.
  • Более понятная обратная связь об ошибках AI Translate в редакторе форм.
  • Замена сообщений SWV на основе Reflection теперь логирует сбои под WP_DEBUG для упрощения диагностики.
  • Улучшена обработка ожидающих переводов (больше нет тихого фолбэка) с кэшированием на запрос.
  • Код модернизирован под идиомы PHP 8; усилено экранирование вывода; добавлен первый набор тестов.

1.4.2

  • Plugin URI: теперь указывает на отдельную страницу https://plugins.symonov.com/validation-muse-for-cf7/
  • Без изменений кода или поведения

1.4.1

  • Readme: USP-first переписывание для SEO-видимости
  • Tags: общие messages/forms/customization заменены на целевые contact-form-7, cf7, validation, error-message, multilingual
  • FAQ: добавлены записи про совместимость с CF7 6.x SWV, сравнение с другими плагинами валидации CF7, мультиязычность через Flavor

1.4.0

  • Добавлена мультиязычная поддержка через интеграцию с плагином перевода Flavor
  • Сообщения валидации теперь можно переводить per language в редакторе формы
  • Языковые табы появляются автоматически когда плагин Flavor активен
  • Кнопка AI Translate для one-click машинного перевода всех сообщений
  • Переводы хранятся в БД Flavor — данные плагина остаются портативными
  • Нулевой оверхед когда Flavor не установлен — все вызовы за class_exists()-проверками
  • Переводы Flavor очищаются при удалении плагина

1.3.0

  • Исправлена совместимость с Contact Form 7 6.x SWV (Schema-based Validation)
  • Фильтры валидации теперь запускаются с приоритетом 20 (после ядра CF7) для замены SWV-сообщений об ошибках
  • Добавлена замена ошибок на основе Reflection для уже невалидных полей
  • Собственные сообщения теперь корректно переопределяют стандартный текст CF7 «The field is required.»

1.2.1

  • Исправлено несоответствие имени переменной, вызывавшее ошибку «No required fields»

1.2.0

  • Рефакторинг кодовой базы в соответствии с WordPress Coding Standards
  • Реорганизована структура файлов для лучшей поддерживаемости
  • Добавлены блоки PHPDoc ко всем функциям и методам
  • Улучшена доступность с помощью ARIA-меток
  • Исправлена несогласованность префиксов в JavaScript
  • Исправлен скрипт удаления для использования правильного meta-префикса
  • Добавлены хуки расширяемости (vmcf7_loaded, vmcf7_validation_tag_types)
  • Изменена проверка прав доступа с manage_options на wpcf7_edit_contact_forms
  • Обновлено имя POT-файла в соответствии с текстовым доменом

1.1.2

  • Изменено название плагина.

1.1.1

  • Добавлен файл .gitignore.

1.1.0

  • Добавлены сопроводительные файлы для репозитория WordPress (readme, лицензия, POT-файл).
  • Переработаны хуки валидации для переопределения сообщений required и invalid без зависимости от AJAX-фильтров.
  • Усилена санитизация, загрузка текстового домена и очистка при удалении для готовности к релизу.

1.0.1

  • Первоначальная публичная версия, включённая в проект.