Bug description
A button_group field configured with localizable: false should be locked in a localization — like every other non-localizable fieldtype, which renders disabled and falls back to the origin value.
The button_group fieldtype does not respect this. In a localization the buttons stay clickable, and the changed value is actually saved into the localization's file. The localization then holds a value that diverges from its origin, even though the field is not localizable.
How to reproduce
- Set up a multi-site install with two sites (here:
de as origin, en as localization). - Add a non-localizable
button_group field to the collection blueprint:
-
handle: button_groupfield:
options:
- key: option_1value: null
- key: option_2value: nulldefault: option_1type: button_groupdisplay: 'Button Group'localizable: false
- Create an entry in the de site and select option_1.
- Open the en localization of that entry in the CP.
- The buttons are still active — select option_2 and save.
Result — the value is written to the localization:
content/collections/pages/de/home.md (origin)
id: 049ed0c0-9796-43f7-b158-4f6129328c12
title: Home
button_group: option_1
content/collections/pages/en/home.md (localization)
id: 91daabc4-5f3f-470c-b66b-47d5131f2d11
origin: 049ed0c0-9796-43f7-b158-4f6129328c12
button_group: option_2
Expected behaviour
In a localization, a non-localizable button_group should be rendered read-only/disabled, and its
value must not be written to the localization's file — it should always resolve from the origin.
Logs
Environment
EnvironmentLaravel Version: 13.24.0PHP Version: 8.4.23Composer Version: 2.10.1Environment: localDebug Mode: ENABLEDMaintenance Mode: OFFTimezone: UTCLocale: enCacheConfig: NOT CACHEDEvents: NOT CACHEDRoutes: NOT CACHEDViews: CACHEDDriversBroadcasting: logCache: fileDatabase: sqliteLogs: stack / singleMail: logQueue: syncSession: fileStoragepublic/storage: NOT LINKEDStatamicAddons: 0License Key: Not setSites: 2 (German, French)Stache Watcher: Enabled (auto)Static Caching: DisabledVersion: 6.27.1 PRO
Installation
Fresh statamic/statamic site via CLI
Additional details
No response
Bug description
A
button_groupfield configured withlocalizable: falseshould be locked in a localization — like every other non-localizable fieldtype, which renders disabled and falls back to the origin value.The
button_groupfieldtype does not respect this. In a localization the buttons stay clickable, and the changed value is actually saved into the localization's file. The localization then holds a value that diverges from its origin, even though the field is not localizable.How to reproduce
deas origin,enas localization).button_groupfield to the collection blueprint:Result — the value is written to the localization:
content/collections/pages/de/home.md (origin)
id: 049ed0c0-9796-43f7-b158-4f6129328c12
title: Home
button_group: option_1
content/collections/pages/en/home.md (localization)
id: 91daabc4-5f3f-470c-b66b-47d5131f2d11
origin: 049ed0c0-9796-43f7-b158-4f6129328c12
button_group: option_2
Expected behaviour
In a localization, a non-localizable button_group should be rendered read-only/disabled, and its
value must not be written to the localization's file — it should always resolve from the origin.
Logs
Environment
Installation
Fresh statamic/statamic site via CLI
Additional details
No response