uiXpress

uiXpress 1.4.0 Nulled

No permission to download
* Added automatic REST nonce refresh for the main admin app
- New uixpress/v1/rest-nonce endpoint returns a fresh wp_rest nonce for the current session
- lmnFetch proactively refreshes stale nonces and retries once after security token failures
- Background timer and tab visibility checks keep long-lived admin sessions working without a page reload
- REST nonce refresh endpoint requires a matching Origin or Referer host, is rate-limited per user and IP, and returns Cache-Control: no-store

* Admin framework wp-admin redirect safeguard (beta)
- Users with the manage_options capability are never redirected from wp-admin to uix-admin
- The Administrator role and admin users are stripped from redirect settings on save and cannot be selected in settings

* Added Plugin Update Protector
- Optionally retains the previous plugin version after updates for one-click rollback
- Automatically detects immediate fatal errors and restores the known-good version
- Covers manual, automatic, bulk, REST, and ZIP replacement update flows
- Emails the WordPress administrator when an automatic rollback is attempted
- Stores protected copies in private storage outside the public web root

* Improved plugins page search and repository browsing
- Installed plugin searches with no matches now offer to search the same term in the WordPress plugin directory
- Plugin repository opens in the main detail panel instead of a flyout drawer, matching the admin framework layout
- Repository search terms are preserved when opening plugin details and returning to results

* Added faster navigation between modern uiXpress admin pages
- Dashboard, posts, media, users, comments, plugins, settings, Menu Creator, Activity Log, Database Explorer, Role Editor, and Admin Notices can switch without a full page reload
- Page scripts and styles are loaded on demand to keep the initial admin bundle lightweight
- Browser back and forward navigation, page titles, menu highlighting, and post-type context stay synchronized
- Added a subtle page-content transition with reduced-motion support
- Native WordPress screens such as the block editor, Site Editor, and Customizer continue to use full page loads

* Improved PHP performance and memory usage across frontend requests
- Reworked backend bootstrapping so admin, REST, AJAX, and cron services load only in the request contexts that need them
- Reduced the measured uiXpress frontend bootstrap memory by approximately 49%, while loading 77 fewer PHP files and classes
- Deferred WordPress plugin, theme, update, and list-table dependencies until their management features are used
- Reduced logged-in frontend toolbar work by skipping admin-only plugin scans, menus, post types, MIME types, theme settings, and capability payloads
- Activity logger services now load only when activity logging is enabled
- Successful analytics table checks are cached to avoid repeated database schema queries
- Preserved custom login routing, SEO metadata, frontend analytics, collaboration, admin framework routes, REST endpoints, and scheduled cleanup tasks

* Corrected Plugin Performance reporting and rankings
- Plugin rows no longer present the shared PHP process peak as memory owned by each plugin
- The overview reports the page process peak once instead of summing overlapping values
- uiXpress now records direct lifecycle checkpoints for autoloading, app construction, initialization, and asset enqueueing
- Memory diagnostics distinguish retained bootstrap growth, observed process growth, and PHP allocator-reserved memory
- Relative impact rankings now use a weighted share of execution time, attributed database queries, and delivered asset size
- Asset impact includes only queued or printed scripts, styles, and their dependencies instead of every registered asset
- Database queries now belong to one nearest plugin caller, excluding profiler and WordPress dispatch frames
- Query totals report the global post-plugins-loaded observation window instead of summing overlapping plugin counts
- Query fingerprints, source files, and originating hooks are available for more reliable diagnostics

* Reduced database query overhead
- Consolidated migration checks and cached settings reads with blog-scoped multisite isolation
- Reduced the measured warm public uiXpress bootstrap from three database queries to one without a persistent object cache
- Replaced repeated activity and analytics table checks with versioned schema readiness markers
- Batched activity writes in retry-safe chunks and converted analytics aggregation to transactional set-based queries
- Cached analytics settings per request and combined comparison, event, user, and media counters
- Reduced dashboard, user, media, and analytics counter queries while preserving existing response formats
- Added a one-request admin framework bootstrap with automatic fallback to the existing endpoints
- Replaced global object-cache flushes with targeted uiXpress repository invalidation

* Refined and standardised UI across several areas of uiXpress

* Fixed checkboxes not visually showing as checked
* Added WordPress multisite support for network-activated installs
- uiXpress configuration menu (Settings, Menu Creator, etc.) is only shown on the primary network site
- Network-managed subsites inherit settings and Menu Creator configs from the primary site
- Direct access to uiXpress admin pages on subsites redirects to the primary site
- Settings and menu writes are blocked on network-managed subsites

* Improved built-in analytics for WordPress multisite subsites
- Analytics tables are bootstrapped on frontend tracking, not only on admin visits
- User analytics dashboard counts subsite members only on multisite
- Analytics dashboard API calls always use current site data (ignores remote site switcher)

* Fixed custom base and accent theme colors not applying outside the settings page
- Theme colors are now applied as inline CSS variables on the document root, matching the settings page behaviour
- Prevents `theme.css` (loaded in the admin footer) from resetting custom color scales back to defaults on other admin pages

* Fixed style conflict with radio inputs where selected items appeared unclickable.

* Added lots of extra icons for the shortcuts icon select

* New admin framework released in beta.
* Settings storage moved from database to file-based JSON
- Non-sensitive uiXpress settings are now stored in `{uploads}/uixpress/settings.json` instead of the `uixpress_settings` option
- Sensitive credentials remain in the database only: license key, instance ID, Google Analytics service account, Turnstile secret key, and remote site app passwords
- Existing installs are migrated automatically on upgrade; no manual action required
- If the uploads directory is unavailable or not writable, settings fall back to full database storage until file access is restored

* Menu Creator storage moved from custom post type to file-based JSON
- Custom admin menus are now stored in `{uploads}/uixpress/menus.json` instead of the `uipx-menu` post type
- Existing menus are migrated automatically on upgrade; legacy CPT posts are removed after a successful migration
- New REST API: `uixpress/v1/menus` replaces `wp/v2/uipxmenus` for Menu Creator CRUD
- Published menus are injected on admin page load, removing paginated REST fetches and the localStorage cache-key system on every admin request
- Sidebar refreshes after edits via `uixpress/v1/menus/published` when menus are saved or deleted
- Emergency fallback: menu data is mirrored to the `uixpress_menus_backup` option whenever the file is written
- Security: `{uploads}/uixpress/` is protected with `.htaccess` and `index.php`; Menu Creator CRUD requires `manage_options` with REST nonce verification; published menu reads require an authenticated session; menu item URLs and metadata are sanitized on write and on API output

* Fixed woocommerce layout / styling issues.

* Modern plugin manager: batch selection and bulk actions
- Multi-select in the installed plugins sidebar with select-all, shift-click range select, and a floating bulk action bar
- Row checkboxes are right-aligned and revealed on hover; selected plugins keep their checkbox visible
- Plugin list rows show version number with an "Update available" label when an update is pending (author removed from the list view)
- Bulk activate, deactivate, update, enable/disable auto-updates, and delete via sequential calls to existing REST endpoints
- uiXpress is protected from bulk deactivate and delete; plugins with unmet dependencies are skipped during bulk activate
- Summary notifications report success, failure, and skipped counts after each bulk operation

* Fixed layout issues on the widgets page.

* Fixed style conflicts with block editor and etch
* Settings storage moved from database to file-based JSON
- Non-sensitive uiXpress settings are now stored in `{uploads}/uixpress/settings.json` instead of the `uixpress_settings` option
- Sensitive credentials remain in the database only: license key, instance ID, Google Analytics service account, Turnstile secret key, and remote site app passwords
- Existing installs are migrated automatically on upgrade; no manual action required
- If the uploads directory is unavailable or not writable, settings fall back to full database storage until file access is restored

* Menu Creator storage moved from custom post type to file-based JSON
- Custom admin menus are now stored in `{uploads}/uixpress/menus.json` instead of the `uipx-menu` post type
- Existing menus are migrated automatically on upgrade; legacy CPT posts are removed after a successful migration
- New REST API: `uixpress/v1/menus` replaces `wp/v2/uipxmenus` for Menu Creator CRUD
- Published menus are injected on admin page load, removing paginated REST fetches and the localStorage cache-key system on every admin request
- Sidebar refreshes after edits via `uixpress/v1/menus/published` when menus are saved or deleted
- Emergency fallback: menu data is mirrored to the `uixpress_menus_backup` option whenever the file is written
- Security: `{uploads}/uixpress/` is protected with `.htaccess` and `index.php`; Menu Creator CRUD requires `manage_options` with REST nonce verification; published menu reads require an authenticated session; menu item URLs and metadata are sanitized on write and on API output

* Fixed woocommerce layout / styling issues.

* Modern plugin manager: batch selection and bulk actions
- Multi-select in the installed plugins sidebar with select-all, shift-click range select, and a floating bulk action bar
- Row checkboxes are right-aligned and revealed on hover; selected plugins keep their checkbox visible
- Plugin list rows show version number with an "Update available" label when an update is pending (author removed from the list view)
- Bulk activate, deactivate, update, enable/disable auto-updates, and delete via sequential calls to existing REST endpoints
- uiXpress is protected from bulk deactivate and delete; plugins with unmet dependencies are skipped during bulk activate
- Summary notifications report success, failure, and skipped counts after each bulk operation

* Fixed layout issues on the widgets page.

* Fixed style conflicts with block editor and etch
* Custom dashboard: dashboard tab order setting now includes per-tab visibility (show/hide); hidden tabs are excluded from the dashboard tab bar (with a fallback if all would be hidden)
* Custom dashboard: new "Dashboard post types" setting (multi-select); drives Recent content, Scheduled Content, and Recent comments. Empty selection defaults to Posts only
* Added REST endpoint `uixpress/v1/dashboard-comments` to return comments filtered by selected post types for the dashboard Recent comments card

* Improved plugin ZIP replacement flow in the modern plugin manager
- Uploading a ZIP for an already installed plugin now asks for confirmation before replacing files
- Confirmation modal shows useful plugin metadata from the plugin root header, including version and requirements, to help validate the replacement

* Fixed plugin active status after ZIP replacement
- Replaced plugins that were active now correctly remain marked active after a successful replace/reactivation

* Fixed custom uiXpress plugin name in the modern plugin manager
- The "Rename uiXpress" white-label setting now updates the uiXpress plugin name in the modern plugin list and detail view

* Fixed conflict with solid security plugin
* Fixed Gravatar / email hashing on non-secure HTTP URLs
- encodeToHash used Web Crypto subtle.digest, which is unavailable outside secure contexts (HTTPS or localhost)
- Sites on plain HTTP (e.g. Local .local domains) threw "Cannot read properties of undefined (reading 'digest')"
- Added a SHA-256 fallback so the same hex hash is produced when SubtleCrypto is missing

* Fixed intermittent modern post list pagination (e.g. page 2 on Pages) returning redirects or failing to load
- The hidden data endpoint admin.php?page=uixpress-posts-data overwrote global $pagenow too early (on plugins_loaded), so WordPress could resolve the wrong admin screen hook
- Validation and edit-screen context now run at the start of render_page() after routing is correct
- Permission check uses the requested post type’s edit capability (e.g. edit_pages for pages)
- fetchPostsData always sets page=uixpress-posts-data last so a duplicate page query arg cannot override the menu slug

* Improved button contrast and seperation in dark mode

* Refreshed menu icons

* Improved hover submenu stability with grace-area pointer intent
- Added pointer-intent submenu handling so slight diagonal cursor drift does not immediately close hover submenus
- Submenu bounds are recalculated during viewport resize/scroll while open for more reliable intent checks
- Prevented accidental submenu switching when crossing neighboring parent items while still moving toward the active submenu

* Fixed submenu hover state leaking between menu sections
- Hover state is now scoped per menu context (expanded, shortcuts/favorites, minimized)
- Prevents the same link from opening in both the main menu and shortcuts at the same time
- Keeps hover behavior isolated to the section currently being interacted with

* Added dashboard tab reordering in Settings
- New setting: Settings > Dashboard > Dashboard tab order
- Lets users rearrange dashboard category tabs and persists order to dashboard_tab_order
- Dashboard tab toggle now renders categories using the saved custom order

* Fixed various wp-toolbar issues
*Hot fix for '.fixed' class causing issues on post tables.
* Fixed Activity Log timestamp timezone display
- Activity Log timestamps were showing incorrect times (+6 hours) for sites with non-UTC timezones
- REST API now converts MySQL datetimes to ISO 8601 with site timezone for correct frontend display
- Timestamps now display correctly regardless of WordPress timezone setting in Settings

* Removed user avatar dropdown and icon from toolbar
- Removed the circular avatar/gravatar element and associated context menu from the main toolbar
- Removed Theme switcher and Logout options that were in the dropdown (may be relocated elsewhere)

* Improved style layering and CSS scoping
- Excluded Bricks and MailerPress plugin styles from uixpress style layering to prevent conflicts
- Scoped CSS custom properties (--radius, --background, etc.) to :where(.wp-admin, .uixpress-isolation) to prevent conflicts with third-party themes and plugins

* Improved WordPress toolbar integration
- Changed WP toolbar host element ID from wpadminbar to uix-wp-toolbar-host to avoid conflicts
- Added retry logic when moving toolbar items (delays at 100ms, 300ms, 600ms) for async-loaded toolbar content
- moveToolbar now returns boolean to indicate success for retry logic

* Simplified frontend toolbar wrapper
- Removed toolbar container and toolbar classes from frontend wrapper for cleaner markup

* Improved global search keyboard handling
- Search keydown listener now uses capture: true for more reliable keyboard shortcut handling

* Dashboard layout improvements
- Restructured dashboard page layout with improved nesting and background styling
- Added bg-zinc-50 dark:bg-zinc-950 background to dashboard and activity log pages for consistent appearance

* Fixed community feedback
- Theme base colors not persisting after save/refresh (scoped CSS properties fix)
- Bricks and Advanced Themer toggle styling conflicts (Bricks style exclusion)
- MailerPress sidebar text not visible in light/dark theme (MailerPress style exclusion)
- WordPress command bar opening alongside uiXpress on Ctrl+K (search uses capture phase)
* NEW: Add New Content Toolbar Button
- Added modern "Add New" dropdown button to the left side of the toolbar
- Replaces the default WordPress admin bar "New Content" menu with a cleaner design
- Dynamically extracts available post types from WordPress admin bar
- Shows appropriate icons for each content type (posts, pages, media, users, etc.)
- Respects user permissions - only shows content types the user can create
- Supports custom post types registered by plugins

* NEW: Detailed Updates in Notifications Panel
- Updates section now shows individual items instead of just counts
- WordPress core updates display current and new version numbers
- Each plugin with available update is listed with name and version transition
- Each theme with available update is listed with name and version transition
- Color-coded icons: blue for core, orange for plugins, purple for themes
- Direct links to appropriate update pages for each item
- Created new REST API endpoint (uixpress/v1/admin-status) for update and comment data
- Respects user capabilities (update_core, update_plugins, update_themes, moderate_comments)

* Fixed style conflict with elemnetor admin ui
* Fixed issue with Gravity forms where new form modals were not showing
* Improved css scoping to prevent some style conflicts
* Added new translations: Czech, Japanese, Korean, Polish, Russian, Turkish, and Chinese (Traditional)
* Dashboard analytics category now only shows when analytics is enabled in settings
* Fixed dashboard card layout issue where card wrappers were rendered even when user lacked required capabilities or plugins
* NEW: Admin Menu Search - Powerful search functionality for admin menu navigation
- Added comprehensive menu search component with real-time filtering
- Searches through all menu items including top-level and submenu items
- Searches by menu name, URL, and ID for comprehensive results
- Auto-selects first result for quick keyboard navigation
- Keyboard navigation support: Arrow keys to navigate, Enter to select, Escape to close
- Highlights matching text in search results for better visibility
- Shows parent menu context for submenu items
- Displays menu icons alongside search results
- Refined UI matching the existing menu design system with dark mode support
- Toggle option available in Settings > Menu > Enable Admin Menu Search
- Search input always visible when feature is enabled (no button required)
- Results dropdown with smooth animations and custom scrollbar
- Click outside or Escape key to close search
- Automatically filters out hidden menu items
- Results sorted by relevance: exact matches first, then name matches, then URL matches
- Top-level items prioritized over submenu items in results
- Integrated seamlessly into admin menu sidebar

* Merged WordPress Notifications into Admin Notices Panel
- Integrated WordPress native notifications into the unified admin notices panel for better UX
- WordPress notifications now appear alongside custom admin notices in a single notification center
- Created useWpNotifications composable for shared notification count tracking across components
- Extracted WordPress notification logic into separate wp-notifications.vue component within admin-notices directory
- WordPress notifications preserve their original styling and functionality
- Implemented count locking mechanism to prevent notifications from disappearing after being moved to drawer
- Added KeepAlive wrapper to drawer to prevent component remounting and preserve moved notification nodes
- Notification count runs immediately on component mount, independent of drawer state
- Improved notification polling to only check for new notifications without resetting existing count
- WordPress notifications are automatically hidden from page and displayed in the notification drawer

* Updated User Details Dropdown with Shadow DOM Isolation
- Refactored user-details.vue to use Teleport and ShadowRoot for style isolation
- Added smooth enter/leave animations for dropdown menu
- Improved hover handling with cancellable timeouts for reliable show/hide behavior
- Fixed positioning to appear above the trigger container with 8px gap
- Added cleanup on component unmount to prevent memory leaks

* Enhanced Create User Form with Password Features
- Added "Generate Password" button to create user form for quick strong password generation
- Added password visibility toggle button to show/hide password text
- Added real-time password validation dropdown that appears above password input when focused
- Password validation shows visual indicators (green ticks) for each requirement:
* Minimum 8 characters
* At least one uppercase letter
* At least one lowercase letter
* At least one number
* At least one special character
- Created password generator utility function for secure random password generation
- Created password validation utility function for real-time strength checking
- Validation dropdown automatically appears when password field is focused and contains text
- Improved user experience for creating secure passwords

* Improved Menu Cache System with Rotating Cache Keys
- Implemented server-side cache key system for menu caching
- Cache keys now include both user ID and rotating server-side key
- Added REST API endpoint to rotate cache keys (uixpress/v1/menu-cache/rotate)
- When cache is flushed, the server rotates the cache key, invalidating all client caches
- All users automatically see fresh menu data after cache rotation
- Cache key is passed from WordPress to frontend via script tag attribute
- Updated all cache functions to use the new cache key format
- Added "Clear Cache" button to menu list view header for manual cache clearing
- Button rotates cache key on server, ensuring all users get fresh data
- Improved cache invalidation strategy for better multi-user support
- Menu cache is automatically cleared when saving or deleting a menu
- Menu component listens for cache rotation events and automatically refreshes
- Real-time menu updates for all users when menu is saved or deleted

* Fixed Hidden Submenu Items Still Showing in Main Menu
- Fixed issue where submenu items marked as hidden in menu creator were still displayed
- Added filtering for hidden submenu items in returnMenuItems computed property
- Hidden submenu items are now properly filtered in both normal and remote site modes
- Ensures submenu items respect the hidden setting from menu creator

* Fixed Submenu Toggle Not Working When Top-Level Item Not Active
- Fixed issue where submenus could only be toggled when the top-level item was active
- Changed submenu toggle to use 'open' property instead of 'active' for manual toggling
- Submenus can now be manually toggled open/closed regardless of active state
- Preserved 'open' property when filtering menu items to maintain toggle state
- Updated shouldShowSubMenu function to check 'open' property for manual toggles

* Fixed layout issue with fluent cart
* Fixed shadow on login page

* Added WooCommerce Customer Data Integration to User Details View
- Added automatic detection of WooCommerce plugin installation
- Created WooCommerceCustomer REST API endpoint to fetch customer data
- Endpoint checks if WooCommerce is active before attempting to fetch data
- Fetches customer data by user ID or email address
- Displays WooCommerce customer information in user details view including:
* Customer orders count and total spent
* Paying customer status badge
* Complete billing address with company, email, and phone
* Complete shipping address
* Customer creation and modification dates
* Enhanced WooCommerce Customer Component with Order Analytics
- Updated woocommerce-customer.vue to fetch orders using WooCommerce REST API (/wp-json/wc/v3/orders)
- Added comprehensive order analytics including:
* Total orders count
* Total spent (from completed and processing orders)
* Average order value calculation
* Total items purchased across all orders
* Order status breakdown with visual badges
* Recent orders list (last 5 orders)
- Orders are fetched filtered by customer ID with sorting by date (descending)
- Added order status labels and color-coded badges for visual status identification
- Displays order currency dynamically from order data
- Recent orders show order number, status, date, and total amount
- Analytics are calculated reactively using computed properties for optimal performance
- Gracefully handles cases where WooCommerce is not installed or user has no customer record
- Uses WooCommerce REST API and database queries for reliable data retrieval
- Styled to match existing dark mode design system

* Added User Details Components Registration API
- Created extensible component registration system for user details view
- Supports Vue.js 3 and React components (via veaury)
- Components can be registered to specific tab categories (Details, Activity, Commerce, or custom)
- Added category registration filter: uixpress/user-details/categories/register
- Added component registration filter: uixpress/user-details/components/register
- Components receive userId, userData, appData, and id props automatically
- Supports capability-based component visibility control
- Components handle their own data fetching and logic internally
- Enhanced component-render.vue to use useAttrs() for flexible prop passing
- Allows external plugins to register custom components and categories
- Follows same pattern as Dashboard Cards API for consistency
- Added comprehensive documentation for developers
* Fixed issue where user flyout menu in the sidebar would sometimes get cutoff but nodes in the body.

* NEW: Custom Font Selector - Advanced font customization for the admin interface
- Visual font selector with support for Google Fonts, custom font URLs, and font file uploads
- Browse and search from 1000+ Google Fonts with live preview
- Select multiple font weights for Google Fonts (400, 700, and custom weights)
- Upload custom font files (.woff, .woff2, .ttf, .otf) with automatic font-face generation
- Enter custom font URLs for external font services
- Real-time preview of selected fonts in the admin interface
- System font option to use default WordPress fonts
- Font family name input for custom fonts with validation
- Automatic CSS generation for uploaded fonts
- Accessible via Settings > Theme > Custom Font
- Supports all font sources: Google Fonts, Custom URL, Upload, and System fonts

* NEW: Google Analytics 4 Provider - Integrate Google Analytics data into uiXpress Analytics
- Connect Google Analytics 4 properties to uiXpress Analytics dashboard
- Service account authentication with encrypted credential storage
- Automatic property detection and selection from connected Google Analytics account
- Fetches analytics data from Google Analytics Data API (GA4)
- Supports all analytics endpoints: overview stats, pages, devices, countries, referrers, and geographic data
- Seamless switching between uiXpress built-in analytics and Google Analytics
- Provider router automatically selects active provider based on configuration
- Error handling with user-friendly messages for authentication and permission issues
- OAuth-style connection flow with disconnect functionality
- Property validation and status checking
- All dashboard cards automatically work with Google Analytics data format
- Accessible via Settings > Analytics > Analytics Provider
- Requires Google Analytics service account with Viewer access to GA4 property

* Updated all translation files.
Back
Top