Plugin Directory

Changeset 3474624


Ignore:
Timestamp:
03/04/2026 01:52:21 PM (3 weeks ago)
Author:
ankitmaru
Message:

Readme file updated.

Location:
ultimakit-for-wp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ultimakit-for-wp/tags/2.3.0/README.txt

    r3474620 r3474624  
    11=== UltimaKit – WordPress Admin Tools, Security & Performance Optimizer ===
    2 Contributors: ankitmaru
     2Contributors: ankitmaru, siapanchal
    33Donate link: https://pluginstack.dev/
    4 Tags: admin tools, duplicate post, disable gutenberg, security, performance
     4Tags: admin, security, performance, duplicate post, optimization
    55Requires at least: 5.6
    66Tested up to: 6.8
     
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    12 Replace 50+ single-purpose plugins with one lightweight toolkit. Duplicate Post, SVG Upload, Disable Gutenberg, Login Security, and more — all in one place.
     12Replace 50+ single-purpose plugins with one modular toolkit. Admin tools, security hardening, performance optimization, duplicate post, code snippets & more.
    1313
    1414== Description ==
    1515
    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
     20Whether 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
     32Switch to UltimaKit and safely remove all of these:
    2333
    2434* **Yoast Duplicate Post** → UltimaKit's Duplicate Pages & Posts
     
    2636* **Disable Gutenberg** → UltimaKit's Gutenberg Manager
    2737* **WPS Hide Login** → UltimaKit's Change Login URL
    28 * **Limit Login Attempts** → UltimaKit's Login Security
     38* **Limit Login Attempts Reloaded** → UltimaKit's Login Security
    2939* **Redirection** → UltimaKit's 301 Redirect Manager
    30 * **Cookie Notice** → UltimaKit's GDPR Compliance Tool
    31 * **Simple Custom CSS/JS** → UltimaKit's Code Manager
    32 * **Maintenance Mode** → UltimaKit's Maintenance Mode
     40* **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
    3343* **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
    5880
    5981**Security & Hardening**
    6082
    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
    7497* Disable Comments — Turn off comments globally or per post type
    75 * Disable RSS Feeds — Stop content scrapers
    76 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce speed issue
    77 * Heartbeat Control — Reduce server resource usage from the WP Heartbeat API
    78 * Remove Query Strings — Improve GTmetrix and PageSpeed Insights scores
     98* 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
    79102
    80103**Custom Code & Design**
    81104
    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
    99123
    100124[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
     129Every 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
     131UltimaKit 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
     135UltimaKit is part of the [PluginStack](https://pluginstack.dev/) ecosystem — a growing suite of focused WordPress tools built for developers and agencies.
    106136
    107137**Links:** [Website](https://pluginstack.dev/plugins/ultimakit-for-wp) | [Upgrade to Pro](https://pluginstack.dev/plugins/ultimakit-for-wp) | [PluginStack Bundle](https://pluginstack.dev/)
     
    1121422. Activate the plugin through the **Plugins** menu in WordPress.
    1131433. Go to **UltimaKit** in the admin sidebar.
    114 4. Enable only the modules you need to keep your site fast and lightweight.
     1444. Enable only the modules you need — everything else stays dormant and adds zero overhead.
    115145
    116146== Frequently Asked Questions ==
    117147
    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
     150No. 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
     154Each 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
     158The 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
     162Yes. 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.
    129163
    130164= Is it compatible with WooCommerce? =
    131165
    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.
     166Yes. 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
     170Yes. 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
     174The 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
     178UltimaKit 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
     182Your 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
     186Yes. 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.
    137187
    138188== Screenshots ==
    139189
    140 1. The UltimaKit module dashboard — enable only what you need.
     1901. The UltimaKit module dashboard — enable only what you need, keep everything else dormant.
     1912. Security modules — change login URL, limit login attempts, disable XML-RPC, and more.
     1923. Performance optimization — disable Gutenberg, remove query strings, control Heartbeat API.
     1934. Code Snippets manager — add and manage PHP, JS, and CSS with location and priority control.
     1945. Pro features — CPT UI, admin activity logger, white labeling, and WooCommerce tools.
    141195
    142196== Changelog ==
     
    144198= 2.3.0 =
    145199
    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.
    147202* 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.
    148203* 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.
    189237
    190238= 2.2.0 =
     
    202250
    203251* NEW: Added "Plugin Replacer" guide to settings.
    204 * IMPROVED: Duplicate Post functionality now supports Custom Post Types (thanks @jasD).
     252* IMPROVED: Duplicate Post now supports Custom Post Types (thanks @jasD).
    205253* FIXED: Minor CSS conflict with Admin Bar on mobile.
    206254* SECURITY: Hardened SVG upload sanitization.
     
    209257= 1.8.5 - 02.06.2025 =
    210258
    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 
     259New Free Modules: Featured Image Column, Change Login URL (Hide /wp-admin), Disallow Directory Listing, Force SSL & Strong Passwords.
     260New Pro Features: Ban Emails & Blacklist Usernames, Multiple User Roles support.
    223261UI Revamp: Complete redesign of the admin interface.
    224262
     
    226264
    227265* 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.
    229267
    230268== Upgrade Notice ==
    231269
    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 =
     271Major 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  
    22Contributors: ankitmaru, siapanchal
    33Donate link: https://pluginstack.dev/
    4 Tags: admin tools, duplicate post, disable gutenberg, security, performance
     4Tags: admin, security, performance, duplicate post, optimization
    55Requires at least: 5.6
    66Tested up to: 6.8
     
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1111
    12 Replace 50+ single-purpose plugins with one lightweight toolkit. Duplicate Post, SVG Upload, Disable Gutenberg, Login Security, and more — all in one place.
     12Replace 50+ single-purpose plugins with one modular toolkit. Admin tools, security hardening, performance optimization, duplicate post, code snippets & more.
    1313
    1414== Description ==
    1515
    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
     20Whether 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
     32Switch to UltimaKit and safely remove all of these:
    2333
    2434* **Yoast Duplicate Post** → UltimaKit's Duplicate Pages & Posts
     
    2636* **Disable Gutenberg** → UltimaKit's Gutenberg Manager
    2737* **WPS Hide Login** → UltimaKit's Change Login URL
    28 * **Limit Login Attempts** → UltimaKit's Login Security
     38* **Limit Login Attempts Reloaded** → UltimaKit's Login Security
    2939* **Redirection** → UltimaKit's 301 Redirect Manager
    30 * **Cookie Notice** → UltimaKit's GDPR Compliance Tool
    31 * **Simple Custom CSS/JS** → UltimaKit's Code Manager
    32 * **Maintenance Mode** → UltimaKit's Maintenance Mode
     40* **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
    3343* **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
    5880
    5981**Security & Hardening**
    6082
    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
    7497* Disable Comments — Turn off comments globally or per post type
    75 * Disable RSS Feeds — Stop content scrapers
    76 * Disable Cart Fragments (WooCommerce) — Fix the #1 WooCommerce speed issue
    77 * Heartbeat Control — Reduce server resource usage from the WP Heartbeat API
    78 * Remove Query Strings — Improve GTmetrix and PageSpeed Insights scores
     98* 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
    79102
    80103**Custom Code & Design**
    81104
    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
    99123
    100124[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
     129Every 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
     131UltimaKit 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
     135UltimaKit is part of the [PluginStack](https://pluginstack.dev/) ecosystem — a growing suite of focused WordPress tools built for developers and agencies.
    106136
    107137**Links:** [Website](https://pluginstack.dev/plugins/ultimakit-for-wp) | [Upgrade to Pro](https://pluginstack.dev/plugins/ultimakit-for-wp) | [PluginStack Bundle](https://pluginstack.dev/)
     
    1121422. Activate the plugin through the **Plugins** menu in WordPress.
    1131433. Go to **UltimaKit** in the admin sidebar.
    114 4. Enable only the modules you need to keep your site fast and lightweight.
     1444. Enable only the modules you need — everything else stays dormant and adds zero overhead.
    115145
    116146== Frequently Asked Questions ==
    117147
    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
     150No. 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
     154Each 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
     158The 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
     162Yes. 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.
    129163
    130164= Is it compatible with WooCommerce? =
    131165
    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.
     166Yes. 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
     170Yes. 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
     174The 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
     178UltimaKit 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
     182Your 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
     186Yes. 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.
    137187
    138188== Screenshots ==
    139189
    140 1. The UltimaKit module dashboard — enable only what you need.
     1901. The UltimaKit module dashboard — enable only what you need, keep everything else dormant.
     1912. Security modules — change login URL, limit login attempts, disable XML-RPC, and more.
     1923. Performance optimization — disable Gutenberg, remove query strings, control Heartbeat API.
     1934. Code Snippets manager — add and manage PHP, JS, and CSS with location and priority control.
     1945. Pro features — CPT UI, admin activity logger, white labeling, and WooCommerce tools.
    141195
    142196== Changelog ==
     
    144198= 2.3.0 =
    145199
    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.
    147202* 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.
    148203* 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.
    189237
    190238= 2.2.0 =
     
    202250
    203251* NEW: Added "Plugin Replacer" guide to settings.
    204 * IMPROVED: Duplicate Post functionality now supports Custom Post Types (thanks @jasD).
     252* IMPROVED: Duplicate Post now supports Custom Post Types (thanks @jasD).
    205253* FIXED: Minor CSS conflict with Admin Bar on mobile.
    206254* SECURITY: Hardened SVG upload sanitization.
     
    209257= 1.8.5 - 02.06.2025 =
    210258
    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 
     259New Free Modules: Featured Image Column, Change Login URL (Hide /wp-admin), Disallow Directory Listing, Force SSL & Strong Passwords.
     260New Pro Features: Ban Emails & Blacklist Usernames, Multiple User Roles support.
    223261UI Revamp: Complete redesign of the admin interface.
    224262
     
    226264
    227265* 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.
    229267
    230268== Upgrade Notice ==
    231269
    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 =
     271Major 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.