Skip to content

v4.2.0 - Kadence + Thrive converters and CMS re-association

Choose a tag to compare

@coryhubbell coryhubbell released this 19 May 15:30

What's New in v4.2.0

Framed at the time as the "final 4.x release." Re-associates every existing converter with its current upstream CMS version, adds two new converter+parser pairs (Kadence, Thrive), and ships correctness fixes surfaced by per-CMS audits.

Framework Coverage

v4.1 v4.2
Frameworks 9 11
Translation pairs 72 110

New Framework Pairs

Kadence (kadence)

  • Targets Kadence Blocks 3.7.2 + Kadence Theme 1.5.0 + Kadence Pro
  • Emits kadence/rowlayout → kadence/column → leaf block structure with required uniqueID on every kadence-namespaced block
  • Body text/list/quote fall through to canonical core/* blocks so output round-trips cleanly through Gutenberg
  • Aliases: kadence, kadence-blocks, kadenceblocks

Thrive Themes (thrive)

  • Targets Thrive Architect 10.8.10 + Thrive Theme Builder
  • Emits TCB HTML with per-element data-css tokens and a trailing <style class="tve_custom_style"> block that resolves them
  • Suite extras (Leads, Quiz Builder, Apprentice, Ultimatum) detected and passed through unchanged in a tcb-shortcode-passthrough wrapper
  • Aliases: thrive, thrive-themes, thrive-architect, thrive-theme-builder

Converter Version Re-association

Each converter now declares TARGET_CMS_VERSION (PHP const + Python module var). The interface gains get_target_cms_version() for drift detection.

Framework Target
Bootstrap 5.3.8
Elementor 3.30.0
DIVI 4.27.0
Avada 7.15.3
WPBakery 8.7.3
Beaver Builder 2.10.2
Bricks 2.3.5
Oxygen 4.8.3
Gutenberg (WP core) 6.9.0
Kadence (new) 3.7.2
Thrive (new) 10.8.10

Audit-Driven Correctness Fixes

Gutenberg — canonical serialization restored (no core/ namespace), wp-block-heading + wp-element-button + has-alpha-channel-opacity classes emitted, align → textAlign for paragraph/heading, deprecated customTextColor/Background/FontSize removed in favor of style.*, column width as "50%" string, core/list wraps items in core/list-item.

Elementorcta widget remapped from Pro-only call-to-action to free-core icon-box (latent bug fix).

Bricks — Python parent field emitted as string "0" (not int), PHP testimonial → testimonials and gallery → image-gallery mapping alignment.

OxygenTARGET_CMS_VERSION downgraded from claimed 6.1.0 to actual 4.8.3 (converter emits the legacy ct_* schema). get_fallback() $this->current_id reference bug fixed.

Avada / WPBakery / Beaver / Bootstrap — no breakage detected.

Detection Helpers for Deferred Frameworks

v4.2 ships detection-only helpers for content that would later need its own parser in v4.3:

  • DEVTB_Elementor_Parser::is_atomic_v4_payload() — detects elType: e-* or version >= 4
  • DEVTB_DIVI_Parser::is_divi5_payload() — detects <!--\s*/?wp:divi/

Callers passthrough matching content untouched until v4.3 native parsers landed.

Test Matrix

FrameworkConversionsTest grows to 110 pairs (11 × 10). composer test reports 124/124 on the framework matrix. Pre-existing 41 errors / 3 failures in the broader suite are 4.1.0 issues (class-autoload mismatches and unrelated subsystem tests) — 4.2 does not regress them.

Deferred to v4.3

  • Native parsers for Elementor 4.x Atomic Editor, DIVI 5 block engine, and Oxygen 6 (all currently passthrough only)
  • PHP Bricks converter children flatten refactor (Python is already correct)

All four items shipped in v4.3.0.

Tag History

This release was tagged retroactively on 2026-05-19 alongside the v4.3.0 release — the original release commit (d8fa9be) was pushed without a tag, which is why GitHub's tag history briefly skipped from v4.1.0 to v4.3.0.


Full Changelog: v4.1.0...v4.2.0