Skip to content

Releases: Hordekiller/FigmaToelementor

v1.3.3

Choose a tag to compare

@Hordekiller Hordekiller released this 29 Jun 09:25

Fixes

Critical

  • Front-end fatal — is_plugin_active() guard added for non-admin page loads (Phase 0)
  • Linear gradient detection — GRADIENT_LINEAR case added (was silently dropped; Phase 1)

Security (Phase 2)

  • esc_url() on image src, add_link_attributes() for custom link
  • SSRF host allowlist + image-only MIME restriction on downloads
  • current_user_can('manage_options') added to admin handlers
  • .htaccess deny-all added to log directory

Logic bugs (Phase 3)

  • BOOLEAN_OPERATION/STAR/POLYGON mapped to icon (not image) — SVG export path
  • Per-side stroke weight — reads flat strokeTopWeight/strokeLeftWeight etc.
  • Partial padding — individual sides applied, missing sides default to 0
  • Social icons 'x' matcher — word-boundary regex instead of bare str_contains
  • Dead ternary in extract_button_settings — split into proper fallback logic

Data integrity (Phase 3/4)

  • to_object list repeater corruption — sequential arrays preserved as arrays (not stdClass with numeric keys)
  • Stat parser — EU ambiguous formats return null, negative signs handled

CI

  • PHPCS line length errors/warnings resolved
  • PHPStan nullCoalesce.offset in image-handler.php resolved

Tests

  • 29 new regression tests covering all fixes above
  • Existing test suites: 126/126 green
  • PHPStan Level 6: 0 errors
  • PHPCS: 0 errors

v1.3.1

Choose a tag to compare

@Hordekiller Hordekiller released this 27 Jun 09:14

v1.3.1

New

  • Elementor_Renderer refactored into 7 single-responsibility classes (NodeFilter, TypeResolver, StyleExtractor, LayoutExtractor, WidgetConverters, Positioning, JsonNormalizer)
  • JsonNormalizer with normalize + validate on every save_template (critical errors → WP_Error, warnings → log)
  • Snapshot testing — 6 golden scenarios, 83 total tests across 5 suites
  • AES-256-GCM crypto upgrade (v2: prefix, backward-compatible CBC fallback)
  • Cache metrics with per-type TTL, sampled logging (1:20), dedicated cache_get/cache_set wrappers
  • Image download chunking (groups of 5) + progress throttling (≤1 call/sec)
  • 9 additional language .po files (total 10: fa_IR, en_US, de_DE, es_ES, fr_FR, it_IT, nl_NL, pt_BR, sv_SE, tr_TR)
  • "Recent Activity Log" section in Dashboard

Enhancement

  • All 23 AJAX error responses include a stable code string for programmatic handling
  • Logger error_log() fallback for ERROR/CRITICAL + hello_figma_logged action hook
  • Rotated absolute-positioned nodes logged as WARNING with node_id/name/rotation
  • AJAX input hardening — format enum validation, overrides size limit (10KB) and depth limit (5)
  • 3 RTL test cases for map_align (CSS logical properties flex-start/flex-end)

Fix

  • PHPStan Level 6 — 0 errors (baseline only for missingType.iterableValue)
  • PHPCS — all test files auto-fixed, project_audit excluded from scan
  • save_template uses $validation['ok'] instead of fragile str_contains heuristic
  • $run_id typo in Logger resolved
  • should_position_absolute() renamed to node_needs_absolute_positioning()
  • 16 fixture entries for TypeResolver (12 mapping rules, 4 edge cases)

Docs

  • README.md overhaul — Project Status table (done/incomplete/help-wanted), full language list, updated architecture diagram, honest known limitations

v1.3.0

Choose a tag to compare

@Hordekiller Hordekiller released this 26 Jun 10:49

What's New

  • Absolute positioning — Figma absoluteBoundingBox converted to Elementor position: absolute
  • Smart Widget Conversion — FAQ→Accordion, Gallery→Basic Gallery, Slider/Carousel→Image Carousel
  • Section Review — Preview frames with detected component types before import
  • Progress Bar — Real-time status updates during import
  • Per-side Borders — Individual top/right/bottom/left stroke widths
  • Dynamic Tags — Elementor Pro dynamic tags for Figma text/fields

Enhancements

  • Token encrypted at rest using AUTH_KEY-derived AES-256
  • Structured logging via centralized Logger class
  • Cache TTL configurable via hello_figma_cache_ttl filter
  • Manual cache flush button in admin settings
  • Image auto-download and attachment via Image_Handler
  • Radial gradient type detection (mapped to Elementor radial)
  • Angular/diamond gradient types mapped to linear fallback
  • Asset_Manager for centralized script/style registration
  • Compatibility checks for plugin environment

Docs & Tooling

  • Updated README.md features table and added Known Limitations section
  • PHPCS + PHPStan configuration files
  • Fixed GPL license table (forks are allowed under GPL)

v1.2.1

Choose a tag to compare

@Hordekiller Hordekiller released this 26 Jun 09:57

v1.2.1

Fixed

  • Sync HELLO_FIGMA_VERSION constant with plugin header (1.2.1)
  • Add uninstall.php: cleanup all plugin options, transients, and post meta on deletion

v1.2.0

Choose a tag to compare

@Hordekiller Hordekiller released this 26 Jun 09:30

v1.2.0

New

  • Token encryption (AES-256-CBC + wp_salt)
  • Real-time progress bar with AJAX polling
  • Absolute positioning for Figma non-auto-layout frames
  • Filterable cache TTL and API timeout hooks

Fixed

  • Rate-limit retry: cap at 3 retries (prevents infinite loops)
  • Rotated nodes excluded from absolute positioning (deferred for relativeTransform)

Refactored

  • should_position_absolute() renamed to node_needs_absolute_positioning()
  • compute_relative_position() extracted as separate method
  • Absolute children get explicit width/height from bounding box

Figma to Elementor v1.0.0

Choose a tag to compare

@Hordekiller Hordekiller released this 24 Jun 20:33

Figma to Elementor v1.0.0

The first public release! Convert Figma designs into Elementor templates with full style preservation.

Features

  • One-click Import — Paste any Figma URL, auto-extracts the file key
  • Frame Browser — Browse frames with live preview thumbnails
  • Full Style Mapping — Colors, typography, gradients, shadows, borders, opacity
  • Component Breakdown — Each section (header, hero, footer) becomes an independent Elementor container
  • Container-native — Built for Elementor Flexbox Containers
  • Typography Preserved — Font family, size, weight, line height, letter spacing, transforms
  • Gradient Support — Linear gradients with accurate color stops
  • Image Mapping — Background images from Figma fills
  • Style Sync — Sync Figma styles to Elementor Global Colors/Fonts
  • Editor Integration — Import directly inside Elementor editor via $e.run()
  • URL Parsing — Paste full Figma URLs, file key is extracted automatically
  • Persian Support — Full RTL and Persian (Farsi) localization

Requirements

  • WordPress 6.6+
  • PHP 8.0+
  • Elementor 3.27+ (Free or Pro)
  • Figma Personal Access Token

Installation

cd wp-content/plugins/
git clone https://github.com/Hordekiller/FigmaToelementor.git hello-elementor-figma-sync

Then activate from WordPress admin → Plugins.

Changelog

See full changelog.