# Changelog

All notable changes to this project will be documented in this file.

## [1.7.6] - 2026-08-31
### Security
- Patched potential DOM-based XSS vulnerability in MasterStudy and Academy LMS integrations by refactoring button injection to use safe DOM node construction.
- Fixed Broken Access Control in AJAX handlers where execution did not halt on authorization failures.
- Prevented SSRF by switching to `wp_safe_remote_request()` for Vimeo API calls.
- Improved input validation for `$_GET['page']` and `attachment_id` parameters.
- Added explicit Nonce checking in all LMS integration loaders (LifterLMS, Masteriyo, MasterStudy, Academy) and securely passed `ajax_url` via localized scripts.
- Sanitized error messages outputted from Vimeo API responses to prevent Reflected/Stored XSS.

## [1.7.5] - 2026-08-31
### Added
- Feature: Introduced MasterStudy LMS Integration. Seamlessly upload and manage Vimeo videos directly inside your MasterStudy lessons and course builder.
- Enhancement: Ensure proper UI alignment and UX for the upload video button next to Vimeo input fields in MasterStudy.

## [1.7.4] - 2026-08-27
- Feature: Introduced Academy LMS Integration.
### Changed
- Enhancement: Automatically calculate and populate "Video Playback Time" for Academy LMS lessons upon Vimeo upload, completely bypassing external API delays and 404 errors for processing videos.
- Tweak: Improved styling and spacing for the Upvimeo upload button within the Academy LMS course builder interface.

## [1.7.3] - 2026-08-25
### Fixed
- Fixed Gutenberg block styles not loading correctly in the editor iframe.
- Re-hooked block registration to `init` to ensure WordPress standards compliance.
- Restored Dashicons dependency for block editor UI.

## [1.7.2] - 2026-08-25

### Added
- Feature: Added Masteriyo integration. Seamlessly upload and manage Vimeo videos directly inside your Masteriyo lessons.

## [1.7.1] - 2026-08-22

### Added
- Feature: Added LifterLMS integration. Seamlessly upload and manage Vimeo videos directly inside your LifterLMS lessons.

## [1.7.0] - 2026-08-07

### Added
- Feature: Added LearnPress integration. Seamlessly upload and manage Vimeo videos directly inside your LearnPress lessons.

## [1.6.32] - 2026-07-18

### Updated
- Changed Text Domain to upvimeo-direct-uploads for WP.org compliance.

## [1.6.31] - 2026-07-18

### Refactored
- Removed local asset overrides to natively rely on the Freemius API for product branding.

## [1.6.29] - 2026-07-18

### Fixed
- Hardened native WordPress update logo injection to guarantee trailing slashes via plugin_dir_url().

## [1.6.28] - 2026-07-18

### Added
- Enhancement: Bypassed API cache to enforce local logo rendering for native WordPress update screens.

## [1.6.27] - 2026-07-18

### Added
- Enhancement: Bypassed API cache to enforce local logo rendering for Freemius pricing page and WordPress sidebar.

## [1.6.26] - 2026-07-18

### Security
- Added strict path traversal validation to chunked video uploads. 

### Fixed
- Purged unpermitted vendor shell scripts from the distribution archive.

## [1.6.25] - 2026-07-18

### Fixed
- Adopted official WP.org recommended display name ('Upvimeo — Direct Uploads for Vimeo') and slug structure to comply with directory trademark guidelines, while verifying full compatibility with WordPress 7.0.

## [1.6.23] - 2026-07-18

### Maintenance
- Updated Freemius SDK to version 2.13.4 for improved stability and security.

## [1.6.22] - 2026-07-18

### Fixed
- Physically extracted the final residual trialware string from the settings helper to ensure 100% compliance with WP.org automated repository scanners.

## [1.6.21] - 2026-07-07

### Fixed
- Synchronized and updated 'Tested up to' (7.0) and 'Requires PHP' (7.4) headers across main plugin file and readme for full WP.org directory compliance.

## [1.6.20] - 2026-07-07

### Fixed
- Finalized strict CSS/DOM namespace isolation and completely extracted residual premium option strings from Free core logic to comply with WP.org automated scanners.

## [1.6.19] - 2026-07-07

### Maintenance
- Normalized file line endings for strict PHPCS compliance and optimized internal file segregation.

## [1.6.18] - 2026-07-07

### Fixed
- Migrated all premium integrations to a hard file-segregation architecture to guarantee 100% physical codebase compliance with WP.org guidelines.

## [1.6.17] - 2026-07-07

### Fixed
- Restructured internal Freemius compiler tags to guarantee 100% physical extraction of premium code from the Free distribution.

## [1.6.16] - 2026-07-07

### Fixed
- Physically stripped remaining premium-only frontend configuration settings and UI elements from the free distribution to strictly comply with WP.org Trialware guidelines.

## [1.6.15] - 2026-07-07

### Maintenance
- Updated Freemius SDK to version 2.13.3 for improved compatibility and security.

## [1.6.14] - 2026-07-07

### Fixed
- Unified AJAX capability routing to resolve Guest/Subscriber permission conflicts and enforced unconditional database cleanup upon uninstallation.

## [1.6.13] - 2026-07-07

### Fixed
- Implemented context-aware AJAX capability routing for frontend/backend uploads and finalized trialware data isolation.

## [1.6.12] - 2026-07-07

### Security & Fixed
- Security hardening of chunk-upload routing endpoints and complete extraction of unused frontend option configurations from the core dashboard.

## [1.6.11] - 2026-07-07

### Fixed
- Removed non-functional frontend upload UI settings from the free dashboard to comply with WP.org Trialware guidelines.

## [1.6.10] - 2026-07-07

### Fixed
- Excluded development testing scripts (`install-wp-tests.sh`) from the distribution package to comply with WP.org repository guidelines.

## [1.6.9] - 2026-06-30

### Security
- Added late escaping for view helpers using `wp_kses()`.

### Fixed
- Enforced strict global JavaScript variable and DOM ID prefixing (`upvimeo_`) for WP.org compliance.
- Corrected Freemius logic stripping integration to prevent fatal errors in the Free version.

## [1.6.8] - 2026-06-30

### Fixed
- Aligned plugin header names to perfectly match readme.txt, resolving the WP.org Plugin Check (PCP) mismatch warning.

## [1.6.7] - 2026-06-30

### Security & Deployment
- Security hardening and refactored naming architecture to comply with WordPress.org guidelines.

## [1.6.6] - 2026-06-22

### Added
- Feature: Added a new setting "Force Vimeo Only" for Tutor LMS. When enabled, it locks the lesson video source to Vimeo and displays a "This platform uploads to Vimeo only" message, streamlining the instructor upload experience.

## [1.6.5] - 2026-06-22

### Fixed
- Resolved Composer autoloader fatal error by restoring required production polyfills (symfony/polyfill-mbstring and related packages) that were incorrectly stripped by over-broad .distignore rules.

## [1.6.4] - 2026-05-30

### Security
- Wrapped shortcode output in `wp_kses()` with explicit iframe allow-list to prevent XSS.
- Updated SweetAlert2 from v11.1.4 to v11.26.25.

### Fixed
- Changed admin menu position from `5` to `85` to avoid conflicts with core WordPress menu slots.

### Refactor
- Added `upvimeo_video` as the canonical shortcode tag. `upv_vimeo_video`, `vimeo_video`, and `UPVIMEO_vimeo_video` remain registered as deprecated backward-compat aliases.

### Build
- Hardened `.distignore` and `.gitattributes` with explicit directory exclusions for dev-only Composer packages (`squizlabs`, `phpcsstandards`, `dealerdirect`, `wp-coding-standards`) and Symfony dev components.
- Removed dev packages from `vendor/` via `composer install --no-dev --optimize-autoloader`.
- Renamed `== Source Code & Build Process ==` to `== Source Code ==` in `readme.txt`; documented `upload-modal.source.js` as the unminified source for `upload-modal.js`.

## [1.6.3] - 2026-05-22

### Compatibility
- Tested and verified compatible with WordPress 7.0 "Armstrong" (released May 20, 2026).

### Maintenance
- Updated `Tested up to` header in `readme.txt` to `7.0` to declare verified WordPress 7.0 compatibility.

## [1.6.2] - 2026-05-20

### Build
- Hardened `.distignore` to exclude shell scripts (`*.sh`) and vendor package test/dev artifacts (`tests`, `.github`, `docs`, `phpunit` configuration, `composer` files) from the WordPress.org distribution build.
- Resolves WordPress.org rejection of v1.6.1 caused by `.sh` fixtures inside third-party Composer dependencies (`squizlabs/php_codesniffer`, `symfony/mime`).
- No runtime code changes; this is a build-configuration-only release.

## [1.6.1] - 2026-05-20
### Security
- Security: OWASP Top 10 audit — fixed SSRF vulnerability in Vimeo thumbnail fetching by enforcing HTTPS and validating CDN hostnames (`*.vimeo.com`, `*.vimeocdn.com`) before any outbound request.
- Security: Patched path traversal risk in chunk-upload file removal; `realpath()` bounds check now confirms the target file stays inside the tmp directory.
- Security: Fixed authentication-check order in all chunk-upload AJAX handlers (`ajax_remove_file`, `ajax_upload_init`, `ajax_upload_chunk`) — `current_user_can()` now runs before nonce verification and input parsing.
- Security: Temporary upload directory now creates an `index.html` guard on first access to prevent directory listing on permissive web servers.
- Security: Added `esc_url()` on Vimeo links and `absint()` on attachment IDs in the media library helper to close XSS vectors.
- Security: Removed `<script>` tag from the `wp_kses` allowed HTML list in the admin class.

### Fixed
- Fix: Removed `ob_start()` / `ob_get_clean()` bootstrap wrapper that silently swallowed PHP errors and warnings during plugin load.
- Fix: Implemented full `upvimeo_fs_uninstall_cleanup()` — plugin now correctly deletes all options, `upvimeo-upload` posts, and transients on uninstall.
- Fix: `UPVIMEO_MIN_PHP_VERSION` constant corrected from `7.3.0` to `7.4.0` to match the `Requires PHP` plugin header declaration.
- Fix: `wp_die()` message on missing vendor dependencies is now escaped with `esc_html__()` and translatable.
- Fix: Replaced `current_user_can('administrator')` (role name) with `current_user_can('manage_options')` (capability) per WordPress coding standards.
- Fix: Removed double `json_encode()` wrapping inside `wp_send_json_success()` in the attachment-delete AJAX handler.
- Fix: Added `public` visibility modifier to `plugin_action_links()` method in the admin class.

### Build
- Build: Removed `Update URI` plugin header to eliminate WP.org Plugin Check (PCP) `plugin_updater_detected` error; Freemius SDK handles Pro updates independently.
- Build: Expanded `.distignore` and `.gitattributes` to comprehensively exclude all development artifacts (`.git`, `.editorconfig`, `node_modules`, `vendor/bin`, `package.json`, `package-lock.json`, `yarn.lock`, `webpack.config.js`, `gulpfile.js`, `README.md`, `CHANGELOG.md`, `CONTRIBUTING.md`, `*.log`, `*.zip`) from distribution builds.

## [1.6.0] - 2026-05-09
### Fixed
- Fix: Addressed persistent 403 "Sorry, you are not allowed to access this page" error by restoring native Freemius capability routing.
- Refactor: Replaced destructive menu unsetting techniques with non-intrusive CSS/JS UI manipulation to safely hide duplicate pricing tabs.

## [1.5.9] - 2026-05-09
### Fixed
- Fix: Resolved fatal error (`TypeError: urlencode()`) by removing invalid custom redirect logic for the Freemius trial banner.
- Fix: Natively corrected the Freemius trial banner 403 error by enabling proper pricing menu registration in the SDK configuration.

## [1.5.8] - 2026-05-09
### Fixed
- Fix: Resolved WordPress.org Plugin Check (PCP) deployment failure by excluding hidden files from build.
- Fix: Suppressed broken Freemius trial UI banner preventing 403 errors.

## [1.5.7] - 2026-05-08
### Added
- Security: Comprehensive security audit, fortified AJAX endpoints with strict capability checks and nonces.
- Security: Enhanced SQL injection protection by strictly enforcing `$wpdb->prepare` for database interactions.
- Security: Implemented strict late-escaping guidelines via `wp_kses_post` and native HTML `esc_` functions for all outputs.
- Enhancement: Optimized deployment configuration by refining `.distignore` and Freemius `Update URI` logic for repository compliance.

## [1.5.6] - 2026-05-06
### Fixed
- Fix: Resolved a fatal Server Error (`TypeError: ftp_pwd()`) during WP-Cron or CLI headless executions by safely refactoring directory verification logic using native WP functions.

## [1.5.5] - 2026-04-24
### Fixed
- Fix: Corrected the SDK inclusion path to utilize the updated Composer package instead of a legacy directory.

## [1.5.3] - 2026-04-24
### Fixed
- Fix: Resolved a minor bug.

## [1.5.2] - 2026-04-23
### Added
- Feature: Added 14-day free trial configuration without upfront payment requirement.

## [1.5.1] - 2026-04-21
### Added
- Enhancement: Minor deployment configuration updates to exclude composer.lock from the final build.

## [1.5.0] - 2026-04-21
### Added
- Security: Added comprehensive CSRF protection with strict Nonce verification across all AJAX and form handlers.
- Security: Fortified data processing with strict unslashing and sanitization for all global inputs (`$_POST`, `$_GET`, `$_FILES`) to prevent Stored XSS vulnerabilities.
- Security: Enhanced output escaping for frontend views, HTML attributes, and Exception messages to prevent Reflected XSS.
- Bug Fix: Resolved an issue where uploaded videos incorrectly defaulted to "Embed Anywhere" instead of accurately inheriting the user's specific Vimeo privacy presets (e.g., "Specific domains").
- Refactor: Prefixed global variables (e.g., `$upvimeo_option`, `$upvimeo_content`) to prevent namespace collisions with WordPress core and third-party plugins/themes.
- Refactor: Migrated native PHP `rename()` operations to the standard `WP_Filesystem::move()` API for improved cross-server compatibility.
- Cleanup: Removed deprecated Freemius Update URI headers to ensure WordPress.org repository compliance.
- Cleanup: Standardized line endings to LF across all files and removed residual debugging code (`print_r()`, `error_log()`).

## [1.4.12] - 2026-03-30
### Added
- Security: Fortified file inclusion with ABSPATH checks and replaced native filesystem functions with WP_Filesystem API.
- Security: Enhanced Freemius Pro build separation using explicit premium file exclusion tags.

### Fixed
- Fix: Resolved "No PHP code was found" warning by adding standard Silence is golden string to empty PHP file.
- Security: Comprehensive security and compliance audit resolving remaining WordPress.org Plugin Check (PCP) violations.
- Security: Resolved late escaping, CSRF nonce verification, and missing input sanitization warnings across AJAX handlers and integrations.

## [1.4.11] - 2026-03-29
### Refactored
- Refactor: Eliminated un-prefixed global variables in template partials for compliance with WordPress coding standards.
- Refactor: Refactored data passing to use the `load_template()` `$args` parameter natively.
- Refactor: Prefixed all local variables across admin and public partials with `$upvimeo_` to prevent namespace conflicts.

## [1.4.10] - 2026-03-26
### Fixed
- Fix: Repaired the custom Upvimeo promotional banner on the WP 'Add Plugins' screen by correcting the broken image source and updating the "Read Setup Guide" target URL.
- Fix: Fixed broken Upvimeo logo paths on the Settings and Library Upload admin pages by dynamically generating properly escaped URLs.
- Fix: Prevented WP Rocket and other caching plugins from lazy-loading Upvimeo logos on admin pages which caused them to appear broken.

## [1.4.9] - 2026-03-25
### Added
- Enhancement: Upgraded Freemius SDK to version 2.13.1.

### Fixed
- Fix: Addressed an issue where the Upvimeo WordPress admin menu icon disappeared by directly embedding a base64 encoded SVG asset.

## [1.4.8] - 2026-03-25
### Added
- Enhancement: Optimized build process for WordPress.org repository compliance.
- Enhancement: Updated Freemius SDK configuration for standard Free and Pro distributions.

### Fixed
- Fix: Updated `.distignore` to properly exclude development artifacts from distribution builds.

### Refactored
- Refactor: Moved SweetAlert2 library to the shared assets directory matching WP best practices.

## [1.4.7] - 2026-03-22
### Fixed
- Fix: Resolved undefined method error for `is_account_tier_free` check.
- Fix: Resolved Upload Icon Bug (SyntaxError: Identifier 'fields' has already been declared).
- Fix: Fixed HTML Comment Issue behind the "upload new" button.
- Fix: Handled Video Upload Errors (403 Forbidden on AJAX request).

### Refactored
- Refactor: Updated Vimeo API checks to comply with WP.org guidelines.
- Refactor: Improved prefixing guidelines implementation.
- Refactor: Enhanced WordPress late-escaping guidelines compliance.
- Refactor: Optimized `$_FILES` iteration to prevent unintended processing.
- Refactor: Upgraded sanitization and escaping for superglobals (`$_SERVER`, `$_REQUEST`, `$_POST`, `$_FILES`).

## [1.4.6]
### Fixed
- Fix: Addressed an orphaned `admin_footer` hook causing a fatal error in the admin dashboard.
- Fix: Resolved an issue where the Freemius Account page displayed "Free version" despite having an active Pro plan by dynamically checking the `UPVIMEO_IS_PRO` constant.

## [1.4.5] - 2026-03-02
### Added
- Refactor: Modernized Welcome Screen with a new Hero Banner layout and conditional Free/Pro CTAs.

### Fixed
- Fix: Resolved the black screen issue and missing titles in the video editor.
- Fix: Fixed WPCS Regressions resulting in "Visible Code" bugs and missing UI elements.
- Fix: Addressed an "Undefined variable $dir" error in helpers.php.
- Fix: Fixed a fatal error in the pricing page by removing invalid Freemius SDK calls.
- Security: Ensured proper Freemius Pro feature validation and implemented fallback UI for expired licenses.
- Refactor: Global clean-up removing development artifacts and prefixing variables.
- Maintenance: Fixed automated plugin scan issues including load_plugin_textdomain and readme metadata.

## [1.4.4] - 2026-02-27
### Fixed
- Fix: Resolved UI alignment issues and corrected CSS flex layouts for the admin Welcome / Setup instructions card.

## [1.4.3] - 2026-02-26
### Added
- Enhancement: Comprehensive WordPress Coding Standards (WPCS) audit and fixes across the entire codebase.
- Enhancement: Ensured all global variables, functions, and hooks are properly prefixed with `upvimeo_`.
- Enhancement: Added missing text domains and translator comments for improved localization.

### Fixed
- Security: Hardened security checks (Nonce verification) and data sanitization for ACF, Gravity Forms, WPForms, and Custom Forms.
- System: Replaced native `unlink()` with WordPress-standard `wp_delete_file()` for better file system handling.

## [1.4.2] - 2026-02-21
### Added
- Refactor: Separated Pro features (including Freemius SDK) into a dedicated folder strictly for the Premium version.
- Optimization: Cleaned up unnecessary development artifacts from the main plugin distribution.

### Fixed
- Fix: Removed Update URI to comply with WordPress.org guidelines.
- Fix: Resolved Author URI mismatch issue for directory submission.

## [1.4.1] - 2026-02-13
### Added
- Enhancement: Updated Gravity Forms upload field with modern UI (Drag & Drop, Progress Bar).
- Security: Hardened input sanitization for form integrations.

## [1.4.0]
### Fixed
- Security: Comprehensive audit; hardened sanitization and SQL query preparation.
- Performance: Implemented database query caching.

## [1.3.9]
### Added
- New: Completely redesigned WPForms upload field with a modern, card-style UI.
- Improvement: Added real-time upload percentage display.
- Improvement: Enhanced progress bar visualization and spacing.

### Fixed
- Fix: Resolved issue with progress bar visibility on some themes.
- Fix: Refined Gravity Forms upload field styling (Modern UI, clean container).
- Fix: Fixed LearnDash upload modal progress bar percentage visibility.

## [1.3.8]
### Fixed
- FIX: Refined Gravity Forms upload field styling (Modern UI, white card, blue button).
- FIX: Refined WPForms upload field styling (Modern UI, white card, blue button).
- FIX: Removed green checkmark circle from success state in both Gravity Forms and WPForms.
- FIX: Improved success UI (progress bar turns green on complete).
- FIX: Fixed LearnDash upload modal progress bar percentage visibility/positioning.

## [1.3.7]
### Fixed
- Fix: **LearnDash Integration:** Resolved issue where video URL was saved as a `player.vimeo.com` link instead of the standard `vimeo.com` format, ensuring correct embed rendering.

## [1.3.6]
### Fixed
- Fix: **Elementor Compatibility:** Resolved "Infinite Loading" loop in Elementor Editor by implementing comprehensive safety guards across all integrations (TutorLMS, LearnDash, Gravity Forms, WPForms, ACF).
- Fix: **Performance:** Prevented heavy upload scripts from loading in Elementor Editor to improve performance and stability.

## [1.3.5] - 2026-02-07
### Enhanced
- UI: **Gravity Forms Modernization:** Replaced legacy progress bar with a smooth gradient design, cleaner container, and animated success state.

### Fixed
- Fix: **TUS Uploads:** Implemented synchronous fallback mechanism to ensure uploads complete even if background processes fail (common on localhost).
- Fix: **License Check:** Prevented upload failures caused by strict license validation on non-production domains.
- Maintenance: Codebase cleanup and removal of debug artifacts.

## [1.3.4]
### Added
- Enhancement: **LearnDash Integration:** Automatically inserts video URL into "Video URL" field after upload.
- Enhancement: **UI/UX:** Improved Upload Modal responsiveness and styling for a modern look.

### Fixed
- Fix: **Privacy Conflict:** Resolved issue where "Hide from Vimeo" videos displayed as empty windows by enabling embed permissions.
- Fix: **LMS Compatibility:** Updated URL format to `player.vimeo.com` for better LMS preview compatibility.
- Security: Verified upload handling and privacy permission logic.

## [1.3.3] - 2026-02-01
### Fixed
- Security: Fixed potential XSS in admin settings by sanitizing output.
- Security: Enhanced input validation and JSON handling in AJAX actions.

## [1.3.2] - 2026-01-31
### Fixed
- Fix: Resolved "Infinite Loading" loop in Elementor Editor by adding robust safety guards to prevent script conflicts.
- Fix: Resolved potential PHP fatal error in admin class regarding db_helper.
- Fix: Resolved "Access Denied" error on Pricing/Account pages for Pro users by adjusting menu visibility logic.

## [1.3.0]
### Added
- New: **Brand New Welcome Experience:** Completely redesigned Setup Guide with enhanced visuals and clearer instructions.
- Enhancement: **Modernized UI:** Major design updates to the "Upgrade to Pro" page, giving it a premium look and feel.
- Enhancement: **Logo & Branding:** Improved Upvimeo logo visibility and positioning across the admin dashboard.
- Enhancement: **Button UX:** Refined button sizing and hit areas for a better user experience on high-DPI screens.

### Fixed
- Fix: **Upgrade Page Loading:** Resolved an issue where pricing tables would sometimes fail to load on the Free version.
- Fix: Minor CSS adjustments for better compatibility with third-party admin themes.

## [1.2.13]
### Added
- Enhancement: Improved Admin Dashboard stability and menu performance.
- Enhancement: Optimized admin menu structure for a cleaner, more professional workspace.
- Enhancement: Redesigned the Welcome / Setup banner for better responsiveness on smaller screens.

### Fixed
- Fix: Resolved minor UI inconsistencies in the settings area.

## [1.2.12]
### Fixed
- Fix: Resolved CSS loading consistency on the Account page.
- Fix: Improved layout rendering for Account Details header.

## [1.2.11] - 2026-01-26
### Fixed
- Fix: TutorLMS integration - fixed issue where upload progress bar would disappear if "Vimeo" source wasn't explicitly selected.

## [1.2.10] - 2026-01-26
### Fixed
- Fix: TutorLMS integration - automatically reveals the "Intro Video" input field if hidden, ensuring the uploaded video URL is correctly inserted.

## [1.2.9] - 2026-01-25
### Added
- Feature: **7-Day Free Trial:** Enabled a 7-day free trial for all plans.
- Enhancement: Major UI Overhaul of Welcome / Setup guide.
- Enhancement: Modernized "Fetch from Vimeo" button.

### Fixed
- Fix: Renamed ACF field from "vimeo upload" to "upvimeo".
- Fix: Resolved "fields is already defined" JS conflict.
- Security: OWASP Top 10 security audit and hardening.

## [1.2.8]
### Added
- Enhancement: Modernized Gutenberg block UI.

### Fixed
- Fix: Improved TUS protocol stability for large files.

## [1.2.7]
### Fixed
- Security: Admin interface hardening and escaping verification.
- Security: Enhanced API error handling.

## [1.2.6]
### Added
- Enhancement: Complete Admin Interface refresh.
- Enhancement: Gravity Forms UI improvements.

### Fixed
- Fix: Admin menu positioning fixes.

## [1.2.5] - 2026-01-17
### Added
- Enhancement: Modernized Gravity Forms uploader UI with better button styling and animated progress bar.
- Feature: "Cute Cloud" animated success notification for uploads.

### Fixed
- Fix: Resolved "infinite loop" issue when clicking Gravity Forms upload button on certain themes.
- Fix: Improved support for Gravity Forms AJAX-enabled forms to prevent upload failures.

## [1.2.4] - 2026-01-14
### Fixed
- Fix: Resolved "Success Message" visibility issue in WPForms by fixing a background process loading race condition.
- Change: Improved `UpVimeo_Process_Manager` to lazily instantiate processes for better reliability.

## [1.2.3] - 2026-01-14
### Added
- Enhancement: Modernized WPForms Integration with a clean, compact blue button styling.
- UI: Updated upload field icon and text for better clarity ("Upload your video").

### Fixed
- Fix: Resolved "repetition of containers" rendering issue in WPForms builder.
- Fix: Corrected "Stat failed" errors by improving Pro integration asset path resolution.

### Changed
- Update: WPForms field now instantiates correctly using the standard `load` method.

## [1.2.2] - 2026-01-14
### Fixed
- Fix: Minor fixes and stability improvements.

## [1.2.1] - 2026-01-14
### Fixed
- Fix: Improved LearnDash integration rendering to resolve potential display issues.
- Update: Build process enhancements.

## [1.2.0]
### Added
- Enhancement: Consolidated "License" and "Account" tabs into a single standard Freemius "Account" page.

### Fixed
- Fix: Removed redundant menu duplications for a cleaner professional interface.

## [1.1.9]
### Fixed
- Fix: Hardened License menu visibility check to ensure it's hidden in Free version even if license is active in DB.
- Fix: Introduced UPVIMEO_IS_PRO constant for reliable distribution detection.

## [1.1.8]
### Fixed
- Fix: "License" menu removed from Free version (only available in Pro).
- Fix: "Upgrade to Pro" now uses standard Freemius in-dashboard pricing page.
- Fix: Improved separation of Pro and Free menu logic.

## [1.1.7]
### Fixed
- Fix: Corrected "Upgrade to Pro" link to point to the valid checkout/pricing page.
- Fix: Resolved "Critical Error" on License page by using the correct SDK render method.

## [1.1.6]
### Added
- Feature: Added "License" menu page to manually enter license key.

### Fixed
- Fix: Re-enabled paid plan configuration (without conflicting menu generation) to support in-app upgrades.
- Fix: Added output buffering fix.

## [1.1.5]
### Added
- Feature: Added "Upgrade to Pro" menu link for easy access to the pricing page.

### Fixed
- Fix: Resolved menu conflicts by handling upgrade links manually.

## [1.1.4]
### Fixed
- Fix: Resolved "Content Unallowed" error by removing conflicting Freemius menu configuration in Free version.
- Fix: Set has_paid_plans to false for Free version to prevent server-side conflicts.

## [1.1.3]
### Fixed
- Fix: Reverted menu slug change to fix "Content Unallowed" error on Skip.
- Fix: Added output buffering to prevent "Headers already sent" fatal errors.

## [1.1.2]
### Fixed
- Fix: Reverted Freemius plan configuration to standard to resolve opt-in error.
- Fix: Maintained unique menu slug to prevent admin conflict.

## [1.1.1]
### Fixed
- Fix: Resolved potential menu conflict causing Fatal Error during opt-in.
- Fix: Resolved "Allow and Continue" crash by optimizing Freemius configuration.
- Security: Enforced strict licensing check for the Pro version.
- Build: Improved Windows compatibility.

## [1.0.6]
### Added
- Enhancement: Full modernization of the Upload UI (Card layout, SVG loader).

### Fixed
- Fix: Resolved "0" error on upload and settings save by ensuring AJAX handler loads for all users (not just Premium).
- Fix: Prevented false error notifications in upload form.

## [1.0.5]
### Added
- Enhancement: Redesigned "Upload to Vimeo" page with a modern, card-based interface and better responsive behavior.
- Enhancement: Added modern SVG loader for upload process.

### Fixed
- Fix: Resolved an issue where empty error messages from the Vimeo SDK could trigger false "Please correct errors" notifications.
- Fix: Freemius initialization is now dynamic, ensuring compatibility when Pro folder is absent in Free version.
- Fix: Windows compatibility for plugin builds (path separator issue resolved).

## [1.0.4] - 2025-12-24
### Added
- UI Improvement: Updated Tutor LMS upload button to match modern styling with "Add your video" text.
- Improvement: Clarified terminology in settings for frontend upload privacy.

### Security
- Security: Enhanced input sanitization on all AJAX handlers.
- Security: Implemented comprehensive Nonce verification for chunked file uploads (CSRF protection).
- Compatibility: Improved WPForms integration check to prevent potential frontend internal server errors.

## [1.0.3]
### Security
- Security: Enhanced input sanitization in AJAX handlers.
- Security: Implemented comprehensive Nonce verification for chunked file uploads (CSRF protection).
- Compatibility: Improved WPForms integration check to prevent potential frontend internal server errors.

## [1.0.2]
### Added
- Feature: Compatibility with LearnDash.
- Security: Added security patch notification and improved validation.

### Security
- Security Fix: Patched Broken Access Control (IDOR) vulnerabilities in video management AJAX actions.
- Security Fix: Patched Stored XSS vulnerability in video shortcode output.

## [1.0.1]
### Security
- Security Fix: Patched Broken Access Control (IDOR) vulnerabilities in video management AJAX actions.
- Security Fix: Patched Stored XSS vulnerability in video shortcode output.

## [1.0.0] - 2025-12-21
### Added
- Initial release of Upvimeo with all features included.
