Skip to content

Releases: yoshidaman99/elementor-container-carousel

v1.1.32

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 23 Mar 00:31

Bug Fixes

Fix slide width calculation

  • Changed slidesPerView to 'auto' with CSS width control to prevent Elementor flex container from overriding Swiper slide widths
  • Added flex-shrink: 0 and width: auto to .swiper-slide to prevent Elementor layout conflicts
  • Added dynamic per-widget <style> blocks with calc-based slide widths for each responsive breakpoint
  • Fixes incorrect card count display (e.g. showing 4 cards instead of 3 on desktop)

v1.1.31

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 23 Mar 00:05

What's New

Label Updates

  • Renamed control labels for clarity:
    • Slides Per View → Desktop Cards / Tablet Cards / Mobile Cards
    • Slides Per Group → Desktop Cards to Slide / Tablet Cards to Slide / Mobile Cards to Slide

Bug Fixes

  • Fixed editor preview: content_template() now outputs full Swiper config via data-swiper attribute
  • Fixed editor preview: editor.js now initializes Swiper instances in the Elementor editor
  • Added MutationObserver to handle dynamically added carousels in the editor

v1.1.30

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 23:36

What's New

Slides Per Group Control

  • Added Slides Per Group control to both Container Carousel and Slides Carousel widgets
  • Available per responsive breakpoint (Desktop, Tablet, Mobile)
  • Default: 1 card at a time sliding
  • Users can configure to slide one card at a time or all visible cards together

Responsive Defaults

  • Desktop: 3 cards per view
  • Tablet: 2 cards per view
  • Mobile: 1 card per view

v1.1.27

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 18:58

Fix getEmptyView patch typo - corrected to so the Elementor 3.35+ compatibility patch properly intercepts the method and returns a valid empty view component.

v1.1.23

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 17:39

What's Changed

  • Fix: getEmptyView ForceMethodImplementation error in Elementor 3.35+ editor by replacing instance-level initialize patch with direct prototype override, eliminating timing race condition

v1.1.22

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 16:39

Bug Fix

  • Fix editor error: ForceMethodImplementation Widget.getEmptyView() should be implemented (Elementor 3.35+)
  • Replace broken patchElementsManager() (which checked for widget type name but getElementTypeClass always receives generic 'widget') with direct Widget.prototype.initialize override
  • New patch adds getEmptyView as an own property on our widget instances, shadowing the base class throwing method

v1.1.21

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 16:25

Bug Fix

  • Fix fatal error persisting after v1.1.20 — corrupt element data was bypassing the get_post_metadata filter due to Elementor internal caching
  • Add wp_enqueue_scripts priority 1 hook (fix_corrupt_document_data) that detects corrupt _elementor_data, writes clean version directly to the DB, and clears WP/meta caches before Elementor processes it
  • Wrapped in try/catch to prevent the fix itself from causing errors
  • Raised get_post_metadata filter priority from 10 to 1 for earlier interception

v1.1.20

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 16:14

Bug Fix

  • Fix fatal error Call to a member function get_default_args() on array caused by incorrect child type resolution
  • Replace dead public get_child_type() with correct protected _get_default_child_type()
  • Add support_nesting, defaults, and get_raw_data() overrides matching Elementor Widget_Nested_Base pattern
  • Harden element data sanitizer to skip elements with missing elType
  • Remove unused imports

v1.1.19

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 14:17

Bug Fixes

  • Fixed: PHP Fatal Error on frontend — Call to a member function get_default_args() on array in elements.php:79. When the editor was broken (Swiper restructuring DOM), Elementor saved some widget elements with missing widgetType keys. On the frontend, get_widget_types(null) returned the entire widget types array instead of null, causing the fatal error. Added a get_post_metadata filter that sanitizes _elementor_data by stripping any elements with elType: 'widget' and no widgetType.

Changed Files

  • src/Core/Plugin.php — Added filter_elementor_data() and sanitize_elements() to clean corrupted element data before Elementor processes it
  • elementor-container-carousel.php — Version bump to 1.1.19

Note

After updating, open any affected pages in the Elementor editor and re-save to permanently fix the corrupted data in the database.

v1.1.18

Choose a tag to compare

@yoshidaman99 yoshidaman99 released this 22 Mar 14:01

Bug Fixes

  • Fixed: Editor widget editing broken — Swiper was initializing inside the Elementor editor preview, restructuring child widget DOM and breaking Elementor's element-to-model binding. This caused Cannot read properties of undefined (reading 'isEditable') when clicking any child widget inside the carousel.

  • Fixed: PHP Fatal Error on AJAX widget render — The getEmptyView patch in editor.js returned a class instance (new ProxyType()) instead of a constructor function, causing Call to a member function get_default_args() on array fatal error during Elementor's AJAX widget rendering.

  • Fixed: Child containers missing swiper-slide class in editor — Added MutationObserver in editor.js to assign swiper-slide ecc-slide classes to child containers in the editor, since Swiper no longer runs there.

Changed Files

  • assets/js/carousel.min.js — Skip initialization when window.elementor is present
  • assets/js/editor.js — Return proper class constructor from patchElementsManager(), add slide class patching observer
  • elementor-container-carousel.php — Version bump to 1.1.18