Every recorded version, newest first, with what changed in each one.
Latest 4.4.24 versions
Undated · 4 versions
4.4.2
Latest
1 improvement5 security
Improved
The WooCommerce atomic widgets (Product Price, Rating, Badge, Stock, Add to Cart and Variation) are held back until they are complete. They no longer appear in the dashboard or the editor panel.
Security
Draw SVG (V3 and V4) reads only SVG files from your uploads or the plugin folder, and sanitizes them before output. It no longer opens the saved URL directly.
AI & Connections tokens now work only for the Animation Addons MCP routes, never for the rest of the REST API, admin-ajax or wp-admin.
SVG uploads are limited to administrators on every upload path, not only in the media type list.
AI memory notes can be written or deleted only by administrators.
Hero Text Explode validates its title tag.
4.4.1
2 new
New
Right-click any element in the Elementor editor to copy its Animation Addons animations, then paste them onto another element. Works for V3 and V4 elements, with a card dialog to choose which animations to copy.
"Reset all AAE animation" in the element and page canvas right-click menus. It is only active when the element has animations, and paste and reset each undo in a single step.
4.4.1
3 new3 fixes1 removed
New
Live Paste with Ctrl+V. Click Live Copy on any Animation Addons demo, then press Ctrl+V (⌘+V on Mac) in the Elementor editor to paste the section. It works on http sites too.
Live Paste shows its progress in one card: choose how to handle images, then watch each step (read, check widgets, prepare media, place) until the section is added, with Undo. The card follows the editor's Light / Dark theme.
"Paste from Animation Addons" in every element and canvas right-click menu, pasting right after the section you clicked.
Fixed
Enable the matching V3 or V4 ScrollSmoother after importing a starter template, including on multisite subsites.
Ctrl+V in the editor ignored a Live Copy, because Elementor's own shortcut cancelled the browser's paste.
Pasting a section that uses a widget not available on your site broke the insert. Unavailable widgets are now left out, as the dialog says.
Removed
The old Live Copy server lookup (fingerprint / copy-paste endpoints), which no longer exists and was called on every editor load.
4.4.0
29 new2 improvements9 fixes
New
Custom Fields — an ACF-class field-group builder in the add-on. Field groups attach to any post type, taxonomy terms, user profiles and options pages; 34 field types (text, rich text, Markdown, code, number, range, email, URL, password, select, checkbox, radio, button group, true/false, date, date-time, time, colour, image, file, gallery, oEmbed, link, map, post, relationship, taxonomy, user, group, repeater, tab, accordion, message); conditional logic, widths, tabs and accordions on the edit screen. Values are ordinary post, term, user and option meta under ACF-compatible keys, so a site moving off ACF keeps its data and every meta query, REST read and Loop Filter keeps working.
A drag-and-drop builder (palette, tree, inspector) with undo/redo, a command palette (⌘K), ten field-set templates (event, team member, property, product, testimonial, FAQ, SEO, page hero, site contact, portfolio item), per-group version history, dark mode and a full keyboard map.
Map field (OpenStreetMap out of the box, Google Maps with a browser key in Settings) with address search, click-to-place and a draggable pin; Code field on WordPress's own CodeMirror with ten languages; Markdown field with a formatting toolbar and a live preview rendered by the same converter the front end uses.
Eight Elementor dynamic tags for custom fields (AAE Field, Number, URL, Image, Gallery, Color, Date, Link) with a field picker, a source (current post / term / author, an options page, a specific post) and the field's own return format applied.
Loop Filter Field and Date widgets take an "AAE custom field" source: pick a field and its type decides how the filter compares; choices, labels and bounds are read live from the definition.
A block-bindings source (aae/field) so core blocks can bind an attribute to a custom field, with dates, choice labels and images resolved.
Tools — export field groups as JSON (ACF-compatible), as a PHP snippet that registers them in code, or as a JSON Schema of an entry's values; import AAE, ACF / SCF and Meta Box JSON with format detection and a preview; local JSON sync to the theme's aaeaddon-fields-json/ folder, and a read-only import of a theme's acf-json/ folder.
A preset's ACF field-group requirement installs into Custom Fields when the preset does not ask for ACF itself, so the preset works on a site with no ACF.
AI & Connections — one MCP server for the whole add-on at /wp-json/aaeaddon/mcp, with a built-in OAuth 2.1 login (PKCE, dynamic client registration, a consent screen on your own site, rotating refresh tokens). Paste the URL into Claude (claude.ai), ChatGPT, Claude Desktop, Claude Code or Cursor and it connects with nothing installed but the add-on; every action runs with the permissions of the person who approved it. The screen lists connected apps and lets you revoke any of them, mints personal tokens for scripts, shows every tool the site exposes, runs a self-test, and switches connections or self-registration off. Application Passwords and a logged-in session work too.
33 abilities on the WordPress Abilities API (aae/*) — list, get, create, update, delete, duplicate and reorder field groups and fields; the content model as JSON Schema; export / import; templates; entries with their custom field values (list, get, create, update, validate, set) on posts, terms, users and options pages; and post types / taxonomies through the Post Type Builder. Every write takes dry_run, every delete needs confirm, and a group with AI access off is invisible to all of them. The same abilities appear in the official WordPress MCP Adapter and in Elementor's MCP when those are installed.
21 site-wide abilities on the same MCP server, so an AI app can run the whole add-on, not only custom fields: the site overview; list and switch widgets and extensions (atomic V4 and legacy V3); read and change Animation Settings (preloader, cursor, scroll to top, scroll indicator, popup, smooth scroll, legacy V3 surface) and Performance, through the same sanitisers the dashboard uses; list Elementor pages, read one as a tree, analyse it (elements by type, the add-on widgets and extensions it uses and which are switched off, every animation, the heading outline, images, links, global classes, warnings), create a page, edit its elements (replace, append, insert before / after, replace one, remove) and one element's text, link, image or raw settings — all saved through Elementor's own save; apply a Regular Animation (22 presets or custom from / to props, trigger, delay, duration, easing, stagger across elements, per breakpoint) or a Text Animation to elements, or clear them; browse the Starter Templates and Starter Pages catalogues with the dashboard link that runs an import; browse the block library and insert a section into an existing page or create a page from a library page — with fresh ids, images copied into the media library, the needed widgets switched on and the design system merged, exactly as the editor's Template Library does.
Media abilities on the same MCP server (aae/list-media, aae/upload-media, aae/update-media), because every generated page needs pictures the site does not have yet. An AI app can search the media library by title, filename or alt text, fetch an image from a URL into the library, attach it to a post and make it the featured image, and write or fix alt text without touching the page. A file the site already holds is reused rather than downloaded a second time — the same check the template importer uses, so one library, no duplicates — and every row carries the one CSS class that makes a hand-written responsive. There is deliberately no delete.
Media housekeeping over MCP (aae/analyze-media, aae/list-unused-media, aae/clean-unused-media, aae/restore-media). Analyse tells you what the library holds and what is wrong with it — total size by kind, images with no alt text, images with no stored dimensions, oversized files, likely duplicates and the biggest files. The unused scan finds attachments no post, page, revision, custom field, option, term or user references, says exactly where it looked, and deliberately errs towards "in use": a file it lists is very likely unused, but a file in use is never listed. Cleaning moves files to the trash and re-checks every one at the moment of the write, so a file that gained a reference since the list was made is skipped rather than lost; restoring brings them back even on the many sites where WordPress shows no Trash tab in the Media library.
Site settings over MCP (aae/get-site-settings, aae/set-site-settings) — the site title and tagline, the site icon, the front page and the blog page, posts per page, date and time formats, week start, timezone, permalinks, discussion defaults and image sizes. Making a page "the blog" is three WordPress options that only work together, so the ability refuses an incomplete arrangement and tells you the exact call that would work, refuses an unpublished page or a page already in use as the front page, and warns every time that WordPress renders the blog page with the theme's blog template — so its own Elementor design stops being what visitors see. Settings that could lock you out of your own site (the site address, the administration email, open registration and the default role, the active theme and plugins) are refused by name with the reason in the answer, never quietly ignored.
Design-system analysis over MCP (aae/analyze-global-styles) — which of the site's Elementor global classes and global variables are actually used and by which pages, which are orphaned, which labels exist twice (the DUP_ copies a second import of the same design leaves behind), and which classes define nothing at all. It reads the saved pages rather than trusting Elementor's usage index, because that index is never pruned: on a site where demo pages have been deleted it can report hundreds of classes as "in use" by documents that no longer exist, and the answer now says so. It creates and edits nothing — Elementor's own tools do that.
HTML review over MCP (aae/analyze-html) — hand it a block of markup, or a page on the site by URL, and it reports what is actually wrong: the heading outline, images with no alt text or no reserved width and height, links and buttons with no readable name, form fields with no label, duplicate ids, the head an SEO-friendly page needs (title, description, canonical, viewport, Open Graph, JSON-LD), inline event handlers, target="_blank" without rel="noopener", http:// resources on an https site, every third-party host the page would contact, and its inline CSS and JavaScript weight. Images pointing at the site's own uploads without the wp-image- class are flagged, because without it WordPress adds no srcset and no lazy loading — the commonest reason a generated page is heavier than the same page built in the editor. Every finding names the element, the line and what to do instead.
aae/analyze-page accepts an unsaved element tree (json) as well as a page id, so a section an AI is about to write, a template file or a library block can be checked before it becomes a page.
Files over MCP (aae/list-files, read-file, write-file, delete-file, set-file-permissions) for the stylesheet, script, JSON, SVG or font a generated page needs. Writing is sandboxed to uploads/aae-files/ and returns the file's public URL; a site can declare further folders with a filter. Anything the server would execute (.php and every variant of it), .htaccess, .user.ini, any name starting with a dot and any path leaving the sandbox are refused whatever is asked, and permissions can only be set to modes that are not writable by the group or by everyone — 0777 and 0666 are never written. A site defining DISALLOW_FILE_MODS or DISALLOW_FILE_EDIT gets no file writing at all.
A "Maintenance" tool set on AI & Connections. The file and database tools are kept out of the page-building, content and code sets so an ordinary session does not read their descriptions before it starts; connect with .../mcp?tools=ops when you want them.
"Expose every ability on this site" (AI & Connections → Settings): when on, the abilities other plugins and WordPress register for AI — Elementor's own, for instance — are offered through the same MCP server and the same login, each still running with the connected user's permissions.
AI assistant in the Custom Fields builder — describe the content in a sentence and get a proposed field group to preview and apply (or replace your fields with), suggest the fields a post type is missing given what the group already has, explain a field to an editor, improve a field's label and instructions (one undo away), and write a few realistic sample entries as drafts. Every proposal goes through the same normaliser and validator a saved group does; nothing is saved until you press Save.
AI provider settings on the AI & Connections screen — bring your own Anthropic, OpenAI or Google Gemini key (stored encrypted, never sent to the browser), pick a model, or use a provider configured for the WordPress AI Client (7.0+); a one-click connection test; rate-limited proxy routes so a key is never exposed client-side.
Sell any post type through WooCommerce (Custom Fields → Sell). Switch a post type on — a booking, a course, a listing; pages never — map which of its fields hold the price, sale price, SKU and stock, or write a price formula over the entry's fields and what the buyer fills in (nights × rate with days_between), choose the buyer inputs asked at add-to-cart and which fields the shopper sees in the cart, on the order and in emails. Every entry gets a hidden WooCommerce product kept in sync from its fields (created on publish, trashed and deleted with the entry, never listed in the shop, search, Loop Grids, the REST product list or the sitemap; its own URL redirects to the entry), so every payment gateway, tax, coupon, stock hold, the Blocks cart and checkout and the Store API work unchanged. Stock sold comes off the entry's own field. A purchase form that needs no JavaScript rides the entry's page, the [aaeaddon_buy] shortcode, or the Add to Cart widget — the whole Woo widget family now works on a sellable entry's page and inside a Loop Grid of entries. Three MCP abilities: aae/get-commerce-settings, aae/make-post-type-sellable (dry_run, converts existing entries), aae/list-orders-for-entry.
Custom Fields and AI & Connections each have an extension card on both dashboards (Elementor V3 and V4) and can be switched off there like Custom Fonts or Code Snippet — AI & Connections off means no MCP server, OAuth or AI routes; Custom Fields off hides the builder, the edit-screen boxes and the field AI tools while every field already on your pages keeps working (see the module dialog below); the template functions (aaeaddon_get_field …) stay declared so a theme never fatals. Needs Animation Addons 4.2.3 for the cards; on an older free plugin both modules stay on.
Code snippets from an AI. Eight MCP abilities (aae/list-snippets, get-snippet, list-snippet-options, create-snippet, update-snippet, set-snippet-active, delete-snippet, restore-snippet) drive the Code Snippet extension from claude.ai, ChatGPT, Angie or any MCP client: CSS, JavaScript, HTML and — for an administrator who may edit plugins, on a site that allows it — PHP, with the load location, the visibility rules and specific pages, and priority. A snippet is created switched off until asked for; deleting one first answers a warning naming it and whether it is live, and only proceeds with confirm: true (trash by default, force for good; restore brings it back). Only offered while the Code Snippet extension is on.
Two guides an AI reads on its own — aae://guide (which tool for what, the dry_run / confirm rules) and aae://page-building (build page sections from Animation Addons widgets and library blocks, with the tool sequence) — as MCP resources on our server, on the MCP Adapter and in Angie's guide list, plus aae/get-widget-blueprint: the element tree a fresh drop of any Animation Addons atomic widget makes (Loop Grid → Loop Layout → Loop Item → card …), the child types it accepts and its settings with $$type, default, allowed values and panel label, so an agent can place a Loop Grid, a slider or a Woo widget on a page through aae/create-page instead of plain text.
Live editing from an AI while the Elementor editor is open. A page an agent (ChatGPT, claude.ai, Claude Desktop — any MCP client) creates or edits appears in the open editor within about a second: new sections land on the canvas, changed elements update in place, the builder's own unsaved work is kept, and the change is one Undo step. The agent reads the editor's unsaved state too (aae/get-page and every edit work on what the builder is looking at), aae/get-editor-status says which pages are open, and a page the agent creates is offered with an "Open in editor" toast. Nothing new to set up — the editor and the site's MCP server talk through two small REST routes.
Animation Addons tools on Elementor's in-editor MCP (Elementor 4.2+, the browser-side server Angie's sidebar and WebMCP agents use): insert-aae-widget (a Loop Grid, slider, form, Woo or filter widget with its whole default tree, straight onto the canvas), apply-aae-animation, insert-aae-library-block, list-aae-widgets, get-aae-widget-blueprint, list-aae-animation-effects, list-aae-library-blocks and a page guide.
Improved
Image Animation now runs entirely from Pro, like every other animation extension: the free plugin only shows its settings in the editor. Pro also brings the fixes that had only reached the free copy — Stretch now opens from a visible start frame (its Start Width / Start Radius are honoured on the published page and in the editor preview), Elastic and Back eases spring back on a reveal instead of snapping, and the Slow Mo ease works.
Elementor's Angie assistant sees every Animation Addons ability by itself (its discovery lists the aae/* tools and executes them; verified with Angie 1.1.16) — no extra plugin or bridge needed.
Fixed
SVG images were dropped when importing a section, a page or a starter template, unless "Enable Unfiltered File Uploads" was switched on in Elementor's settings. Administrators' imports now bring their SVGs along; Elementor still cleans every SVG before saving it.
Activating Pro while the free Animation Addons plugin was switched off (Pro installed first, or a site reset that left only Pro on) sent you to a dashboard page that did not exist, and WordPress showed "Sorry, you are not allowed to access this page." Pro now waits and takes you to the dashboard once the free plugin is active.
Elementor 4.3 changed how a heading, a paragraph and a button store their text, and the add-on was still writing the old shape. Every AAE widget that ships ready-made text inside it — the Loop Grid's Previous / Next / Load more, the post pagination links, the accordion title, the counter, the countdown, the icon list, the image comparison captions, the slider, the post card, the flip box, the timeline, the toggle switcher, the progress bar, the form's submit and its success and error messages, the hotspot, the video button, the Pro button and the Post Image caption — dropped in with EMPTY text and showed Elementor's own placeholder instead. Nothing is hardcoded now: the add-on asks the widget what shape it accepts, so it is right on this Elementor and on the previous one.
Creating or editing a page over MCP failed outright ("title: invalid_value") as soon as a heading or a paragraph was in it — the whole page was refused, not just the text. An AI app may now send either spelling of a text value; it is converted to whatever this Elementor accepts on the way in, and the example the tools show has stopped naming a shape that could go stale.
A popup's sample content and the ✕ close button the Popup Settings switch adds lost their text on Elementor 4.3, for the same reason.
Searching the page list over MCP could return nothing at all. The search made the query look like a site search, and a theme or plugin is then free to rewrite it — the theme on our own test site turns any search into a search for POSTS, so asking for pages found none. The listing now does its own title, excerpt and content search, which nothing else can redirect.
WPML. A translated header, footer, single, archive or popup template lost its TYPE and its display conditions, so the translated page fell back to the theme's own chrome. Both are now copied onto every translation, together with a popup's own settings and its auto-open flag.
WPML. A popup trigger opened the default language's popup on every language, even after the popup had been translated; it opens the translation now. A popup set to show on specific pages also matches those pages' translations.
The Custom Fields builder, AI & Connections and the Animation Builder could go blank when the browser offered to translate the page (commonest on a multilingual admin): the browser rewrites the text and the React screen unmounts itself. All three are now marked "do not translate".
Changelog published by the developer, in their original language.