Todas las versiones registradas, de la más nueva a la más antigua, con lo que cambió en cada una.
Última 2.1.9· 29 oct 20267 versionesDesde oct 2026
2026 · 7 versiones
2.1.9
Última
2 cambios
Cambios
Fatal error at the end of the update to 2.1.8 - updating from 2.1.7 or older showed "Class ACPT\Utils\Http\ACPTApiClient not found" (or "ACPT\Utils\PHP\Session") after "Plugin updated successfully". The update did complete and the site kept working: the old version, still running until the update page finished, couldn't find its files in the new package. Updating from older versions no longer shows the error (Tickets #1444, #1446).
ACPT Lite
2.1.8
1 mejora16 cambios
Mejora
Compatibility
Cambios
Fatal error when saving a post - on sites where another plugin loads a newer version of the webmozart/assert library (2.x, PHP 8.2+), saving a post with ACPT fields crashed with "Declaration of ACPT\Utils\PHP\Assert::string must be compatible". ACPT no longer redeclares the library's methods, so it works with both versions (Ticket #1435).
Conflicts with other plugins' PHP libraries - ACPT's PHP libraries (Twig, phpfastcache, webmozart/assert, Symfony YAML and the others) are now bundled under ACPT's own namespace, so another plugin loading a different version of the same library can no longer break ACPT, or be broken by it.
Saving a meta group with a nameless box crashed - the save failed with a server error; the box is now rejected with a message. Empty field type groups are hidden in the WooCommerce product data builder.
Meta fields
Required fields hidden by their conditions blocked the save - a required field hidden by its own or its box's conditions stopped the browser from submitting the form, and was still validated on the server ("Expected a non-empty value."). Hidden fields are no longer required or validated; their value is still saved (Ticket #1437).
Repeater children named "type" or "original_name" - they were saved but missing from `get_acpt_field`. They are returned again (Ticket #1437).
Length limits counted bytes - Min/Max length on meta and form fields rejected accented text the browser had accepted. Limits now count characters, as the browser does (Ticket #1439).
Date & time values in the canonical format were rejected - the date check was inverted: a Date & time field saved as `2026-10-26 14:30:00` (from code, the REST API or an import) failed validation. It is now accepted, like every other date format the field can store.
Gutenberg & Dynamic blocks
Saved ACPT blocks showed as unsupported - "Your site doesn't include support for this block" appeared when the editor parsed the post before ACPT registered its blocks, and on post types registered on `init` (GeneratePress Elements, most plugin CPTs) the blocks and their styles weren't registered server-side. Both are fixed (Ticket #1441).
Image fields printed the alt text in dynamic block templates - `{{ acpt_box_image }}` printed the alt text or title, so ` ` broke. Image, File and Gallery values now print their URL and still answer `.alt`, `.title`, `.id` and the other attachment properties (Ticket #1436).
Integrations
Bricks: query filters didn't work on CCT columns - on a post type whose fields come from a CCT, filter elements (Select, Checkbox, Range...) had no options and never narrowed the loop. They now index and filter the CCT column values (Ticket #1434).
WPML / Polylang: media fields showed the same attachment in every language - the generated `wpml-config.xml` didn't list the attachment ID key of Image, Gallery, File, Video, Audio and Image slider fields. It does now, with the field's own translation settings (Ticket #1432).
Internal
Test suite on WordPress 7.2 (no change for users) - two tests expected HTML exactly as WordPress 7.1 sanitized it. The tests now pass on both versions.
2.1.7
1 de seguridad12 cambios
Seguridad
Security
Cambios
Feeds setting for post types - a new "Feeds" toggle (Settings step, on by default) switches off a post type's archive feed. With it off, `/{slug}/feed/` is gone, the archive stops advertising the feed and `?post_type=x&feed=rss2` redirects to the archive. Saving a post type now also flushes the rewrite rules with its new settings instead of the previous ones (Ticket #1427).
Stored XSS in the CPT admin filters - meta values and terms were printed unescaped in the list-screen filter dropdowns, so a stored value could inject markup (Author → Admin). They are now escaped.
PHP Object Injection in CCT values - a serialized object stored in a CCT column (through the REST API or a public form) was instantiated on every read of the record. CCT values now go through the plugin's object-safe unserializer.
Meta fields
Fields were renamed on save - since 2.1.0 a field sharing its name with a field in another box was renamed to `name_1`, `name_2`... on any save of its group, orphaning its stored values. Field names now only need to be unique within their box, and an existing field is never renamed (Tickets #1421, #1422).
Table fields rendered empty - since 2.1.0 Table fields were stored as a PHP array instead of JSON, so they rendered empty in Bricks, the shortcode and the builders, and Bricks' raw tag crashed. They are stored as JSON again, and tables saved by 2.1.0-2.1.6 render without a re-save (Ticket #1428).
Stray backslashes in Table cells - the Table editor saved its own escapes as text ("210 / 297 mm" showed as "210 \/ 297 mm") and typed backslashes were lost. Cells now save as typed, and cells saved with a stray "\/" display without it (Ticket #1428).
Phone field country on user profiles and term screens - a saved country always showed as the US, and picking only a flag in the default-value editor stored a broken value that crashed the field editor. Both are fixed; a number without a country falls back to the field's default country (Ticket #1426).
Custom Content Types
Dates in a custom format failed validation - a date column with its own format (e.g. "Y") rejected the value from the admin form. Dates, times and date ranges are now parsed with the column's format first (Ticket #1423).
Relationships to another CCT table - a Relationship field pointing to a CCT table printed "Array" (or nothing in Bricks). The related records now resolve, and Bricks renders them by their label column (Ticket #1424).
"Set as post thumbnail" ignored for CCT columns - Image, Gallery and Image slider columns saved in a CCT table now set the featured image when the option is on (Ticket #1425).
2.1.6
11 cambios
Cambios
Datasets couldn't be edited - since 2.1.2 every "Manage" link opened the datasets list instead of the dataset, so a dataset's items couldn't be changed. The list now lives at `#/tools/datasets`; old links to `#/tools/dataset` still work (Ticket #1420).
Updates could keep running the previous release's scripts - the helper scripts loaded by the admin had no version in their URL, so a browser could keep the old ones cached after an update (and downloaded them twice). They now carry the plugin version (Ticket #1413).
Meta fields
The Icon field was blocked by the icon service - each search result was loaded with its own request, so after a few searches the icon service refused them and icons in later Repeater rows showed as broken and couldn't be picked. Results now load with one request per icon set and picking an icon needs no request. Saved values are unchanged (Ticket #1413).
Custom Content Types
Table data saved from tab views was lost - in meta groups shown as vertical or horizontal tabs, every save created a new record that wasn't linked to the post, so the data looked never saved and Bricks query loops showed nothing. Saves now update the post's record (Ticket #1416).
Failed table saves were silent - when a record failed validation the post saved and the table data was lost without a message. An error notice is now shown, also in the block editor (Ticket #1416).
Empty optional numbers and dates blocked the save - an empty Number, Date, Date & time or Time input failed validation for the whole record; optional columns now save as empty (NULL). Decimal numbers no longer lose their decimals (1.6 was saved as 1) (Ticket #1416).
Integrations
Bricks: Toggle conditions on the displayed label stopped matching - since 2.1.2 a condition comparing a Toggle field with its label (e.g. `== Pravda` on a Czech site) hid the element. It matches again (Ticket #1419).
Elementor Pro: a Select field shown as label crashed the editor when empty - building a Loop Grid failed with a TypeError. An empty field now renders nothing and multi-value fields render comma separated (Ticket #1415).
2.1.5
11 cambios
Cambios
"Show meta box" taxonomy setting - turn it off to hide a taxonomy's box on the classic post edit screen, e.g. when its terms are assigned through a Term field. The block editor ignores this WordPress setting (Ticket #1402).
Hierarchical terms in Term pickers - in Term and Terms (Multiple) fields, child terms are listed right after their parent and indented by level (Ticket #1400).
The field builder sidebar stays in view - while a long list of fields scrolls, the sidebar sticks below the page header and scrolls on its own (Ticket #1401).
Clear errors when a custom table can't be synced - an index or a foreign key that MySQL would reject (an index on a JSON column, a text index without a length, a foreign key between columns of different types, "SET NULL" on a column that doesn't allow empty values) is now explained in the sync dialog, with how to fix it and a link to the step, before anything runs. The Indexes and Foreign keys steps show the same warnings. If MySQL still refuses a change, the error is explained in plain words, with the original message under "Technical details".
Meta fields
Select fields stayed on "Loading..." for non-admin users - Post, Term and User selects loaded their options with a request limited to administrators, so for Editors and other roles they never loaded (Ticket #1412).
Editors couldn't add Repeater rows - the request that adds a row (and the one that generates ID field values) was limited to administrators (Ticket #1408).
Repeater and Flexible Content fields on option pages lost their attributes - values like the link text of a Url field came back empty, and the next save erased them (Tickets #1409, #1410).
LIKE / NOT LIKE conditions crashed the post editor - a condition on a field with no value yet, or with several values (e.g. a Terms field), caused a white screen (Ticket #1399).
Changing a field's type could crash the page - a default value left from the old type (e.g. Phone Number to Text) caused a fatal error where the field was shown (Ticket #1403).
The Icon field showed broken images and couldn't pick icons - the icon search sent a request per keystroke and loaded every result image at once, so the icon service blocked the site. Searches now wait for typing to stop and images load as they scroll into view (Ticket #1409).
2.1.4
15 cambios
Cambios
Saving from the block editor lost every custom field value - since 2.1.3 the second request the block editor sends to save meta boxes crashed with `Call to undefined function check_admin_referer`, so the editor said "Updated" while ACPT fields (and other plugins' meta boxes) were not saved (Tickets #1385, #1388, #1390, #1394, #1396, #1397).
The edit screen took 30+ seconds with the ACPT cache off - every repeater row reloaded its parent field and every admin page reloaded each meta box once per field, adding up to over 100,000 database queries on large field groups. Each is now loaded once (Ticket #1387).
Meta fields
Date fields were saved in the display format - since 2.1.0 Date, Date & time, Time and Date range values were stored as shown in the picker (e.g. `08.10.2026`) instead of `Y-m-d`, breaking tools that read the stored value, like Bricks' `{cf_...}` tags and date ordering in queries. New saves use the canonical format again; existing values are converted the next time the post is saved (Ticket #1389).
Date and Time fields inside a Repeater came back empty - the read used the Repeater's date format instead of the sub-field's own, so e.g. a `d/m/Y` date was never recognised and dynamic tags (Bricks query loops included) returned nothing (Ticket #1393).
WYSIWYG editors could become blank and not editable in the block editor - the block editor moves the meta boxes around the page (on load, and again e.g. when toggling distraction-free mode), which reset the editors. They now recover automatically, keeping their content (Ticket #1395).
Relationship fields with a maximum number of items didn't load - with the select2 selector, a JavaScript error stopped the selector from initialising (Ticket #1395).
Malformed Repeater or Flexible Content data made a post uneditable - an unexpected value in the stored data (e.g. left by the 2.0.63-2.0.66 block-sort bug) crashed the edit screen. Such entries now show as empty rows that can be removed (Ticket #1397).
Backslashes were removed from Textarea and Text values - every `\` was stripped on save, so JSON escapes were lost and JSON values could be stored invalid (Ticket #1380).
Field builder
Fields inside a Repeater couldn't be deleted from the canvas - the trash icon on a sub-field selected the Repeater instead and the confirmation disappeared (Ticket #1392).
The Repeater/Flexible "Leading field" dropdown was always empty (Ticket #1379).
A field's conditional rendering only listed fields of its own meta box - fields of the other boxes in the same group can now be used too (Ticket #1383).
Custom tables
Records with a Relationship value couldn't be saved from the admin - selecting a related item made the save fail with "Additional object properties are not allowed", listing every column. Relationship values are now accepted, and validation errors show the real problem next to the column (Ticket #1382).
2.1.3
15 cambios
Cambios
Collapsible sidebar in the field builders - the sidebar of every canvas builder (meta fields, forms, custom table columns, dynamic blocks, option pages, WooCommerce product data) can be hidden to a thin strip, from a toolbar button or by dragging its edge, giving the fields the full width on small screens. The choice is remembered per item, and clicking a field reopens the sidebar with its settings.
Forms stopped sending email with plugins that replace `wp_mail` - since 2.1.0 ACPT loaded WordPress' pluggable functions while plugins were still loading, so plugins that override `wp_mail` (e.g. ActiveCampaign Postmark) could no longer do it and form emails were lost (Ticket #1377).
Updating installed the previous version - after a release WordPress showed the new version but installed the previous zip, served from a cache. The update package URL now includes the version, so every release gets its own download (Tickets #1354, #1370).
Custom tables
The admin crashed when two tables had foreign keys pointing at each other - loading the tables recursed until PHP ran out of memory on every admin page, locking users out of wp-admin. Tables referencing each other, in a pair or a longer chain, now load normally (Ticket #1372).
Meta fields
JSON in a Textarea field still lost characters with "Allow HTML" off - spaces and line breaks at the start and end of every JSON string were removed, so values made only of line breaks (common in Etch and Gutenberg exports) were saved empty. The JSON is now saved exactly as typed (Ticket #1370).
A Relationship value read with `get_acpt_field` couldn't be saved back - it returns the related posts, users or terms as objects, and passing them to `save_acpt_meta_field_value` failed with a PHP error, so nothing was saved. Objects are now saved as their IDs, and removing an item with `unset` works too (Ticket #1371).
Dynamic blocks
HTML and line breaks were stripped from a block's Callback and CSS on save - the Twig template lost every tag and was compressed to one line, and the CSS was flattened. Both are now saved as typed; users without the `unfiltered_html` capability (e.g. multisite site admins) get post-safe HTML in the Callback and tag-free CSS (Ticket #1378).
Field builders on small screens
Narrow field cards overflowed their border - a field at 50% width, or inside a repeater, pushed its switches and type badge outside the card. Cards now adapt to their real width, hiding the inline switches and then the type badge when there's no room; both stay available in the sidebar (Ticket #1376).
The sidebar width followed the screen as a percentage - a sidebar made wider on a large monitor took more than half of the builder on a laptop. Its width is now kept in pixels and capped to half of the builder when the page loads (found while auditing Ticket #1376).
Box and block header icons could fall outside the box, the toolbar's "Sidebar on the right" button was cut off at 1024px, and field names were truncated after 10 characters even when there was room. Headers keep their icons inside, the toolbar switches to compact icons on narrow builders, and names use the available width with the full name on hover (found while auditing Ticket #1376).
Toggle fields never matched in element conditions on non-English sites - a Toggle was rendered as the translated "True"/"False" (e.g. "Wahr"/"Falsch"), which Bricks conditions don't treat as yes/no, so `{acpt_...} == 1` never matched. Toggles now return `1`/`0` inside element conditions and with the `:value` argument (Ticket #1375).
Changelog publicado por el desarrollador, en su idioma original.