FForms WP Registry grade D+. High-severity findings · 2 findingsWP RegistryHigh-severity findings · 2 findingsOpen the reportD+
Forms for WordPress. Support: block-editor Gutenberg, SMTP & REST API (Headless CMS)
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/aiiddqd/fforms/archive/refs/heads/main.zipСовременный WordPress-плагин для contact/lead-форм с REST-first архитектурой.
Use cases
- contact forms
- lead forms
- public forms, quizzes, surveys and brief forms
- headless cms and email smtp for form submissions from JAMStack sites like AstroJS
Два режима
У плагина ровно две точки входа.
Headless API — один роут POST /wp-json/fforms/v1/main без схемы. Форму создавать не нужно: какие поля передали, такие и записали, а formType классифицирует заявку, чтобы записи можно было фильтровать. Без formType заявка получает тип main.
curl -X POST https://example.com/wp-json/fforms/v1/main \
-H "Content-Type: application/json" \
-d '{ "formType": "consultation", "email": "anna@example.com", "company": "Acme" }'
Конструктор — форма собирается блоками в Gutenberg и после публикации доступна сразу всеми способами: блок Form by FForms, шорткод [fform id=123], а если включить «Share via link» в панели «Publication» — ещё и секретная ссылка /forms/<токен>/ (без индексации), iframe- и js-сниппеты. Ссылку можно перевыпустить: старая перестаёт работать сразу.
Быстрый старт
- Активируйте плагин и откройте FForms → Добавить форму.
- Соберите поля блоками и опубликуйте форму.
- Вставьте её блоком или шорткодом; для внешнего сайта включите «Share via link» и скопируйте нужный сниппет.
- Записи доступны в FForms → Записи, экспорт — в FForms → Экспорт CSV.
Пример submit из формы конструктора:
{
"form_id": 123,
"fields": {
"name": "Анна",
"email": "anna@example.com",
"message": "Перезвоните мне"
},
"website": "",
"source": "https://example.com/contact"
}
Встроенный SMTP выключен по умолчанию. Не включайте его одновременно с другим SMTP-плагином.
Локальная разработка (wp-env)
Требуется Docker и Node 20+.
make install
make start # http://localhost:8890 — admin/password
make status # проверить, что всё поднялось
Плагин монтируется в контейнер из этой папки ("plugins": ["."] в .wp-env.json),
правки в PHP/JS видны сразу без перезапуска. Ядро WordPress качается в контейнер
("core": null — последний стабильный).
Полный список целей — make help. Те же операции есть и как npm-скрипты:
| make | npm | Действие |
|---|---|---|
make start |
npm run env:start |
поднять окружение |
make stop |
npm run env:stop |
остановить |
make restart |
— | остановить и поднять заново |
make update |
npm run env:restart |
обновить ядро WordPress (--update) |
make reset |
npm run env:reset |
сбросить БД и переустановить WP |
make destroy |
npm run env:destroy |
удалить контейнеры и тома |
make xdebug |
— | поднять с включённым Xdebug |
make logs |
npm run env:logs |
логи PHP и Docker |
make tail |
— | следить за wp-content/debug.log |
make cli CMD="plugin list" |
npm run wp -- plugin list |
WP-CLI |
make bash |
— | шелл внутри контейнера |
make status |
— | версии WP/PHP, состояние плагина и блока |
Порт 8890 выбран, чтобы не конфликтовать с окружением монорепо wpcraft на 8888.
Тестовое окружение отключено ("testsEnvironment": false) — включите, когда появятся PHPUnit-тесты.
Локальные переопределения — в .wp-env.override.json (в git не попадает).
WP_DEBUG и SCRIPT_DEBUG включены, PHP-ошибки пишутся в wp-content/debug.log внутри контейнера:
make tailReleases
3 releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.