Release notes / MediaVerse Pro
Premium Plugin Plugin

MediaVerse Pro

Once media is the main activity, three things break: storage costs spiral, video buffers, members ask for showcase formats. WPMediaVerse Pro adds five layout modes, photo competitions, S3 and BunnyCDN storage, HLS transcoding with auto-captions, and per-user quotas tied to memberships.

10 releases
v1.6.0 latest
June 6, 2026 shipped

v1.6.0 Latest

June 6, 2026
New 5 Improve 3 Fix 10 Compat 1

New

  • Group direct messages. Members can start multi-participant conversations with roles, built on the Free 1.6.0 group-conversation engine.
  • Save to multiple collections. The favorite button opens a Save-to picker so one media item can live in many collections, rendered in Free collection views.
  • Member points balance shows in the Compete hub.
  • Battle and tournament winners receive notifications, and eliminations are no longer silently dropped.
  • Manual per-match tournament resolve from the admin bracket view.

Improve

  • Challenge, streak, tournament, and participation XP awards use the owner-configured values instead of flat defaults.
  • Every gamified feature warns in the admin when no points backend is active, and point-spending UI hides on the frontend.
  • Quota membership adapters share one mapping UI. The default quota package applies to new users only, and lapsed subscriptions unassign the package instead of pinning the default.

Fix

  • Boosts and streak freezes refuse to grant the perk unless the points deduction is confirmed, so features cannot be obtained for free.
  • Gamification pages return proper 404s on fresh installs instead of rendering broken templates.
  • Instagram layout and Leaderboard respect media privacy.
  • The Compete link is no longer injected into site navigation menus. Re-enable via the mvs_pro_inject_compete_nav filter if you relied on it.
  • Importer album de-duplication reads the store the marker is written to, so re-runs no longer duplicate albums.
  • Deleting media purges Pro collection and competition rows.
  • Feed shortcodes and blocks enqueue the lightbox and Load More stacks, Compete countdowns parse strict ISO dates, and the Battle Monitor placeholder renders an em dash.
  • S3 and BunnyCDN drivers treat HTTP error responses as delete failures so cloud cleanup retries instead of silently dropping files.
  • Deleted-message bubbles no longer render as an empty blue block.
  • Streaks default to off consistently, the streak widget reads the canonical freeze-cost option, and challenge/tournament admin endpoints require the manage_mvs_settings capability.

Compat

  • Requires WPMediaVerse Free 1.6.0. Install both updates together.

v1.5.0

May 28, 2026
Compat 1

Compat

  • Requires WPMediaVerse Free 1.5.0. Install both updates together. Free 1.5.0 unifies the upload and serve pipeline (new Core MediaUrl helper, VariantSpec, StorageRouter, MediaVariantWriter, PosterService) and heals legacy video poster paths via Migrator v15. Pro does not call any of the new helpers in this release, but the lockstep policy keeps installation simple for customers running both.

v1.4.0

May 1, 2026
New 4 Improve 3 Fix 1 Compat 1

New

  • Cloudflare R2 storage driver. Store and serve media from R2, which has no egress fees and suits image-heavy communities. Add your Account ID, bucket, and an R2 S3-API token under Settings, Storage.
  • DigitalOcean Spaces storage driver. Store media on Spaces with a datacenter region picker (NYC, SFO, AMS, SGP, FRA, BLR, SYD) and an optional CDN endpoint.
  • Test Connection buttons for Cloudflare R2 and DigitalOcean Spaces. One click uploads then deletes a small test object so you can confirm credentials before going live, matching the existing S3 and BunnyCDN testers.
  • Storage Management screen under Settings, Storage. See how many media files and how much space sit on each service, move existing public media to the cloud with one-click Migrate all (with a progress bar) or in batches, and free up server space once files are in the cloud.

Improve

  • Cloud credentials defined as wp-config.php constants now show a clear "Defined in wp-config.php" indicator instead of an empty field, and Test Connection recognizes them.
  • After you switch storage service, a notice shows how many existing files still need moving so all media serves from one place.
  • Feed and profile listings (Dribbble, Flickr, Pinterest) and the platform migration tools now run through a single shared query layer in Free, so privacy and gallery-grouping rules behave identically across every layout.

Fix

  • Dribbble feed now hides flagged and pending media in line with the Flickr and Pinterest layouts. Previously the Dribbble layout could show media still awaiting moderation. A new mvs_feed_query_args filter lets you restore the old behavior if you need it.

Compat

  • Requires WPMediaVerse Free 1.4.0. Install both updates together. Pro 1.4.0 reads Free 1.4.0 query APIs and will not function on older Free versions.

v1.3.0

May 1, 2026
New 3 Improve 3 Fix 3 Compat 2

New

  • Storage Management admin UI under Settings, Storage tab. Two batched actions: Move next 20 copies local public media to your active cloud driver (S3 or BunnyCDN); Delete next 20 removes the local copies after a verified cloud upload. Confirmation modal on every destructive click.
  • 100% JavaScript translation coverage. Connector flow strings and Instagram-layout strings now flow through WordPress translations.
  • Storage drivers expose the new download() method. Enables Free's "wp mvs migrate-storage" command to copy media between local and cloud, or between cloud providers.

Improve

  • Inherits Free's image optimization pipeline. Every JPEG, PNG, GIF uploaded to Pro storage drivers (S3 or BunnyCDN) is automatically re-encoded smaller. WebP and AVIF siblings are pushed alongside the original.
  • Connection settings labels now match each vendor's dashboard wording (Amazon S3 and BunnyCDN). Two-step setup walkthroughs explain each field in plain language.
  • Pro inherits Free's security hardening including the activity privacy fix and REST per-page caps. Per-page caps apply across Challenge, Tournament, Connector, and Transcode endpoints.

Fix

  • S3 driver path encoding now works on Cloudflare R2, MinIO, and Backblaze B2. The previous encoding worked on AWS S3 by coincidence but failed on other S3-compatible backends.
  • BunnyCDN file-exists check no longer always returns false. BunnyCDN does not support HEAD requests; switched to a small Range-GET. The migrate-storage CLI no longer re-uploads files that already exist on Bunny.
  • Cloud-storage settings no longer wipe stored secrets on form save. Previously saving the form with an empty password field would overwrite the stored secret.

Compat

  • Requires WPMediaVerse Free 1.3.0. Install both updates together. Pro 1.3.0 calls Free 1.3.0 APIs and will not function on older Free versions.
  • Image compressor integration via Free's mvs_optimize_image filter. Pro intentionally does not bundle an adapter for EWWW, Imagify, Smush, or ShortPixel; customers pick their preferred tool through a short mu-plugin snippet documented in the Free plugin.

v1.2.0

New 8 Fix 9

New

  • All Pro features are now Gutenberg blocks - `mvs/pro-tournament`, `mvs/pro-tournaments-list`, `mvs/pro-challenge`, `mvs/pro-challenges-list`, `mvs/pro-battle`, `mvs/pro-battles-active`, `mvs/pro-instagram-feed`, `mvs/pro-flickr-feed`, `mvs/pro-pinterest-feed`, `mvs/pro-dribbble-feed`, `mvs/pro-leaderboard`, `mvs/pro-compete-hub`. Each ships with a matching shortcode (kebab-case → camelCase attr translation). Single-entity blocks carry an ID picker; list/aggregate blocks carry the standard layout attrs only.
  • Per-page Layout blocks - Instagram / Flickr / Pinterest / Dribbble feeds embeddable on any page. Layout classes now expose `render_feed(array $args = []): string`; site-wide path unchanged.
  • Standard inspector panels - Spacing / Border / Shadow / Visibility appear on every Pro block in the same canonical order as wbcom-essential and Free. Per-instance scoped CSS via `MVS_CSS::add()` keyed off `mvs-block-{uniqueId}`, dumped on `wp_footer`.
  • MigrationPage split by platform - the 1,866-line god class is now a 627-line generic shell hosting per-platform `Integrations\<Platform>\MigrationAdmin` cards. Three subclasses (RtMedia, MediaPress, BuddyBoss) own per-platform detection, run-batch mapping, album creation, and rtMedia activity rewriting. Two pre-existing bugs fixed in the same pass: detect queries no longer use `_mvs_*`-prefixed meta keys (the import path stamps non-prefixed keys → "Imported" count was always 0); MediaPress run-batch now declares `global $wpdb`.
  • `AbstractBatchImporter` base class - three CLI importers (RtMedia, MediaPress, BuddyBoss) used to duplicate ~80% of orchestration. Now they extend the base and supply only platform-specific bits (env probe, source query, dedup meta key, per-row mapping). Rule 7.2 unblocked.
  • Admin AJAX handler allowlist (Rule 5) - `bin/coding-rules-check.sh` rejects any `add_action('wp_ajax_*')` outside the documented 5-handler allowlist. Off-list registrations fail the gate.
  • Block render-asset enqueue gate (Rule 6) - any block whose `render.php` instantiates a `WPMediaVersePro\Frontend\Layouts\*` class MUST call `$layout->enqueue_assets()` in the same file. Idempotent. Prevents the bug class that briefly shipped in 1.2.0 (feed blocks instantiated Layout but never enqueued per-layout CSS, so SVG icons rendered at viewBox-default size).
  • Phase 2 restructure - 14 platform-coupled files moved into `includes/Integrations/<Platform>/`. Class names role-named, never vendor-prefixed (`Integrations\AmazonS3\StorageDriver`, not `S3StorageDriver`). Rule 4 in `bin/coding-rules-check.sh` rejects re-introductions at legacy paths.

Fix

  • Pro layout cards now open the lightbox on click - eight templates (Pinterest, Pinterest profile, Flickr, Flickr profile, Dribbble, Dribbble profile, Instagram, Instagram fallback) had the Interactivity API context wired but missed the `data-wp-on--click="actions.openLightbox"` directive on the actual clickable element. Result: clicking a card / expand button did nothing on every Pro layout demo. Now all 8 templates fire the lightbox correctly. Anchor-based templates (Flickr / Dribbble) keep the `href` as a graceful fallback so non-JS clicks still navigate to the single-media page.
  • Author profile URLs no longer leak BuddyPress mention HTML. Instagram feed cards (and the leaderboard top-creators rows) built `/media/@username/` URLs inline. When BuddyPress's `bp_activity_at_name_filter` ran on the surrounding output, the `@username` substring inside the URL was rewritten into a full BP mention `<a class='bp-suggestions-mention' …>@username</a>` - corrupting the URL with literal HTML and producing dead links. All 3 Pro sites now route through Free's canonical `TemplateHelpers::get_user_profile_url()`.
  • Explore filters a11y (`templates/layouts/partials/explore-filters.php`) - Media / People search-mode toggle gains `role="tablist"` / `role="tab"` / `aria-selected` semantics; search input gets a screen-reader-only `<label>`.
  • Leaderboard list rendering - `<ol>` swapped to `<ul>` with explicit `list-style:none` so themes that add `1. 2. 3.` markers don't double up with the leaderboard's own rank numbers.
  • Video poster filter `mvs_pro_poster_frame` now passes the actual source-video file path as its third argument. The filter site referenced an undefined `$file_path` variable (the parameter in scope was `$input`); PHP emitted an `Undefined variable` warning and any consumer of the filter received `null` for the path argument. Fixed; PHPStan baseline entry dropped.
  • AI transcription (Whisper-powered captions) now works on every install. The provider was reading the OpenAI API key from a stale, pre-1.0 option name and silently produced empty transcripts even when the key was correctly configured under WPMediaVerse → Settings → AI. After upgrading to 1.2.0, please re-run any video / audio captioning that previously came back blank - no settings change required, just trigger the transcription again. Affected since: every Pro install that used Whisper captions. Commit: `5efff75`.
  • Pro-owned options renamed from `mvs_*` to `mvs_pro_*` with an automatic activation migration so settings carry over cleanly. No manual action required.
  • Whisper provider now consumes the same `mvs_openai_api_key` option / filter / `MVS_OPENAI_API_KEY` constant chain as Free, single-sourced through `Core\SettingsHelper` (architecture invariant A4). Includes a guarded fallback for installs still on pre-1.2.0 Free.
  • Messaging residue cleanup - all Pro-side messaging features now live in Free only. Pro's `Plugin.php` already declared messaging deferred to Free, but a stale fork of Free's MessagingService had drifted ~4 features behind under `includes/Messaging/` and `assets/js/messaging.*`. Deleted the unloaded duplicate (5 PHP files + 2 JS files + chat-panel template). The live Instagram-layout JS (the only consumer of the old `mvs-pro/messaging` Interactivity store) now calls Free's `store('mvs/messaging')` via the documented cross-store bridge. Customer impact: zero - none of the deleted code was wired into Pro's bootstrap.

v1.1.3

Improve 1

Improve

  • Version bumped to match Free 1.1.3 - all lightbox improvements (full-viewport layout, full-resolution images, correct close button positioning, Lucide icons) are in the Free plugin that Pro extends

v1.1.2

New 1 Fix 5

New

  • Mobile UX on Battles, Challenges, and Tournaments now inherits the same Apple-quality touch-target, safe-area, and z-index tokens as the Free plugin - every interactive element clears the 44×44 floor, floating elements respect the iOS home bar, and the mobile experience is uniform across Free + Pro

Fix

  • Challenges and Tournaments now store start/end dates in the site's timezone correctly - previously, when the site used a non-UTC timezone (for example UTC+5:30), challenges were stored 5.5 hours in the future and stayed "scheduled" forever instead of going live
  • Challenge admin list now has a "View" link alongside Edit / Cancel, so admins can preview what users see on the frontend in one click
  • Photo Battles now keep the two contenders side-by-side on mobile (≤640px) instead of stacking vertically - the head-to-head matchup feel is preserved, with 144×144 photos and a VS divider between them
  • Challenge admin form now has a Cover Image upload field - the database and frontend already supported it, but the form had no way to set it. Comes with a media library picker, preview, and Replace / Remove buttons
  • Challenge lifecycle emails + in-app notifications now fire on every stage - the creator gets notified when the challenge is created, each entrant gets a confirmation email + notification on submit, top-3 winners get a congratulations email on finalize, and non-winning participants get a thank-you email

v1.1.1

Fix 5

Fix

  • Battle Arena now shows correct winner using mvs_competition_matches table
  • Challenge schedule dates can be updated for active and voting statuses
  • Duplicate "Compete" nav menu items - now only injects in primary menu
  • Deep-link to specific battle via /media/battles/{id}/
  • Battle page passes battleId to Interactivity API context for direct access

v1.1.0

New 6 Improve 5 Fix 5

New

  • Load More on all feed and profile templates (Pinterest, Flickr, Dribbble, Instagram)
  • User Reports tab merged into unified Moderation page
  • Video Analytics tab merged into unified Stats page
  • rtMedia migration rewrites activity content with native video/audio players
  • Multi-media activity support - activities with multiple items render in grid
  • Re-migration support - safely re-run migration on previously migrated content

Improve

  • Replaced Instagram infinite scroll with Load More button
  • Theme library clear active/inactive status with icons
  • Admin UX aligned with free plugin v1.1.0 improvements
  • Migration preserves all rtMedia engagement data (views, reactions, downloads, ratings)
  • Competition URLs now link to individual battles, challenges, and tournaments

Fix

  • Duplicate quota package creation on plugin activation
  • Pinterest layout and explore filter refinements
  • Video activities in BuddyPress feed render as playable video instead of broken image
  • Audio activities render as audio player instead of broken image
  • Group media migration preserves group context and privacy

v1.0.0

Note 10

Note

  • Initial release
  • Cloud storage integration (Amazon S3, BunnyCDN)
  • Video intelligence (transcoding, chapters, resume playback, captions)
  • Direct messaging with REST polling transport
  • Instagram feed layout override
  • Advanced analytics dashboard
  • Additional AI providers (Google Vision, AWS Rekognition)
  • Watermarking for content protection
  • Data migration from rtMedia, MediaPress, and BuddyBoss
  • License management with EDD SL SDK