== Pellio changelog: earlier versions ==

= 0.6.27 =
* Maintenance release.

= 0.6.26 =
* New: block patterns for Pellio videos (Patterns → Pellio video): intro, call to action, video beside a list, and a course lesson layout.
* New: "Sticky while playing" for Pellio videos (block, Elementor, Bricks, Beaver Builder, Divi and `sticky="1"` on the shortcode): a playing video that scrolls out of view keeps playing in a small corner player, with buttons to close it or go back to the video.
* New: Beaver Builder and Divi "Pellio video" modules.

= 0.6.25 =
* Security: playback tokens are only issued for content the visitor can see right now (LMS enrolment, membership rules), including on cached pages; the video sitemap leaves out course lessons, members-only pages and members-only videos.
* Security: video events are only accepted for videos shown on that page, are rate-limited, and YouTube, Vimeo and Media Library completion no longer fires automations unless you trust it (Pellio → Settings → Automations); lead events only pass on the user's own email.
* Security: posts by users who can't add Pellio videos (contributors) don't sign private, password-protected or domain-restricted videos.
* The Google Analytics bridge only accepts events from Pellio players; the "Get video stats" ability needs the Pellio manage permission.

= 0.6.24 =
* Improvements and fixes.

= 0.6.23 =
* Improved: while Pellio is A/B testing a video's thumbnail, its embeds load the player straight away so each viewer sees their variant's thumbnail.

= 0.6.22 =
* New: Pellio abilities for the WordPress Abilities API (WordPress 6.9+), so AI agents and automations can find, embed and manage Pellio videos with the user's own permissions.

= 0.6.21 =
* Improved: signed-in viewers appear in Pellio under their display name, not “WordPress user #1”.

= 0.6.20 =
* Fixed: “Move videos to Pellio” on Pellio → Migration did nothing since the screen moved under the Pellio menu.

= 0.6.19 =
* New: scheduled progress reports for course owners (Pellio → Settings → Courses). A daily or weekly email per site with, for each course with Pellio lesson videos, how many learners finished every video, are in progress or haven’t started, the period’s verified watches, completions and attestations, and optionally each course’s watch evidence CSV attached. Sent through the site’s own mail setup; “Send a report now” for a test.

= 0.6.18 =
* New: multisite support. Network-activate Pellio, then choose in Network Admin → Pellio whether each site connects its own Pellio account (the default) or the network connects once for every site, optionally still letting site admins connect their own.
* Fixed: on multisite, lesson progress (watched, attested) is kept per site, so the same lesson id on two sites no longer shares a learner’s progress.
* Improved: deleting the plugin cleans up every site on a network, and settings added in recent versions.

= 0.6.17 =
* New: move from Presto Player. Pellio → Migration (and `wp pellio migrate`) switches Presto Player blocks, reusable Media Hub items and `[presto_player]` shortcodes to the Pellio player: YouTube, Vimeo and Media Library videos, or the Pellio-hosted copy once imported. Backed up and undoable like other migrations.

= 0.6.16 =
* New: viewer watermark (Pellio → Settings): signed-in users see their own name, faint and moving, over Pellio-hosted videos, to discourage screen recording.

= 0.6.15 =
* New: watch evidence CSV and retraining for LearnDash, Tutor LMS and Sensei LMS (previously LifterLMS only). Download per course from the course screen, Pellio → Settings → Courses, or `wp pellio evidence <course>`; when a lesson’s video is replaced and Pellio requires the latest version, learners who completed the old one are asked to rewatch.

= 0.6.14 =
* New: LifterLMS engagement triggers: “Student watches a lesson’s Pellio video (verified)” and “Student has watched every Pellio video in a course”, for achievements, certificates and emails. Developers: `pellio_llms_lesson_video_watched` and `pellio_llms_course_videos_watched` actions.
* New: Pellio videos in LifterLMS quiz questions play in the signed Pellio player (private videos work).
* New: the LifterLMS course builder’s Pellio panel can pick the lesson video from your Pellio library, and set up an attestation.
* New: cross-device resume: a signed-in student picks up a lesson video where they got to, on any device.
* Improved: the embed migration also moves LifterLMS quiz question videos and Sensei lesson videos to Pellio.

= 0.6.13 =
* New: attestation after a lesson video (LifterLMS, LearnDash, Tutor LMS, Sensei LMS). Once Pellio verifies the watch, learners confirm your statement (optionally typing their name, or their name and password) before the lesson completes. Each attestation is recorded in the learner log and in the LifterLMS watch evidence CSV.

= 0.6.12 =
* New: learner log. Verified watches, lesson completions and reopened lessons (LifterLMS, LearnDash, Tutor LMS, Sensei LMS) are recorded in Pellio’s tamper-evident learner log alongside the watch milestones Pellio records itself. Events that can’t be delivered are retried hourly.

= 0.6.11 =
* Fixed: Media Library videos without a thumbnail could start playing on their own (or show “Press play to start”) when the page loaded; they now wait for play.

= 0.6.10 =
* Fixed: LifterLMS lessons: a video picked in the Pellio box wasn’t saved when the lesson’s Video Embed URL field was empty.

= 0.6.9 =
* Improved: locked videos (logged-in or members only) show a styled panel with a lock icon instead of plain text.

= 0.6.8 =
* Fixed: a Pellio video without a title set in the block now labels its play button with the video’s own title.

= 0.6.7 =
* Fixed: Pellio videos embedded by shortcode (or blocks saved without a size) now use the video's own shape instead of 16:9, so wide films don't get black bars.

= 0.6.6 =
* New: members-only videos. In the block's Access panel (or `[pellio … visibility="members" members="pmpro:2,memberpress:12"]`), limit a video to members of chosen plans from MemberPress, Paid Memberships Pro, Restrict Content (Pro), WooCommerce Memberships or LifterLMS. Everyone else sees a "for members" message and is never issued a playback token, including by the cached-page token refresh. Filters: `pellio_member_can_watch`, `pellio_members_locked_html`.
* New: watch-to-complete for LearnDash, Tutor LMS and Sensei LMS. With a Pellio video in a lesson, require it to be watched (unique seconds, verified with Pellio) before the lesson can be completed, complete it automatically, and stop skipping ahead; the player resumes where the student left off. Set it site-wide in Pellio → Settings → Courses or per lesson.

= 0.6.5 =
* Fixed: embedding a linked YouTube or Vimeo video by its Pellio id (shortcode, block or library) showed a "This video is on YouTube" message instead of playing it.
* New: LifterLMS watch evidence export. Download a CSV per course (course edit screen, or `wp pellio evidence <course>`) with each student's unique seconds watched, sessions, first/last viewed, video version, lesson completion time and best quiz grade.
* New: LifterLMS retraining. When a lesson's video is replaced and Pellio requires completion on the latest version, students who completed the old version are asked to rewatch it.

= 0.6.4 =
* New: captions button for YouTube videos in the Pellio player (the video's own captions).
* Improved: the player colour setting uses the WordPress colour picker, with a hex field.

= 0.6.3 =
* New: with a Pellio account connected, YouTube and Vimeo videos played in the Pellio player appear in your Pellio library as linked videos, with viewing analytics per viewer (including which logged-in users watched and how much).
* Improved: Pellio-hosted videos show the same play button as the player (in your workspace colour, with the duration) before they load.
* Improved: Access settings list roles in a tidy grid.

= 0.6.2 =
* Fixed: in Safari (which blocks YouTube and Vimeo from starting with sound), pressing play no longer leaves a spinner or a zoomed YouTube thumbnail: the next click starts the video, with a “Press play to start” hint; Vimeo falls back to its own play button.
* The Pellio menu icon, block and Automator integration use the Pellio logo.

= 0.6.1 =
* Wording: “Thumbnail” instead of “Poster” in the block and Pellio → Videos.

= 0.6.0 =
* New: automations: WP Fusion and FluentCRM tags and Uncanny Automator triggers when a logged-in user starts or completes a video or submits their email; PHP actions and DOM events for developers.
* New: Access settings: choose which roles can upload and manage videos without their own Pellio accounts.
* New: per-video analytics in Pellio → Videos, including which site members watched, and a dashboard widget.
* New: Pellio menu in the dashboard: Videos (upload, search, folders, edit details, thumbnail, chapters, captions, replace the file, Trash), Migration and Settings.
* Improved: the Pellio Video block's setup screen, styled consistently in any theme; "Connect Pellio" opens in a new tab so the post stays open.
* New: Status panel in Pellio → Settings and a Site Health test: connection, embed signing, server clock, allowed domain, Content-Security-Policy, REST API reachability and caching plugins.
* New: embeds on pages served from a page cache for longer than 12 hours get fresh tokens automatically, so private and members-only videos keep playing.
* New: Elementor widget, Bricks element and ACF "Pellio Video" field type.
* New: pellio_video( $video, $atts ) template function: a Pellio id or link, a YouTube/Vimeo link, a video file URL or a Media Library attachment id.
* New: consent-manager support (WP Consent API, Complianz, CookieYes, Real Cookie Banner, Borlabs Cookie): YouTube and Vimeo wait for marketing consent; Pellio-hosted views stay anonymous until statistics consent.
* Improved: compatibility with WP Rocket, LiteSpeed Cache, Autoptimize, SiteGround Optimizer and Cloudflare Rocket Loader: Pellio's scripts opt out of JavaScript delay and combining, so the first click on play always works.

= 0.5.0 =
* New: the Pellio player works without a Pellio account, for YouTube, Vimeo and Media Library videos: paste a link in the Pellio Video block, or use [pellio url="…"].
* New: player branding in Pellio → Settings: colour and corner radius.
* New: privacy by default: thumbnails are stored on your site, and visitors don't contact YouTube or Vimeo until they press play (youtube-nocookie.com, Vimeo do-not-track).
* New: YouTube's title bar, logo and suggested videos stay hidden; the thumbnail covers the end screen.
* New: optionally play existing YouTube and Vimeo embed blocks in the Pellio player.
* New: speed menu, keyboard shortcuts, full screen, and picture-in-picture and optional download for Media Library videos.
* Google Analytics video events now cover YouTube, Vimeo and Media Library videos too.

= 0.4.0 =
* New: optionally send video_start, video_progress and video_complete to Google Analytics 4 / Tag Manager (Pellio → Settings).
* Improved: analytics see the address of the page a video is watched on, for page and UTM reports in Pellio.
* New: Pellio Playlist block: a Pellio playlist (kept in sync) or hand-picked videos, as a player with a list (auto-advance) or a grid that opens in a lightbox.
* New: Pellio Lightbox block: a thumbnail or button that opens a video in a lightbox.
* New: video sitemap (/pellio-video-sitemap.xml) listing the posts that embed Pellio videos, added to robots.txt.
* New: search structured data now includes the transcript (from captions), chapters as key moments, and SeekToAction for videos without chapters.
* New: key-moment links (?pellio_t=SECONDS) start the video at that time.
* New: with Yoast SEO or Rank Math, the video sitemap is listed in their sitemap index and each VideoObject joins their schema graph (linked to the page) instead of a separate script.
* Chapters, transcripts, downloads and other new player features work in existing embeds automatically.

= 0.3.0 =
* Migration: scan, preview, replace and undo Vimeo/Wistia/YouTube embeds; Media Library offload; WP-CLI commands.
* LifterLMS: server-verified completion, seek lock, resume, lesson video picker, course builder panel, reporting.
* Scripts are enqueued files; offload uses the WordPress HTTP API with multipart uploads.

= 0.2.0 =
* Connect flow, signed embeds, zero-JS facade, block uploads with processing status and library picker, shortcode, oEmbed, VideoObject structured data.

= 0.1.0 =
* First version.
