# Changelog

## [2.2.2] - 27.06.2026

### Changed

- Changed internal names for AJAX-endpoints for better compatibility with other WordPress plugins
- Changed JS-function name settings_import_file() to esefw_settings_import_file()

### Fixed

- Fixed wrong URL usage for Easy Dialog for WordPress script

## [2.2.1] - 07.05.2026

### Changed

- Removed bin-directory from releases

## [2.2.0] - 03.05.2026

### Added

- Added PHP Unit Tests

### Changed

- Return list of all fields, e.g., for the usage to add a field via array instead of objects
- Use the label attribute for each setting
- Check for capability on import of settings
- Renamed sanitize_callback to default_sanitize_callback and added doing-it-wrong hint if it is used without sanitation
- FieldTable now requires columns to be displayed
- Updated all fields to use default_sanitize_callback for individual default sanitation

### Fixed

- Fixed potential error of Files field is used without files
- Fixed potential error if MultiField field will be initiated without a field

## [2.1.5] - 21.04.2026

### Added

- Added support for classes on sub-tabs

## [2.1.4] - 21.04.2026

### Changed

- Optimized deletion of settings

## [2.1.3] - 18.04.2026

### Fixed

- Fixed wrong path for dialog library

## [2.1.2] - 18.04.2026

### Fixed

- Removed usage of InstalledVersions as it is not compatible with multiple WordPress plugins using composer

## [2.1.1] - 15.04.2026

### Fixed

- Prevent a potential error on loading the lib version if other composer packages are used in the project

## [2.1.0] - 11.04.2026

### Added

- Added support for array-type settings in REST API

## [2.0.3] - 09.04.2026

### Fixed

- Fixed handling of the value in the Value field

## [2.0.2] - 08.04.2026

### Fixed

- Fixed missing output of the settings link in plugin actions

## [2.0.1] - 08.04.2026

### Changed

- Optimized the Value field

## [2.0.0] - 29.03.2026

### Added

- Revamped the structure
- Requires new embedding of this package in WordPress plugins
- Tabs now could have descriptions
- Added expendable objects for different styling for the settings: horizontal and vertical tab view

### Changed

- Checkboxes and Radio fields can now also be dependent from other fields
- Optimized check for allowed JSON settings during import
- Now also valid regarding WordPress Coding Standards and PHPStan Level 8
- Minimum value for Number field is now 0 (previous it was 1)a

### Fixed

- Fixed a wrong usage of settings for MultiSelect if it is set to readonly
- Fixed missing description on PermalinkSlug field

## [1.18.1] - 27.02.2026

### Fixed

- Missing restriction for file selection on single file field

## [1.18.0] - 22.02.2026

### Added

- Added option to restrict file selection from the media library by mime type

### Changed

- Surround TextInfo descriptions with a paragraph for clean formatting, if not already set.
- Extend MultiSelect to be readonly

### Fixed

- Fixed missing usage of settings REST API url
- Fixed missing save of the chosen file in File field

## [1.17.5] - 27.12.2025

### Changed

- Trigger save callbacks on activation of the plugin

## [1.17.4] - 12.12.2025

### Changed

- Dependent handling now also works on radio fields
- value of select fields now stay present if field is readonly

## [1.17.3] - 29.11.2025

### Fixed

- Fixed missing parenthesis

## [1.17.2] - 27.11.2025

### Fixed

- Fixed wrong name for Checkboxes readonly fields

## [1.17.1] - 26.11.2025

### Added

- Added class on every settings field to allow custom styling of the field

### Changed

- Checkbox, Checkboxes and Radio label and descriptions can now also contain HTML codes

## [1.17.0] - 23.11.2025

### Added

- Added new field Password

### Fixed

- Fixed to preserve field values of they are set to readonly.

## [1.16.1] - 14.11.2025

### Added

- Added option to show a label on the text field

## [1.16.0] - 03.11.2025

### Added

- Added a new field FieldTable to display a table with settings
- Added a new option for the field Checkbox to show the label with the checkbox
- Added option to hide a section in output

## [1.15.4] - 29.10.2025

### Changed

- Run settings registering also on WP CLI

## [1.15.3] - 29.10.2025

### Removed

- Removed the package version from composer.json as suggested here: https://blog.packagist.com/tagged-a-new-release-for-composer-and-it-wont-show-up-on-packagist/

## [1.15.2] - 29.10.2025

### Changed

- Run settings registering also on cron tasks

## [1.15.1] - 26.10.2025

### Changed

- Small optimizations for WCS

## [1.15.0] - 22.10.2025

### Added

- Added support for description in Radio and Checkboxes fields

## [1.14.1] - 22.09.2025

### Fixed

- Fixed wrong hook name for export settings

### Removed

- Removed possibility to import settings via request

## [1.14.0] - 18.09.2025

### Added

- New hooks in export and import

## [1.13.0] - 16.09.2025

### Added

- Added possibility to translate all texts in this package

### Changed

- Optimized for WordPress Coding Standards

## [1.12.5] - 16.08.2025

### Changed

- Changed attributes for save callback from 2 to 3

## [1.12.4] - 12.08.2025

### Changed

- Embed media library for file chooser

## [1.12.3] - 04.08.2025

### Changed

- Extended field Button to return its custom attributes as array

### Fixed

- Fixed usage of easy dialog for WordPress script dependency

## [1.12.2] - 24.07.2025

### Fixed

- Do not show double error or success on options page

## [1.12.1] - 23.07.2025

### Fixed

- Fixed active marker for subtab navigation

## [1.12.0] - 21.07.2025

### Added

- Added sortable option for MultiSelect field
- Added hide animation for settings if they are dependent

### Changed

- Moved easy dialog support to import/export

## [1.11.2] - 20.07.2025

### Fixed

- Fixed usage of easy dialog for WordPress script dependency

## [1.11.1] - 01.07.2025

### Fixed

- Fixed missing execution of dirty.js

## [1.11.0] - 30.06.2025

### Added

- Added warning if settings form is leaved without saving it

## [1.10.6] - 30.06.2025

### Fixed

- Fixed missing REST nonce

## [1.10.5] - 28.05.2025

### Fixed

- Fixed usage of widefat on Multiselect fields

## [1.10.4] - 24.05.2025

### Added

- Added readonly-attribute for select field
- Added default WordPress backend class "widefat" on some fields

## [1.10.3] - 24.05.2025

### Fixed

- Fixed version number

## [1.10.2] - 23.05.2025

### Added

- Added error output

## Fixed

- Revert the change for support for easy dialog for WordPress

## [1.10.1] - 23.06.2025

### Added

- Added function to delete a setting from DB

### Changed

- Use next free index in each array if the target index is already used

### Fixed

- Fixed missing import of setting tab in File field
- Fixed support for easy dialog for WordPress

## [1.10.0] - 19.06.2025

### Added

- Added possibility for sub-tabs
- Added output of sub-tabs in settings page

## [1.9.1] - 15.06.2025

### Changed

- Field PermalinkSlug now also used a title for its list

## [1.9.0] - 15.06.2025

### Added

- Added new fields File and Files to select single or multiple files
- Added new field MultiField to show one field type multiple times for one setting
- Added new field SelectPostTypeObject which allows to search for any post type and let choose them for a setting
- Added function `is_settings_page()` to check if a settings page is called
- Added option to prevent registering of a setting, it will only be used as field

### Changed

- Number fields now using the default value for initial input value

### Fixed

- Fixed missing usage of data attributes on Button field

## [1.8.0] - 14.06.2025

### Added

- Added positions for sections
- Added option to move settings before other ones
- Added option to add complete settings on one rush
- Added new field PermalinkSlug for using a permalink field with URL-part-selection

### Changed

- Hooks for filter sections got new name
- Moved JS in subfolder
- Multiple new hooks

## [1.7.0] - 14.06.2025

### Added

- New Page object for pages where settings can be placed

### Changed

- Tabs are now assigned to Page and not to the main Settings object
- Changed `get_depend()` from protected to public

## [1.6.1] - 13.06.2025

### Changed

- version number fixed

## [1.6.0] - 13.06.2025

### Added

- Assign tabs and sections to pages

### Changed

- Display only tabs and settings for requested page

## [1.5.0] - 12.06.2025

### Added

- Added new field TextInfo to output just a text info
- Added new field Textarea for multiline text fields
- Added option to delete an existing tab from settings

### Changed

- Button field can now also use data-attributes

## [1.4.1] - 11.06.2025

### Changed

- all get_options() for fields are now public

## [1.4.0] - 11.06.2025

### Added

- Added custom vars on settings

### Changed

- Placeholder now also in Field_Base

## [1.3.2] - 10.06.2025

### Fixed

- Fixed missing version number update

## [1.3.1] - 10.06.2025

### Added

- Added custom position for tabs

### Changed

- Optimized each field for loading its own properties

### Fixed

- Fixed invalid HTML-code for Text and Checkbox fields
- Fixed missing embedding of own JS-file

## [1.3.0] - 10.06.2025

### Added

- Added option for menu position
- Added support for cpt-own menu entries
- Added new fields: Radio and Checkboxes (plural)
- Added read callback for settings
- Added option to depend the fields from each other in settings form

### Changed

- Text fields are now using widefat class

## [1.2.2] - 14.05.2025

### Changed

- Change some texts

## [1.2.1] - 27.04.2025

### Changed

- Optimized Number field for min, max and steps

### Fixed

- Fixed visibility of settings link in plugin list

## [1.2.0] - 27.04.2025

### Added

- Added output of generated settings link
- Added option to show settings link in plugin list

### Changed

- Allow functions as callback

## [1.1.1] - 21.04.2025

### Changed

- Optimized handling of adding tab, section and settings

## [1.1.0] - 18.04.2025

### Added

- Added setting for used URL
- Added dependency for Easy Dialog for WordPress

### Changed

- Changed usage of import script

## [1.0.2] - 18.04.2025

### Fixed

- Fixed missing version number update

## [1.0.1] - 18.04.2025

### Fixed

- Removed external dependencies

## [1.0.0] - 18.04.2025

### Added

- Initial release
