{"id":299528,"date":"2026-07-07T03:52:05","date_gmt":"2026-07-07T03:52:05","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/elements-power-pack\/"},"modified":"2026-09-29T18:45:26","modified_gmt":"2026-09-29T18:45:26","slug":"admore-widgets-suite","status":"publish","type":"plugin","link":"https:\/\/gax.wordpress.org\/plugins\/admore-widgets-suite\/","author":23470799,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.4","stable_tag":"1.0.4","tested":"7.1.2","requires":"6.3","requires_php":"8.0","requires_plugins":null,"header_name":"Essential Pro Pack for Elementor","header_author":"AdMore Media","header_description":"51 powerful Elementor widgets by AdMore Media, including Theme Builder widgets (Site Logo, Nav Menu, Post Title, Post Content, Post Featured Image, Post Meta, Post Navigation, Archive Title, Archive Description), Popup Builder (Form Submit, Add to Cart triggers, WooCommerce conditions), Icon Box, Lottie, Pie Chart, WooCommerce Products, and more.","assets_banners_color":"9a99aa","last_updated":"2026-09-29 18:45:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/admore-widgets-suite","header_author_uri":"https:\/\/admoremedia.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":288,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"admoremedia","date":"2026-09-29 18:45:26","revision":3719639}},"upgrade_notice":{"1.0.4":"<p>Important security and bug-fix release (Advanced Form, popups, Theme Builder, Visibility Conditions). Update recommended. If you use a header\/footer template, check your pages once: the theme&#039;s own page layout is now kept.<\/p>","1.0.3":"<p>Security and compliance update \u2014 removed all arbitrary code input, fixed PHP syntax errors, hardened inline-script output, and documented all external services.<\/p>","1.0.2":"<p>Security and compliance update \u2014 all WordPress.org review issues addressed.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3598476,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3598476,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3601031,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":499},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3601031,"resolution":"772x250","location":"assets","locale":"","width":771,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Elementor editor with Fancy Heading widget \u2014 gradient style, separator, and sub-heading controls panel.","2":"Post Grid widget \u2014 front-end output with category filter tabs, responsive card grid, and Read More buttons.","3":"Admin Widget Manager \u2014 enable\/disable all 51 widgets individually by group (Core, WooCommerce, Theme Builder)."}},"plugin_section":[],"plugin_tags":[76538,145606,1084,2486,139733],"plugin_category":[43],"plugin_contributors":[270404],"plugin_business_model":[],"class_list":["post-299528","plugin","type-plugin","status-publish","hentry","plugin_tags-elementor","plugin_tags-elementor-widgets","plugin_tags-page-builder","plugin_tags-popup-builder","plugin_tags-theme-builder","plugin_category-customization","plugin_contributors-admoremedia","plugin_committers-admoremedia"],"banners":{"banner":"https:\/\/ps.w.org\/admore-widgets-suite\/assets\/banner-772x250.png?rev=3601031","banner_2x":"https:\/\/ps.w.org\/admore-widgets-suite\/assets\/banner-1544x500.png?rev=3601031","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/admore-widgets-suite\/assets\/icon-128x128.png?rev=3598476","icon_2x":"https:\/\/ps.w.org\/admore-widgets-suite\/assets\/icon-256x256.png?rev=3598476","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Essential Pro Pack for Elementor adds 51 hand-crafted, performance-optimised widgets to\nElementor. This plugin is not affiliated with, endorsed by, or associated with Elementor Ltd.<\/p>\n\n<ul>\n<li><strong>Advanced Button<\/strong> \u2014 Icon + text button with size presets (XS\u2013XL), CSS ID, icon hover animations (slide-right, grow, spin, bounce), hover effects, and entrance animation.<\/li>\n<li><strong>FAQ Pro<\/strong> \u2014 Accordion FAQ with tabbed categories, live search, expand\/collapse-all button, per-item icons, question\/answer\/toggle-all styling, schema markup, and keyboard navigation.<\/li>\n<li><strong>Advanced Form<\/strong> \u2014 Multi-step form builder with label position, focus ring styling, conditional logic, AJAX submission, email notifications, webhook dispatch, file uploads, button icon, submit alignment, and DB entry storage.<\/li>\n<li><strong>Mega Menu<\/strong> \u2014 Full-width mega menu panel with Elementor template support, full keyboard navigation (Tab open\/close, Arrow keys, Escape), focus trap on mobile, and responsive accordion fallback.<\/li>\n<li><strong>Advanced Slider<\/strong> \u2014 Swiper-powered content slider with custom\/template slides, keyboard navigation, autoplay, coverflow\/fade\/slide effects, and responsive breakpoints.<\/li>\n<li><strong>Advanced Tabs<\/strong> \u2014 Horizontal\/vertical tabs with content transition animations (fade, slide-up, slide-left) and full typography controls.<\/li>\n<li><strong>Advanced Search<\/strong> \u2014 Live AJAX search with category filter dropdown, result templates, rate limiting, nonce refresh, and debounced input.<\/li>\n<li><strong>Breadcrumbs<\/strong> \u2014 Schema-compatible breadcrumb trail with custom separator, typography, and color controls.<\/li>\n<li><strong>Pricing Table<\/strong> \u2014 Comparison pricing with monthly\/yearly toggle, popular badge, feature tooltips, card hover effects (lift, glow, zoom, scale), and popular-card highlight.<\/li>\n<li><strong>Gallery Pro<\/strong> \u2014 Filterable image\/video gallery with masonry\/grid\/justified layouts, gradient overlay, caption animations (fade-up, fade-down, zoom), custom lightbox icon, load-more pagination, and hover effects.<\/li>\n<li><strong>Post Grid<\/strong> \u2014 Dynamic post grid\/list\/carousel with category\/tag filters, conditional image hover zoom, overlay color, read-more styling, meta typography, badge radius, and pagination.<\/li>\n<li><strong>Off-Canvas Panel<\/strong> \u2014 Slide-in drawer panel from any side with Elementor template support, customizable trigger button, overlay backdrop, smooth animations, auto-open option, and scroll lock.<\/li>\n<li><strong>Stats Counter PRO<\/strong> \u2014 Animated number counters with scroll-trigger viewport detection, prefix\/suffix, easing functions, multiple counter repeater, icon support, and thousand separators.<\/li>\n<li><strong>Before\/After Image<\/strong> \u2014 Interactive image comparison slider with horizontal\/vertical orientations, draggable handle, customizable labels, initial position control, and touch\/keyboard support.<\/li>\n<li><strong>Logo Grid<\/strong> \u2014 Client logo showcase in grid or carousel mode with grayscale-to-color hover effects, Swiper carousel, lazy loading, responsive columns, and infinite loop option.<\/li>\n<li><strong>Team Member<\/strong> \u2014 Showcase team members with photo, name, designation, bio, and social links in 4 card styles: Classic, Modern (horizontal), Overlay (hover reveal), and Minimal.<\/li>\n<li><strong>Icon Box<\/strong> \u2014 Icon + title + description with top\/left\/right icon position, hover animation, link-wraps whole box or title only, and full background\/border\/shadow styling.<\/li>\n<li><strong>Image Box<\/strong> \u2014 Image + title + description with top\/left\/right image position, hover effects (zoom, zoom-out, lift, greyscale), link wrapping, and full background\/border\/shadow controls.<\/li>\n<li><strong>Timeline<\/strong> \u2014 Vertical repeater timeline with date, title, description, and icon per item; left, right, or alternating card layout; staggered scroll-triggered fade-in animation.<\/li>\n<li><strong>Fancy Heading<\/strong> \u2014 Decorative headings with prefix\/suffix text, gradient or highlight fills, multiple font weight and letter-spacing controls, and animated entrance.<\/li>\n<li><strong>Image Carousel<\/strong> \u2014 Swiper-powered image carousel with lightbox support, zoom hover, responsive breakpoints, arrows, dots, autoplay, and per-slide caption.<\/li>\n<li><strong>Lottie<\/strong> \u2014 Renders any Lottie JSON animation with autoplay, loop, speed, direction, hover-trigger or scroll-trigger playback, and click-to-play mode.<\/li>\n<li><strong>Pie Chart<\/strong> \u2014 Animated SVG pie\/donut chart with IntersectionObserver trigger, percentage label, custom stroke color, track color, stroke width, and typography controls.<\/li>\n<li><strong>Author Box<\/strong> \u2014 Displays the post author avatar, name, bio, and social links; show\/hide avatar, configurable avatar size, name tag, bio typography, and card background\/border\/padding.<\/li>\n<li><strong>Related Posts<\/strong> \u2014 Outputs related posts by category or tag in a grid with thumbnail, title, date, and read-more link; configurable post count, columns, and full card style controls.<\/li>\n<li><strong>Google Map<\/strong> \u2014 Embeds a Google Maps iframe by address or coordinates with configurable zoom and height; style controls for border-radius and box shadow.<\/li>\n<li><strong>WooCommerce Products<\/strong> \u2014 Displays WooCommerce products in a grid with filtering by category, tag, or SKU list; configurable columns, show\/hide price\/rating\/add-to-cart; full card and button style controls.<\/li>\n<li><strong>Post Comments<\/strong> \u2014 Renders the native WordPress comment list and form for the current post with configurable section title and full typography\/color controls.<\/li>\n<li><strong>WooCommerce Mini Cart<\/strong> \u2014 Cart icon with live item-count badge and flyout dropdown showing cart items, subtotals, and checkout\/cart links. Click or hover trigger; AJAX fragment refresh keeps count in sync after add-to-cart. Ideal for Theme Builder headers.<\/li>\n<li><strong>WooCommerce Add to Cart<\/strong> \u2014 Standalone Add to Cart button with optional quantity input for any product (current page or specific Product ID). Hover state, typography, padding, radius, border, and quantity input style controls \u2014 perfect for landing pages.<\/li>\n<li><strong>Animated Heading<\/strong> \u2014 Eye-catching headings with rotating\/typing text effects, configurable animation speed, and highlight styling.<\/li>\n<li><strong>Countdown Timer<\/strong> \u2014 Animated countdown to a specific date\/time with days, hours, minutes, seconds; expiry action (hide, redirect, show message).<\/li>\n<li><strong>Flip Box<\/strong> \u2014 3D flip card with front\/back content areas, flip direction (left, right, up, down), and configurable flip trigger (hover\/click).<\/li>\n<li><strong>Hotspot<\/strong> \u2014 Image with interactive tooltip markers at custom positions; pulse animation, tooltip content with text\/icon, and responsive repositioning.<\/li>\n<li><strong>Price List<\/strong> \u2014 Menu-style price list with item image, title, description, and price; separator style and per-item link support.<\/li>\n<li><strong>Progress Bar<\/strong> \u2014 Animated progress\/skill bars with percentage label, stripe animation, custom colors, and multiple bar styles.<\/li>\n<li><strong>Social Icons<\/strong> \u2014 Social media icon set with brand colors, custom shapes (rounded\/square\/circle), hover effects, and link targets.<\/li>\n<li><strong>Testimonial<\/strong> \u2014 Client testimonial card with quote, author name, designation, photo, and star rating; multiple layout skins.<\/li>\n<li><strong>Video<\/strong> \u2014 Self-hosted or embed (YouTube\/Vimeo) video player with custom poster image, play button overlay, lazy loading, and lightbox option.<\/li>\n<\/ul>\n\n<p><strong>Theme Builder widgets<\/strong> (for custom headers, footers, single and archive templates):<\/p>\n\n<ul>\n<li><strong>Site Logo<\/strong> \u2014 Site logo from the Customizer or a custom image, with link, width, opacity and CSS filter controls.<\/li>\n<li><strong>Nav Menu<\/strong> \u2014 WordPress navigation menu, horizontal or vertical, dropdowns on hover and a hamburger menu on mobile.<\/li>\n<li><strong>Site Title<\/strong> \u2014 Site name (from Settings \u2192 General) with home link, HTML tag and typography controls.<\/li>\n<li><strong>Site Tagline<\/strong> \u2014 Site tagline (from Settings \u2192 General) with HTML tag and typography controls.<\/li>\n<li><strong>Post Title<\/strong> \u2014 Current post title with HTML tag selector, optional permalink and typography controls.<\/li>\n<li><strong>Post Content<\/strong> \u2014 The content of the current post or page, for single-post templates.<\/li>\n<li><strong>Post Featured Image<\/strong> \u2014 Current post featured image with size picker, link, border radius, shadow and hover filters.<\/li>\n<li><strong>Post Excerpt<\/strong> \u2014 Post excerpt with a word limit and an optional Read More link.<\/li>\n<li><strong>Post Meta<\/strong> \u2014 Date, modified date, author, categories, tags, comments, reading time or a custom field, in any order.<\/li>\n<li><strong>Archive Title<\/strong> \u2014 Category, tag, author or date archive title with an optional type prefix.<\/li>\n<li><strong>Archive Description<\/strong> \u2014 Category \/ tag description for archive templates.<\/li>\n<li><strong>Post Navigation<\/strong> \u2014 Previous \/ next post links with labels, titles, arrows and full style controls.<\/li>\n<\/ul>\n\n<h4>Performance<\/h4>\n\n<ul>\n<li>Per-widget CSS\/JS: each widget's assets are only loaded when that widget is\npresent on the page \u2014 zero overhead on pages with no EPP widgets.<\/li>\n<li>Global assets load only on Elementor-powered pages, never on plain WordPress pages.<\/li>\n<li>Form submissions are rate-limited to 5 per IP per 60 seconds.<\/li>\n<\/ul>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>All inputs sanitised and validated before use.<\/li>\n<li>Form settings (recipients, webhook URL, allowed file types) are read on the server and never sent to visitors' browsers.<\/li>\n<li>Nonce verification on every AJAX request.<\/li>\n<li>Nonce auto-refresh for long-lived cached pages (forms, live search, post grid, WooCommerce products).<\/li>\n<li>Capability checks on all admin actions; popups and Theme Builder templates can only be managed by administrators.<\/li>\n<li>Visibility Conditions remove hidden elements from the page HTML entirely.<\/li>\n<li>Import\/export uses JSON with full sanitisation pass; the CAPTCHA secret key is never exported.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p><strong>Google Maps<\/strong> (Google Map widget)\nThis plugin embeds Google Maps iframes via the Google Maps Embed API when the Google Map widget is used on a page. The user's browser makes a request to <code>https:\/\/www.google.com\/maps\/embed\/v1\/<\/code> to display the map. No data is sent from the server; the iframe is loaded client-side by the visitor's browser.\n- Service: Google Maps Embed API\n- When: Only when the Google Map widget is present on a page and viewed in a browser.\n- Data sent: The address or coordinates configured in the widget (embedded in the iframe URL).\n- Terms of Service: https:\/\/developers.google.com\/maps\/terms\n- Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Google reCAPTCHA<\/strong> (Advanced Form widget \u2014 optional)\nWhen a site owner configures Google reCAPTCHA v2 or v3 in the plugin settings, the reCAPTCHA script is loaded from Google's servers and the visitor's CAPTCHA token is verified server-side.\n- Service: Google reCAPTCHA API\n- When: Only when reCAPTCHA is enabled in plugin settings and the Advanced Form widget is on the page.\n- Data sent: The visitor's CAPTCHA response token and IP address are sent to <code>https:\/\/www.google.com\/recaptcha\/api\/siteverify<\/code> for verification.\n- Terms of Service: https:\/\/policies.google.com\/terms\n- Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>hCaptcha<\/strong> (Advanced Form widget \u2014 optional)\nWhen a site owner configures hCaptcha in the plugin settings, CAPTCHA tokens are verified via the hCaptcha API.\n- Service: hCaptcha\n- When: Only when hCaptcha is enabled in plugin settings and the Advanced Form widget is on the page.\n- Data sent: The visitor's CAPTCHA response token and IP address are sent to <code>https:\/\/hcaptcha.com\/siteverify<\/code> for verification.\n- Terms of Service: https:\/\/www.hcaptcha.com\/terms\n- Privacy Policy: https:\/\/www.hcaptcha.com\/privacy<\/p>\n\n<p><strong>Gravatar<\/strong> (Author Box, Post Comments, Post Grid widgets and the Author Avatar dynamic tag)\nThis plugin connects to Gravatar to display author and commenter avatars. It uses WordPress core's <code>get_avatar()<\/code> \/ <code>get_avatar_url()<\/code> functions, which build an image URL on the Gravatar service from a hash of the user's email address. The visitor's browser then loads the avatar image directly from Gravatar.\n- Service: Gravatar (operated by Automattic)\n- When: Every time a page is loaded that shows an avatar \u2014 i.e. the Author Box, Post Comments or Post Grid (author meta) widgets, or the Author Avatar dynamic tag \u2014 and no custom\/local avatar is set.\n- Data sent: A hash of the user's email address (embedded in the avatar image URL) and the visitor's IP address (sent by the browser when it requests the image from <code>https:\/\/secure.gravatar.com\/<\/code>).\n- Terms of Service: https:\/\/wordpress.com\/tos\/\n- Privacy Policy: https:\/\/automattic.com\/privacy\/<\/p>\n\n<p><strong>YouTube<\/strong> (Video widget \u2014 when source is set to YouTube)\nThis plugin connects to YouTube to embed and play videos. When the Video widget is configured with a YouTube source, an iframe is loaded from YouTube (or its privacy-enhanced <code>youtube-nocookie.com<\/code> domain when Privacy Mode is enabled). A poster thumbnail may also be fetched from <code>https:\/\/img.youtube.com\/<\/code>.\n- Service: YouTube (operated by Google)\n- When: Only when a page contains a Video widget whose source is set to YouTube, and the visitor views or plays it.\n- Data sent: The visitor's IP address, browser\/device information, and (unless Privacy Mode is enabled) cookies are sent to YouTube\/Google by the visitor's browser when the embed iframe and thumbnail load.\n- Terms of Service: https:\/\/www.youtube.com\/t\/terms\n- Privacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<p><strong>Vimeo<\/strong> (Video widget \u2014 when source is set to Vimeo)\nThis plugin connects to Vimeo to embed and play videos. When the Video widget is configured with a Vimeo source, an iframe is loaded from <code>https:\/\/player.vimeo.com\/<\/code>.\n- Service: Vimeo\n- When: Only when a page contains a Video widget whose source is set to Vimeo, and the visitor views or plays it.\n- Data sent: The visitor's IP address, browser\/device information, and cookies are sent to Vimeo by the visitor's browser when the embed iframe loads.\n- Terms of Service: https:\/\/vimeo.com\/terms\n- Privacy Policy: https:\/\/vimeo.com\/privacy<\/p>\n\n<p><strong>User-configured form webhook<\/strong> (Advanced Form widget \u2014 optional)\nThe Advanced Form widget includes an optional \"Webhook URL\" field. This plugin does not connect to any fixed third-party service for this feature; instead, when (and only when) the site owner enters a URL in that field, each matching form submission is sent by POST to that owner-chosen endpoint. No request is made if the field is left empty.\n- Service: None by default. The destination is entirely chosen by the site owner (for example a Zapier, Make, or self-hosted endpoint). Site owners are responsible for the terms and privacy policy of whichever endpoint they configure.\n- When: Only when a Webhook URL is configured on a form, and that form is successfully submitted.\n- Data sent: The submitted form field values, sent as a JSON payload to the configured URL.<\/p>\n\n<h3>Third Party<\/h3>\n\n<p>This plugin bundles the following third-party libraries. Each is used to power\nspecific widgets and is loaded locally \u2014 no external CDN calls are made.<\/p>\n\n<h4>Swiper (v11.1.14)<\/h4>\n\n<p>Used by: Advanced Slider, Image Carousel, Logo Grid widgets.\nSource:  https:\/\/swiperjs.com\/\nLicense: MIT License \u2014 https:\/\/opensource.org\/licenses\/MIT\nFiles:   assets\/vendor\/swiper\/swiper-bundle.min.js\n         assets\/vendor\/swiper\/swiper-bundle.min.css<\/p>\n\n<h4>lottie-web (v5.12.2)<\/h4>\n\n<p>Used by: Lottie Animation widget.\nSource:  https:\/\/github.com\/airbnb\/lottie-web\nLicense: MIT License \u2014 https:\/\/opensource.org\/licenses\/MIT\nFile:    assets\/vendor\/lottie\/lottie.min.js<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>admore-widgets-suite<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Elementor must be installed and active \u2014 the plugin will show an admin\nnotice if it is not.<\/li>\n<li>Open any page in Elementor and look for the <strong>Essential Pro Pack<\/strong> category\nin the widget panel.<\/li>\n<\/ol>\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. All 51 widgets work with both Elementor Free and Elementor Pro.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20individual%20widgets%3F\"><h3>Can I disable individual widgets?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Essential Pro Pack \u2192 Widgets<\/strong> in the WordPress admin to enable or\ndisable any widget. Disabled widgets are not registered with Elementor,\nwhich keeps the panel clean and saves memory.<\/p><\/dd>\n<dt id=\"is%20the%20ajax%20search%20compatible%20with%20caching%20plugins%3F\"><h3>Is the AJAX search compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses nonce-refresh on 403 errors, so cached pages with an\nexpired nonce will silently refresh and retry the search.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 8.0 or higher. The plugin shows a clear admin notice if the server is\nrunning an older version.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20form%20submissions%3F\"><h3>Where do I see form submissions?<\/h3><\/dt>\n<dd><p>Go to <strong>Essential Pro Pack \u2192 Form Entries<\/strong> in the WordPress admin. You can filter by\nform, status, view individual entries, mark as read\/starred, and export all\nentries to CSV.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20create%20any%20database%20tables%3F\"><h3>Does the plugin create any database tables?<\/h3><\/dt>\n<dd><p>Yes \u2014 one table: <code>{prefix}eppro_form_entries<\/code> to store form submissions. This\ntable is created automatically on activation and removed cleanly on plugin\ndeletion (uninstall).<\/p><\/dd>\n<dt id=\"where%20are%20files%20uploaded%20through%20forms%20stored%3F\"><h3>Where are files uploaded through forms stored?<\/h3><\/dt>\n<dd><p>In <code>wp-content\/uploads\/eppro-forms\/<\/code>, with randomised file names. Only the file\ntypes allowed in the form's settings (and permitted by WordPress) are accepted.\nThe folder is removed when the plugin is deleted.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1.<\/li>\n<li>Security: the Advanced Form now reads its configuration (recipients, webhook URL, fields, allowed file types, CAPTCHA) from the saved widget on the server. Visitors can no longer change where e-mails or webhooks go, and the settings are no longer printed in the page source.<\/li>\n<li>Security: the CAPTCHA secret key is no longer exposed in the frontend script data, and is left out of settings exports.<\/li>\n<li>Security: Visibility Conditions now keep hidden elements out of the HTML instead of hiding them with CSS.<\/li>\n<li>Security: the ACF Field dynamic tag only reads posts the visitor can view and never protected meta keys.<\/li>\n<li>Security: fixed stored XSS vectors in the Video (hosted lightbox), Countdown (redirect URL) and Pie Chart (slice colour) widgets.<\/li>\n<li>Security: popups and Theme Builder templates can only be created or edited by administrators and are no longer listed through the REST API.<\/li>\n<li>Security: password-protected content is no longer revealed by live search or the Post Content \/ Post Excerpt dynamic tags.<\/li>\n<li>Security: CSV exports neutralise spreadsheet formulas; Post Grid \"load more\" can no longer be asked for unlimited posts.<\/li>\n<li>Security: popups and Theme Builder templates can no longer be opened directly by logged-out visitors by adding \"?elementor-preview\" to the URL.<\/li>\n<li>Fix: Elementor content in popups, headers, footers, templates, the [eppro_template] shortcode, Slider, Tabs, Off-Canvas and Mega Menu is no longer stripped by wp_kses_post() (icons, form fields and embeds were removed and inline CSS appeared as text).<\/li>\n<li>Fix: a header or footer template alone no longer replaces the theme's page templates \u2014 post titles, comments, pagination and WooCommerce pages work as before. Block themes are supported.<\/li>\n<li>Fix: Advanced Form \u2014 checkbox values, line breaks in text areas, file uploads, reCAPTCHA v3 and forms without CAPTCHA now work; message style controls apply; duplicate field IDs are handled.<\/li>\n<li>Fix: Post Grid \"Load More\" \/ Infinite Scroll now work, load cards that match the first page, respect active filters, do not repeat posts in random order and no longer fire twice.<\/li>\n<li>Fix: WooCommerce Products \"Load More\" now works, \"Featured\" uses WooCommerce's featured flag, hidden products stay hidden, and the Quick View button opens a product preview.<\/li>\n<li>Fix: the Mini Cart count, subtotal and dropdown update after AJAX add-to-cart.<\/li>\n<li>Fix: Theme Builder \"Duplicate\", Landing Page templates, and duplicated templates\/popups keeping their Elementor data intact.<\/li>\n<li>Fix: new Theme Builder templates are created as drafts so an empty template never replaces the live site.<\/li>\n<li>Fix: popup schedules, Visibility Conditions and Countdown dates use the site timezone.<\/li>\n<li>Fix: CSV export includes all entries (not only the latest 100).<\/li>\n<li>Fix: Elementor placeholder images are no longer blanked site-wide.<\/li>\n<li>Fix: widgets no longer initialise twice (Image Carousel, Lottie, Pie Chart, Timeline, Progress Bar, Team Member, parallax effects).<\/li>\n<li>Fix: Advanced Tabs \u2014 the tab buttons' HTML was not closed, so tab icons and title styling were lost.<\/li>\n<li>Fix: Before\/After \u2014 handle icons scale correctly, custom icons and \"None (line only)\" work, the page scrolls normally on touch screens, the image can be tapped or dragged anywhere, an initial position of 0 is kept, and the \"Image Size\" setting is used.<\/li>\n<li>Fix: Off-Canvas \u2014 the close button no longer picks up theme\/Site Settings button styles and has Normal\/Hover colour tabs and a Button Size control; the trigger opens with Enter\/Space.<\/li>\n<li>Fix: Popup Builder \"Quick Settings\" modal is centred with a full-screen overlay, and its Cancel button works.<\/li>\n<li>Fix: FAQ search icon is visible again.<\/li>\n<li>Fix: Post Grid \"Image Hover Zoom\" was registered twice.<\/li>\n<li>Fix: the entrance animation no longer adds a stray \"none\" CSS class to every widget.<\/li>\n<li>Fix: the Advanced Form's default message placeholder showed a raw escape code instead of \"\u2026\".<\/li>\n<li>Fix: PHP 8 deprecation notices in the Off-Canvas widget and the Setup Wizard.<\/li>\n<li>Tested with Plugin Check 2.1 (no errors).<\/li>\n<li>Design: all admin screens share one design (Theme Builder now matches Settings, Popups, Form Entries and Templates) and the brand violet colour; Flip Box, Hotspot, Price List, Progress Bar and Social Icons now use the same brand colour as the other widgets; one consistent \"EPP\" badge in the Elementor panel.<\/li>\n<li>Design: Custom Styles now preview live in the editor and load with the page CSS; Post Grid list layout, responsive columns and Read More styling fixed.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Security: removed the Custom CSS code editor entirely. The \"Custom Styles\" extension now exposes structured controls (colors, padding, margin, border, sizing) and generates scoped CSS programmatically \u2014 no arbitrary CSS input.<\/li>\n<li>Security: removed the \"Custom HTML\" trigger code field from the Off-Canvas widget; triggers are now button, icon, or text only.<\/li>\n<li>Security: hardened inline-script JSON output (popup, breadcrumbs and FAQ schema) with the full JSON hex-flag set and removed JSON_UNESCAPED_UNICODE.<\/li>\n<li>Fix: corrected PHP alternative-syntax (<code>if<\/code>\/<code>endif<\/code>) blocks that left icon-render calls in HTML mode, causing parse errors and raw output in several widgets (Post Meta, Breadcrumbs, Timeline, Hotspot, Social Icons, Gallery Pro, Testimonial).<\/li>\n<li>Docs: documented all external\/third-party services in readme \u2014 Gravatar (avatars), YouTube and Vimeo (video embeds), and the optional user-configured form webhook.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security: removed arbitrary custom JS\/CSS injection feature.<\/li>\n<li>Security: all output properly escaped with wp_kses_post, wp_kses, esc_attr, esc_html.<\/li>\n<li>Security: all input properly sanitized \u2014 removed phpcs:ignore comments.<\/li>\n<li>Fix: hardcoded admin-ajax.php URL replaced with localized variable.<\/li>\n<li>Fix: inline style tag replaced with wp_add_inline_style.<\/li>\n<li>Fix: shortcode callback return now escaped.<\/li>\n<li>Fix: file upload MIME validation added.<\/li>\n<li>Changed: plugin prefix from epp (3 chars) to eppro (5 chars) per WordPress.org guidelines.<\/li>\n<li>Changed: text domain from essential-pro-pack to admore-widgets-suite.<\/li>\n<li>Removed: Back to Top, Dual Button, Table of Contents, Info List, Call to Action, Business Hours, Alert Box widgets (redundant with Elementor core).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 51 production-ready Elementor widgets.<\/li>\n<li>Core widgets: Advanced Button, FAQ Pro, Advanced Form, Mega Menu, Advanced Slider, Advanced Tabs, Advanced Search, Breadcrumbs, Pricing Table, Gallery Pro, Post Grid, Off-Canvas Panel, Stats Counter PRO, Before\/After Image, Logo Grid, Team Member, Icon Box, Image Box, Timeline, Fancy Heading, Image Carousel, Lottie Animation, Pie Chart, Author Box, Related Posts, Google Map, Post Comments, Animated Heading, Countdown Timer, Flip Box, Hotspot, Price List, Progress Bar, Social Icons, Testimonial, Video.<\/li>\n<li>WooCommerce widgets: WooCommerce Products, WooCommerce Mini Cart, WooCommerce Add to Cart.<\/li>\n<li>Theme Builder widgets: Site Logo, Nav Menu, Site Title, Site Tagline, Post Title, Post Content, Post Featured Image, Post Excerpt, Post Meta, Archive Title, Archive Description, Post Navigation.<\/li>\n<li>Extensions: Dynamic Tags (7 WooCommerce tags), Custom CSS, Sticky, Conditional Display.<\/li>\n<li>Popup Builder: form-submit, add-to-cart, and WooCommerce-condition triggers.<\/li>\n<li>Admin: Widget Manager (enable\/disable per widget), Form Entries, Template Duplicator, Theme Builder, Import\/Export settings.<\/li>\n<li>Performance: per-widget CSS\/JS on-demand loading; assets only on Elementor pages.<\/li>\n<\/ul>","raw_excerpt":"51 powerful, production-ready Elementor widgets for modern WordPress sites \u2014 by Admore Media. (Essential Pro Pack = EPP)","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299528"}],"author":[{"embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/admoremedia"}],"wp:attachment":[{"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299528"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299528"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299528"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299528"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299528"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gax.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}