Changeset 3474624
- Timestamp:
- 03/04/2026 01:52:21 PM (3 weeks ago)
- Location:
- ultimakit-for-wp
- Files:
-
- 2 edited
-
tags/2.3.0/README.txt (modified) (8 diffs)
-
trunk/README.txt (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ultimakit-for-wp/tags/2.3.0/README.txt
r3474620 r3474624 1 1 === UltimaKit – WordPress Admin Tools, Security & Performance Optimizer === 2 Contributors: ankitmaru 2 Contributors: ankitmaru, siapanchal 3 3 Donate link: https://pluginstack.dev/ 4 Tags: admin tools, duplicate post, disable gutenberg, security, performance4 Tags: admin, security, performance, duplicate post, optimization 5 5 Requires at least: 5.6 6 6 Tested up to: 6.8 … … 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 11 11 12 Replace 50+ single-purpose plugins with one lightweight toolkit. Duplicate Post, SVG Upload, Disable Gutenberg, Login Security, and more — all in one place.12 Replace 50+ single-purpose plugins with one modular toolkit. Admin tools, security hardening, performance optimization, duplicate post, code snippets & more. 13 13 14 14 == Description == 15 15 16 Is your WordPress site weighed down by too many single-purpose plugins? 17 18 **UltimaKit** is the modular WordPress plugin toolkit that replaces 50+ common plugins with one clean, performance-optimized solution. Enable only the modules you need — if a module is off, its code doesn't run. 19 20 = Plugins You Can Uninstall = 21 22 By installing UltimaKit, you can safely remove these popular plugins and reduce your plugin count: 16 **UltimaKit** is a modular WordPress toolkit that replaces 50+ single-purpose plugins with a single, lightweight plugin. Enable only the modules you need — disabled modules run zero code, so your site stays fast no matter how many features you unlock. 17 18 **30+ free modules. Zero performance bloat.** 19 20 Whether you're a freelancer managing client sites, an agency needing white-label tools, or a site owner tired of juggling 20 plugins — UltimaKit gives you everything in one clean dashboard. 21 22 = What Users Are Saying = 23 24 *"Finally a plugin that does everything without slowing my site down. Replaced 12 plugins in one go."* 25 26 *"The modular approach is genius — I only run what I need. My PageSpeed score jumped 8 points after switching."* 27 28 *"Perfect for client sites. White labeling is flawless and the agency tools save me hours every week."* 29 30 = Plugins You Can Uninstall Today = 31 32 Switch to UltimaKit and safely remove all of these: 23 33 24 34 * **Yoast Duplicate Post** → UltimaKit's Duplicate Pages & Posts … … 26 36 * **Disable Gutenberg** → UltimaKit's Gutenberg Manager 27 37 * **WPS Hide Login** → UltimaKit's Change Login URL 28 * **Limit Login Attempts ** → UltimaKit's Login Security38 * **Limit Login Attempts Reloaded** → UltimaKit's Login Security 29 39 * **Redirection** → UltimaKit's 301 Redirect Manager 30 * **Cookie Notice ** → UltimaKit's GDPR ComplianceTool31 * **Simple Custom CSS /JS** → UltimaKit's Code Manager32 * ** Maintenance Mode** → UltimaKit's Maintenance Mode40 * **Cookie Notice / GDPR Cookie Compliance** → UltimaKit's GDPR Tool 41 * **Simple Custom CSS and JS** → UltimaKit's Code Manager 42 * **WP Maintenance Mode** → UltimaKit's Maintenance Mode 33 43 * **Post Types Order** → UltimaKit's Drag & Drop Sort Order 34 35 = Top Free Features = 36 37 The most popular tools included in the free version: 38 39 * **Duplicate Posts & Pages** — Clone any post or page with a single click 40 * **SVG Upload Support** — Safely upload SVG logos and icons to the Media Library 41 * **Disable Gutenberg** — Revert to the Classic Editor for specific post types or the entire site 42 * **Hide Admin Notices** — Move annoying plugin banners out of your dashboard to a dedicated panel 43 * **Drag & Drop Order** — Reorder Posts, Pages, and Custom Post Types with a simple drag 44 * **Login Customizer** — Change the default /wp-admin login URL and replace the WordPress logo 45 46 = Complete Free Feature List = 47 48 **Content & Management** 49 50 * Duplicate Pages & Posts — Clone content instantly 51 * Drag & Drop Order — Custom sorting for posts and pages 52 * SVG Upload — Enable safe SVG file uploads 53 * Auto-Generate Slugs — Create SEO-friendly slugs automatically 54 * Featured Image Column — See thumbnails directly in the admin list view 55 * ID Column — Display Post/Page IDs in the admin table 56 * Clean Up Admin Bar — Remove "Howdy Admin," WP Logo, and other clutter 57 * Open External Links in New Tab — Automatically add target="_blank" 44 * **Code Snippets** → UltimaKit's Code Snippets Manager 45 * **Query Strings Remover** → UltimaKit's Remove Query Strings 46 * **Heartbeat Control** → UltimaKit's Heartbeat Manager 47 * **Disable Emojis** → UltimaKit's Disable Emojis & Embeds 48 49 = Most Popular Free Modules = 50 51 * **Duplicate Posts & Pages** — One-click cloning for posts, pages, and custom post types 52 * **SVG Upload** — Safely upload SVG logos and icons to the Media Library 53 * **Disable Gutenberg** — Revert to the Classic Editor for specific post types or the whole site 54 * **Hide Admin Notices** — Move plugin banners out of your dashboard into a dedicated panel 55 * **Change Login URL** — Secure your /wp-admin from bots by customizing the login URL 56 * **Drag & Drop Post Order** — Reorder Posts, Pages, and CPTs visually 57 * **Code Snippets Manager** — Add PHP, JavaScript, and CSS snippets without editing theme files 58 * **Heartbeat Control** — Reduce server load caused by the WordPress Heartbeat API 59 * **Disable XML-RPC** — Block the most common DDoS and brute-force attack vector 60 * **Login Security** — Auto-lock IPs after repeated failed login attempts 61 62 = All Free Features = 63 64 **Content & Post Management** 65 66 * Duplicate Pages & Posts — Clone any content with a single click, including custom post types 67 * Drag & Drop Post Order — Custom sort order for posts, pages, and CPTs 68 * SVG Upload — Enable safe, sanitized SVG file uploads for all or specific roles 69 * Auto-Generate Slugs — Create clean, SEO-friendly URL slugs automatically 70 * Featured Image Column — View post thumbnails directly in the admin list table 71 * Post/Page ID Column — Show object IDs in the admin list for faster debugging 72 * Open External Links in New Tab — Auto-add target="_blank" to outbound links 73 74 **Admin Interface & UX** 75 76 * Hide Admin Notices — Move plugin notices to a collapsible panel in the admin bar 77 * Clean Up Admin Bar — Remove "Howdy Admin," WP Logo, and unwanted admin bar clutter 78 * Custom Admin Footer — White-label the dashboard footer for clients 79 * Login Page Styler — Remove login error hints and animated shake effects 58 80 59 81 **Security & Hardening** 60 82 61 * Change Login URL — Hide your /wp-admin from bots and scrapers 62 * Limit Login Attempts — Block brute-force attacks with automatic IP lockout 63 * Disable XML-RPC — Prevent a common DDoS and brute-force attack vector 64 * Hide WordPress Version — Obfuscate version number to prevent targeted exploits 65 * Block "Admin" Username — Prevent creation of the most common insecure username 66 * Disable File Editing — Stop hackers from editing theme/plugin files via the dashboard 67 * Auto-Logout Inactive Users — Session security for idle admins 68 * Disallow Bad Requests — Block malicious strings and base64 injections 69 70 **Optimization & De-Bloat** 71 72 * Disable Gutenberg — Revert to Classic Editor where needed 73 * Disable Emojis & Embeds — Remove extra JavaScript files to speed up the frontend 83 * Change Login URL — Rename /wp-login.php to a custom slug to block automated attacks 84 * Limit Login Attempts — Lock out IPs after configurable failed login attempts 85 * Disable XML-RPC — Eliminate a major attack surface for brute-force and DDoS 86 * Hide WordPress Version — Prevent targeted version-based exploits 87 * Block "Admin" Username — Refuse creation of the most commonly targeted username 88 * Disable File Editing — Prevent theme/plugin file edits from the WordPress dashboard 89 * Auto-Logout Inactive Users — Automatically end idle admin sessions 90 * Disallow Bad Requests — Filter malicious URL strings and base64 injection attempts 91 * Disallow Directory Listing — Hide folder contents from public view 92 93 **Performance & Optimization** 94 95 * Disable Gutenberg — Remove block editor overhead where it's not needed 96 * Disable Emojis & Embeds — Strip unnecessary JavaScript from every frontend page load 74 97 * Disable Comments — Turn off comments globally or per post type 75 * Disable RSS Feeds — Stop content scrapers76 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce speed issue77 * Heartbeat Control — Reduce server resource usage from the WP Heartbeat API78 * Remove Query Strings — Improve GTmetrix and PageSpeed Insightsscores98 * Disable RSS Feeds — Block content scrapers and save server resources 99 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce performance bottleneck 100 * Heartbeat Control — Throttle the WP Heartbeat API to reduce server CPU usage 101 * Remove Query Strings — Improve GTmetrix, PageSpeed Insights, and Pingdom scores 79 102 80 103 **Custom Code & Design** 81 104 82 * Header/Footer Code — Add Google Analytics, Facebook Pixel, or any custom script 83 * Custom CSS/JS — Add style tweaks without editing theme files 84 * Custom Admin Footer — White-label your dashboard for clients 85 * Login Page Styler — Hide login errors and shake animations 86 87 = Pro Features (Agency Power) = 88 89 Unlock the full site management suite for agencies and developers: 90 91 * **SEO Title & Meta Editor** — A lightweight alternative to heavy SEO plugins 92 * **Custom Post Types (CPT) UI** — Create CPTs and Taxonomies without writing code 93 * **Admin Activity Logger** — Track every change made on your site with a full audit log 94 * **Maintenance Mode** — Professional "Coming Soon" pages with a countdown timer 95 * **White Labeling** — Rename "UltimaKit" to your own agency brand 96 * **Advanced WooCommerce Tools** — Disable breadcrumbs, custom "Add to Cart" text, and more 97 * **Gravity Forms Modules** — Advanced form management and field utilities 98 * **Export/Import Settings** — Move your configuration to client sites instantly 105 * Code Snippets Manager — Add and manage PHP, JS, and CSS snippets with location control (head, footer, init, before/after content) 106 * Header/Footer Code — Insert Google Analytics, Meta Pixel, GTM, or any tracking snippet 107 * Custom CSS/JS — Add site-wide style and script tweaks without editing theme files 108 * GDPR Compliance Tool — Display a cookie consent notice to meet legal requirements 109 110 = Pro Features (Agency Power Tools) = 111 112 * **SEO Title & Meta Editor** — Lightweight meta management without a heavy SEO plugin 113 * **Custom Post Types (CPT) UI** — Register CPTs and Taxonomies visually, no code required 114 * **Admin Activity Logger** — Full audit log of every change made on the site 115 * **Maintenance Mode** — Professional coming-soon pages with countdown timer 116 * **White Labeling** — Rename "UltimaKit" to your own agency brand in the dashboard 117 * **Advanced WooCommerce Tools** — Breadcrumb control, custom "Add to Cart" text, and more 118 * **Gravity Forms Modules** — Advanced analytics, form management, and field utilities 119 * **Export/Import Settings** — Move your entire UltimaKit configuration to client sites instantly 120 * **301 Redirect Manager** — Manage all redirects from a central dashboard 121 * **Ban Emails & Blacklist Usernames** — Prevent registrations from specific addresses or names 122 * **Multiple User Roles** — Assign more than one role to a user account 99 123 100 124 [View All Pro Features & Pricing →](https://pluginstack.dev/plugins/ultimakit-for-wp) 101 [All in One Google Sheet Integration with multiple plugins →](https://pluginstack.dev/plugins/syncsheets-for-wordpress/) 102 103 = What's Next? = 104 105 We are actively building features based on community feedback. [Submit a feature request →](https://pluginstack.dev/plugins/ultimakit-for-wp) 125 [SyncSheets: Google Sheets Integration for WordPress →](https://pluginstack.dev/plugins/syncsheets-for-wordpress/) 126 127 = Why UltimaKit Instead of Many Separate Plugins? = 128 129 Every plugin you install adds HTTP requests, database queries, admin menu overhead, and potential security vulnerabilities. Running 15 separate plugins to do what UltimaKit does in one means 15× the update maintenance, 15× the compatibility risk, and a slower dashboard. 130 131 UltimaKit uses **strict module isolation**: code for a disabled module never runs. Unlike omnibus plugins that load everything at once, UltimaKit's architecture means you pay zero performance cost for features you don't use. 132 133 = Part of the PluginStack Bundle = 134 135 UltimaKit is part of the [PluginStack](https://pluginstack.dev/) ecosystem — a growing suite of focused WordPress tools built for developers and agencies. 106 136 107 137 **Links:** [Website](https://pluginstack.dev/plugins/ultimakit-for-wp) | [Upgrade to Pro](https://pluginstack.dev/plugins/ultimakit-for-wp) | [PluginStack Bundle](https://pluginstack.dev/) … … 112 142 2. Activate the plugin through the **Plugins** menu in WordPress. 113 143 3. Go to **UltimaKit** in the admin sidebar. 114 4. Enable only the modules you need to keep your site fast and lightweight.144 4. Enable only the modules you need — everything else stays dormant and adds zero overhead. 115 145 116 146 == Frequently Asked Questions == 117 147 118 = Why should I use UltimaKit instead of installing separate plugins? = 119 120 Every plugin you install adds HTTP requests, database queries, and potential security risks. UltimaKit lets you replace 20+ single-purpose plugins (like Duplicate Post, SVG Support, Disable Gutenberg) with one clean, optimized codebase. Less plugins means a faster, more secure site. 121 122 = Does enabling many modules slow down my site? = 123 124 No. UltimaKit uses a strict modular architecture — if you do not enable a module, its code does not run at all. It is significantly more efficient than running 10–20 separate plugins. 125 126 = Can I use this for client sites? = 127 128 Yes! The **White Label** and **Clean Admin** Pro features make it perfect for agencies. You can rename UltimaKit to your own brand and hand over a clean, professional dashboard to clients. 148 = Does UltimaKit slow down my WordPress site? = 149 150 No. UltimaKit uses strict module isolation — if a module is not enabled, its code does not load at all. Running UltimaKit with 10 active modules is significantly more efficient than running 10 separate single-purpose plugins, because there is no redundant bootstrapping, duplicate asset loading, or plugin framework overhead. 151 152 = Why should I use UltimaKit instead of separate plugins like Duplicate Post, SVG Support, or WPS Hide Login? = 153 154 Each plugin you install adds its own database queries, admin hooks, asset files, and update maintenance. UltimaKit replaces 50+ of these single-purpose plugins with one optimized codebase. You get fewer updates to manage, fewer compatibility conflicts, and a lighter, faster WordPress installation. 155 156 = How many modules does UltimaKit include? = 157 158 The free version includes 30+ fully functional modules across content management, security hardening, performance optimization, and custom code. The Pro version adds advanced agency and developer tools including CPT UI, admin activity logging, maintenance mode, white labeling, Gravity Forms modules, and more. 159 160 = Can I use UltimaKit on client sites? = 161 162 Yes. The **White Label** Pro feature lets you rebrand the entire UltimaKit dashboard with your own agency name and logo. The **Export/Import Settings** module lets you clone your configuration to new client sites in seconds. It's built with agencies in mind. 129 163 130 164 = Is it compatible with WooCommerce? = 131 165 132 Yes. There are dedicated WooCommerce optimization modules in both Free and Pro tiers, including disabling cart fragments (the #1 WooCommerce speed issue), hiding out-of-stock products, and customizing the checkout experience. 133 134 = Is the free version genuinely useful or just a teaser? = 135 136 The free version includes 30+ real, fully functional modules covering content management, security hardening, and performance optimization. The Pro tier adds advanced tools for agencies and power users. 166 Yes. UltimaKit includes WooCommerce-specific optimization modules in both Free and Pro tiers — including disabling cart fragments (the most common WooCommerce performance issue), hiding out-of-stock products, and customizing checkout behavior. 167 168 = Is UltimaKit compatible with popular page builders? = 169 170 Yes. UltimaKit works alongside Elementor, Beaver Builder, Divi, Bricks, and other major page builders. The Disable Gutenberg module can be set per post type so you can use the block editor on some content types and a page builder on others. 171 172 = Is the free version actually useful, or is it just a teaser for Pro? = 173 174 The free version includes 30+ real, fully functional modules. You can manage content, harden your login page, block XML-RPC attacks, disable Gutenberg, remove query strings, add code snippets, and much more — all without spending a cent. Pro adds advanced agency tools and deeper customization, but the free version is genuinely complete. 175 176 = Does UltimaKit work with multisite? = 177 178 UltimaKit can be activated on individual sites within a multisite network. Network-wide activation is not officially supported, but many users run it on each sub-site without issues. 179 180 = What happens to my settings if I deactivate the plugin? = 181 182 Your settings are preserved in the database when you deactivate UltimaKit. Reactivating the plugin restores your previous configuration. If you want to fully remove the plugin and its data, you can delete it from the Plugins screen. 183 184 = Does UltimaKit include a code snippets manager? = 185 186 Yes. Version 2.3.0 added a dedicated Code Snippets module supporting PHP, JavaScript, and CSS. Each snippet has its own title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle — managed from a full admin page at UltimaKit → Code Snippets. 137 187 138 188 == Screenshots == 139 189 140 1. The UltimaKit module dashboard — enable only what you need. 190 1. The UltimaKit module dashboard — enable only what you need, keep everything else dormant. 191 2. Security modules — change login URL, limit login attempts, disable XML-RPC, and more. 192 3. Performance optimization — disable Gutenberg, remove query strings, control Heartbeat API. 193 4. Code Snippets manager — add and manage PHP, JS, and CSS with location and priority control. 194 5. Pro features — CPT UI, admin activity logger, white labeling, and WooCommerce tools. 141 195 142 196 == Changelog == … … 144 198 = 2.3.0 = 145 199 146 * FIXED: Change Login URL — login form was still posting to /wp-login.php instead of the custom slug, causing login to fail. Added site_url filter to correctly rewrite the form's action attribute. 200 * NEW: Code Snippets module added to "Custom Code" category. Supports PHP, JavaScript, and CSS snippets with per-snippet title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle. Snippets are stored in a dedicated database table and managed via a full admin page (UltimaKit → Code Snippets) with add/edit form, search, type-tab filters, inline toggle, and delete. 201 * FIXED: Change Login URL — login form was posting to /wp-login.php instead of the custom slug. Added site_url filter to correctly rewrite the form action attribute. 147 202 * FIXED: Change Login URL — removed early wp_redirect() call from class constructor that ran before WordPress was fully initialized, which could cause headers-already-sent errors. 148 203 * FIXED: Change Login URL — removed redundant admin_init hook for blocking /wp-login.php (the init hook at priority 1 already handles this correctly). 149 * FIXED: Admin UI — sidebar icon color live preview was always reflecting the admin bar icon color due to a wrong DOM selector (#adminbar_icons_color instead of #sidebar_icon_color). 150 * FIXED: Admin UI — color pickers were double-initialized (generic .wpColorPicker() call conflicted with individual per-picker initialization), causing picker UI conflicts. 151 * FIXED: Admin UI — sidebar width value now sanitized with absint() before CSS output to prevent potential CSS injection via curly brace characters. 152 * IMPROVED: Admin UI color scheme updated to match pluginstack.dev brand palette — replaced Bootstrap purple (#6610F2) with brand indigo (#6366f1), removed gold/yellow accent (#FFD700) in favour of violet (#8b5cf6), consolidated scattered blue values (#3498DB, #007BFF) into brand indigo, and standardised light backgrounds to #f8fafc across admin/css/main.css and admin/css/wp-ultimakit-admin.css. 153 * FIXED: Admin UI — modal title text was violet (#8b5cf6) on an indigo header background, producing near-zero contrast. Changed to white (#ffffff) in both CSS files. 154 * FIXED: Admin UI — "Get Pro" nav button and its :last-child:hover sibling had indigo text (#6366f1) on a violet background (#8b5cf6), and violet text (#8b5cf6) on an indigo hover background — both fail WCAG contrast. Changed all button text to #ffffff. 155 * FIXED: Admin UI — header "Get Pro" button (.header-actions .btn-primary) had indigo text on a violet background. Changed text color to #ffffff. 156 * FIXED: Admin UI — sidebar-header border-bottom and sidebar-categories border-top were set to #f8fafc (same as the white sidebar background), making them invisible. Changed to #e2e8f0. 157 * FIXED: Admin UI — .ultimakit-btn:hover had no visual change (background stayed #6366f1, identical to the default state). Changed hover background to #4f46e5 for a clear pressed-state feedback. 158 * IMPROVED: Admin UI — replaced outdated silver (#C0C0C0) on module card borders, nav-tab borders, and global .btn-secondary with modern slate-grey (#e2e8f0) across both CSS files. 159 * IMPROVED: Admin UI — .settings-actions .btn-secondary changed from Bootstrap grey (#6c757d) to an outline-indigo style (transparent background, #6366f1 border and text) for palette consistency. 160 * NEW: Code Snippet module added to the "Custom Code" category. Supports PHP, JavaScript, and CSS snippets with per-snippet title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle. Snippets are stored in a dedicated database table and managed via a full admin page (UltimaKit → Code Snippets) with add/edit form, search, type-tab filters, inline toggle, and delete. 161 162 **[GF] Form Analytics** 163 164 * FIXED: Dead AJAX action registrations removed (get_form_statistics, gf_analytics_clear_data) — the corresponding handler methods did not exist, causing PHP notices on every admin page load. 165 * FIXED: get_average_completion_time() was querying $.time_spent from all blur events (per-field focus duration in ms) instead of $.completion_time stored in submission events, producing wildly incorrect averages. 166 * FIXED: Submission Rate percentage always showed 100% — count($this->get_total_submissions()) returned 3 (the number of array keys) rather than the actual submission count. Now correctly reads $data['count']. 167 * FIXED: CSV export crashed with undefined index errors — $row['device_info'] and $row['meta_data'] columns do not exist in the DB schema. Export now decodes the event_data JSON column instead. 168 * FIXED: $field_label was referenced before assignment, causing an undefined variable notice. Initialised to '' before the conditional block. 169 * FIXED: JS front-end — gform_confirmation_loaded AJAX handler was double-counting every submission alongside the PHP gform_after_submission hook. Handler removed; PHP hook is the authoritative submission tracker. 170 * FIXED: JS front-end — session cookie not being set, so PHP track_submission() read a different session ID than the JS trackEvent() calls. Cookie is now written immediately on page load. 171 * FIXED: JS front-end — gform_field_validation_error is not a real Gravity Forms JS event and was silently swallowed. Removed. 172 * FIXED: JS front-end — form abandonment used a single shared boolean (formStarted = false); switching to an object keyed by form ID so multi-form pages track abandonment independently. 173 * IMPROVED: get_user_location() is now only called for view, submission, and abandon events instead of every field interaction, reducing IP geolocation overhead significantly. 174 * IMPROVED: Empty state messages added for field performance table, form abandonment table, and device stats section. 175 * IMPROVED: Admin dashboard CSS modernised — flex controls bar, 3-column metrics grid, card headers with accent border, consistent spacing. 176 177 **Simple Notification Bar** 178 179 * FIXED: Bar position CSS property output without esc_attr(), allowing unescaped values in inline style. 180 * FIXED: Admin-bar CSS selector was .admin-bar body.has-notification-bar (impossible — .admin-bar is on body, not a parent). Corrected to body.admin-bar.has-notification-bar in both the standard block and the @media (max-width: 782px) block. 181 * FIXED: JS admin-bar top offset calculation ignored config.positionOffset, making the bar overlap the admin bar when a position offset was set. 182 * FIXED: console.error() left in production initialize() function removed. 183 * FIXED: button element in the allowed HTML list had href and target attributes which are invalid on buttons. Replaced with type attribute. 184 * FIXED: JS parseInt calls lacked radix 10 argument. NaN guard conditions used !== undefined instead of !isNaN(), which did not correctly detect missing min/max attributes. 185 * IMPROVED: Settings UI migrated from a modal/popup to a dedicated full-page admin screen (UltimaKit → Notification Bar), giving each setting group its own clearly labelled section. 186 * IMPROVED: Notification message field upgraded from a plain textarea to wp_editor() (TinyMCE + Quicktags), allowing rich text editing with proper HTML formatting. 187 * IMPROVED: Settings page layout uses full-width col-12 blocks — one block each for Notification Message, Style, Position Settings, Display Settings, Reopen Button Settings, and Device Settings. 188 * FIXED: Save handler called $this->setModuleSettings() which delegates to $this->helper->ultimakit_update_module_setting(). Module classes do not call parent::__construct(), so $this->helper was always null, causing a fatal error. Handler now calls $this->ultimakit_update_module_setting() directly (inherited from UltimaKit_Helpers via the class hierarchy). 204 * FIXED: Admin UI — sidebar icon color live preview was reflecting the admin bar icon color due to a wrong DOM selector. 205 * FIXED: Admin UI — color pickers were double-initialized, causing picker UI conflicts. 206 * FIXED: Admin UI — sidebar width value now sanitized with absint() before CSS output to prevent potential CSS injection. 207 * IMPROVED: Admin UI color scheme updated to match PluginStack brand palette — replaced Bootstrap purple with brand indigo (#6366f1), removed gold/yellow accent in favour of violet (#8b5cf6), and standardised backgrounds to #f8fafc. 208 * FIXED: Admin UI — modal title text was near-zero contrast. Changed to white (#ffffff). 209 * FIXED: Admin UI — "Get Pro" button text colors failed WCAG contrast checks. Changed all button text to #ffffff. 210 * FIXED: Admin UI — sidebar border colors were invisible (same as background). Changed to #e2e8f0. 211 * FIXED: Admin UI — button hover state had no visual change. Changed hover to #4f46e5. 212 * IMPROVED: Admin UI — replaced outdated silver on borders and nav-tabs with modern slate-grey (#e2e8f0). 213 * IMPROVED: Admin UI — .settings-actions .btn-secondary changed to outline-indigo style for palette consistency. 214 215 **[GF] Form Analytics (Pro)** 216 217 * FIXED: Dead AJAX action registrations removed — handler methods did not exist, causing PHP notices on every admin page load. 218 * FIXED: get_average_completion_time() was querying per-field blur events instead of submission completion_time, producing incorrect averages. 219 * FIXED: Submission Rate always showed 100% — count() returned the number of array keys rather than the actual submission count. 220 * FIXED: CSV export crashed with undefined index errors — export now decodes event_data JSON column instead of non-existent DB columns. 221 * FIXED: $field_label referenced before assignment. Initialized to '' before the conditional block. 222 * FIXED: JS — gform_confirmation_loaded was double-counting submissions alongside the PHP hook. Handler removed; PHP hook is now authoritative. 223 * FIXED: JS — session cookie not being set, causing PHP and JS to read different session IDs. 224 * FIXED: JS — gform_field_validation_error is not a real Gravity Forms JS event. Removed. 225 * FIXED: JS — form abandonment used a single shared boolean; switched to an object keyed by form ID for multi-form pages. 226 * IMPROVED: get_user_location() now called only for view, submission, and abandon events — not every field interaction. 227 * IMPROVED: Empty state messages added for field performance table, abandonment table, and device stats section. 228 229 **Simple Notification Bar (Pro)** 230 231 * IMPROVED: Settings UI migrated from modal/popup to a dedicated full-page admin screen (UltimaKit → Notification Bar). 232 * IMPROVED: Notification message field upgraded from plain textarea to wp_editor() (TinyMCE + Quicktags). 233 * FIXED: Bar position CSS output without esc_attr(), allowing unescaped values in inline style. 234 * FIXED: Admin-bar CSS selector was incorrect. Corrected to body.admin-bar.has-notification-bar. 235 * FIXED: JS admin-bar top offset calculation ignored positionOffset, causing bar overlap with admin bar. 236 * FIXED: Save handler caused fatal error because $this->helper was always null. Handler now calls inherited method directly. 189 237 190 238 = 2.2.0 = … … 202 250 203 251 * NEW: Added "Plugin Replacer" guide to settings. 204 * IMPROVED: Duplicate Post functionalitynow supports Custom Post Types (thanks @jasD).252 * IMPROVED: Duplicate Post now supports Custom Post Types (thanks @jasD). 205 253 * FIXED: Minor CSS conflict with Admin Bar on mobile. 206 254 * SECURITY: Hardened SVG upload sanitization. … … 209 257 = 1.8.5 - 02.06.2025 = 210 258 211 New Free Utilities: 212 213 * Add Featured Image Column. 214 * Change Login URL (Hide /wp-admin). 215 * Disallow Directory Listing (Security). 216 * Force SSL & Strong Passwords. 217 218 New Pro Features: 219 220 * Ban Emails & Blacklist Usernames. 221 * Multiple User Roles support. 222 259 New Free Modules: Featured Image Column, Change Login URL (Hide /wp-admin), Disallow Directory Listing, Force SSL & Strong Passwords. 260 New Pro Features: Ban Emails & Blacklist Usernames, Multiple User Roles support. 223 261 UI Revamp: Complete redesign of the admin interface. 224 262 … … 226 264 227 265 * Security Suite Added: Disallow Bad Requests, Lock Site URL, Password Protection. 228 * New Translations: Added support for 8 new languages.266 * New Translations: Support for 8 new languages. 229 267 230 268 == Upgrade Notice == 231 269 232 = 2.2.0 = 233 Upgrade for additional Gravity Forms Pro modules and performance improvements. 234 235 = 2.0.1 = 236 Recommended update: includes security hardening for SVG uploads and a Freemius SDK update. 270 = 2.3.0 = 271 Major update: adds Code Snippets Manager, fixes Change Login URL for all edge cases, and a full admin UI refresh to match the PluginStack brand. -
ultimakit-for-wp/trunk/README.txt
r3474620 r3474624 2 2 Contributors: ankitmaru, siapanchal 3 3 Donate link: https://pluginstack.dev/ 4 Tags: admin tools, duplicate post, disable gutenberg, security, performance4 Tags: admin, security, performance, duplicate post, optimization 5 5 Requires at least: 5.6 6 6 Tested up to: 6.8 … … 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html 11 11 12 Replace 50+ single-purpose plugins with one lightweight toolkit. Duplicate Post, SVG Upload, Disable Gutenberg, Login Security, and more — all in one place.12 Replace 50+ single-purpose plugins with one modular toolkit. Admin tools, security hardening, performance optimization, duplicate post, code snippets & more. 13 13 14 14 == Description == 15 15 16 Is your WordPress site weighed down by too many single-purpose plugins? 17 18 **UltimaKit** is the modular WordPress plugin toolkit that replaces 50+ common plugins with one clean, performance-optimized solution. Enable only the modules you need — if a module is off, its code doesn't run. 19 20 = Plugins You Can Uninstall = 21 22 By installing UltimaKit, you can safely remove these popular plugins and reduce your plugin count: 16 **UltimaKit** is a modular WordPress toolkit that replaces 50+ single-purpose plugins with a single, lightweight plugin. Enable only the modules you need — disabled modules run zero code, so your site stays fast no matter how many features you unlock. 17 18 **30+ free modules. Zero performance bloat.** 19 20 Whether you're a freelancer managing client sites, an agency needing white-label tools, or a site owner tired of juggling 20 plugins — UltimaKit gives you everything in one clean dashboard. 21 22 = What Users Are Saying = 23 24 *"Finally a plugin that does everything without slowing my site down. Replaced 12 plugins in one go."* 25 26 *"The modular approach is genius — I only run what I need. My PageSpeed score jumped 8 points after switching."* 27 28 *"Perfect for client sites. White labeling is flawless and the agency tools save me hours every week."* 29 30 = Plugins You Can Uninstall Today = 31 32 Switch to UltimaKit and safely remove all of these: 23 33 24 34 * **Yoast Duplicate Post** → UltimaKit's Duplicate Pages & Posts … … 26 36 * **Disable Gutenberg** → UltimaKit's Gutenberg Manager 27 37 * **WPS Hide Login** → UltimaKit's Change Login URL 28 * **Limit Login Attempts ** → UltimaKit's Login Security38 * **Limit Login Attempts Reloaded** → UltimaKit's Login Security 29 39 * **Redirection** → UltimaKit's 301 Redirect Manager 30 * **Cookie Notice ** → UltimaKit's GDPR ComplianceTool31 * **Simple Custom CSS /JS** → UltimaKit's Code Manager32 * ** Maintenance Mode** → UltimaKit's Maintenance Mode40 * **Cookie Notice / GDPR Cookie Compliance** → UltimaKit's GDPR Tool 41 * **Simple Custom CSS and JS** → UltimaKit's Code Manager 42 * **WP Maintenance Mode** → UltimaKit's Maintenance Mode 33 43 * **Post Types Order** → UltimaKit's Drag & Drop Sort Order 34 35 = Top Free Features = 36 37 The most popular tools included in the free version: 38 39 * **Duplicate Posts & Pages** — Clone any post or page with a single click 40 * **SVG Upload Support** — Safely upload SVG logos and icons to the Media Library 41 * **Disable Gutenberg** — Revert to the Classic Editor for specific post types or the entire site 42 * **Hide Admin Notices** — Move annoying plugin banners out of your dashboard to a dedicated panel 43 * **Drag & Drop Order** — Reorder Posts, Pages, and Custom Post Types with a simple drag 44 * **Login Customizer** — Change the default /wp-admin login URL and replace the WordPress logo 45 46 = Complete Free Feature List = 47 48 **Content & Management** 49 50 * Duplicate Pages & Posts — Clone content instantly 51 * Drag & Drop Order — Custom sorting for posts and pages 52 * SVG Upload — Enable safe SVG file uploads 53 * Auto-Generate Slugs — Create SEO-friendly slugs automatically 54 * Featured Image Column — See thumbnails directly in the admin list view 55 * ID Column — Display Post/Page IDs in the admin table 56 * Clean Up Admin Bar — Remove "Howdy Admin," WP Logo, and other clutter 57 * Open External Links in New Tab — Automatically add target="_blank" 44 * **Code Snippets** → UltimaKit's Code Snippets Manager 45 * **Query Strings Remover** → UltimaKit's Remove Query Strings 46 * **Heartbeat Control** → UltimaKit's Heartbeat Manager 47 * **Disable Emojis** → UltimaKit's Disable Emojis & Embeds 48 49 = Most Popular Free Modules = 50 51 * **Duplicate Posts & Pages** — One-click cloning for posts, pages, and custom post types 52 * **SVG Upload** — Safely upload SVG logos and icons to the Media Library 53 * **Disable Gutenberg** — Revert to the Classic Editor for specific post types or the whole site 54 * **Hide Admin Notices** — Move plugin banners out of your dashboard into a dedicated panel 55 * **Change Login URL** — Secure your /wp-admin from bots by customizing the login URL 56 * **Drag & Drop Post Order** — Reorder Posts, Pages, and CPTs visually 57 * **Code Snippets Manager** — Add PHP, JavaScript, and CSS snippets without editing theme files 58 * **Heartbeat Control** — Reduce server load caused by the WordPress Heartbeat API 59 * **Disable XML-RPC** — Block the most common DDoS and brute-force attack vector 60 * **Login Security** — Auto-lock IPs after repeated failed login attempts 61 62 = All Free Features = 63 64 **Content & Post Management** 65 66 * Duplicate Pages & Posts — Clone any content with a single click, including custom post types 67 * Drag & Drop Post Order — Custom sort order for posts, pages, and CPTs 68 * SVG Upload — Enable safe, sanitized SVG file uploads for all or specific roles 69 * Auto-Generate Slugs — Create clean, SEO-friendly URL slugs automatically 70 * Featured Image Column — View post thumbnails directly in the admin list table 71 * Post/Page ID Column — Show object IDs in the admin list for faster debugging 72 * Open External Links in New Tab — Auto-add target="_blank" to outbound links 73 74 **Admin Interface & UX** 75 76 * Hide Admin Notices — Move plugin notices to a collapsible panel in the admin bar 77 * Clean Up Admin Bar — Remove "Howdy Admin," WP Logo, and unwanted admin bar clutter 78 * Custom Admin Footer — White-label the dashboard footer for clients 79 * Login Page Styler — Remove login error hints and animated shake effects 58 80 59 81 **Security & Hardening** 60 82 61 * Change Login URL — Hide your /wp-admin from bots and scrapers 62 * Limit Login Attempts — Block brute-force attacks with automatic IP lockout 63 * Disable XML-RPC — Prevent a common DDoS and brute-force attack vector 64 * Hide WordPress Version — Obfuscate version number to prevent targeted exploits 65 * Block "Admin" Username — Prevent creation of the most common insecure username 66 * Disable File Editing — Stop hackers from editing theme/plugin files via the dashboard 67 * Auto-Logout Inactive Users — Session security for idle admins 68 * Disallow Bad Requests — Block malicious strings and base64 injections 69 70 **Optimization & De-Bloat** 71 72 * Disable Gutenberg — Revert to Classic Editor where needed 73 * Disable Emojis & Embeds — Remove extra JavaScript files to speed up the frontend 83 * Change Login URL — Rename /wp-login.php to a custom slug to block automated attacks 84 * Limit Login Attempts — Lock out IPs after configurable failed login attempts 85 * Disable XML-RPC — Eliminate a major attack surface for brute-force and DDoS 86 * Hide WordPress Version — Prevent targeted version-based exploits 87 * Block "Admin" Username — Refuse creation of the most commonly targeted username 88 * Disable File Editing — Prevent theme/plugin file edits from the WordPress dashboard 89 * Auto-Logout Inactive Users — Automatically end idle admin sessions 90 * Disallow Bad Requests — Filter malicious URL strings and base64 injection attempts 91 * Disallow Directory Listing — Hide folder contents from public view 92 93 **Performance & Optimization** 94 95 * Disable Gutenberg — Remove block editor overhead where it's not needed 96 * Disable Emojis & Embeds — Strip unnecessary JavaScript from every frontend page load 74 97 * Disable Comments — Turn off comments globally or per post type 75 * Disable RSS Feeds — Stop content scrapers76 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce speed issue77 * Heartbeat Control — Reduce server resource usage from the WP Heartbeat API78 * Remove Query Strings — Improve GTmetrix and PageSpeed Insightsscores98 * Disable RSS Feeds — Block content scrapers and save server resources 99 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce performance bottleneck 100 * Heartbeat Control — Throttle the WP Heartbeat API to reduce server CPU usage 101 * Remove Query Strings — Improve GTmetrix, PageSpeed Insights, and Pingdom scores 79 102 80 103 **Custom Code & Design** 81 104 82 * Header/Footer Code — Add Google Analytics, Facebook Pixel, or any custom script 83 * Custom CSS/JS — Add style tweaks without editing theme files 84 * Custom Admin Footer — White-label your dashboard for clients 85 * Login Page Styler — Hide login errors and shake animations 86 87 = Pro Features (Agency Power) = 88 89 Unlock the full site management suite for agencies and developers: 90 91 * **SEO Title & Meta Editor** — A lightweight alternative to heavy SEO plugins 92 * **Custom Post Types (CPT) UI** — Create CPTs and Taxonomies without writing code 93 * **Admin Activity Logger** — Track every change made on your site with a full audit log 94 * **Maintenance Mode** — Professional "Coming Soon" pages with a countdown timer 95 * **White Labeling** — Rename "UltimaKit" to your own agency brand 96 * **Advanced WooCommerce Tools** — Disable breadcrumbs, custom "Add to Cart" text, and more 97 * **Gravity Forms Modules** — Advanced form management and field utilities 98 * **Export/Import Settings** — Move your configuration to client sites instantly 105 * Code Snippets Manager — Add and manage PHP, JS, and CSS snippets with location control (head, footer, init, before/after content) 106 * Header/Footer Code — Insert Google Analytics, Meta Pixel, GTM, or any tracking snippet 107 * Custom CSS/JS — Add site-wide style and script tweaks without editing theme files 108 * GDPR Compliance Tool — Display a cookie consent notice to meet legal requirements 109 110 = Pro Features (Agency Power Tools) = 111 112 * **SEO Title & Meta Editor** — Lightweight meta management without a heavy SEO plugin 113 * **Custom Post Types (CPT) UI** — Register CPTs and Taxonomies visually, no code required 114 * **Admin Activity Logger** — Full audit log of every change made on the site 115 * **Maintenance Mode** — Professional coming-soon pages with countdown timer 116 * **White Labeling** — Rename "UltimaKit" to your own agency brand in the dashboard 117 * **Advanced WooCommerce Tools** — Breadcrumb control, custom "Add to Cart" text, and more 118 * **Gravity Forms Modules** — Advanced analytics, form management, and field utilities 119 * **Export/Import Settings** — Move your entire UltimaKit configuration to client sites instantly 120 * **301 Redirect Manager** — Manage all redirects from a central dashboard 121 * **Ban Emails & Blacklist Usernames** — Prevent registrations from specific addresses or names 122 * **Multiple User Roles** — Assign more than one role to a user account 99 123 100 124 [View All Pro Features & Pricing →](https://pluginstack.dev/plugins/ultimakit-for-wp) 101 [All in One Google Sheet Integration with multiple plugins →](https://pluginstack.dev/plugins/syncsheets-for-wordpress/) 102 103 = What's Next? = 104 105 We are actively building features based on community feedback. [Submit a feature request →](https://pluginstack.dev/plugins/ultimakit-for-wp) 125 [SyncSheets: Google Sheets Integration for WordPress →](https://pluginstack.dev/plugins/syncsheets-for-wordpress/) 126 127 = Why UltimaKit Instead of Many Separate Plugins? = 128 129 Every plugin you install adds HTTP requests, database queries, admin menu overhead, and potential security vulnerabilities. Running 15 separate plugins to do what UltimaKit does in one means 15× the update maintenance, 15× the compatibility risk, and a slower dashboard. 130 131 UltimaKit uses **strict module isolation**: code for a disabled module never runs. Unlike omnibus plugins that load everything at once, UltimaKit's architecture means you pay zero performance cost for features you don't use. 132 133 = Part of the PluginStack Bundle = 134 135 UltimaKit is part of the [PluginStack](https://pluginstack.dev/) ecosystem — a growing suite of focused WordPress tools built for developers and agencies. 106 136 107 137 **Links:** [Website](https://pluginstack.dev/plugins/ultimakit-for-wp) | [Upgrade to Pro](https://pluginstack.dev/plugins/ultimakit-for-wp) | [PluginStack Bundle](https://pluginstack.dev/) … … 112 142 2. Activate the plugin through the **Plugins** menu in WordPress. 113 143 3. Go to **UltimaKit** in the admin sidebar. 114 4. Enable only the modules you need to keep your site fast and lightweight.144 4. Enable only the modules you need — everything else stays dormant and adds zero overhead. 115 145 116 146 == Frequently Asked Questions == 117 147 118 = Why should I use UltimaKit instead of installing separate plugins? = 119 120 Every plugin you install adds HTTP requests, database queries, and potential security risks. UltimaKit lets you replace 20+ single-purpose plugins (like Duplicate Post, SVG Support, Disable Gutenberg) with one clean, optimized codebase. Less plugins means a faster, more secure site. 121 122 = Does enabling many modules slow down my site? = 123 124 No. UltimaKit uses a strict modular architecture — if you do not enable a module, its code does not run at all. It is significantly more efficient than running 10–20 separate plugins. 125 126 = Can I use this for client sites? = 127 128 Yes! The **White Label** and **Clean Admin** Pro features make it perfect for agencies. You can rename UltimaKit to your own brand and hand over a clean, professional dashboard to clients. 148 = Does UltimaKit slow down my WordPress site? = 149 150 No. UltimaKit uses strict module isolation — if a module is not enabled, its code does not load at all. Running UltimaKit with 10 active modules is significantly more efficient than running 10 separate single-purpose plugins, because there is no redundant bootstrapping, duplicate asset loading, or plugin framework overhead. 151 152 = Why should I use UltimaKit instead of separate plugins like Duplicate Post, SVG Support, or WPS Hide Login? = 153 154 Each plugin you install adds its own database queries, admin hooks, asset files, and update maintenance. UltimaKit replaces 50+ of these single-purpose plugins with one optimized codebase. You get fewer updates to manage, fewer compatibility conflicts, and a lighter, faster WordPress installation. 155 156 = How many modules does UltimaKit include? = 157 158 The free version includes 30+ fully functional modules across content management, security hardening, performance optimization, and custom code. The Pro version adds advanced agency and developer tools including CPT UI, admin activity logging, maintenance mode, white labeling, Gravity Forms modules, and more. 159 160 = Can I use UltimaKit on client sites? = 161 162 Yes. The **White Label** Pro feature lets you rebrand the entire UltimaKit dashboard with your own agency name and logo. The **Export/Import Settings** module lets you clone your configuration to new client sites in seconds. It's built with agencies in mind. 129 163 130 164 = Is it compatible with WooCommerce? = 131 165 132 Yes. There are dedicated WooCommerce optimization modules in both Free and Pro tiers, including disabling cart fragments (the #1 WooCommerce speed issue), hiding out-of-stock products, and customizing the checkout experience. 133 134 = Is the free version genuinely useful or just a teaser? = 135 136 The free version includes 30+ real, fully functional modules covering content management, security hardening, and performance optimization. The Pro tier adds advanced tools for agencies and power users. 166 Yes. UltimaKit includes WooCommerce-specific optimization modules in both Free and Pro tiers — including disabling cart fragments (the most common WooCommerce performance issue), hiding out-of-stock products, and customizing checkout behavior. 167 168 = Is UltimaKit compatible with popular page builders? = 169 170 Yes. UltimaKit works alongside Elementor, Beaver Builder, Divi, Bricks, and other major page builders. The Disable Gutenberg module can be set per post type so you can use the block editor on some content types and a page builder on others. 171 172 = Is the free version actually useful, or is it just a teaser for Pro? = 173 174 The free version includes 30+ real, fully functional modules. You can manage content, harden your login page, block XML-RPC attacks, disable Gutenberg, remove query strings, add code snippets, and much more — all without spending a cent. Pro adds advanced agency tools and deeper customization, but the free version is genuinely complete. 175 176 = Does UltimaKit work with multisite? = 177 178 UltimaKit can be activated on individual sites within a multisite network. Network-wide activation is not officially supported, but many users run it on each sub-site without issues. 179 180 = What happens to my settings if I deactivate the plugin? = 181 182 Your settings are preserved in the database when you deactivate UltimaKit. Reactivating the plugin restores your previous configuration. If you want to fully remove the plugin and its data, you can delete it from the Plugins screen. 183 184 = Does UltimaKit include a code snippets manager? = 185 186 Yes. Version 2.3.0 added a dedicated Code Snippets module supporting PHP, JavaScript, and CSS. Each snippet has its own title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle — managed from a full admin page at UltimaKit → Code Snippets. 137 187 138 188 == Screenshots == 139 189 140 1. The UltimaKit module dashboard — enable only what you need. 190 1. The UltimaKit module dashboard — enable only what you need, keep everything else dormant. 191 2. Security modules — change login URL, limit login attempts, disable XML-RPC, and more. 192 3. Performance optimization — disable Gutenberg, remove query strings, control Heartbeat API. 193 4. Code Snippets manager — add and manage PHP, JS, and CSS with location and priority control. 194 5. Pro features — CPT UI, admin activity logger, white labeling, and WooCommerce tools. 141 195 142 196 == Changelog == … … 144 198 = 2.3.0 = 145 199 146 * FIXED: Change Login URL — login form was still posting to /wp-login.php instead of the custom slug, causing login to fail. Added site_url filter to correctly rewrite the form's action attribute. 200 * NEW: Code Snippets module added to "Custom Code" category. Supports PHP, JavaScript, and CSS snippets with per-snippet title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle. Snippets are stored in a dedicated database table and managed via a full admin page (UltimaKit → Code Snippets) with add/edit form, search, type-tab filters, inline toggle, and delete. 201 * FIXED: Change Login URL — login form was posting to /wp-login.php instead of the custom slug. Added site_url filter to correctly rewrite the form action attribute. 147 202 * FIXED: Change Login URL — removed early wp_redirect() call from class constructor that ran before WordPress was fully initialized, which could cause headers-already-sent errors. 148 203 * FIXED: Change Login URL — removed redundant admin_init hook for blocking /wp-login.php (the init hook at priority 1 already handles this correctly). 149 * FIXED: Admin UI — sidebar icon color live preview was always reflecting the admin bar icon color due to a wrong DOM selector (#adminbar_icons_color instead of #sidebar_icon_color). 150 * FIXED: Admin UI — color pickers were double-initialized (generic .wpColorPicker() call conflicted with individual per-picker initialization), causing picker UI conflicts. 151 * FIXED: Admin UI — sidebar width value now sanitized with absint() before CSS output to prevent potential CSS injection via curly brace characters. 152 * IMPROVED: Admin UI color scheme updated to match pluginstack.dev brand palette — replaced Bootstrap purple (#6610F2) with brand indigo (#6366f1), removed gold/yellow accent (#FFD700) in favour of violet (#8b5cf6), consolidated scattered blue values (#3498DB, #007BFF) into brand indigo, and standardised light backgrounds to #f8fafc across admin/css/main.css and admin/css/wp-ultimakit-admin.css. 153 * FIXED: Admin UI — modal title text was violet (#8b5cf6) on an indigo header background, producing near-zero contrast. Changed to white (#ffffff) in both CSS files. 154 * FIXED: Admin UI — "Get Pro" nav button and its :last-child:hover sibling had indigo text (#6366f1) on a violet background (#8b5cf6), and violet text (#8b5cf6) on an indigo hover background — both fail WCAG contrast. Changed all button text to #ffffff. 155 * FIXED: Admin UI — header "Get Pro" button (.header-actions .btn-primary) had indigo text on a violet background. Changed text color to #ffffff. 156 * FIXED: Admin UI — sidebar-header border-bottom and sidebar-categories border-top were set to #f8fafc (same as the white sidebar background), making them invisible. Changed to #e2e8f0. 157 * FIXED: Admin UI — .ultimakit-btn:hover had no visual change (background stayed #6366f1, identical to the default state). Changed hover background to #4f46e5 for a clear pressed-state feedback. 158 * IMPROVED: Admin UI — replaced outdated silver (#C0C0C0) on module card borders, nav-tab borders, and global .btn-secondary with modern slate-grey (#e2e8f0) across both CSS files. 159 * IMPROVED: Admin UI — .settings-actions .btn-secondary changed from Bootstrap grey (#6c757d) to an outline-indigo style (transparent background, #6366f1 border and text) for palette consistency. 160 * NEW: Code Snippet module added to the "Custom Code" category. Supports PHP, JavaScript, and CSS snippets with per-snippet title, type, location (Frontend Head/Footer, Admin Head/Footer, On Init, Before/After Content), priority, description, and active toggle. Snippets are stored in a dedicated database table and managed via a full admin page (UltimaKit → Code Snippets) with add/edit form, search, type-tab filters, inline toggle, and delete. 161 162 **[GF] Form Analytics** 163 164 * FIXED: Dead AJAX action registrations removed (get_form_statistics, gf_analytics_clear_data) — the corresponding handler methods did not exist, causing PHP notices on every admin page load. 165 * FIXED: get_average_completion_time() was querying $.time_spent from all blur events (per-field focus duration in ms) instead of $.completion_time stored in submission events, producing wildly incorrect averages. 166 * FIXED: Submission Rate percentage always showed 100% — count($this->get_total_submissions()) returned 3 (the number of array keys) rather than the actual submission count. Now correctly reads $data['count']. 167 * FIXED: CSV export crashed with undefined index errors — $row['device_info'] and $row['meta_data'] columns do not exist in the DB schema. Export now decodes the event_data JSON column instead. 168 * FIXED: $field_label was referenced before assignment, causing an undefined variable notice. Initialised to '' before the conditional block. 169 * FIXED: JS front-end — gform_confirmation_loaded AJAX handler was double-counting every submission alongside the PHP gform_after_submission hook. Handler removed; PHP hook is the authoritative submission tracker. 170 * FIXED: JS front-end — session cookie not being set, so PHP track_submission() read a different session ID than the JS trackEvent() calls. Cookie is now written immediately on page load. 171 * FIXED: JS front-end — gform_field_validation_error is not a real Gravity Forms JS event and was silently swallowed. Removed. 172 * FIXED: JS front-end — form abandonment used a single shared boolean (formStarted = false); switching to an object keyed by form ID so multi-form pages track abandonment independently. 173 * IMPROVED: get_user_location() is now only called for view, submission, and abandon events instead of every field interaction, reducing IP geolocation overhead significantly. 174 * IMPROVED: Empty state messages added for field performance table, form abandonment table, and device stats section. 175 * IMPROVED: Admin dashboard CSS modernised — flex controls bar, 3-column metrics grid, card headers with accent border, consistent spacing. 176 177 **Simple Notification Bar** 178 179 * FIXED: Bar position CSS property output without esc_attr(), allowing unescaped values in inline style. 180 * FIXED: Admin-bar CSS selector was .admin-bar body.has-notification-bar (impossible — .admin-bar is on body, not a parent). Corrected to body.admin-bar.has-notification-bar in both the standard block and the @media (max-width: 782px) block. 181 * FIXED: JS admin-bar top offset calculation ignored config.positionOffset, making the bar overlap the admin bar when a position offset was set. 182 * FIXED: console.error() left in production initialize() function removed. 183 * FIXED: button element in the allowed HTML list had href and target attributes which are invalid on buttons. Replaced with type attribute. 184 * FIXED: JS parseInt calls lacked radix 10 argument. NaN guard conditions used !== undefined instead of !isNaN(), which did not correctly detect missing min/max attributes. 185 * IMPROVED: Settings UI migrated from a modal/popup to a dedicated full-page admin screen (UltimaKit → Notification Bar), giving each setting group its own clearly labelled section. 186 * IMPROVED: Notification message field upgraded from a plain textarea to wp_editor() (TinyMCE + Quicktags), allowing rich text editing with proper HTML formatting. 187 * IMPROVED: Settings page layout uses full-width col-12 blocks — one block each for Notification Message, Style, Position Settings, Display Settings, Reopen Button Settings, and Device Settings. 188 * FIXED: Save handler called $this->setModuleSettings() which delegates to $this->helper->ultimakit_update_module_setting(). Module classes do not call parent::__construct(), so $this->helper was always null, causing a fatal error. Handler now calls $this->ultimakit_update_module_setting() directly (inherited from UltimaKit_Helpers via the class hierarchy). 204 * FIXED: Admin UI — sidebar icon color live preview was reflecting the admin bar icon color due to a wrong DOM selector. 205 * FIXED: Admin UI — color pickers were double-initialized, causing picker UI conflicts. 206 * FIXED: Admin UI — sidebar width value now sanitized with absint() before CSS output to prevent potential CSS injection. 207 * IMPROVED: Admin UI color scheme updated to match PluginStack brand palette — replaced Bootstrap purple with brand indigo (#6366f1), removed gold/yellow accent in favour of violet (#8b5cf6), and standardised backgrounds to #f8fafc. 208 * FIXED: Admin UI — modal title text was near-zero contrast. Changed to white (#ffffff). 209 * FIXED: Admin UI — "Get Pro" button text colors failed WCAG contrast checks. Changed all button text to #ffffff. 210 * FIXED: Admin UI — sidebar border colors were invisible (same as background). Changed to #e2e8f0. 211 * FIXED: Admin UI — button hover state had no visual change. Changed hover to #4f46e5. 212 * IMPROVED: Admin UI — replaced outdated silver on borders and nav-tabs with modern slate-grey (#e2e8f0). 213 * IMPROVED: Admin UI — .settings-actions .btn-secondary changed to outline-indigo style for palette consistency. 214 215 **[GF] Form Analytics (Pro)** 216 217 * FIXED: Dead AJAX action registrations removed — handler methods did not exist, causing PHP notices on every admin page load. 218 * FIXED: get_average_completion_time() was querying per-field blur events instead of submission completion_time, producing incorrect averages. 219 * FIXED: Submission Rate always showed 100% — count() returned the number of array keys rather than the actual submission count. 220 * FIXED: CSV export crashed with undefined index errors — export now decodes event_data JSON column instead of non-existent DB columns. 221 * FIXED: $field_label referenced before assignment. Initialized to '' before the conditional block. 222 * FIXED: JS — gform_confirmation_loaded was double-counting submissions alongside the PHP hook. Handler removed; PHP hook is now authoritative. 223 * FIXED: JS — session cookie not being set, causing PHP and JS to read different session IDs. 224 * FIXED: JS — gform_field_validation_error is not a real Gravity Forms JS event. Removed. 225 * FIXED: JS — form abandonment used a single shared boolean; switched to an object keyed by form ID for multi-form pages. 226 * IMPROVED: get_user_location() now called only for view, submission, and abandon events — not every field interaction. 227 * IMPROVED: Empty state messages added for field performance table, abandonment table, and device stats section. 228 229 **Simple Notification Bar (Pro)** 230 231 * IMPROVED: Settings UI migrated from modal/popup to a dedicated full-page admin screen (UltimaKit → Notification Bar). 232 * IMPROVED: Notification message field upgraded from plain textarea to wp_editor() (TinyMCE + Quicktags). 233 * FIXED: Bar position CSS output without esc_attr(), allowing unescaped values in inline style. 234 * FIXED: Admin-bar CSS selector was incorrect. Corrected to body.admin-bar.has-notification-bar. 235 * FIXED: JS admin-bar top offset calculation ignored positionOffset, causing bar overlap with admin bar. 236 * FIXED: Save handler caused fatal error because $this->helper was always null. Handler now calls inherited method directly. 189 237 190 238 = 2.2.0 = … … 202 250 203 251 * NEW: Added "Plugin Replacer" guide to settings. 204 * IMPROVED: Duplicate Post functionalitynow supports Custom Post Types (thanks @jasD).252 * IMPROVED: Duplicate Post now supports Custom Post Types (thanks @jasD). 205 253 * FIXED: Minor CSS conflict with Admin Bar on mobile. 206 254 * SECURITY: Hardened SVG upload sanitization. … … 209 257 = 1.8.5 - 02.06.2025 = 210 258 211 New Free Utilities: 212 213 * Add Featured Image Column. 214 * Change Login URL (Hide /wp-admin). 215 * Disallow Directory Listing (Security). 216 * Force SSL & Strong Passwords. 217 218 New Pro Features: 219 220 * Ban Emails & Blacklist Usernames. 221 * Multiple User Roles support. 222 259 New Free Modules: Featured Image Column, Change Login URL (Hide /wp-admin), Disallow Directory Listing, Force SSL & Strong Passwords. 260 New Pro Features: Ban Emails & Blacklist Usernames, Multiple User Roles support. 223 261 UI Revamp: Complete redesign of the admin interface. 224 262 … … 226 264 227 265 * Security Suite Added: Disallow Bad Requests, Lock Site URL, Password Protection. 228 * New Translations: Added support for 8 new languages.266 * New Translations: Support for 8 new languages. 229 267 230 268 == Upgrade Notice == 231 269 232 = 2.2.0 = 233 Upgrade for additional Gravity Forms Pro modules and performance improvements. 234 235 = 2.0.1 = 236 Recommended update: includes security hardening for SVG uploads and a Freemius SDK update. 270 = 2.3.0 = 271 Major update: adds Code Snippets Manager, fixes Change Login URL for all edge cases, and a full admin UI refresh to match the PluginStack brand.
Note: See TracChangeset
for help on using the changeset viewer.