{"id":301199,"date":"2026-05-07T09:34:29","date_gmt":"2026-05-07T09:34:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/devpress-factory-for-elementor-video-carousel-popup\/"},"modified":"2026-05-07T09:30:39","modified_gmt":"2026-05-07T09:30:39","slug":"devpress-factory-for-elementor-video-carousel-popup","status":"publish","type":"plugin","link":"https:\/\/ko.wordpress.org\/plugins\/devpress-factory-for-elementor-video-carousel-popup\/","author":23458617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.8","stable_tag":"1.2.8","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"DevPress Factory for Elementor - Video Carousel Popup","header_author":"DevPress Factory","header_description":"Adds an Elementor widget with a responsive video carousel. Thumbnails open in a smooth popup player supporting MP4 and HLS (m3u8) streaming. Fully customizable via Elementor's panel.","assets_banners_color":"ccd8e9","last_updated":"2026-05-07 09:30:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/devpress-factory-for-elementor-video-carousel-popup\/","header_author_uri":"https:\/\/www.devpressfactory.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.8":{"tag":"1.2.8","author":"devpressfactory","date":"2026-05-07 09:30:39"}},"upgrade_notice":{"1.0.0":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3525282,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3525282,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3525282,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3525282,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.8"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The video carousel displayed on the frontend with rounded card thumbnails and centered play buttons","2":"The popup player open, showing a video in 16:9 format with title and description","3":"The Elementor widget panel \u2014 Content tab with the video repeater","4":"The Elementor widget panel \u2014 Style tab showing card and play button customization options"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[786,76538,491,611,222],"plugin_category":[50],"plugin_contributors":[257748],"plugin_business_model":[],"class_list":["post-301199","plugin","type-plugin","status-publish","hentry","plugin_tags-carousel","plugin_tags-elementor","plugin_tags-popup","plugin_tags-slider","plugin_tags-video","plugin_category-media","plugin_contributors-devpressfactory","plugin_committers-devpressfactory"],"banners":{"banner":"https:\/\/ps.w.org\/devpress-factory-for-elementor-video-carousel-popup\/assets\/banner-772x250.png?rev=3525282","banner_2x":"https:\/\/ps.w.org\/devpress-factory-for-elementor-video-carousel-popup\/assets\/banner-1544x500.png?rev=3525282","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/devpress-factory-for-elementor-video-carousel-popup\/assets\/icon-128x128.jpg?rev=3525282","icon_2x":"https:\/\/ps.w.org\/devpress-factory-for-elementor-video-carousel-popup\/assets\/icon-256x256.jpg?rev=3525282","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>DevPress Factory Video Carousel Popup for Elementor<\/strong> adds a powerful, fully customizable video carousel widget to your Elementor page builder.<\/p>\n\n<p>Each slide displays a rectangular thumbnail with rounded corners and a centered play button. Clicking a card opens a smooth animated popup with a full video player \u2014 no page reloads, no redirects.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Swiper-powered carousel<\/strong> \u2014 smooth, touch-friendly, and responsive<\/li>\n<li><strong>Popup video player<\/strong> \u2014 elegant animated modal with keyboard and accessibility support<\/li>\n<li><strong>MP4 support<\/strong> \u2014 native playback in all modern browsers<\/li>\n<li><strong>HLS \/ M3U8 support<\/strong> \u2014 via HLS.js on Chrome\/Firefox; native on Safari and iOS<\/li>\n<li><strong>Fully customizable<\/strong> \u2014 border radius, play button size and color, overlay, typography, aspect ratio, popup dimensions and more<\/li>\n<li><strong>Responsive breakpoints<\/strong> \u2014 set different slides-per-view for desktop, tablet, and mobile independently<\/li>\n<li><strong>Autoplay &amp; loop<\/strong> \u2014 optional, with pause-on-hover<\/li>\n<li><strong>Navigation arrows and pagination<\/strong> \u2014 toggleable<\/li>\n<li><strong>Accessibility<\/strong> \u2014 keyboard navigation (Enter\/Space\/Esc), ARIA roles and labels<\/li>\n<li><strong>Lightweight<\/strong> \u2014 Swiper and HLS.js are loaded only on pages containing the widget<\/li>\n<li><strong>Compatible with all recent Elementor versions<\/strong> \u2014 from 2.x through the latest 3.x release<\/li>\n<\/ul>\n\n<h4>Supported Video Formats<\/h4>\n\n\n\n\n  Format\n  Support\n\n\n\n\n  MP4\n  Native \u2014 all modern browsers\n\n\n  M3U8 \/ HLS\n  HLS.js on Chrome\/Firefox; native on Safari\/iOS\n\n\n  WebM\n  Native \u2014 all modern browsers\n\n\n\n\n<h4>How to Use<\/h4>\n\n<ol>\n<li>Install and activate the plugin<\/li>\n<li>Open any page in Elementor Editor<\/li>\n<li>Search for <strong>\"Video Carousel Popup\"<\/strong> in the widget panel<\/li>\n<li>Drag it onto your page<\/li>\n<li>Add video items via the repeater: title, video URL, thumbnail image, and optional description<\/li>\n<li>Customize appearance from the Style tab<\/li>\n<li>Save and publish<\/li>\n<\/ol>\n\n<h4>Third-Party Libraries<\/h4>\n\n<p>This plugin loads the following open-source libraries via CDN (jsDelivr), only when the widget is present on a page:<\/p>\n\n<ul>\n<li><strong>Swiper<\/strong> (v11) \u2014 MIT License \u2014 https:\/\/swiperjs.com<\/li>\n<li><strong>HLS.js<\/strong> (latest) \u2014 Apache 2.0 License \u2014 https:\/\/github.com\/video-dev\/hls.js<\/li>\n<\/ul>\n\n<p>No data is sent to external services. The CDN requests are standard asset deliveries with no tracking.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin does not collect, store, or transmit any personal data.<\/p>\n\n<p>When the widget is present on a page, assets (Swiper.js and HLS.js) are loaded from the jsDelivr CDN (jsdelivr.net). Standard server-side access logs may be recorded by jsDelivr. Please refer to jsDelivr's privacy policy at https:\/\/www.jsdelivr.com\/terms\/privacy-policy-jsdelivr-com for details.<\/p>\n\n<p>No other third-party services are used.<\/p>\n\n<!--section=installation-->\n<h4>From the WordPress Admin (recommended)<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Upload the <code>elementor-video-carousel.zip<\/code> file<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Manual Installation via FTP<\/h4>\n\n<ol>\n<li>Extract the plugin ZIP<\/li>\n<li>Upload the <code>elementor-video-carousel<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.0 or higher<\/li>\n<li>Elementor (free) 2.0.0 or higher<\/li>\n<li>PHP 7.2 or higher<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20elementor%20free%3F\"><h3>Does this work with Elementor Free?<\/h3><\/dt>\n<dd><p>Yes. This plugin requires only the free version of Elementor. Elementor Pro is not needed.<\/p><\/dd>\n<dt id=\"which%20elementor%20versions%20are%20supported%3F\"><h3>Which Elementor versions are supported?<\/h3><\/dt>\n<dd><p>The plugin is compatible with Elementor from version 2.0.0 through the latest release (3.x). It uses a dual hook registration pattern to support both old and new Elementor APIs.<\/p><\/dd>\n<dt id=\"can%20i%20use%20hls%20%2F%20m3u8%20streaming%20videos%3F\"><h3>Can I use HLS \/ M3U8 streaming videos?<\/h3><\/dt>\n<dd><p>Yes. HLS streams (.m3u8) are supported via HLS.js on Chrome, Firefox, and Edge. Safari and iOS handle HLS natively without any library. The correct playback method is detected automatically.<\/p><\/dd>\n<dt id=\"where%20is%20the%20widget%20in%20the%20elementor%20panel%3F\"><h3>Where is the widget in the Elementor panel?<\/h3><\/dt>\n<dd><p>Search for \"Video Carousel Popup\" in the widget search box, or look in the <strong>Video Carousel<\/strong> category or the <strong>General<\/strong> category.<\/p><\/dd>\n<dt id=\"can%20i%20set%20different%20numbers%20of%20slides%20for%20mobile%2C%20tablet%2C%20and%20desktop%3F\"><h3>Can I set different numbers of slides for mobile, tablet, and desktop?<\/h3><\/dt>\n<dd><p>Yes. The Content tab \u2192 Carousel Settings section has independent slide-per-view controls for each breakpoint.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20thumbnail%20aspect%20ratio%3F\"><h3>Can I change the thumbnail aspect ratio?<\/h3><\/dt>\n<dd><p>Yes. You can choose from 16:9, 4:3, 3:2, 21:9, and 1:1 presets from the Card Settings section.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20border%20radius%20of%20the%20thumbnails%3F\"><h3>Can I change the border radius of the thumbnails?<\/h3><\/dt>\n<dd><p>Yes. The Style \u2192 Card Style section includes a full border-radius control (all four corners, in px or %).<\/p><\/dd>\n<dt id=\"the%20popup%20does%20not%20open%20%E2%80%94%20what%20should%20i%20check%3F\"><h3>The popup does not open \u2014 what should I check?<\/h3><\/dt>\n<dd><p>Make sure the <strong>Video URL<\/strong> field in the repeater item is filled in with a valid, publicly accessible URL. For HLS streams, also ensure the video server allows CORS requests from your domain.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20slow%20down%20my%20site%3F\"><h3>Does the plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. Swiper.js and HLS.js are loaded via CDN only on pages that contain the widget. If the widget is not present on a page, no extra scripts are loaded.<\/p><\/dd>\n<dt id=\"is%20the%20popup%20accessible%3F\"><h3>Is the popup accessible?<\/h3><\/dt>\n<dd><p>Yes. The popup supports keyboard navigation (Enter\/Space to open, Escape to close), includes ARIA <code>role=\"dialog\"<\/code> and <code>aria-modal=\"true\"<\/code> attributes, and manages focus correctly.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Fix: Prevented frontend JavaScript errors when Elementor hooks are not available yet by waiting for the Elementor frontend init event and checking hooks.addAction before using it.<\/li>\n<li>Fix: Restored embedded video carousel loading on pages where Elementor initializes asynchronously.<\/li>\n<li>Improvement: Translated Elementor user-facing labels, descriptions, ARIA labels, and JavaScript accessibility strings to English for WordPress.org compliance.<\/li>\n<li>Maintenance: Updated plugin version, stable tag, and documentation references to 1.2.8.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Fix: Text Domain updated to match plugin slug (devpress-factory-for-elementor-video-carousel-popup) in all files<\/li>\n<li>Fix: Escaped $aria_label output correctly with esc_attr()<\/li>\n<li>Rename: Plugin renamed to \"DevPress Factory for Elementor - Video Carousel Popup\"<\/li>\n<li>Rename: Slug updated to devpress-factory-for-elementor-video-carousel-popup<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Fix: Plugin slug renamed to devpress-factory-video-carousel (no longer starts with reserved term \"elementor\")<\/li>\n<li>Fix: translators comments now placed immediately before esc_html__() calls as required by PHPCS<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fix: Removed CDN dependencies \u2014 Swiper and HLS.js are now bundled locally (WordPress.org requirement)<\/li>\n<li>Fix: Added escaping functions on all output (WordPress security standards)<\/li>\n<li>Fix: Added translators comments on all sprintf() i18n strings<\/li>\n<li>Fix: Created languages\/ folder (Domain Path header)<\/li>\n<li>Fix: Reduced tags to 5 (WordPress.org limit)<\/li>\n<li>Fix: Updated \"Tested up to\" to WordPress 6.9<\/li>\n<li>Fix: Plugin slug no longer starts with reserved term \"elementor\"<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Columns selector \u2014 choose 1, 2, 3, or 4 visible cards on desktop; 1, 2, or 3 on tablet; 1 or 2 on mobile<\/li>\n<li>New: Scroll behavior control \u2014 advance 1 video at a time or scroll a full group (matching the visible column count)<\/li>\n<li>Improved: column controls now use a clear dropdown (Select) instead of a number input, with per-device labels<\/li>\n<li>Updated: Swiper breakpoints now correctly propagate <code>slidesPerGroup<\/code> per breakpoint<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Swiper-based responsive carousel with configurable breakpoints<\/li>\n<li>Popup video player with MP4 and HLS\/m3u8 support via HLS.js<\/li>\n<li>Full Elementor panel integration: 15+ controls across Content and Style tabs<\/li>\n<li>Accessible: keyboard navigation, ARIA attributes, ESC to close<\/li>\n<li>Compatible with Elementor 2.0.0 through 3.x<\/li>\n<\/ul>","raw_excerpt":"A responsive Elementor video carousel widget. Click any thumbnail to open an elegant popup player \u2014 supports MP4 and HLS (m3u8) streaming.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/301199","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=301199"}],"author":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devpressfactory"}],"wp:attachment":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=301199"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=301199"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=301199"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=301199"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=301199"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=301199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}