# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [2.2.1] - 2026-03-10

### Fixed

- Admin settings page stuck on "Loading application…" when WPML or other plugins (dark-mode, snippet managers) modify the WP_Screen object — now uses the reliable `$hook` parameter instead of `get_current_screen()->id`
- `type="module"` script attribute now applied reliably across all WordPress versions (4.2+) via `script_loader_tag` filter instead of `wp_script_add_data()`

## [2.2.0] - 2026-03-02

### Added

- New visual configuration wizard with six tabs (Design, Texts, Cookies, Settings, Features, Review)
- Local Setup mode — full cookie banner without an AdSimple account
- Decision screen to choose between AdSimple connection and Local Setup
- 16 built-in color themes with full custom color support (18 color fields)
- 6 banner positions (popup, bottom bar, bottom-left, bottom-right, top bar, top fixed)
- 3 banner layouts (Classic, Block, Wireframe)
- Browser-based cookie quick scan from the admin dashboard
- Automatic script blocking until visitor consent
- Google Consent Mode v2 support with configurable default states
- 6 cookie categories with per-category activation, locking, and visibility controls
- Visibility rules to exclude specific paths from showing the banner
- Configurable settings button for visitors to change preferences
- Live banner preview in the admin wizard
- Consent validity configuration (1–365 days)
- Modern React-based admin interface
- REST API for options and cookie scan management

## [2.1.4] - 2026-02-24

### Fixed

- Consent banner script tags were stripped by `wp_kses_post()`, causing raw JavaScript to appear as text on the page (with local cache) or the banner not loading at all (without local cache)
- Local script cache is now automatically invalidated when the plugin version changes, preventing stale cached scripts after updates
- Third-party page cache clearing now supports WP Super Cache, W3 Total Cache, LiteSpeed Cache, Autoptimize, SG Optimizer and WP Fastest Cache (in addition to WP Rocket)
- Third-party page caches are now always cleared when local cache is deleted, even if individual cache file deletions fail

## [2.1.3] - 2026-02-23

### Fixed

- Renamed plugin display name to comply with WordPress.org guidelines (removed "WordPress" trademark and "Plugin" word)
- Added missing GPLv2 license header to plugin file
- Updated "Tested up to" to WordPress 6.9
- Replaced all short PHP opening tags (`<?=`) with full `<?php echo` tags
- Removed promotional language from readme description
- Added ABSPATH direct file access protection to all PHP files
- Improved output escaping throughout templates (`esc_html`, `esc_attr`, `esc_url`, `wp_kses_post`)
- Added nonce verification and input sanitization for form handling
- Replaced direct filesystem calls with WordPress Filesystem API
- Added translator comments and fixed unordered placeholders in i18n strings
- Replaced `parse_url()` with `wp_parse_url()` and `unlink()` with `wp_delete_file()`
- Replaced `wp_redirect()` with `wp_safe_redirect()`
- Prefixed custom hook names and template variables

## [2.1.2] - 2025-08-18

### Fixed

- PHP 8.0+ compatibility issue with static method calls

## [2.1.1] - 2025-07-29

### Added

- WP Consent API integration

## [2.1.0] - 2025-07-01

### Added

- Registered as an official CMP under IAB Europe's Transparency and Consent Framework (TCF) with CMP ID 463
- EAA WCAG 2.1 compliance

### Changed

- Updated readme to reflect TCF certification and EAA WCAG 2.1 compliance

## [2.0.17] - 2024-12-12

### Added

- Added screenshots to WordPress.org assets

### Changed

- Updated readme.txt

## [2.0.16] - 2024-11-14

### Changed

- Updated text-domain loading
- Whitespace cleanup
- Tested up to WordPress 6.6.2

## [2.0.15] - 2024-11-07

### Changed

- Updated short description
- Code-style update, improved code readability
- Whitespace cleanup

## [2.0.14] - 2024-11-05

### Changed

- Updated text domain to plugin slug
- Code-style update, improved code readability
- Whitespace cleanup
- Updated readme.txt

## [2.0.13] - 2024-09-05

### Changed

- Improved `embed_code` validation

## [2.0.12] - 2024-09-03

### Changed

- Updated plugin name
- Updated readme.txt

## [2.0.11] - 2024-09-03

### Changed

- Improved error handling

## [2.0.10] - 2024-08-27

### Changed

- Tested up to WordPress 6.5.4

## [2.0.9] - 2022-10-12

### Changed

- Updated logic for excluding from WP Rocket

## [2.0.8] - 2021-12-07

### Changed

- Minor changes for PHP 8.0 compatibility

## [2.0.7] - 2021-06-21

### Changed

- Optimization of local version handling

## [2.0.6] - 2021-06-09

### Added

- Locale cache support

## [2.0.5] - 2021-03-05

### Changed

- Updated logic for excluding from WP Rocket

## [2.0.4] - 2021-03-04

### Added

- Support for shortcode `[acm_cookie_list]`
- Refactoring

## [2.0.3] - 2020-11-24

### Changed

- Refactoring

## [2.0.2] - 2020-11-11

### Added

- Functionality to exclude from WP Rocket

### Changed

- Refactoring

## [2.0.1] - 2020-08-24

### Changed

- Minor changes

## [2.0.0] - 2020-03-26

Initial release of version 2.0.0.

[Unreleased]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.2.0...HEAD
[2.2.0]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.1.4...v2.2.0
[2.1.4]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.1.3...v2.1.4
[2.1.3]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.1.2...v2.1.3
[2.1.2]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.1.1...v2.1.2
[2.1.1]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.1.0...v2.1.1
[2.1.0]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.17...v2.1.0
[2.0.17]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.16...v2.0.17
[2.0.16]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.15...v2.0.16
[2.0.15]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.14...v2.0.15
[2.0.14]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.13...v2.0.14
[2.0.13]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.12...v2.0.13
[2.0.12]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.11...v2.0.12
[2.0.11]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.10...v2.0.11
[2.0.10]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.9...v2.0.10
[2.0.9]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.8...v2.0.9
[2.0.8]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.7...v2.0.8
[2.0.7]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.6...v2.0.7
[2.0.6]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.5...v2.0.6
[2.0.5]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.4...v2.0.5
[2.0.4]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.3...v2.0.4
[2.0.3]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.2...v2.0.3
[2.0.2]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.1...v2.0.2
[2.0.1]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/compare/v2.0.0...v2.0.1
[2.0.0]: https://github.com/AdSimple-GmbH/adsimple-cookie-manager-for-wp/releases/tag/v2.0.0
