uiXpress

uiXpress 1.2.20 Nulled

Keine Berechtigung zum Herunterladen
*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.
* Added Remote Site Switcher feature
- Added ability to configure remote WordPress sites in global settings
- Remote sites require URL, username, and application password
- Added remote site switcher UI in toolbar for quick site switching
- Selected site is saved in localStorage and persists across sessions
- Modified lmnFetch function to handle fetching to remote sites using Basic Auth
- Added capability-based visibility control for remote site switcher (defaults to admin users)
- Remote site switcher only appears when remote sites are configured and user has required capability
- Switching sites triggers page reload to refresh app context
- Added first-time explanation dialog when switching to remote sites

* Enhanced REST API Security with Unified Permission System
- Created RestPermissionChecker utility class for consistent permission validation
- Local requests: Validates nonce for CSRF protection
- Remote requests: Validates Basic Auth with application password authentication
- Automatically detects request origin (local vs remote) and applies appropriate security
- Updated all REST endpoints to use the unified permission system
- Maintains security standards while supporting remote site operations
- Supports WordPress application passwords for secure remote authentication

* Security: Fixed potential password exposure in remote sites options
- Added capability check before outputting remote_sites and remote_site_switcher_capability to frontend
- Prevents users without required capability from accessing remote site passwords
- Uses remote_site_switcher_capability setting (defaults to manage_options) for access control
* Enhanced Remote Site Menu Filtering
- When a remote site is active, menu now shows only top-level uiXpress app pages
- Only displays pages that are enabled in settings (respects feature toggles)
- Supported pages: Modern Media Page, Modern Plugins Page, Menu Creator, Modern Dashboard, Activity Log, Database Explorer, Admin Notices, Role Editor, and Modern Users Page
- uiXpress top-level menu (Settings) and its submenu items are preserved when remote site is active
- Submenu items under uiXpress Settings are filtered based on enabled features
- All other submenus are hidden when remote site is active for cleaner navigation
- Menu automatically updates when switching between local and remote sites
* Fixed Media Library Uploads for Remote Sites
- Updated media upload function to use lmnFetch instead of direct fetch calls
- Media uploads now properly work when viewing remote sites
- Uploads are correctly sent to the selected remote site instead of local site
- Supports Basic Auth authentication for remote site uploads
* Fixed scroll issue with latepoint
* Fixed back to dashboard button on frontend toolbar
* Added function existence checks for disk_free_space() and disk_total_space() in server health to prevent fatal errors on systems where these PHP functions are unavailable
* Fixed issue on safari where gutenburg in full screen mode was overlayed.
* Added minimal animated progress indicator panel for plugin uploads
- Replaced small spinner in upload button with elegant progress panel
- Shows file name being uploaded with animated progress bar
- Minimal dark design with zinc color palette
- Smooth slide-up animation when upload starts
- Positioned at bottom center of screen for visibility
- Follows dark minimalist design system

* Redesigned Magic Dark Mode with per-page opt-in system
- Replaced global toggle with per-page opt-in approach for better control
- Uses CSS-based invert filter (`filter: invert(1) hue-rotate(180deg)`) for efficient dark mode conversion
- Added quick actions in global search to enable/disable magic dark mode per page
- Pages can be individually added to magic dark mode list via search actions
- Automatically excludes images, videos, iframes, and media elements
- Better performance with no DOM manipulation overhead
- Smooth transitions when toggling dark mode
- Handles dynamically added content automatically
- Added comprehensive exclusions for charts, code blocks, and color pickers
- Removed global "Magic dark mode" toggle from settings (now per-page only)
- Fixed settings persistence and reactivity issues
- Magic dark mode now properly saves and loads on page refresh

* Improved Menu Scrollbar Styling
- Updated menu component with modern slimline scrollbar design
- 6px width scrollbar with smooth transitions
- Enhanced dark mode support with appropriate color schemes
- Always visible when content overflows (removed hover-only behavior)
- Cross-browser support for Webkit and Firefox
- Applied to both minimized and standard menu states

* Made adoptedStyleSheets globally available via Vue provide/inject
- Created useAdoptedStyleSheets composable for easy access to shared stylesheet
- Provided adoptedStyleSheets from menu-wrapper.vue root component
- Child components can now inject and reuse the same stylesheet instance
- Reduces code duplication and ensures consistent styling across ShadowRoot components

* Updated all language translation files.

* Fixed menu link URL encoding and active state detection
- Fixed issue where menu links were being double-encoded (e.g., %2F for / in query parameters)
- Added URL formatting logic to decode URLs before rendering to prevent encoding issues
- Improved active link detection to check window.location against menu item URLs
- Added support for checking both encoded and decoded versions of URLs and window.location
- Implemented precedence logic where direct location matches take priority over WordPress native active state
- Direct matches now properly deactivate conflicting menu items at the same level
- Fixed WooCommerce analytics link names disappearing issue caused by URL encoding mismatches
- Centralized URL matching logic in reusable utility function (isCurrentLocationMatch.js)
- Applied fixes to both top-level menu items and submenu items
* Refactored app entry files to use centralized setGlobalProperties function
- Created enhanced setGlobalProperties function that accepts optional script tag selectors
- Added support for secondary script tags (e.g., dashboard-script, posts-script, plugins-script)
- Created setVueGlobalProperties helper function to eliminate code duplication
- Updated all 17 app entry files to use the centralized functions
- Added support for additional data attributes: postTypes, mimeTypes, currentUser, dashboard_data, supports_categories, supports_tags, postStatuses, pluginsList
- Reduced code duplication by ~20-30 lines per file
- Improved maintainability with single source of truth for data attribute parsing

* Updated all plugin URL references to use pluginBase instead of hardcoded paths
- Replaced all instances of `${appStore.state.siteURL}/wp-content/plugins/uixpress/` with `appStore.state.pluginBase`
- Updated 11 Vue components that dynamically load stylesheets
- Fixed hardcoded CSS mask URL in plugin-inspect.vue to use dynamic CSS variable
- Now properly supports custom wp-content directory names via WordPress plugins_url() function
- All plugin asset URLs now use consistent, centralized source

* Updated Vite configuration for better compatibility
- Changed base path from absolute `/wp-content/plugins/uixpress/app/dist/` to relative `./`
- Ensures compatibility with WordPress installations that use custom wp-content directory names
- WordPress plugins_url() function now handles full URL construction correctly

* NEW: License key system overhaul
- Removed LemonSqueezy integration (admin/src/Rest/LemonSqueezy.php deleted)
- Migrated to new license key API endpoint
- License key and instance_id are no longer exposed to frontend JavaScript (security improvement)
- Updated license activation, validation, and removal functions in settings panel
- Improved error handling and user feedback for license operations
- License validation now uses validate-activate endpoint which returns existing activation if already activated

* Fixed issue with submenu items unable to be added as a favourite.
* Fixed style conflicts with fluent cart
* Analytics: Disabled caching for active users endpoint to ensure real-time data
- Added cache control headers (no-cache, no-store, must-revalidate) to active users REST endpoint
- Active users count now always returns fresh data without any caching layer
* Fixed fatal error when deleting plugins in Activity Logger
- Fixed ArgumentCountError in log_plugin_deleted() method
- Made second parameter optional with default value to match WordPress delete_plugin hook behavior
- Updated hook registration to accept only 1 argument as WordPress provides
* Fixed Force Global Theme setting not working properly
- Fixed issue where light theme couldn't be forced when browser was in dark mode
- Global override now properly takes precedence over browser preference
- Added watcher to update theme when force_global_theme setting changes
- Media query listener no longer overrides global theme setting
* Fixed issue with admin layouts not responding correctly
* Fixed compatability issue with Gravity Forms
* Fixed issue where some notifications were not caught until you opened the notification panel.
* Improved various ui component styles
* Added a new action links popout to the bottom left user bar
* Improved plugin page styles
* Improved ui and design of admin notices
* Fixed various plugin conflicts
* Fixed issue where it wasn't possible for plugins to be uploaded as an update in modern plugin manager
* Performance improvements
* Fixed various issues with woo and menu links
* Fixed a PHP error warning about a missing type param
* Fixed issue with toolbar icon for CMP - coming soon plugin
* Fixed conflict with sureforms plugin settings
* Added new feature. Admin Notices allows you to create custom notices and that display to given user groups. Can be dismissable or sticky.
Oben