Ultimate Watermark · Version history
Ultimate Watermark changelog and version history
- Latest version
- 2.2.0
- Oct 18, 2026 (22 days ago)
- Releases
- 29
- since 2019
- In the last year
- 16
- about one every 16 days
- Tested up to
- WordPress 7.1.4
- PHP 7.4 or later
Releases each year
- 20192 releases
- 20201 release
- 20226 releases
- 20232 releases
- 20252 releases
- 202616 releases
202616 releases
Ultimate Watermark 2.2.0Latest
- Fixed – Images assigned as featured, gallery or variation images of a NEW product (Dokan frontend dashboard, WooCommerce REST/CRUD, block editor) were never watermarked; only re-saving an existing product worked. Images are now evaluated once the product and its categories are fully saved, so rules…
- Fixed – WooCommerce gallery images were never watermarked automatically (wrong meta key).
- New – Protected download files: files uploaded as downloadable products (WooCommerce/Dokan, stored in woocommerce_uploads) or used in a product’s downloadable files are never watermarked, copied or previewed.
- New – Repeat pattern: tile a watermark across the whole image (any size or orientation) with adjustable spacing.
- Fixed – GD library: image watermarks were positioned too low (or outside the image for bottom positions), “Scaled” size was relative to the logo instead of the photo, rotation and percentage offsets were ignored.
- Fixed – Large images (over 2560px) got the watermark twice on the “-scaled” file; restoring them from backup created “-scaled-scaled” files and deleted the original.
- Fixed – Regenerating thumbnails re-watermarked already watermarked images.
- Security – Backups of original images are no longer publicly downloadable (protected folder, unguessable names, admin-only preview); backups are now byte-exact copies.
- Security – Settings save requires the manage_options capability; save/delete/toggle only act on watermark posts; the upload toggle is stored per user.
- Improved – Negative offsets and rotation are kept; watermark changes take effect immediately with persistent object caches; the whole object cache is no longer flushed on settings save.
- Improved – Admin UI: working bulk actions on the Watermarks page and bottom bulk dropdown in the Media Library, correct upload toggle switch and status, fixed “Back to Dashboard” links, backup pagination, analytics rate capped at 100%, Chart.js bundled locally, no “translation files not found” noti…
- Fixed – The Media Library upload toggle never sent its setting with uploads (grid view and media modals), so “Apply automatic watermarks to uploaded images” had no effect.
- Fixed – Switching tabs on the Add/Edit Watermark screen reloaded the page and discarded unsaved changes; tabs now switch instantly and keep their state.
- Fixed – Saved values of 0 (e.g. tile spacing) or an empty list (e.g. bypass roles) were replaced by defaults when editing a watermark.
- Improved – Hosts whose Imagick lacks a format (e.g. JPEG/WebP) automatically fall back to GD per image instead of silently skipping it.
- Improved – Live preview panel shows the saved values immediately; dead “Save Draft” button removed (Ctrl/Cmd+S saves); keyboard-accessible position grid and tabs; all admin JavaScript messages are translatable.
- New – “Frontend watermarking” now works: images uploaded from the front end of the site (e.g. a Dokan vendor dashboard) get the watermarks marked for it, following their Rules, even when automatic watermarking is off.
- Fixed – Cropped copies of an already watermarked image (Dokan / WordPress image cropper) were watermarked a second time.
- Improved – Variation images of variable products and products moved into a rule’s category later are watermarked automatically.
- Fixed – Imagick: transparent PNG images lost their transparency after watermarking.
- Fixed – Repeat pattern with rotated text left gaps; tiles now use an even, staggered grid on both GD and Imagick.
- Fixed – Applying the same watermark again to an image stacked it a second time.
- Security – Watermark rule labels on the Watermarks list are escaped (stored XSS by users who can edit watermarks).
- Security – Media Library and media edit actions (apply, remove, restore) check that the user may edit each image, so vendors can only change their own media.
- Improved – Large images are matched to their attachment exactly (no slow LIKE query); product gallery lookups work on all databases, including SQLite.
- Improved – The upload panel marks watermarks that have Rules (“Rules apply”): they are applied once the image matches, for example when it is used on a product in the selected category.
- Fixed – Image sizes that share one file (for example “large” and “medium_large”, or “medium” and the WooCommerce thumbnail of a square image) were watermarked twice.
- Fixed – GD rendered text about a third larger than Imagick and the editor preview (font sizes are pixels). Text watermarks on GD hosts now match; check sizes if you tuned them on a GD host.
- Safety – Images are written to a temporary file and swapped in only when complete, so a failed write (full disk, missing codec) never damages an image. The same applies to backups and restores.
- Safety – With backups on, an image is not changed if its original could not be backed up. Restore only succeeds (and only clears the watermark records) when the original was restored.
Ultimate Watermark 2.1.5
- Compatibility – Tested and verified against WordPress 7.1. Every WordPress function the plugin calls was cross-checked against the 7.1 codebase: none are deprecated or removed in this release.
- Security – The settings AJAX endpoint verified the nonce but never checked capabilities, so it did not require an administrator. It now requires manage_options.
- Security – The media-library endpoint that stores the pending watermark selection wrote an option after checking only the nonce. It now requires upload_files.
- Fixed – The plugin advertised support for PHP 7.4 but could not run on it. Five methods in the backup manager and the GD processor used PHP 8.0 union return types (bool|string|array, \GdImage|false), which are a parse error on 7.4 – so watermarking and backups fatally errored the moment those class…
- Fixed – “Requires at least” advertised WordPress 5.0, but the backup manager calls str_ends_with(), which WordPress only polyfills from 5.9 onward. On WordPress 5.0-5.8 running PHP 7.4 that was a fatal error on the backup screen. The header now states the version the plugin actually needs.
Ultimate Watermark 2.1.4
- Compatibility – Tested and verified against WordPress 7.0. The “Tested up to” header is bumped so the WordPress.org installer no longer warns site owners running 7.0 that the plugin is untested on their version.
Ultimate Watermark 2.1.3
- Fixed – Text watermarks failed to render on minimal/shared hosts (e.g. IONOS) with the cryptic FreeType error “unable to read font `'”. The plugin now ships three SIL OFL-licensed TTFs in assets/fonts/ (Nunito sans, Merriweather serif, JetBrains Mono) so text rendering works regardless of host envi…
- Fixed – Selected Google Fonts (Pro) didn’t render on the actually-applied watermark even though the preview showed them correctly. Load-time font validator was rejecting non-system families and silently reverting to Arial; now consults the ultimate_watermark_allowed_fonts filter so Pro typefaces su…
- Fixed – Imagick text watermarks on macOS Homebrew silently fell back to Helvetica when the plugin path contained a space (e.g. Local-by-Flywheel’s “Local Sites/” folder). MVG was dropping the path; we now mirror the resolved font onto the Imagick image as well as the draw object.
- Fixed – “Remove All Watermarks” on the media edit screen could delete files belonging to unrelated attachments because the cleanup loop globbed imagename-*.* and matched siblings like imagename-2.webp, then produced confusing “image does not exist” warnings during regen. Cleanup is now driven entir…
- Fixed – Cancel button on every confirmation modal (Remove All, Delete Watermark, Bulk Delete, Media Library bulk action) was running the destructive action because UWNotifications.confirm() resolves with the action string and the callers were doing if (confirmed) — truthy for the string 'cancel'. A…
- Improved – Fail-fast RuntimeException with a clear message if the bundled font is somehow missing, instead of letting FreeType emit its cryptic error.
- Improved – Removed verbose per-render error_log() traces (“Imagick: family=… → using font…”, etc.) — debug.log stays quiet in production while WP_DEBUG is off.
Ultimate Watermark 2.1.2
- Fixed – Optimized plugin title for maximum SEO visibility with comprehensive keywords
- Fixed – Added Quick Links section with emojis for better user navigation
- Fixed – Updated YouTube video link to proper demo content
Ultimate Watermark 2.1.1
- Fixed – Updated plugin title to comply with WordPress.org guidelines (removed WordPress from title)
- Fixed – Improved title for better SEO optimization
Ultimate Watermark 2.1.0
- New: Google Fonts integration in Pro — 30+ curated typefaces with on-disk caching and a searchable font picker that renders each option in its own typeface.
- New: WooCommerce auto-apply on product save (Pro) — the per-product / per-category cascade now actually fires when you save a product, including for variations.
- New: Onboarding notice system — review prompt after 7 days, upgrade-to-Pro nudge after 10 days (only if Pro isn’t active); both with snooze-once-then-forever lifecycle.
- New: Image Watermark / Get Pro identity — distinct orange CTA so the upgrade path is unmistakable on the menu, plugins-row link, upgrade page and limit modal.
- New: Filter ultimate_watermark_resolve_font_path lets Pro / third-party plugins inject custom font files into the rendering pipeline.
- New: Action ultimate_watermark_admin_enqueue_scripts lets Pro hook its admin assets at the right point in the asset pipeline.
- Fixed: Live preview “Preview Error” — Imagick processor now resolves real TTF files from disk, scales watermark data for the preview source, and surfaces the actual error message to the admin.
- Fixed: Empty rules array now means “apply everywhere” instead of “never apply” — matches user expectations and other watermarking plugins.
- Fixed: Rule operator whitelist expanded to match the Pro UI — greater_equal, less_equal, contains, not_contains, starts_with, ends_with, in, not_in, between, not_between are now actually saved and evaluated.
- Fixed: Date-range rules compare via Unix timestamp instead of floatval() of a date string.
- Fixed: product_cat / product_tag rules with contains, in, not_in and other multi-value operators now correctly evaluate against every term on the product.
- Fixed: Pro user placeholders ({user_display_name}, {user_email}, etc.) now resolve to the attachment uploader, then the parent post’s author, then current user — not just the logged-in admin.
- Fixed: Pro date placeholders use wp_date() (locale-aware) and the attachment’s upload time instead of server time.
- Fixed: Watermark preview now sets attachment context so EXIF / user / post placeholders resolve to real values during template editing.
- Fixed: WooCommerce category form now includes a CSRF nonce on save.
- Fixed: Update Watermark button on the edit screen no longer reverts to “Create Watermark” after saving.
- Fixed: Dashboard “Protected Images” and “Protection Rate” counters were stuck at 0 because they queried a legacy meta key — now match every flag the watermark pipeline writes.
- Fixed: Asset registry now matches the actual hook suffix WordPress emits for submenu pages, so every page-specific stylesheet loads correctly.
- Improved: Unified design system across all admin pages — single blue brand, single orange Pro identity, full-width layouts, polished header/footer with inline SVG icons, redesigned backup pagination, redesigned confirmation modal alignment.
- Improved: MediaEditIntegration now pulls in the design tokens from admin.css so the attachment-screen panel inherits the same look.
- Improved: Documentation URL moved to https://ultimate-watermark.mantrabrain.com/docs/.
Ultimate Watermark 2.0.8
- Fixed legacy targeting rules and REST API watermarking issues.
- Improved compatibility with custom rule combinations.
Ultimate Watermark 2.0.7
- Fixed media popup toggle reliability across all WordPress pages.
- Improved compatibility with the block editor and classic editor uploads.
Ultimate Watermark 2.0.6
- Added WordPress.org language pack support.
- Improved post-upload hook isolation to avoid conflicts with other plugins.
Ultimate Watermark 2.0.5
- Fixed JavaScript errors on the Settings page that prevented saving.
Ultimate Watermark 2.0.4
- Improved REST API integration for headless WordPress sites.
Ultimate Watermark 2.0.3
- Compatibility improvements with WooCommerce 9.x.
Ultimate Watermark 2.0.2
- Performance improvements when bulk-watermarking large image sets.
Ultimate Watermark 2.0.1
- Bug fixes and stability improvements.
Ultimate Watermark 2.0
20252 releases
Ultimate Watermark 1.1.1
Ultimate Watermark 1.1
20232 releases
Ultimate Watermark 1.0.11
Ultimate Watermark 1.0.10
20226 releases
Ultimate Watermark 1.0.9
Ultimate Watermark 1.0.8
Ultimate Watermark 1.0.7
Ultimate Watermark 1.0.6
Ultimate Watermark 1.0.5
Ultimate Watermark 1.0.4
20201 release
Ultimate Watermark 1.0.3
20192 releases
Ultimate Watermark 1.0.2
Ultimate Watermark 1.0.1
Questions about Ultimate Watermark’s releases
What is the latest version of Ultimate Watermark?
2.2.0, released on Oct 18, 2026 (3 weeks ago). It’s tested up to WordPress 7.1.4 and needs PHP 7.4 or later.
How often is Ultimate Watermark updated?
16 releases in the last year, about one every 16 days. Its first release on WordPress.org dates from April 2019.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in Ultimate Watermark’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.