Gatilab Products
Changelogs
Improvements, fixes, and the details behind each release.
GT Page Blocks Builder
Custom HTML, CSS, and JavaScript sections with previews and reusable blocks.
GT Page Blocks Builder 3.0.4
Read release notes
- Added a per-section Defer CSS option beside Load CSS from a file in both the visual builder and Block Editor. Off by default.
- Deferred files use non-blocking print media and switch to all media on load, with a noscript stylesheet fallback for visitors without JavaScript.
- Preserve deferred loading through saves and draft recovery. Builder previews continue to apply section CSS immediately, and failed file generation retains the inline fallback.
- Added regression coverage for mixed loading modes, duplicate CSS, head/body deduplication, preview behavior, and editor save payloads.
GT Page Blocks Builder 2.7.0
Read release notes
- Dropin migration:
wp gt-pb migrate-library [--dry-run] [--overwrite](or Settings -> Tools -> Import from dropin) copies the Marketers Delightmd_page_blockstable into this plugin preserving block IDs, so existing[page_block id="N"]shortcodes andblockIdblock references keep resolving. - Blocks can reference the library again:
blockIdis a registered attribute and renders the library row server-side. Editing one library block updates every placement, instead of each block carrying its own copy. - The block editor understands the reference: a linked block shows the library block's title, ID, and badges, previews through the library's own render route (so PHP, shortcodes, and wpautop match the front end), and hides the inline HTML/CSS/JS editors that render_block() would ignore. Missing and unpublished targets are called out instead of silently rendering nothing.
- Library modal offers Link alongside Copy code, so a placement can follow the library or take a one-off copy, deliberately.
- Unlink detaches a copy: the library code is written into the block's own attributes and the reference is dropped.
- Fixed two paths that silently unlinked migrated blocks. The editor's client-side block registration did not declare
blockId, so re-saving a page dropped it; the visual builder normalized it away on load and reserialized every section without it. Both now round-trip the link, and the builder locks a linked section's editors instead of accepting edits that never render. marketers-delight/inline-page-blockis now covered by the block-name migration alongsidemarketers-delight/page-block.- Security: PHP execution now requires two independent gates — a site constant (
GT_PB_ALLOW_PHP, orMD_ALLOW_PHP_SNIPPETSfor sites coming from the dropin) and a save-time content checksum. Content mutated directly in the database no longer executes; it falls back to stripping PHP tags. Inline blocks need a further opt-in (GT_PB_ALLOW_INLINE_PHP/MD_ALLOW_INLINE_PHP) because post_content carries no separate checksum. - Display conditions work: they are saved from the block edit screen and evaluated when rendering positioned blocks (post types, page types, specific post IDs). Previously the UI existed but nothing was stored or checked.
- Dropin
md_hook_*positions are remapped to plugin positions and theme regions on import; anything with no equivalent is cleared to shortcode/block only and reported, rather than silently never rendering. - Schema: adds
php_checksum(table version 1.1), back-filled for existing PHP-enabled blocks on upgrade. - Render parity with the dropin, from diffing real output on live sites: library CSS is emitted once per request and hoisted into
<head>rather than inlined at every placement; library HTML is minified like the inline path already was. - Fixed
minify_css()collapsing the whitespace around+insidecalc(),clamp(),min()andmax(). The space is required there, soclamp(6.75rem, 6rem + 2.2vw, 9rem)became invalid and the whole declaration was dropped — section padding computed to 0 and clamped font sizes fell back to inherited.+is still collapsed in sibling selectors, where that is correct. - Fixed
minify_css()corrupting quoted strings.[style*="font-weight: 300"]and[style*="font-weight:300"]are different selectors, and collapsing the space merged them so one stopped matching. Quoted strings andurl()payloads are now preserved verbatim.
GT Page Blocks Builder 2.5.0
Read release notes
- REST API (pbb/v1): full CRUD for library blocks plus /duplicate and /render endpoints — list filtering, search, pagination, and status counts via headers.
- New library admin panel: card grid with live preview thumbnails (lazy-loaded), search, status filter tabs, duplicate / trash / restore / delete, and copy-shortcode — the classic list table remains at ?view=list.
- Block editor: the Page Block defaults to a rendered live preview (auto-sizing iframe with theme styles) when it has content; toggle Preview/Code from the block toolbar.
- Block editor: Browse library — search the library in a modal and insert a copy of any saved block into the current Page Block.
- Responsive preview: desktop / tablet (768px) / mobile (390px) viewport presets, plus a dark-scheme toggle (data-theme="dark").
- Collapsible live preview pane under the code editor — re-renders as you type (server-rendered when PHP/wpautop is on).
- Copy button for the active code tab.
- Save to library: promote an inline block to a reusable library Page Block (admins) straight from the editor.
GT Page Blocks Builder 2.3.1
Read release notes
- FIX: CSS class autocomplete was broken because PHP sent
cssClassesas a JSON object (due toarray_uniquekey gaps) instead of a JSON array. Addedarray_values()wrapper soArray.isArray()passes on the JS side.
GT Page Blocks Builder 2.3.0
Read release notes
- NEW: Typography.min.css toggle — system-font-based typography defaults with responsive heading sizes via
clamp(), proper measure (65ch), styled lists, blockquotes, code, kbd, tables. ~3KB inlined when enabled. - Three independent toggles under Settings → Page Blocks → Frontend CSS: Semantic Reset, Typography, Utility Classes.
GT Page Blocks Builder 2.2.0
Read release notes
- NEW: Semantic Reset CSS (~1KB) — modern reset with box-sizing, list defaults, accessible images, prefers-reduced-motion support. Inlined in
<head>when enabled. - NEW: Utility Classes — ~330 Tailwind-inspired utilities (grid, flex, spacing, typography, colors, borders, shadows, etc. +
sm:/md:/lg:responsive variants). Frontend inlines ONLY the rules actually used on the page (parses post_content for class names). Builder loads the full set for autocomplete.
GT Page Blocks Builder 2.1.0
Read release notes
- NEW: Top-level "Page Blocks" admin menu (moved out of Settings) with sub-pages: All Page Blocks (list table), Add New, Settings, License.
- NEW: Database-backed reusable blocks with
[page_block id="123"]and[page_block slug="hero-section"]shortcodes. - NEW: Admin list table with bulk actions (trash/restore/delete), search, status filtering.
- NEW: Admin edit form with Monaco editors for HTML/CSS/JS, live preview, position picker.
- NEW:
gt_pb_get_positions()filter — theme-independent WP core hooks (wp_head, wp_footer, the_content, loop_start, etc.).
GT Page Blocks Builder 1.3.4
Read release notes
- Fix OpenAI GPT-5 model compatibility by omitting custom
temperatureforgpt-5*models - Add provider debug diagnostics (finish reason, refusal summary, usage) for AI responses
- Add optional raw payload logging via filters for AI troubleshooting
GT Page Blocks Builder 1.3.2
Read release notes
- Lock AI Generate to HTML mode in visual builder and ignore non-HTML text selections
- Prevent HTML from being emptied when AI returns only bundled
<style id="ai-generated">/<script id="ai-generated">tags
GT Page Blocks Builder 1.3.1
Read release notes
- Default AI generation target to the HTML tab in the visual builder
- Add HTML AI bundle support with
<style id="ai-generated">and<script id="ai-generated"> - Move bundled AI CSS/JS out of HTML and into the CSS/JS editors automatically
GT Page Blocks Builder 1.2.1
Read release notes
- Add "Preview on Frontend" button in the visual builder topbar to open the live page in a new tab
- Make "Add Section" button more prominent with a full-width dashed button below the section list
- Fix "Invalid page template" error when saving on block themes (TT4, etc.)