Description
Build a real-estate listing page with a live mortgage calculator and a photo-gallery property card, a SaaS pricing page with a monthly/yearly toggle, a bento grid feature section, a filterable portfolio with a built-in lightbox, an FAQ accordion that emits FAQPage schema, or a podcast page with a sticky mini player and a sleep timer. Sentio Widgets for Elementor gives you 56 free Elementor widgets for the pages Elementor’s built-in widget set stops short of — countdowns, timelines, off-canvas panels, scroll-spy page navigation, maps, video carousels, and post grids with AJAX load-more.
Each widget loads only its own CSS and JavaScript on the pages where it is used, is keyboard-accessible to WCAG 2.1 AA, and is translation-ready.
Documentation | Upgrade to PREMIUM
The complete Sentio widget library
The (Free) widgets ship in LITE; (Premium) widgets are in Sentio PREMIUM, shown as locked editor stubs. 155 widgets — 56 free, 99 premium — across 10 categories.
⬡ Advanced Components
- Accordion (Free) — Collapsible content panels.
- Advanced Alert (Free) — Dismissible severity-styled notice.
- Animated Headline (Free) — Heading with cycling text effects.
- Animated Timeline (Free) — Vertical animated timeline.
- Audio Player (Free) — Audio player with playlist.
- Blockquote (Free) — Pull-quote with attribution.
- Button (Free) — Button with icon and hovers.
- Call to Action (Free) — Image CTA with buttons.
- Count Up (Free) — Animated number counter.
- Countdown (Free) — Date countdown timer.
- Fancy Divider (Free) — Decorative shaped divider.
- Flip Box (Free) — Two-sided hover/click flip card.
- Google Maps (Free) — Google Map with markers (needs API key).
- Info Box (Free) — Icon card with CTA link.
- Logo Carousel (Free) — Sliding logo strip.
- Lottie (Free) — Lottie animation player.
- Media Playlist (Free) — Mixed audio/video playlist.
- Mortgage Calculator (Free) — Live monthly-payment estimator.
- Off-Canvas (Free) — Slide-in side panel.
- Price List (Free) — Menu-style price list.
- Price Table (Free) — Pricing comparison table.
- Progress Tracker (Free) — Step-by-step progress indicator.
- Property Card (Free) — Single real-estate listing showcase.
- Reviews (Free) — Customer review carousel.
- Scroll to Top (Free) — Floating back-to-top button.
- Search (Free) — Search form with post-type filtering.
- Shortcode (Free) — Render shortcodes in Elementor.
- Single Page Navigation (Free) — One-page anchor nav.
- Skeleton Loader (Free) — Skeleton screen while content loads.
- Skills Measurement (Free) — Animated skill bars.
- Social Share (Free) — Social sharing buttons.
- Tabs (Free) — Tabbed content panels.
- Team Members (Free) — Team grid with socials.
- Testimonial Carousel (Free) — Testimonial slider with ratings.
- Tooltip (Free) — Hover tooltip popups.
- Yoast Breadcrumbs (Free) — Yoast SEO breadcrumbs (needs Yoast).
Premium: Acuity Scheduler, Calendar.com Scheduler, Calendly Scheduler, Code Highlight, Custom HTML, DaySchedule, Google Calendar Booking, HubSpot Scheduler, Motion Scheduler, PayPal Payment Button, SavvyCal Scheduler, Stripe Payment Button, TidyCal Scheduler, YouCanBookMe Scheduler, Zencal Scheduler, Zoom Scheduler.
🔄 Dynamic
- Author Info Card (Free) — Author byline card.
- Featured Image (Free) — Post featured image.
- Nav Menu (Free) — WordPress menu with dropdowns.
- Page Title (Free) — Dynamic page/archive title.
- Post Comments (Free) — Comment list and form.
- Post Excerpt (Free) — Post excerpt with read-more.
- Post Info (Free) — Post meta display.
- Post Navigation (Free) — Previous/next post links.
- Site Logo (Free) — Site logo from Customizer.
- Site Title (Free) — Site name from settings.
- Sitemap (Free) — Hierarchical page/post list.
📰 Posts
- Archive Posts (Free) — Post grid for archives.
- Posts (Free) — Query post grid with load-more.
🎨 Creative
- Image Gallery (Free) — Responsive gallery with lightbox.
- Ken Burns Hero Slider (Free) — Hero slider with Ken Burns pan.
- Portfolio (Free) — Filterable project grid.
- Slideshow (Free) — Full-width image/video slides.
- Video Carousel (Free) — YouTube/Vimeo/self-hosted video carousel.
Premium: 3D Cube Hero Slider, Hero Accordion, Hero Cascade, Hero Clip-Path Slider, Hero Compare, Hero Typewriter, Parallax Depth Hero Slider, Split Screen Hero Slider, SVG Draw, Vertical Fullscreen Hero Slider.
📣 Content
Premium: Facebook Feed, Instagram Embed, Mega Menu, News Ticker, Pinterest Feed, Tag Cloud, TikTok Feed, Twitter / X Embed, Weather.
🔳 Grids
- Bento Grid (Free) — Asymmetric feature grid.
Premium: Alphabet Layout, Asymmetrical Grid, Mondrian Layout, Side Scroll.
📊 Data Visualization
- Counter Cards (Free) — Stat cards with count-up.
Premium: Animated Line Graph, Bar Chart, Data Cards Grid, Donut / Pie Chart, Funnel Chart, Progress Ring, Radar / Spider Chart, Radial Gauge, Stats Comparison.
🛒 WooCommerce
Premium: Add to Cart, Cart Page, Checkout, Coupon Form, Cross-Sells, Mini Cart, My Account, Order Tracking, Payment Methods, Product Badges, Product Carousel, Product Categories, Product Compare, Product Filters, Product Gallery, Product Grid, Product Price, Product Reviews, Product Search, Product Table, Product Tabs, Recently Viewed, Sale Countdown, Shipping Calculator, Size Guide, Stock Alert, Store Notice, Thank You Page, Upsells, Venmo Payment, Wishlist.
📅 Events Calendar
Premium: Event Calendar, Event Carousel, Event Countdown, Event Grid, Event Map, Event Schedule, Event Search & Filter, Event Timeline, Organizer Directory, Venue Showcase.
🧩 ACF
Premium: ACF Field Group, ACF Gallery Pro, ACF Map Pro, ACF Relationship Grid, ACF Repeater Accordion, ACF Repeater Cards, ACF Repeater Slider, ACF Repeater Table, ACF Repeater Tabs, ACF Repeater Timeline.
Integrations
Sentio widgets read from, embed, or extend these platforms.
- Elementor — every Sentio widget is native; Bento Grid and Off-Canvas use Elementor’s nested-container elements, so each cell or panel is a real drop target.
- Google Maps — an interactive map with custom markers, style presets, and clustering, using your own Google Maps Platform API key.
- YouTube and Vimeo — Media Playlist, Video Carousel, and Portfolio embed and control YouTube and Vimeo videos, with automatic thumbnail resolution.
- Yoast SEO — the Yoast Breadcrumbs widget renders Yoast’s breadcrumb trail as a styleable Elementor widget.
- Lottie — the Lottie widget plays Lottie/Bodymovin JSON animations from a URL or file, via the bundled Lottie Web player.
- schema.org — Accordion emits FAQPage, Reviews and Testimonial Carousel emit Review and AggregateRating, Video Carousel emits VideoObject, and Property Card emits RealEstateListing.
PREMIUM extends this to WooCommerce, The Events Calendar, and Advanced Custom Fields; the payment providers Stripe, PayPal, and Venmo; the booking platforms Calendly, Acuity, TidyCal, SavvyCal, HubSpot, Zoom, Zencal, Motion, DaySchedule, YouCanBookMe, Google Calendar, and Calendar.com; and the social networks Facebook, Instagram, TikTok, Twitter / X, and Pinterest.
Free vs PREMIUM
All 56 free widgets are complete — every content and style control, no nag, no time limit, no locked settings inside a free widget. Sentio PREMIUM adds 99 additional widgets: WooCommerce (31), Events Calendar (10), ACF (10), schedulers, payment buttons, charts, and hero sliders.
Those 99 appear in your Elementor panel as locked stubs so you can see the full catalog while editing. The stubs are metadata only — slug, title, and category, from a single config file; no PREMIUM widget code (PHP, CSS, or JS) ships in this plugin. They cannot be dragged onto a canvas, render nothing on the frontend, enqueue no frontend assets, and appear nowhere in the WordPress admin. Clicking one opens a closable upsell card. See pricing
External services
Each service below is contacted only by a specific widget you place, or after an explicit opt-in.
Google Maps
Widget: Google Maps. When: your visitor’s browser loads https://maps.googleapis.com/maps/api/js only if a Google Maps widget is on the rendered page and you have set an API key (per-widget field, or Elementor’s elementor_google_maps_api_key option). With no key the widget renders nothing and contacts nobody. Data sent: the API key you configured plus the standard Maps JavaScript API load parameters; markers, zoom, and styling are applied in the browser, so no other plugin or user data reaches Google. Google requires an API key for production traffic under its Maps Platform terms.
- Terms: https://developers.google.com/maps/terms-20180207
- Privacy: https://policies.google.com/privacy
YouTube
Widgets: Media Playlist, Video Carousel, Portfolio — only when you configure a YouTube URL on one. Three request types, each carrying only the public video ID:
- Thumbnail —
https://img.youtube.com/vi/{video-id}/hqdefault.jpg, emitted as an<img>by Media Playlist and Video Carousel when you have not set a thumbnail manually, and fetched by the browser on page render. - Player iframe —
https://www.youtube.com/embed/{video-id}. Portfolio injects it when a visitor hovers a video item or opens the lightbox; Media Playlist and Video Carousel create it through the API below. - IFrame Player API —
https://www.youtube.com/iframe_api, loaded once for programmatic playback control. Video Carousel loads it when a visitor clicks a video; Media Playlist loads it as the widget initialises if its first track is a YouTube track, so such a page contacts YouTube on render, not only on play.
- Terms: https://www.youtube.com/t/terms
- Privacy: https://policies.google.com/privacy
Vimeo
Widgets: Media Playlist, Video Carousel, Portfolio — only when you configure a Vimeo URL on one.
- Player iframe —
https://player.vimeo.com/video/{video-id}. Portfolio injects it on hover preview or lightbox open; the other two create it through the SDK below. - Player SDK —
https://player.vimeo.com/api/player.js, for playback control. Video Carousel loads it on click; Media Playlist loads it as the widget initialises if its first track is a Vimeo track. - Thumbnail lookup (server-side) — when no thumbnail is set manually, Media Playlist and Video Carousel call
https://vimeo.com/api/oembed.json?url=https://vimeo.com/{video-id}from your server viawp_remote_get()with a 5-second timeout and silent failure, so an unreachable Vimeo leaves the thumbnail empty instead of breaking the page. The only data sent is the public Vimeo URL you configured; the thumbnail it returns is hosted on Vimeo’s image CDN and is then loaded by your visitor’s browser. Setting a thumbnail manually disables this call.
- Terms: https://vimeo.com/terms
- Privacy: https://vimeo.com/privacy
sentioaddons.com — telemetry (opt-in)
Nothing is sent before you consent. On activation a welcome screen offers a consent checkbox (pre-checked — uncheck it before saving, or press Skip, which forces consent off regardless) and an optional email field. On consent the plugin POSTs once immediately, then daily on a WordPress cron job (sentio_lite_telemetry_ping), to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry.
Data sent: plugin slug; plugin version; WordPress version; PHP version; coarse theme family (Astra / Divi / Hello Elementor / Default / Other — not the exact theme slug); site language; a SHA-256 hash of your site URL (one-way, used only to de-duplicate pings from the same site); your optional email if you supplied one; and per-widget placement counts — which Sentio widgets are on the site and how many times — read from Elementor’s _elementor_data postmeta. Your IP address is not sent by the plugin; country-level data, when needed, is derived server-side from the Cloudflare CF-IPCountry header at request time and is not persisted.
Opting out is one click at Sentio Version, with no confirmation step: it sends a DELETE carrying the site hash and plugin slug to https://sentioaddons.com/wp-json/sentio-lm/v1/telemetry/site, removing your site’s row from our servers, and unschedules the cron.
sentioaddons.com — backlink (per widget, default OFF)
This makes no network request. Each widget’s Advanced tab has a “Show Sentio backlink” switch, off by default; switched on for a widget instance, that widget renders a plain <a> to its page on sentioaddons.com at the end of its output. The URL appears in your page source and is fetched only if a visitor clicks it. Documented here for transparency.
License
Sentio Widgets for Elementor is free software released under the GNU General Public License v2 (or later); see https://www.gnu.org/licenses/gpl-2.0.html.
Third-Party Libraries
This plugin bundles the following GPL-compatible libraries:
- Lottie Web (MIT) — https://github.com/airbnb/lottie-web
- Marker Clusterer (Apache 2.0) — https://github.com/googlemaps/js-markerclusterer
MIT and Apache 2.0 are GPL-compatible licenses.
The carousel widgets (Reviews, Testimonial, Logo, Slideshow, Video Carousel, Posts) consume the Swiper library via Elementor’s bundled swiper script handle; Swiper is not bundled by this plugin.
Screenshots











Installation
- From WordPress admin: Plugins Add New search for “Sentio Widgets for Elementor” click Install Now Activate.
- Manual install: download the plugin ZIP, upload it via Plugins Add New Upload Plugin, then activate.
- Ensure Elementor is installed and active. This plugin requires Elementor 3.20 or newer (tested up to 3.25).
- Edit any page or post with Elementor; Sentio widgets appear under the Sentio category in the widget panel.
- (Optional) Visit Sentio Welcome to opt in or out of anonymous usage analytics.
FAQ
-
How do I add a mortgage calculator to a real estate website?
-
Drag the Mortgage Calculator widget onto any Elementor page and set the default home price, rate, and term; the monthly payment then recalculates as visitors type. It covers full PITI — principal and interest plus optional property tax, insurance, and HOA fees — and applies PMI automatically below a 20% down payment, dropping it at 20% or more. You also get a percent/dollar down-payment toggle, 10/15/20/30-year term pills, a cost-breakdown donut, a collapsible year-by-year amortization table, and an optional lead-capture button. All of the maths runs in the browser and on your own server — the calculator contacts no external service.
-
How do I show a property listing without an IDX or MLS plugin?
-
The Property Card widget holds a whole listing: a multi-photo gallery hero with thumbnails, arrows, and a counter; a formatted price with a “Contact for price” fallback; a status badge (For Sale, For Rent, Pending, Sold, or your own) that dims the hero when sold; an optional open-house banner; a bed/bath/area/lot stat strip; an amenities checklist; and an agent block with one-tap call and email. Switch on schema.org RealEstateListing JSON-LD to expose it as structured data. It is for hand-built listing pages — it does not read an MLS feed.
-
Can I build a bento grid layout in Elementor?
-
Yes. The Bento Grid widget is a real CSS Grid in which every cell is a full Elementor container, so any widget can be dropped into any cell. Set columns per breakpoint, minimum row height, and gap;
grid-auto-flow: densepacks the gaps for you. It ships nth-child presets (hero, feature, mosaic), per-cell hover effects, and a staggered IntersectionObserver entrance animation. -
How do I add a pricing table with a monthly / yearly toggle?
-
The Price Table widget has a built-in pricing switcher — enter two price sets and visitors flip between them. Each feature row can carry an icon, an included / excluded / partial state, and a hover tooltip, and rows can be grouped under headings. There is also a sale badge over the price, a guarantee line under the button, a ribbon, and a hover lift; place several in a row for a full comparison section.
-
How do I load more posts without reloading the page?
-
The Posts widget offers two AJAX pagination modes in its Pagination section: a Load More button with editable label text, and Infinite Scroll that fetches the next page as the visitor nears the end of the grid. Both run through the plugin’s own nonce-verified AJAX endpoint. Archive Posts gives you the same grid on category, tag, and other archive templates.
-
How do I make a filterable portfolio or project gallery?
-
The Portfolio widget renders a filterable grid with category buttons, an optional bento layout, direction-aware hover overlays, scroll-triggered reveals, and blur-up lazy loading. It includes a lightbox and a case-study modal, and each item can carry a YouTube, Vimeo, or self-hosted MP4 video that previews muted on hover and plays full size in the lightbox.
-
How do I add a countdown timer that restarts for every visitor?
-
Set the Countdown widget to evergreen mode: instead of counting to a fixed date it starts a per-visitor timer held in that browser’s localStorage, so every visitor sees their own deadline. Fixed due-date mode is there too, with per-unit visibility, custom labels, a styleable separator between boxes, and configurable expiry behaviour.
-
The Off-Canvas widget gives you a slide-over or full-screen panel whose contents are a normal Elementor container, so you build the panel from any widgets. The trigger is built in — text-plus-icon, icon-only, or an animated hamburger that morphs to a cross, arrow, or spin — plus an optional frosted-glass backdrop blur and auto-close timer.
-
The Single Page Navigation widget pins a nav rail to the left, right, top-centre, or bottom-centre. List your section IDs in the repeater with a label, icon, and accent colour each; an IntersectionObserver highlights the section in view, and clicking scrolls smoothly with an offset so a sticky header does not cover the target. Indicators can be dots, dashes, numbers, or labels, with hover tooltips and a page-progress bar.
-
How do I embed a Google Map with multiple markers?
-
Add the Google Maps widget and paste a Google Maps Platform API key into its API Key field, or set one once in Elementor Settings Integrations, which Sentio falls back to. Add markers via the repeater with coordinates, title, description, custom icon, and drop animation; choose a style preset (standard, silver, retro, dark, night, aubergine); switch on clustering for dense marker sets. With no key the widget renders nothing and makes no request to Google.
-
How do I put a YouTube or Vimeo video carousel on a page?
-
The Video Carousel widget takes YouTube, Vimeo, and self-hosted MP4 sources in one carousel with a player pane, and can emit VideoObject structured data per video. For an audio-led or mixed playlist use Media Playlist. Both resolve thumbnails automatically when you do not set one, and both drive playback through the official YouTube and Vimeo player APIs.
-
How do I add a podcast player with episodes to my site?
-
The Audio Player widget takes an episode repeater with per-episode artwork and description, plus the controls podcast listeners expect: 0.5×–2× speed, 10/15/30-second skip, a 15/30/45/60-minute sleep timer, share-link copy, a waveform that colours as it plays, a sticky mini player once you scroll past, and playback-position memory so an episode resumes where it stopped.
-
How do I show animated statistics or a skills bar chart?
-
Three widgets cover this. Count Up animates a single number into view on scroll, with six easing curves, thousands separators and decimals, an icon badge, and a CTA. Counter Cards lays out a row of stat cards that count up together. Skills Measurement renders multiple labelled progress bars in one widget — solid, striped, segmented, or gradient fills, per-bar colours, and a percentage that counts up as each bar fills.
-
Can I make an accessible FAQ section that Google can read?
-
Yes. The Accordion widget is keyboard-navigable with proper ARIA state, and can output FAQPage JSON-LD built from your accordion items, so a well-formed FAQ section becomes structured data without a separate SEO plugin. It has four skins, automatic step numbers, four icon animations, per-item accent colours, and scroll-to-active with a sticky-header offset.
-
How do I embed a SavvyCal or Calendly booking form?
-
Booking widgets are PREMIUM: Sentio PREMIUM has dedicated schedulers for Calendly, SavvyCal, Acuity, TidyCal, HubSpot, Zoom, Zencal, Motion, DaySchedule, YouCanBookMe, Google Calendar, and Calendar.com, which appear in the LITE panel with a lock badge. Free workaround: the Shortcode widget renders any booking shortcode your scheduling plugin provides.
-
Do the widgets work with WooCommerce or The Events Calendar?
-
Not in the free edition — those 41 widgets (31 WooCommerce, 10 Events Calendar) plus 10 Advanced Custom Fields widgets are PREMIUM. The 56 free widgets are plugin-independent and work on any WordPress site, with two exceptions noted in the catalog above: Yoast Breadcrumbs needs Yoast SEO, and Google Maps needs an API key.
-
Does this plugin require Elementor, and does it work with Elementor Pro?
-
Elementor is required — 3.20 or newer, tested up to 3.25. Elementor Pro is not, and Sentio coexists with it and with other Elementor addon packs. These are standard Elementor widgets, so they work with any Elementor-compatible theme, including Hello Elementor, Astra, and Divi.
-
Will Sentio slow down my site?
-
No. Each widget owns its own CSS and JavaScript file and declares them as dependencies, so a page downloads only the assets for the widgets actually placed on it. There is no global frontend bundle.
-
Are the widgets accessible?
-
Accessibility is a functional requirement here, not a polish pass: widget-scoped keyboard navigation, ARIA landmarks and state, a visible focus ring, polite live-region announcements, and
prefers-reduced-motionhandling in both CSS and JavaScript, targeting WCAG 2.1 AA. Widgets written before that standard was adopted are being retro-audited. -
Do I need any coding skills?
-
No. Every widget is configured visually in the Elementor editor with standard content and style controls. The Shortcode widget is there if you do want to drop in a shortcode from another plugin.
-
Does the plugin collect any data, and how do I opt out?
-
Only if you opt in on the welcome screen at activation. The exact fields and the one-click opt-out path are in External services below. Nothing is sent before you consent.
-
How do I turn off the backlink to sentioaddons.com?
-
It is off by default. Each widget has a “Show Sentio backlink” switch in its Advanced tab; the link renders only on instances where you switched it on.
-
Is the plugin translation-ready, and does it work on multisite?
-
Yes to both. All UI strings use the
sentio-widgets-for-elementortext domain and translations auto-load fromwp-content/languages/plugins/. On multisite, activate per-site or network-wide; telemetry consent and the welcome flow are per-site. -
How do I uninstall cleanly, or report a bug?
-
Deactivate and delete via Plugins Installed Plugins. Options left behind in
wp_optionsall use thesentio_prefix if you want to purge them. For bugs, open a thread in the WordPress.org support forum or email support@sentioaddons.com with steps to reproduce.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Sentio Widgets for Elementor” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Sentio Widgets for Elementor” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.0.7 — 2026-07-31
New free widget: Skeleton Loader. Shortcode widget fix.
- Feature: New Skeleton Loader widget (Advanced Components) — a skeleton loader / skeleton screen you can place on the canvas and point at a container or CSS selector, or use as a standalone placeholder. Skeleton shapes are inferred from the target’s own markup and measurements, so the placeholder matches the real content instead of being a generic grey box.
- Feature: Skeleton Loader is also available from the Advanced tab of any Elementor element — including core Elementor widgets and third-party addon widgets — with per-element mode, target, timing and styling.
- Feature: Global defaults at Sentio Skeleton Loader — base and shimmer colors (optionally derived from your Elementor palette), animation style and speed, corner radius, minimum display time and failsafe timeout. Per-element settings override them.
- Feature: Three loading behaviors. Additive for load-more and infinite scroll appends skeleton cards after your existing posts and never disturbs them. Replacement for pagination and filtering takes the outgoing posts out of flow and shows skeletons in their place. Deferred embed covers video, map and booking iframes until the embed itself is ready.
- Fix: Shortcode widget — shortcode output is no longer filtered before display. It was previously passed through a content filter that removed
<script>,<form>,<input>,<textarea>,<select>and<iframe>tags while keeping the script’s inner text, so a Gravity Forms shortcode rendered a form with no fields followed by its own JavaScript printed as visible text on the page. Form, embed and script shortcodes (Gravity Forms, Contact Form 7, WooCommerce and others) now render exactly as the originating plugin produced them. - Accessibility: skeletons are hidden from assistive technology, shimmer stops for visitors who prefer reduced motion, and nothing is ever hidden from visitors with JavaScript disabled.
- Reliability: a failsafe timeout always clears the skeleton if the readiness signal never arrives, and a minimum display time prevents a sub-second flicker.
2.0.6 — 2026-07-23
New free widget: Mortgage Calculator.
- Feature: New Mortgage Calculator widget (Advanced Components) — a live monthly-payment estimator with principal & interest plus optional property taxes, insurance, HOA fees, and auto-applied PMI when the down payment is under 20%. Includes a percent/amount down-payment toggle, loan-term presets with optional custom entry, a cost-breakdown donut chart, a collapsible year-by-year amortization table, an optional call-to-action button, and a configurable disclaimer. All calculations run locally in the browser and on your server — the widget contacts no external services.
2.0.5 — 2026-06-25
Ken Burns alignment, breadcrumb structured-data, and Elementor editor preview fixes.
- Fix: Ken Burns hero — CTA buttons now follow the content Text Alignment control.
- Fix: Breadcrumbs — item URL property now emits correctly (was stripped by an incorrect escaper).
- Fix: Breadcrumbs — structured-data position now emits (was silently dropped).
- Fix: Widget styles now preview correctly in the Elementor editor.
2.0.4 — 2026-06-16
Reliability fix so Sentio’s widget categories register correctly alongside other Elementor add-ons, plus first-run and dashboard refinements.
- Fix: Sentio widget categories now register reliably when other Elementor add-on plugins that register their own categories early (for example event/calendar or all-in-one widget add-ons) are active. Sentio now subscribes to Elementor’s category-registration step earlier, so its panel categories no longer fail to appear.
- Fix: The welcome screen now opens immediately on first activation, instead of only after navigating to a Sentio page later.
- Fix: Third-party admin notices no longer display inside the Sentio dashboard or welcome header banner; they now appear in WordPress’s standard position above it. No notices are suppressed or hidden.
- Feature: Added a dismissible “leave a review” invitation in the dashboard’s LITE comparison card.
2.0.3 — 2026-05-30
This release removes all admin notice suppression code per the WordPress.org plugin review.
- Removed 231 lines of code that suppressed third-party admin notices on Sentio admin screens via remove_action() calls on admin_notices, in_admin_header, and related hooks. Standard WordPress notice behavior is now restored across all Sentio admin pages.
- Removed CSS rules that hid third-party plugin notice elements (Freemius, Jetpack, Yoast, etc.) when they appeared inside Sentio admin layouts. Foreign notices now render normally at their natural injection points.
- No replacement suppression mechanism added. Users will see standard WordPress admin notices from core, security plugins, and other addons as designed.
2.0.2 — 2026-05-20
This release addresses the inline block finding from the WordPress.org plugin review.
- Refactored admin page CSS into a single registered stylesheet enqueued via wp_enqueue_style() on Sentio admin screens, replacing prior per-page conditional enqueueing that did not handle JavaScript-driven tab navigation correctly.
- Extracted inline style attributes from the Locked Widget render output to a dedicated stylesheet (assets/css/widgets/locked-widget-notice.css), registered as a Sentio handle and auto-enqueued via Elementor’s get_style_depends() pattern. Render output now uses BEM-style class names instead of inline style attributes.
- Improved CSS class name escaping by using sanitize_html_class() for class identifiers per WordPress canonical patterns.
2.0.1 — 2026-05-13
This release addresses all feedback from the WordPress.org plugin review.
- Replaced 73 instances of output requiring escaping with canonical wp_kses(), tag_escape(), and esc_*() patterns. Escaping now happens at every output site, not at variable construction, per the “escape late” principle.
- Added per-field sanitization for the AJAX POST settings handler in the Posts widget. Each of the ~40 settings fields now receives context-appropriate sanitization (absint, sanitize_key, tag_escape, in_array whitelist) at the JSON-decode boundary.
- Refactored four direct database queries to use WordPress core APIs: comment counting now uses get_comments(), WooCommerce product enumeration uses wc_get_products(), and The Events Calendar venue/organizer lookups use get_posts().
- Replaced one variable-based translation argument with static literal __() calls via a translation lookup table, so translation tooling can extract strings correctly.
- Added nonce verification before processing form data in admin pages, including refactoring the admin page router to use get_current_screen() instead of $_GET parameters.
- Prefixed file-global variables in admin templates with the sentio_ prefix per WordPress naming conventions.
- Removed phpcs:ignore suppression comments throughout the plugin and addressed each underlying issue with real code changes rather than suppression.
- Removed the debug_log() development helper from production code paths.
2.0.0
- 53 free widgets organized across content, marketing, posts and dynamic content, navigation, media, and tools.
- 99 additional PREMIUM widgets shown as locked stubs in the Elementor widget panel; clicking a locked widget opens an upsell card.
- Per-widget CSS and JavaScript asset loading — assets are loaded only on pages where the widget is actually placed; no global frontend bundle.
- WCAG 2.1 AA compliance across newly-authored widgets (keyboard navigation, ARIA landmarks, focus indicators, live-region announcements, prefers-reduced-motion respect). Pre-existing widgets are being retroactively audited.
- Consent-gated daily telemetry phone-home — opt-in at activation, one-click opt-out at any time from Sentio Version. See External services above for full data-field disclosure.
- Updates delivered through the WordPress.org core updater.
- Translation-ready: all UI strings localizable via the
sentio-widgets-for-elementortext domain.
