Cybokron Consent Manager Translations for YOOtheme Pro
Changelog
1.4.4
Fixed: Language fallback in sanitize_options now correctly defaults to ‘auto’ instead of ‘en’, consistent with the default introduced in 1.4.3.
1.4.3
Fixed: WPML/Polylang compatibility — translations now auto-detect from WordPress locale when no locale-specific settings exist, fixing missing translations on multilingual sites.
Changed: Default language setting changed from ‘en’ to ‘auto’ for better out-of-the-box multilingual support.
Packaging: Removed .distignore and .github from distribution to resolve Plugin Check errors.
Tested up to WordPress 6.9.
1.4.2
Changed: Admin sidebar and settings page header now use white plugin icon for better visibility on dark admin backgrounds.
1.4.1
CI: Fixed ABSPATH guard validation to accept WP_UNINSTALL_PLUGIN as valid guard for uninstall.php.
1.4.0
New: Plugin icon now displayed in WordPress admin sidebar menu.
New: Plugin icon added to settings page header.
Changed: Plugin menu moved to top-level admin menu with custom icon for better visibility.
1.3.19
CI: Added GitHub Actions workflow for automatic WordPress.org SVN deployment on release.
Removed discouraged load_plugin_textdomain() call per Plugin Check (WordPress 4.6+ loads translations automatically for WordPress.org hosted plugins).
1.3.16
Security: added wp_kses output sanitization to gettext filter for defense-in-depth against stored XSS in custom translation strings.
Security: added type check after maybe_unserialize in locale option scan to prevent object injection.
Performance: added rate-limiting (1-hour interval) to health report DB persistence to avoid writes on every frontend page load.
Improvement: replaced uniqid() with wp_generate_uuid4() for snapshot IDs (cryptographically stronger, WordPress-native).
Improvement: replaced file_get_contents with wp_json_file_decode (WP 5.9+) for language JSON loading with legacy fallback.
Improvement: implemented load_plugin_textdomain() for proper i18n text domain loading.
Cleanup: removed unnecessary flush_rewrite_rules() calls from activation/deactivation hooks.
1.3.15
Text domain: corrected all gettext text domain values from cybokron-consent-manager-translations-yootheme-main to cybokron-consent-manager-translations-yootheme to match the plugin slug exactly.
Packaging: removed tests/ and scripts/ directories from the distribution package entirely.
Added .distignore to prevent development-only files from being included in future release archives.
1.3.14
Plugin Check compatibility: aligned plugin header and gettext text domain to cybokron-consent-manager-translations-yootheme matching the plugin slug.
Packaging cleanup: removed hidden/workflow root entries from plugin root (.distignore, .github) to avoid Plugin Check warnings.
1.3.13
WordPress.org review compliance: aligned all gettext text domains with plugin slug cybokron-consent-manager-translations-yootheme.
Refactor: replaced generic identifiers with a unique plugin prefix (cybocoma_ / CYBOCOMA_) across classes, constants, hooks, options, and AJAX actions.
Packaging: added .distignore guidance and prepared release distribution to exclude non-production paths such as tests/ and scripts/.
Metadata: updated contributors list and synchronized plugin/readme/composer versions to 1.3.13.
1.3.12
i18n fix: restored plugin text domain usage to cybokron-consent-manager-translations-yootheme across plugin/admin/health/strings/updater modules for Plugin Check compatibility.
Updated plugin header Text Domain to cybokron-consent-manager-translations-yootheme.
Synced plugin metadata/versioning to 1.3.12.
1.3.11
Renamed plugin display name and slug to Cybokron Consent Manager Translations for YOOtheme Pro / cybokron-consent-manager-translations-yootheme for WordPress.org naming compliance.
Updated plugin metadata, admin settings page slug, text domain, and package file naming to align with the new slug.
QA: reran tests, PHP syntax checks, and static scan with clean results.
Synced plugin metadata/versioning to 1.3.11.
1.3.10
Bugfix (i18n): localized admin statistics summary text generated in JavaScript via wp_localize_script.
QA: reran tests, PHP syntax checks, JSON validation, and static scan with clean results.
Synced plugin metadata/versioning to 1.3.10.
1.3.9
Security: Sanitized admin live-preview link HTML to only preserve safe anchor output (<a href title>) and forced rel=”noopener noreferrer”.
SQL safety: Removed redundant esc_sql() wrappers around $wpdb->esc_like() wildcard queries in scoped option scans and uninstall cleanup.
Performance: Persisted snapshot/health/updater internal options with autoload=false to reduce autoload pressure.
Uninstall hygiene: Added updater cron hook cleanup (cybocoma_updater_cron_check) for single-site and multisite uninstall paths, including WordPress pre-6.1 fallback logic.
Cache consistency: Reset translator original-string map during cache clear and aligned test bootstrap update_option() signature with current core usage.
Synced plugin metadata/versioning to 1.3.9.
1.3.8
Accessibility: added semantic ARIA roles/attributes for admin translation tabs (tablist, tab, tabpanel) with deterministic roving tabindex.
Keyboard UX: added Left/Right plus Home/End navigation support for tab controls.
Accessibility state sync: tab panels now consistently toggle both hidden and aria-hidden.
Packaging: removed accidental .Jules development artifact from release tree.