=== Lazy load videos and sticky control ===
Tags: lazyload, video, lazyload video, sticky video, shortcode
Requires at least: 5.2
Tested up to: 7.0
Stable tag: 4.0.2
Requires PHP: 5.5
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Lazy load videos and keep them visible with sticky playback support.

== Description ==
This plugin improves page load times by lazy loading videos and displaying only the video preview image until playback begins. It now supports YouTube, Vimeo, Wistia, Dailymotion, JW Player, and self-hosted HTML5 videos, with built-in sticky video functionality that keeps videos visible at the top or bottom of the screen when users scroll away from the video viewport.

== Features ==
- **Lazy Load Videos:** Reduce initial page load by showing only video thumbnail preview image first.
- **Multiple Video Support:** Add more than one video to a page. Only one video plays at a time, and the other video pauses automatically.
- **Sticky Video:** Keep videos visible as you scroll by pinning them to the top or bottom of the screen.
- **Multi-Platform Support:** Use YouTube, Vimeo, Wistia, Dailymotion, JW Player, or self-hosted HTML5 videos.
- **Custom Styling:** Adapt the video presentation with your own CSS.

== Usage ==

### Method 1: Using the Classic Editor (WP Editor)

1. **Generate Shortcode in WP Editor:**
    - Open the post/page where you want to add your video.
    - In the WordPress editor, click on the **LLVASC** icon. This will open a popup window.
    - In the popup, add your video ID. For YouTube, Vimeo, Wistia, Dailymotion, and JW Player, use only the video ID, not the full URL.
    - After entering the video ID, click "Ok". This generates and inserts a shortcode into your content.

2. **Shortcode Format:**
    - The shortcode added to your content will look like this:
      `[lazy-load-videos-and-sticky-control type="youtube" id="iXGoAj7IEys"]`
    - Example shortcodes:
      `[lazy-load-videos-and-sticky-control type="vimeo" id="76979871"]`
      `[lazy-load-videos-and-sticky-control type="wistia" id="26sk4lmiix"]`
      `[lazy-load-videos-and-sticky-control type="dailymotion" id="x75iqs7"]`
      `[lazy-load-videos-and-sticky-control type="jwplayer" id="hWF9vG66"]`
      `[lazy-load-videos-and-sticky-control type="html5" url="YOUR_VIDEO_URL"]`

3. **Save/Update:**
    - Save or update your post/page to apply the changes.

4. **Preview and Customize:**
    - Preview your page to see the embedded video.
    - If you need to adjust the styling, you can add custom CSS in the General tab of the plugin settings.

### Method 2: Using Gutenberg Block

1. **Add a Block:**
    - Open the post/page where you want to add your video using the Gutenberg editor.
    - Click on the “+” icon to add a new block.

2. **Select the ***LLVASC*** Block:**
    - Search for the "LLVASC" block in the block library.
    - Add this block to your content.

3. **Enter YouTube Video ID:**
    - In the LLVASC block settings, select your video platform and enter the matching video ID. For HTML5, use the media picker to choose the video file.

4. **Save/Update:**
    - Save or update your post/page to apply the changes.

5. **Preview and Customize:**
    - Preview your page to see the embedded video.
    - Customize the block settings as needed to adjust the appearance and functionality.
 
== Demo Preview ==
[Demo](https://preview-plugin.web.app/lazy-load-videos-and-sticky-control.html)

== Installation ==

###  Automatic installation 

1. Open WordPress admin, go to Plugins, click Add New
2. Enter "Lazy load videos and sticky control" in search and hit Enter
3. Plugin will show up as the first on the list, click "Install Now"
4. Activate & open plugin's settings page located under the Settings menu

###  Manual installation 
1. Upload the plugin folder to the `/wp-content/plugins/` directory via ftp
2. Activate the plugin through the 'Plugins' menu in WordPress

== Frequently Asked Questions ==

= Does this plugin support multiple videos on a single page?
Yes

= Does using an iframe affect page load time?
Definitely. iframes can affect page load performance, and it is not recommended to use them if you are concerned about your site's speed.

= How do this plugin acheive lazy load?
Instead of loading the iframe of your videos on page load, it only loads the iframe's video preview image.

= Will the plugin lazy load all my existing videos after installation? 
No, you need update your video following above two methods.

= What is sticky control?
Sticky control allows you to change the position of the sticky video from the backend. The available positions are "Bottom Right," "Bottom Left," "Top Right," and "Top Left" of your window.

= Do it support single video playback if i have multiple videos on a page?
Yes, it plays only one video at a time. The previously playing video will pause if you play another video.

= How do I apply custom CSS? 
Once the plugin is installed and activated, navigate to "Settings->Lazy Load Videos & Sticky Control Settings" from your dashboard, and write the CSS rules in the code editor.

= Will the plugin support other videos?
Yes. Premium addon functionality is now included in the free plugin, with support for YouTube, Vimeo, Wistia, Dailymotion, JW Player, and self-hosted HTML5 videos.

= Do this plugin add more features in the future?
Yes, more features will be added and updated in the near future.

= Plugin not working?
Please install the latest version of this plugin. Clear the cache if you have installed any cache plugin or set up any third-party tools like Cloudflare.


== Screenshots ==
1. Frontend: Lazy load video preview and sticky playing video on the bottom right 
2. Backend: General settings
3. Backend: Manual/Guide
4. Backend: **LLVASC** icon on classical editor that help to embed shortcode on the content
5. Backend: **LLVASC** block for block editor
6. Backend: **LLVASC** block settings inspect control

== Changelog ==
= 4.0.2 =
* Improved global function prefixes for better compatibility with WordPress coding standards.
* Improved escaping and sanitization throughout the plugin.
* Updated plugin metadata and documentation.
* General maintenance and code cleanup.

= 4.0.1 =
* Improved security and input sanitization.
* Updated translation loading for modern WordPress versions.
* Added direct file access protection.
* Updated readme metadata and documentation.
* General code quality improvements.

= 4.0.0 (2026-07-12) =
* Added: Premium addon functionality merged into the free plugin.
* Added: Support for YouTube, Vimeo, Wistia, Dailymotion, JW Player, and self-hosted HTML5 videos.
* Changed: Updated the editor, shortcode output, and manual guide for the expanded video support.

= 3.0.1 (2024-11-21) =
* Conduct a comprehensive security and WordPress coding standards reviewed
* Tested compatibility with WordPress version 6.7

= 3.0.0 (2024-06-24) =
* Added: LLVASC block on block editor (Gutenberg). 
* Tested compatibility with WordPress version 6.5.4

= 2.0.2 (2023-04-18) =
* Changed: Play icon missing fixes. 
* And other minor changes and tested to WordPress version 6.2

= 2.0.1 (2020-12-14) =
* Changed: Minor update on JavaScript due to some changes by Youtube player

= 2.0.0 (2020-04-12) =
* Changed: Minor update on JavaScript due to some changes by Youtube player

= 1.0.2 (2020-01-20) =
* Changed: Minor update
* Changed: Javascript Modularization

= 1.0.1 =
* Changed: Added "LLVASC" icon on the backend editor to add a shortcode to the content
* Changed: Javascript updated
