Flavor Starter Theme - Changelog
[4.2.0] - 2026-03-20 — Puck Visual Builder Full Parity, 48 Blocks, Live Preview & ionCube
Added
- Puck Visual Builder — Full-page editor — Dedicated full-viewport admin page with REST-driven data flow, custom header, unsaved changes warning
- Puck Visual Builder — 48 blocks — Full parity with Classic builder. 15 foundation + 10 repeater + 8 remaining + 5 utility (container, shortcode, raw-html, video-background, popup) + 7 template + 3 dynamic (query-loop, product-grid, product-categories)
- Puck Shared Features System — All 8 cross-block feature groups: entrance animations (16 types), hover effects (8), scroll effects (5), click triggers, responsive visibility, responsive order, conditional display, advanced CSS
- ionCube encoding active — 4 theme licensing files ionCube-encoded in production builds
- Builder Live Preview — Transient-based preview for unsaved changes (both builders)
Fixed
- Builder Preview showed only saved data — Now saves to transient before opening preview
- Disabled variants on storefront — 4 fixes across functions.php, RestApiController, VariantSelector, ProductInfo
- Puck Video/Countdown/Before-After/Social Icons/Lottie blocks — Multiple quality fixes
[4.1.0] - 2026-03-19 — Visual Page Builder Ecosystem — Design System, 37 Blocks, AI, Template Builder & Flavor Editor
Added
- Global Design System — Centralized design token system: colors (13 named + 8 custom slots), typography (body + H1-H6 with per-level controls), spacing scale (base unit multiplier). New "Design System" tab in Theme Options with 3 sub-tabs: Colors, Typography, Spacing. CSS output as
--flavor-ds-*variables with backward-compatible aliases to existing--flavor-*vars. 50 curated Google Fonts with<optgroup>grouped by category. Live preview strips for colors and typography - Builder Palette Integration — Page Builder color picker shows Design System palette swatches. Selecting a palette color stores CSS variable reference (
var(--flavor-ds-primary)) instead of hex — changes propagate site-wide when DS colors are updated. Active swatch indicator with friendly name display - CSS Class System — Define reusable named CSS classes in Design System > Classes. Each class has name, auto-slug, CSS properties, optional tablet/mobile overrides, and class inheritance. Apply to any block via chip selector in settings panel. Classes output as
.flavor-class-{slug}rules with responsive media queries - Configurable Breakpoints — Tablet and mobile breakpoints are now configurable in Design System > Spacing. Default: 1024px/767px. Affects responsive visibility classes, section grid stacking, and all builder responsive CSS. Visual breakpoint range strip in admin
- Per-Property Responsive — Section block has tablet/mobile overrides for padding top/bottom and column gap. Each outputs scoped media queries
- Element Reordering — All blocks have
orderTablet/orderMobilesettings to change element order per breakpoint via CSSorderproperty - Mobile-First CSS — Toggle in Design System > Spacing to switch media queries from desktop-first (max-width) to mobile-first (min-width)
- Dynamic Responsive Visibility —
flavor-hide-desktop/tablet/mobileCSS classes now generated from PHP with configurable breakpoints instead of hardcoded CSS values - Container Flexbox & Grid — Container block now supports Flexbox and CSS Grid display modes with full visual controls: direction, wrap, justify, align, gap (flex); columns, rows, gap, auto-flow, align/justify items (grid). FLEX/GRID badge in admin header
- Section Grid Enhancements — Independent row gap control (separate from column gap). Horizontal alignment (justify-items) for column content alignment
- Builder
numberfield type — Added missing handler in admin settings panel for number inputs - Condition System Enhanced — Builder settings panel now supports negation (
'!none') and boolean true conditions for field visibility - 18 New Page Builder Blocks — Total blocks: 19→37. Batch 1 (7): Divider, Alert/Notice, Social Icons, Video, Counter/Stats, Testimonials, Pricing Table. Batch 2 (7): Star Rating, Progress Bar, Countdown Timer, Table, Logo Carousel, Team Members, Image Gallery. Batch 3 (4): Before/After Slider, Map, Lottie Animation, Video Background
- Entrance Animations — 16 animation types (fade, slide, scale, rotate, blur, flip, bounce) with configurable duration, delay, easing, and animate-once. Applied to ALL blocks via shared helpers. IntersectionObserver-based scroll trigger. Respects
prefers-reduced-motion - Hover Effects — 8 hover effects (grow, shrink, float, shadow, rotate, brighten, dim) available on all blocks. CSS transition-based, no JS needed
- Scroll Effects — 5 scroll-driven effects on all blocks: Parallax, Scale, Opacity, Parallax+Scale, Parallax+Fade. Speed control (slow/medium/fast), direction (up/down). GPU-accelerated via translate3d, requestAnimationFrame throttled, respects prefers-reduced-motion
- Click Triggers — Show/Hide toggle (fade animation) and Scroll-to-Element (smooth scroll) on any block. Target by block ID or CSS selector. Auto cursor:pointer. Doesn't intercept links/buttons
- Page Transitions — CSS-based page transitions: Fade, Fade Up/Down, Slide Left/Right. Global setting in Design System > Page Builder. Enter animation on load + exit animation on navigation. Smart link handling (skips anchors, external links, new tabs)
- Dynamic Tags — Insert live data into any text block:
{post_title},{current_year},{user_name},{cart_count},{custom_field:name}, and 20+ more. Extensible via action hook - Query Loop Builder — New
query-loopblock. Visual query builder: post type, taxonomy filters, ordering, pagination. Inner blocks card template repeats per result with dynamic tags resolving per-iteration. Grid/List layouts, Card/Bordered styling, Numbered/Load More (AJAX) pagination - Conditional Display — Show/hide any block based on: user login status, user role, URL parameters, date range, cart state, custom field. Blocks fully removed from HTML when condition not met
- Sticky Section — Section block can now stick to top/bottom on scroll with configurable offset and z-index
- Popup/Modal Block — Full popup system: 5 trigger types (click/page-load/scroll/exit-intent/timed), overlay, 5 sizes, 5 positions, 4 animations, close on button/overlay/Escape, show-once per session, inner blocks for content
- Theme Template Builder (Full-Site Editing) — Create custom templates for single posts, pages, archives, and search results using the Visual Page Builder blocks. CPT
flavor_templatewith conditions (category, tag, post type, post ID, author, user role) and priority system. 5 post content blocks + 3 archive blocks (Post Grid with pagination). Accessible via Flavor Builder > Theme Templates - AI Content Generation — Generate text for any block field via 4 AI providers: Gemini Free (no cost), ChatGPT, Claude, Gemini Pro. Server-side API calls, API keys never exposed to browser. Tone controls (professional/casual/persuasive/technical), 10 languages, context-aware prompts
- AI Stock Photos — Search Unsplash and Pexels free stock photos directly in the builder. One-click download to WordPress Media Library
- AI Image Generation — Generate images from text descriptions via Gemini Imagen. Auto-saved to Media Library
- Block Picker Redesign — Sidebar categories layout (Option A): left sidebar with category list + counts, 4-column grid, quick favorites strip, category filtering, larger popup (740px), polished hover effects
- Puck Visual Builder — Alternative drag-and-drop page builder (Elementor-style) alongside Classic Builder. Built on @puckeditor/core (MIT). Setting in Design System > Page Builder. Both builders write identical
_flavor_page_layoutJSON — BlockRenderer renders the same regardless of which builder created the data. Includes: Section (dynamic columns), Heading, Text, Image, Button, Spacer, Divider - Flavor Editor (Tiptap) — Modern React/Tiptap rich text editor replaces TinyMCE Classic Editor. Features: floating toolbar (headings, formatting, lists, links, images, alignment), markdown shortcuts (
#heading,**bold**,-list,>quote), word/character count, Design System font integration, wp.media image insertion. Toggle in Theme Options > Optimize > Editor. Backward compatible — clean HTML inpost_content
Updated
- Theme > Colors/Typography tabs — Deprecated in favor of Design System tab. Deprecation notice with link added. Still functional for backward compatibility
- CSS output pipeline — Color and typography variables now handled by Design System (priority 98) instead of legacy
flavor_output_custom_css. Container width variables preserved
[4.0.0] - 2026-03-15 — Pay-from-Day-1 Licensing, Server-Side Component Delivery & Code Protection
Breaking Changes
- Licensing Model: Pay from Day 1 — Removed 14-day trial system. All modules require an active license. FREE_MODULES emptied
Added
- Flavor_Integrity_Verifier — Runtime file tamper detection via SHA256 + Ed25519 signed manifest
- Distributed Sentinels (5) — Anti-nulling checks in 5 files using different methods
- Server-Signed Feature Manifest — Flavor_License_Gate supports server-signed manifest with per-category tier requirements
- Flavor_Component_Installer — Server-side module delivery: download, verify, extract, track. Bulk install on activation
- Skeleton Architecture — Skeleton mode via
FLAVOR_CORE_INSTALLED. Only licensing + DDD infrastructure loaded when core missing - Auto-Reinstall After Upgrade — Fullscreen popup auto-downloads components when licensed user upgrades theme
Updated
- Module Cards UI — "Not Installed" state, "Install Module" button, UPDATE badge with per-module update button
- License Activation Progress UI — Fullscreen modal with sequential component download and progress bar
- Component Update System —
checkUpdates(),getAvailableUpdates(), twicedaily cron, admin notices, bulk update handler - Flavor_License_Gate — Removed all trial logic, simplified admin notices
- tab-license.php — "No License" badge, trial CTA removed, all modules locked without license
- Bootstrap —
isCoreInstalled()detection,initializeSkeletonMode(),renderSkeletonAdminPage() - functions.php — Conditional file loading with
FLAVOR_CORE_INSTALLED, skeleton stubs forflavor_t()/flavor_te() - theme-options.php — License-only mode: only License tab without license, full 11-tab page with license
Fixed
- PageBuilder sentinel
getCurrentTier()bug — Fixed togetEffectiveTier() - Flavor_License_Fingerprint NULL insert —
set_option(key, null)→delete_option()for NOT NULL column - Skeleton template fatals — header.php, footer.php, 404.php guarded with
FLAVOR_CORE_INSTALLEDcheck flavor_t()/flavor_te()stubs — Stub functions prevent fatal errors in 42+ templates during skeleton mode- OptionsRepository table-not-exists —
suppress_errors()around queries before first migration
[3.10.0] - 2026-03-12 — Search Analytics & Module Organization
Added
- Search Module v1.2.0 — Analytics dashboard — New "Analytics" admin tab with stats cards (today/7d/30d searches, unique queries, zero-result rate), top 20 queries table, zero-result queries table, auto-populate Popular Searches from analytics data, clear all data button.
flavor_search_logDB table with daily cleanup cron and configurable retention (7d–1yr). Enable/disable toggle (GDPR). - Search Module v1.2.0 — Multi-word search — Search now splits queries into words with AND matching. "red shirt" finds products containing both words in title/SKU/description (was exact phrase only). Cumulative relevance scoring per word.
Updated
- Modules Tab — Search bar — New search input filters modules across all subtabs by title and description.
- Modules Tab — Eshop sub-sections — Eshops subtab reorganized from flat 24-module list into 4 logical groups: Pricing & Promotions, Product Enhancement, Order & Checkout, Customer & Store.
Fixed
- Search Module — Admin JS option key — JS-added popular search items used wrong form name (
flavor_module_searchinstead ofmodule_search), causing new items to silently not save.
[3.9.0] - 2026-03-11 — Receipt/Invoice Checkout & AADE AFM Validation
Added
- Receipt/Invoice checkout integration — Απόδειξη/Τιμολόγιο selection at checkout. New shared
InvoiceSectionReact component across all 6 checkout templates + 5 PHP builder templates. VIES VAT validation with auto-fill. Invoice data flows checkout → order meta → PDF generation. Dead hooks fixed (flavor_*→wpec_*). 4 new i18n keys (EN + EL). PDF Invoices module v1.1.0 → v1.2.0. - AADE AFM Validation — Greek VAT (ΑΦΜ) validation via official AADE RgWsPublic2 SOAP service. Auto-routing: Greek AFMs → AADE (returns structured company name, DOY, KAD activity, address), other EU → VIES. Admin settings card with credentials + test button. 24h response caching. 18 new i18n keys (EN + EL).
Fixed
- PDF Invoice email attachments — Fixed Brevo plugin silently dropping
wp_mail()attachments. New strategy suspendspre_wp_mailfilters so PHPMailer handles attachments natively. - Points & Rewards Module v1.1.0 (Beta → Stable) — Full quality audit: shortcode TypeError fix (PHP 8.x), WooCommerce reference removed, hooks migrated to
wpec_*, i18n migration (83 keys EN + EL), duplicate points prevention, nonce verification, inline CSS moved to external file. - Points & Rewards admin UI polish — Card structure fixed to follow
fa-card-headerpattern. Quick Adjust form: stacked layout for narrow sidebar. - PDF Invoices
tab-modules.php— Versionv1.0.0→v1.1.0, removed BETA badge.
[3.8.0] - 2026-03-10 — Fingerprint Verification, PDF Invoices Overhaul & Dynamic Currency
Added
- License Fingerprint Verification — Ed25519 signed fingerprint file (
.flavor-license.dat) for triple-verification (license_key + domain + fingerprint). Prevents file cloning across domains. Filesystem storage with DB fallback for managed hosting.
Updated
- PDF Invoices Module v1.1.0 (Beta → Stable) — Full quality audit: i18n migration (35
__()→flavor_t(), 50+_e()→flavor_te(), 30+ hardcoded Greek →flavor_t(), 7number_format()→flavor_format_price()). Security fixes (REST permission, guest download validation). DI fix,wp_slash()for JSON meta, dompdf try-catch +isRemoteEnabled, HTML fallback. Hook fix (wpec_order_status_changed), admin actions (Resend/Regenerate/Delete), relative path storage with protocol-agnostic resolvers, Brevo API direct send for attachments. 131 translation keys (EN + EL).
Fixed
- License tab — Trial badge and message showing despite active license (priority check order fixed)
- Hardcoded 'GR' country codes — Replaced with dynamic store country in 5 checkout templates and 2 theme modules
- Hardcoded currency symbols (€) — PHP — Replaced in 29 theme files with dynamic
flavor_format_price()andflavor_get_option('currency_symbol') - Hardcoded currency symbols (€) — JS — Replaced in 6 jQuery files and 1 React file with PHP-localized
currencySymbol
Full Version History
For the complete changelog including all previous versions, contact our support team.