{"id":293080,"date":"2026-04-05T14:28:29","date_gmt":"2026-04-05T14:28:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/elegant-popup\/"},"modified":"2026-04-05T14:28:26","modified_gmt":"2026-04-05T14:28:26","slug":"devpressfactory-elegant-popup","status":"publish","type":"plugin","link":"https:\/\/en-gb.wordpress.org\/plugins\/devpressfactory-elegant-popup\/","author":23458617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.0","stable_tag":"2.0.0","tested":"6.9.4","requires":"4.9","requires_php":"7.0","requires_plugins":null,"header_name":"DevPress Factory Elegant Popup","header_author":"DevPress Factory","header_description":"Crea popup eleganti e responsivi con supporto a foto, video, testo, embed e streaming m3u8. Compatibile con Gutenberg, Elementor, WPBakery e Visual Composer.","assets_banners_color":"c8c8c8","last_updated":"2026-04-05 14:28:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"devpressfactory","date":"2026-04-05 14:28:26"}},"upgrade_notice":{"2.0.0":"<p>Major update with Elementor, Gutenberg, and WPBakery integrations, 5-language support, image link feature, and critical bug fixes for content saving. Upgrade recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3499172,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3499172,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3499172,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3499172,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"elegant-popup\/trigger":{"name":"elegant-popup\/trigger","title":"Elegant Popup Trigger"}},"tagged_versions":["2.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Admin popup list \u2014 overview of all created popups with status, type, and trigger info","2":"Popup editor \u2014 content, dimensions, style, trigger and page visibility settings","3":"Style panel \u2014 color pickers, Google Fonts selector with live preview","4":"Settings page \u2014 language selector and integration status dashboard","5":"Frontend popup \u2014 elegant modal with overlay and smooth animation","6":"Image popup with link \u2014 image content type with optional clickable URL","7":"Elementor widget \u2014 Elegant Popup widget in the Elementor panel"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[76538,613,8773,491,40266],"plugin_category":[],"plugin_contributors":[257748],"plugin_business_model":[],"class_list":["post-293080","plugin","type-plugin","status-publish","hentry","plugin_tags-elementor","plugin_tags-modal","plugin_tags-overlay","plugin_tags-popup","plugin_tags-video-popup","plugin_contributors-devpressfactory","plugin_committers-devpressfactory"],"banners":{"banner":"https:\/\/ps.w.org\/devpressfactory-elegant-popup\/assets\/banner-772x250.png?rev=3499172","banner_2x":"https:\/\/ps.w.org\/devpressfactory-elegant-popup\/assets\/banner-1544x500.png?rev=3499172","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/devpressfactory-elegant-popup\/assets\/icon-128x128.png?rev=3499172","icon_2x":"https:\/\/ps.w.org\/devpressfactory-elegant-popup\/assets\/icon-256x256.png?rev=3499172","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Elegant Popup<\/strong> is a lightweight yet powerful popup plugin for WordPress. It lets you create unlimited popups with a minimal, modern aesthetic \u2014 no bloat, no page builder lock-in.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Unlimited popups<\/strong> \u2014 create as many as you need, each fully independent<\/li>\n<li><strong>5 content types<\/strong> \u2014 Rich Text\/HTML, Image (JPG\/PNG\/WebP), MP4 Video, HLS Streaming (.m3u8), and Embed\/iFrame codes<\/li>\n<li><strong>Image link<\/strong> \u2014 optionally wrap an image with a clickable URL (opens in same tab or new tab)<\/li>\n<li><strong>Responsive<\/strong> \u2014 separate width\/height settings for desktop and mobile using any CSS unit (px, %, vw, vh, rem)<\/li>\n<li><strong>Full style control<\/strong> \u2014 background color, text color, overlay color (supports rgba), border radius<\/li>\n<li><strong>30+ Google Fonts<\/strong> \u2014 choose from a dropdown with live preview, defaults to Titillium Web<\/li>\n<li><strong>Flexible triggers<\/strong> \u2014 auto-open with configurable delay (ms), or manual via shortcode\/button\/JS API<\/li>\n<li><strong>Auto-close<\/strong> \u2014 optional timer with animated progress bar<\/li>\n<li><strong>Dismiss options<\/strong> \u2014 closable via X button and\/or by clicking outside the popup (both configurable)<\/li>\n<li><strong>Page targeting<\/strong> \u2014 show on all pages or specific pages\/posts by ID<\/li>\n<li><strong>HLS streaming<\/strong> \u2014 live and VOD streaming via hls.js with native fallback<\/li>\n<li><strong>5 languages<\/strong> \u2014 Italian, English, Spanish, German, French (switchable from Settings)<\/li>\n<\/ul>\n\n<h4>Page Builder Integrations<\/h4>\n\n<ul>\n<li><strong>Gutenberg<\/strong> \u2014 native block \"Elegant Popup\" in the block inserter (WP 5.0+, no build step required)<\/li>\n<li><strong>Elementor<\/strong> \u2014 native widget in the General panel with full style controls (padding, typography, colors, border radius)<\/li>\n<li><strong>WPBakery Page Builder<\/strong> \u2014 native element in the Content Elements picker<\/li>\n<li><strong>Classic Visual Composer<\/strong> \u2014 supported via <code>vc_map()<\/code>, backwards compatible<\/li>\n<li><strong>Classic Editor<\/strong> \u2014 shortcode reference metabox in the post\/page sidebar<\/li>\n<\/ul>\n\n<h4>Shortcode Usage<\/h4>\n\n<p>Basic trigger button:\n    [elegant_popup id=\"1\"]<\/p>\n\n<p>Custom label and CSS class:\n    [elegant_popup id=\"1\" label=\"Watch Video\" class=\"my-class\"]<\/p>\n\n<h4>HTML Attribute<\/h4>\n\n<p>Add <code>data-ep-open=\"ID\"<\/code> to any HTML element:\n    <a href=\"#\">Open Popup<\/a>\n    Watch Now<\/p>\n\n<h4>JavaScript API<\/h4>\n\n<pre><code>ElegantPopup.open(1);   \/\/ Open popup with ID 1\nElegantPopup.close(1);  \/\/ Close popup with ID 1\n<\/code><\/pre>\n\n<h4>Supported Content Types<\/h4>\n\n<ul>\n<li><strong>Text \/ HTML<\/strong> \u2014 Full WordPress rich text editor with media upload support<\/li>\n<li><strong>Image<\/strong> \u2014 JPG, PNG, WebP with optional clickable link<\/li>\n<li><strong>MP4 Video<\/strong> \u2014 HTML5 video with media library browser<\/li>\n<li><strong>HLS Stream<\/strong> \u2014 .m3u8 manifests, works with CDN, live streams, and VOD via hls.js<\/li>\n<li><strong>Embed \/ iFrame<\/strong> \u2014 YouTube, Vimeo, Google Maps, contact forms, and any iframe code<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the following external services:<\/p>\n\n<h4>Google Fonts (fonts.googleapis.com)<\/h4>\n\n<p>When a popup is displayed on the frontend, this plugin loads the selected Google Font from Google's servers to render custom typography.\nData sent: the font family name and the visitor's IP address are transmitted to Google's servers on each page load where an active popup with a custom font is shown.\n* Terms of Service: https:\/\/developers.google.com\/fonts\/faq\/privacy\n* Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<h4>hls.js CDN (cdn.jsdelivr.net)<\/h4>\n\n<p>When a popup of type \"HLS Stream\" is used, the plugin loads the hls.js library from the jsDelivr CDN. This is required to play HLS (.m3u8) video streams in browsers without native HLS support.\nData sent: the visitor's IP address is transmitted to jsDelivr's servers when the library is loaded.\n* Terms of Service: https:\/\/www.jsdelivr.com\/terms\n* Privacy Policy: https:\/\/www.jsdelivr.com\/privacy-policy-jsdelivr-net<\/p>\n\n<p>Note: these external connections only occur when a popup with a Google Font or an HLS video stream is displayed. If no such popups are active on a page, no data is transmitted to these services.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>Elegant Popup does not collect, store, or transmit any personal data from site visitors. No cookies are set by this plugin. No external services are contacted except Google Fonts (loaded from fonts.googleapis.com for font rendering in admin and frontend) and hls.js CDN (loaded from cdn.jsdelivr.net for HLS video streaming support).<\/p>\n\n<p>If you use HLS streaming or Google Fonts, your visitors' IP addresses may be processed by Google and jsDelivr respectively, subject to their own privacy policies.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>elegant-popup<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n<li>Navigate to <strong>Elegant Popup<\/strong> in the admin menu<\/li>\n<li>Click <strong>+ Add New<\/strong> to create your first popup<\/li>\n<\/ol>\n\n<p><strong>Updating:<\/strong> deactivate the old version, upload the new ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, then reactivate. Your popup data is preserved.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20without%20elementor%20or%20wpbakery%3F\"><h3>Does it work without Elementor or WPBakery?<\/h3><\/dt>\n<dd><p>Yes. The plugin works standalone with WordPress's Classic Editor and Gutenberg. Elementor and WPBakery integrations are optional and activate automatically if those plugins are present.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20popup%20only%20on%20specific%20pages%3F\"><h3>Can I show a popup only on specific pages?<\/h3><\/dt>\n<dd><p>Yes. In the <strong>Page Visibility<\/strong> section of each popup, choose \"Specific pages\" and enter the post\/page IDs separated by commas. You can find a page's ID in the URL when editing it in wp-admin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20open%20a%20popup%20manually%20%28on%20button%20click%29%3F\"><h3>How do I open a popup manually (on button click)?<\/h3><\/dt>\n<dd><p>Set the trigger type to \"Manual\" and use any of these methods:\n* Shortcode: <code>[elegant_popup id=\"1\"]<\/code>\n* HTML attribute: <code>data-ep-open=\"1\"<\/code> on any element\n* JavaScript: <code>ElegantPopup.open(1)<\/code><\/p><\/dd>\n<dt id=\"does%20it%20support%20hls%20%2F%20live%20streaming%3F\"><h3>Does it support HLS \/ live streaming?<\/h3><\/dt>\n<dd><p>Yes. Select the \"HLS Stream\" content type and paste your <code>.m3u8<\/code> manifest URL. The plugin uses hls.js with automatic native HLS fallback for Safari\/iOS.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20caching%20plugins%3F\"><h3>Is the plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. All popup rendering happens server-side in the footer. Popup HTML is included in the page output, so it works correctly with page caching. The trigger JavaScript is loaded asynchronously.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20link%20to%20an%20image%20popup%3F\"><h3>Can I add a link to an image popup?<\/h3><\/dt>\n<dd><p>Yes. When the content type is set to \"Image\", an optional <strong>Link URL<\/strong> field appears. If filled, the image becomes a clickable link. You can also choose whether it opens in the same tab or a new tab.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20admin%20language%3F\"><h3>How do I change the admin language?<\/h3><\/dt>\n<dd><p>Go to <strong>Elegant Popup \u2192 Settings<\/strong> and select your preferred language from the visual language picker. Available languages: Italian, English, Spanish, German, French.<\/p><\/dd>\n<dt id=\"will%20my%20popups%20be%20lost%20if%20i%20deactivate%20the%20plugin%3F\"><h3>Will my popups be lost if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>No. Popup data is stored in a dedicated database table and is not deleted on deactivation \u2014 only on uninstall (if you choose to remove all data).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added: Elementor widget integration with full style controls<\/li>\n<li>Added: Gutenberg native block (no build step required)<\/li>\n<li>Added: WPBakery Page Builder \/ Visual Composer integration<\/li>\n<li>Added: Classic Editor sidebar metabox with shortcode reference<\/li>\n<li>Added: 5-language support (IT, EN, ES, DE, FR) with in-admin language switcher<\/li>\n<li>Added: Image link \u2014 optional clickable URL on image popups<\/li>\n<li>Added: Separate content collection per type to fix TinyMCE save issues<\/li>\n<li>Added: <code>wp_unslash()<\/code> on all POST data for correct HTML entity handling<\/li>\n<li>Added: Auto table creation on <code>plugins_loaded<\/code> \u2014 no re-activation needed after update<\/li>\n<li>Added: <code>ensure_table()<\/code> defensive check before every DB query<\/li>\n<li>Fixed: <code>dbDelta()<\/code> SQL formatting for reliable table creation across all MySQL versions<\/li>\n<li>Fixed: PHP 5.6 compatibility \u2014 removed all <code>??<\/code> null coalescing operators<\/li>\n<li>Fixed: PHP 5.6 compatibility \u2014 replaced anonymous functions with explicit loops<\/li>\n<li>Fixed: TinyMCE content not saving \u2014 removed double-editor conflict<\/li>\n<li>Fixed: Image content stored as JSON to support optional link alongside URL<\/li>\n<li>Improved: Error feedback on save failure with redirect to edit page<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Unlimited popups with text, image, MP4, HLS, and embed content types<\/li>\n<li>Desktop and mobile dimension controls<\/li>\n<li>Google Fonts selector with live preview<\/li>\n<li>Auto-open trigger with delay, manual trigger via shortcode\/data attribute\/JS<\/li>\n<li>Auto-close with animated progress bar<\/li>\n<li>Configurable close behavior (X button, overlay click, ESC key)<\/li>\n<li>Page visibility rules (all pages or specific page IDs)<\/li>\n<li>Full color customization including rgba overlay<\/li>\n<\/ul>","raw_excerpt":"Elegant, responsive popups with text, images, MP4\/HLS video, and embed support. Compatible with Gutenberg, Elementor, and WPBakery.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/293080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=293080"}],"author":[{"embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/devpressfactory"}],"wp:attachment":[{"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=293080"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=293080"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=293080"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=293080"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=293080"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/en-gb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=293080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}