uams-web / statamic-form-settings
Control Panel form settings for Statamic: notification routing and conditions, confirmations, and submission restrictions, each behind its own switch.
Package info
github.com/UAMS-Web/statamic-form-settings
Type:statamic-addon
pkg:composer/uams-web/statamic-form-settings
Requires
- php: ^8.4
- statamic/cms: ^6.35
Requires (Dev)
- cweagans/composer-patches: ^2.0
- driftingly/rector-laravel: ^2.6
- larastan/larastan: ^3.13
- laravel/pint: ^1.32
- orchestra/testbench: ^11.3
- pestphp/pest: ^5.3
- pestphp/pest-plugin-phpstan: ^5.2
- phpstan/phpstan-mockery: 2.0
- rector/rector: ^2.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-23 18:32:50 UTC
README
A Statamic add-on that extends the Control Panel's form settings screen and what a form does after a submission: notification emails with recipient routing and conditions, a confirmation message or redirect, and restrictions on who can submit and when.
Requirements
PHP 8.4 or later and Statamic 6.35 or later.
Installation
composer require uams-web/statamic-form-settings
Statamic discovers the add-on through Composer. To change its settings, publish the config file:
php artisan vendor:publish --tag=statamic-form-settings-config
Features
Each feature has its own switch in config/statamic-form-settings.php, and all are on by default. Turning one off disables that feature alone; the others keep working. Stored form settings are kept either way, so turning a feature back on restores it as it was.
| Switch | Environment variable | What it covers |
|---|---|---|
control_panel |
FORM_SETTINGS_CONTROL_PANEL |
The added sections on the form settings screen, the email grid's routing, conditions and sender name, and saving them. |
notifications |
FORM_SETTINGS_NOTIFICATIONS |
The notification job: the Active toggle, conditional notifications, recipient routing, the sender name and the email body view. |
confirmations |
FORM_SETTINGS_CONFIRMATIONS |
The message or redirect a visitor sees after submitting. |
restrictions |
FORM_SETTINGS_RESTRICTIONS |
Entry limits, the form schedule and required login, on submit and in the form_restriction tag. |
With notifications on, the add-on points statamic.forms.send_email_job at its own job. A host that has set that option to a job of its own keeps it.
Three more keys adapt the form settings screen to a host: confirmation_page_collections (default ['pages']), article_bard_extra_buttons (default none) and quiz_scoring (FORM_SETTINGS_QUIZ_SCORING, default off, which hides the Quiz Settings section and the quiz merge-tag help). See the wiki's Configuration page.
Templates
The form_restriction tag reports a form's restriction state, so a page can show a closed message instead of the form:
{{ form_restriction handle="contact" }}
{{ if open }}
{{ form:contact }} ... {{ /form:contact }}
{{ else }}
<p>{{ message }}</p>
{{ /if }}
{{ /form_restriction }}
It exposes open, state (open, login_required, pending, expired, schedule_unreadable or limit_reached) and message.
Extending
- Submission context. A notification sent from a queue worker cannot see the submitter's request. A host that keeps that context binds its own implementation of
UAMSWeb\FormSettings\Contracts\SubmissionContext: the job calls it to capture the context when the form is submitted, and again to make that context active while the email is sent. The add-on's default captures nothing. - More settings sections. Another package adds a section to the form settings screen by tagging an implementation of
UAMSWeb\FormSettings\Contracts\FormSettingsSectionwithFormSettingsSection::TAGin its service provider'sregister().
License
MIT. See LICENSE.
Development
Developing against a host application is covered in the development guide, and the Packagist and Marketplace steps in the submission checklist. The gate is composer ci.