Maintenance: Updated translation catalogs and compiled language files so all current plugin UI strings are covered.
Maintenance: Tested up to WordPress 7.0.1.
1.8.4
Fix: Files with spaces or other invalid characters in their names (e.g. “Welbeck Street.png”) are now correctly auto-renamed client-side when using the default filename regex — previously the JS guard would reject such files outright instead of sanitizing them, while the server would have accepted and renamed them fine. Spaces are now converted to hyphens before validation, matching server-side behaviour.
Fix: Added a re-entrancy guard to the sanitize_file_name filter hook to prevent potential infinite recursion in edge cases where WordPress’s internal sanitize_file_name() call fires the same filter back, which could cause a PHP fatal error (HTTP 500) on uploads.
1.8.3
Feature: Plugin upload restrictions are now bypassed on the WordPress General Settings page by default (e.g., site icon uploads). A new setting allows enabling restrictions there explicitly.
Fix: Files with spaces in their names are now correctly accepted when using default filename settings — spaces are converted to dashes via WordPress core sanitization before validation, matching WordPress’s native behavior.
Fix: Accented and special characters from German (ä, ö, ü, ß), Spanish (é, á, ó, ú, ñ), French (è, à, ç), and other European languages are now correctly transliterated to their ASCII equivalents in all filename processing paths, including when using the default regex pattern and when auto-sanitize is disabled for custom regex.
1.8.2
Fix: Resolved PHPCS/Plugin Check security warnings — sanitize $_POST[‘names’] array input using array_map with sanitize_file_name in a single expression with wp_unslash; added precise inline phpcs:ignore directives on the exact lines where dynamic SQL concatenation is flagged by static analysis.
1.8.1
Fix: Welcome notice link was rendered broken in translated versions — wp_kses_post() was applied before sprintf() substituted the URL, causing %s to be treated as an invalid href and corrupting the output. Applied wp_kses_post() after URL substitution.
1.8.0
Fix: Hide datalist dropdown arrow on Extension and MIME Type input fields in the settings rules table.
1.7.9
Feature: The “Maximum upload file size” hint shown in the WordPress media uploader and WooCommerce product image tooltips now reflects the highest per-format size cap configured in the plugin settings, instead of the raw PHP server limit.
1.7.8
Fix: Files uploaded via Plupload from the Media Library page now correctly pass through the format whitelist — async-upload.php was missing from the media context check, allowing non-whitelisted formats to bypass server-side validation.
Fix: Duplicate filename AJAX check was silently failing due to an action name mismatch between the JavaScript call (kmm_check_duplicate) and the registered PHP handler (kodlo_media_manager_check_duplicate).
Maintenance: Renamed all asset files (settings.css, settings.js, media-manager.js) to include the kodlo-media-manager- prefix for easier identification in browser developer tools and profiling.
Maintenance: Renamed suggestions.json to kodlo-media-manager-mime-type-suggestions.json to clarify the file’s purpose.
1.7.7
Prevent duplicate “View details” links in plugin row meta.
1.7.6
Fixed flickering issue for the auto-sanitize button setting toggle.
1.7.5
Minor updates to plugin description, labels, and translations.
1.7.4
Initial version after the release on WordPress.org, minor bug fixes, and updates to the plugin description.
1.7.3.1
Added client-side visual validation warnings in the Settings UI rules builder when configuring blocked/insecure formats.
1.7.3
Resolved all WordPress.org review issues.
Extracted inline footer and welcome notice scripts to enqueued JavaScript assets.
Renamed all KMM_ constants, handles, and global parameters to KODLO_MEDIA_MANAGER_ prefix to avoid naming collisions.
Set contributors to kodlo (owner account).
Deprecated libxml_disable_entity_loader calls.
Added regex syntax validation to register_setting options callback.
Blocked whitelisting of dangerous formats (e.g. php, html, js) in settings and uploads.
Restricted filename sanitization hooks to run only during user Media Library uploads.
1.7.2
Updated the plugin description to focus on custom media upload rules, format validation, and naming constraints to keep the Media Library clean and optimized.
Audited the codebase to optimize scripts and assets.
1.7.1
Widened the rules table Extension column relative to the MIME Type column for better visibility of longer extension names.
Prevented creation of duplicate rules in the settings manager rules builder.
Integrated real-time client-side HTML5 form validation warning notifications and input focus/blur suggestions filtering to exclude already added extensions.
Added backward compatibility/reverse mapping from MIME type to Extension suggestions and auto-population.
1.7.0
Added HTML5 suggestions autocomplete lists for extension and MIME type input fields (loaded from a separate suggestions.json file containing popular formats).
Added real-time extension-to-MIME-type auto-population to automatically fill in the corresponding MIME type when an extension is typed or selected.
1.6.5
Made the “Auto-Sanitize Filenames” option dynamically toggle. It now only appears in the settings dashboard if the “Filename Regex Pattern” has been customized (is different from standard default or empty). If the regex is default, the auto-sanitize option is automatically hidden, disabled, and evaluated as inactive.
1.6.4
Added dynamic override for WordPress’s default big image threshold filter. The plugin now dynamically overrides the scaling threshold based on the configured custom image dimensions (or falls back to the 2560px standard default if no limits are specified), avoiding scaling conflicts.
1.6.3
Re-balanced admin rules table columns layout to offer more space for Width/Height fields (allowing 4+ characters) and MIME Type / Upload Policy, while reducing the Max Size column width to accommodate 6 characters.
Bumped max-width of the rules settings configuration table to 1100px.
1.6.2
Added automatic enforcement of the WordPress big image size threshold (defaults to 2560px) to prevent oversized image uploads from bypassing the plugin’s validation constraints.
Refined mobile card top padding (20px) and set the rule deletion cross icon size to 24px.
1.6.1
Refined mobile card top padding (20px) and set the rule deletion cross icon size to 24px.
1.6.0
Redesigned mobile rules cards layout to position the delete cross at the top right, stack labels above fields, and expand inputs/dropdowns to full-width.
Added dynamic cell visibility to hide the “Max Dim (px)” block on mobile if empty or if the format is not a raster image.
Added dynamic disable controls for the size and dimension inputs when a file format’s policy is set to Blocked (Globally).
1.5.0
Added mobile responsive layout for the settings rules table (card styling below 782px).
Added dynamic hiding of the entire “Max Dim (px)” column when no raster images are configured in the table.
1.4.0
Added WebM video format support with 10 MB optimized size limits.
Changed default limits for WebP/AVIF images to 2K resolution (2560px) and 250 KB max size.
Tuned default size limits for other common formats (SVG, PDF, DOCX, ZIP, MP4) for optimal web performance.
Added a persistent, dismissible welcome admin notification after first plugin installation.