Regal IT LtdRegal IT LtdRegal IT LtdRegal IT Ltd
  • WooCommerce Plugins
    • RMA Pro
    • Delivery Dates
    • Product Personaliser
    • Regal Forms
    • Sale Category Sync
    • Regal Send
    • Cart Notices
    • Made to Order
    • Knowledge Base
    • Menu Editor
    • Marketplace
    • VIEW ALL
  • Ecom Management
  • Support
    • Knowledge Base
    • Changelogs
    • Contact Us
  • My account
  • Basket
  • WooCommerce Plugins
    • RMA Pro
    • Delivery Dates
    • Product Personaliser
    • Regal Forms
    • Sale Category Sync
    • Regal Send
    • Cart Notices
    • Made to Order
    • Knowledge Base
    • Menu Editor
    • Marketplace
    • VIEW ALL
  • Ecom Management
  • Support
    • Knowledge Base
    • Changelogs
    • Contact Us
  • My account
  • Basket
Early Access Price
Sale!
Regal Product Personaliser for WooCommerce - Renewal
Premium Licence

Regal Product Personaliser for WooCommerce – Renewal

£149.99 £99.99

Regal Product Personaliser(RPP) is a WooCommerce plugin for stores selling personalised products. Create reusable design templates, control available fonts, colours and patterns, show customers a visual preview, allow cart edits, and save clear personalisation data against each order.

Category: Plugins

  • Description
  • Changelog

Description

WooCommerce Product Personalisation

Regal Product Personaliser for WooCommerce

A maintained WooCommerce personalisation system for stores selling custom text products, controlled font and colour options, visual previews, cart edits and cleaner order data.

Buy Premium Licence
View Demo
View Features
✓ Product and variation templates
✓ Cart preview and edit
✓ Personalisation analytics
Design TemplatesCreate reusable layouts for personalised products and variations.
Template GroupsShare settings across similar designs while overriding specific options.
Canvas PreviewLet customers preview text, font and colour choices before checkout.

Built for stores where personalisation is operational

RPP is more structured than a simple text add-on. It helps control what customers can enter, what design options they can select, how pricing is applied, and how the personalisation data appears in cart and orders.

Controlled options

Limit fonts, colours and patterns by template or Template Group.

Cleaner basket flow

Customers can preview and edit personalised items from the cart.

Fulfilment-ready data

Text, font, colour and preview data are saved against the WooCommerce order.

Core Features

Frontend Designer

Canvas-based preview with customer text entry, draggable placement and mobile-friendly controls.

Fonts, Colours and Patterns

Manage reusable global assets, including font thumbnails and pattern overlays.

Multi-line Personalisation

Support designs with multiple text components and per-line style choices.

Personalisation Pricing

Charge for text, fonts or colours where needed, with stable WooCommerce cart pricing.

Analytics Dashboard

Track personalised orders, items, revenue, top colours, bottom colours and font trends.

Backup and Restore

Back up and restore RPP configuration when maintaining or moving WooCommerce stores.

Replace basic product add-ons with a proper personalisation workflow

Use RPP to control design options, improve customer previews, reduce basket friction and make WooCommerce order data easier to fulfil.

Buy Premium Licence
View Demo
View Product Page

Changelog

Product Personaliser for WooCommerce

v1.3.11
Version 1.3.11 - 9th November 2026
- Route saved personalisations through WooCommerce's normal product form submission and send a resized, compressed preview to prevent oversized cart requests.
See Full Changelog
Version 1.3.10 - 28th September 2026
- Standardised the System-page header and version badge, and routed support through the Licence Server with consent-based diagnostics and structured bug reporting.

Version 1.3.7 - 23rd September 2026
- Refined the System page appearance for a more consistent experience.

Version 1.3.6 - 23rd September 2026
- Polished the licence and support experience on the System page.

Version 1.3.5 - 23rd September 2026
- Refined licence and support tools for a more consistent experience.

Version 1.3.4 - 23rd September 2026
- Improved licence status synchronisation and the update experience.

Version 1.3.3 - 23rd September 2026
- Simplified the compatibility declarations displayed in release notes.

Version 1.3.2 - 23rd September 2026
- Compatibility with WordPress: 7.1.2
- Tested WooCommerce up to: 11.1.2

Version 1.3.1 - 21st September 2026
- Removed the Coming Soon System card
- Expanded the remaining cards to equal columns.

Version 1.2.16 - 20th September 2026
- Hardened private update validation
- Refreshes protected download URLs immediately before installation.

Version 1.2.15 - 19th September 2026
- Await Licence Server confirmation before enabling a code-less trial.

Version 1.2.14 - 19th September 2026
- Added a Settings link on the Installed Plugins page.

Version 1.2.13 - 16th September 2026
- Added identified staging activation and compatibility reporting to the Licence Server check.
- Restricted Backup and Restore when the paid licence has expired.

Version 1.2.12 - 14th September 2026
- Hid trial-only controls and details when a paid licence is attached,
- Simplified the active licence confirmation message.

Version 1.2.11 - 11th September 2026
- Standardised System-page commerce actions for paid, expired, trial, paused and cancelled licence states.

Version 1.2.10 - 11th September 2026
- Show the renewal action for active paid licences as well as expired paid licences.

Version 1.2.9 - 11th September 2026
- Stored trial codes only after server acceptance
- Added trial-aware purchase and renewal actions.

Version 1.2.8 - 11th September 2026
- Added secure Regal IT customer-account trial activation codes and protected trial updates.

Version 1.2.7 - 26th August 2026
- Removed the generic Visit plugin site link from the Installed Plugins page.

Version 1.2.6 - 26th August 2026
- Added Regal IT and other-plugin links to the Installed Plugins page.

Version 1.2.5 - 22nd August 2026
- Clarified the active text line in multi-line designer preview toolbars.

Version 1.2.4 - 21st August 2026
- Aligned the Label column heading with its text field on Design Templates and Template Groups.

Version 1.2.3 - 21st August 2026
- Standardised delete action padding, height and destructive styling across RPP asset and template controls.

Version 1.2.2 - 21st August 2026
- Refined the RPP admin interface with calmer surfaces, softer controls and borders, improved spacing, clearer hierarchy and responsive table presentation.

Version 1.2.1 - 21st August 2026
- Kept the Product Personaliser menu expanded and the relevant submenu highlighted on Design Template, Template Group and plugin-admin screens.
- Fixed the menu context filter accepting WordPress's nullable submenu value, preventing errors on unrelated admin pages.

Version 1.2.0 - 21st August 2026
- Added reusable RPP UI foundations for cards, buttons, badges, notices, loading states, empty states, tables and asynchronous selectors.
- Improved Design Template product and variation assignment with accessible keyboard controls, clear loading and error feedback, and scalable selected-item loading.

Version 1.1.2 - 17th June 2026
- Fixed dashboard analytics so single-line orders count the actual stored Font and Colour order item meta before falling back to payload style data.
- Corrected historical dashboard reporting on reload for affected font and colour counts.

Version 1.1.1
- Removed the extra rendered-size tip from the Text component settings helper text.
- Added clearer helper text for Disallowed characters on Design Templates and Design Groups.

Version 1.1.0
- Added per-line minimum and maximum text size limits to Design Template text component settings.
- Added inherited per-line minimum and maximum text size limits through Design Groups.
- Applied optional per-line resize limits on the frontend while preserving the existing resize range when limits are blank.

Version 1.0.24
- Fixed personalised products losing the visible product title on the main cart page using WooCommerce's native cart item name filter.
- Added a late cart item name restore pass for personalised cart items so theme output cannot leave the title blank.
- Kept RPP cart edit/preview actions under the personalisation meta without changing mini-cart output.

Version 1.0.23
- Fixed multi-currency cart pricing so personalised product line prices are stored in the store base currency for WooCommerce totals, preventing currency plugins from converting the personalised total twice.
- Kept the personalisation charge row converted for display while applying the underlying cart item price in the correct base-currency format.

Version 1.0.22
- Fixed repeated cart total recalculation so personalisation charges are not added more than once in base or switched currencies.
- Adjusted currency cart pricing to derive the product base price from the current storefront currency before adding the converted personalisation charge.

Version 1.0.21
- Fixed cart pricing for currency-switched stores so personalisation charges are added to the current converted product price instead of a raw/base product price.
- Hardened recalculation handling to avoid double-adding personalisation charges during repeated cart total calculations.

Version 1.0.20
- Fixed frontend personalisation charge display so WooCommerce currency symbols render correctly instead of showing escaped HTML entities.
- Added the Cart price row setting to Design Templates, positioned between Personalisation pricing and Designer price display.
- Added Template Group inheritance support for the Design Template Cart price row setting.

Version 1.0.19
- Displayed the personalisation charge in the product page personalisation summary when the designer price display option is enabled.
- Made the in-designer price display label clearer and easier to spot.
- Clarified the Design Template and Template Group setting wording for showing personalisation prices.

Version 1.0.18
- Converted personalisation option charges into the active storefront currency instead of only changing the currency symbol.
- Added currency-safe cart recalculation so personalisation totals remain stored in base currency while displayed and charged in the current currency.
- Added a Designer price display option to Design Templates and Template Groups, with template inheritance support.
- Added frontend designer price display for templates where the new setting is enabled.

Version 1.0.17
- Updated the expired trial lock message to refer to Regal Product Personaliser.
- Added a licensed update availability admin notice for active trials and expired licences when a newer private build is available, with a link to review licence options.
- Simplified the expired licence notice, linked Renew the licence to the System / Licence tab,
- Displayed the notice across RPP admin pages.

Version 1.0.16
- Fixed frontend Personalise button styling so saved colour and sizing settings render correctly on product pages.
- Updated Default text position previews to follow the configured canvas aspect ratio, including square canvases.
- Hardened Canvas background image zoom handling so percentage-style saved values cannot render as unintended heavy zoom.

Version 1.0.15
- Removed the duplicate Design Templates submenu entry on new installs.
- Improved Design Templates creation wording
- Made the New Design / Add New Design admin action button more prominent.
- Added per-design Canvas background image zoom control while preserving existing template rendering defaults.
- Corrected inheritance checkbox defaults for new ungrouped Design Templates without changing existing saved designs.

Version 1.0.14
- Added domain-change reporting to licence, update, and trial requests.

Version 1.0.13
- Fixed System / Licence display so removed licences no longer show stale licence expiry dates.
- Hardened blank-key trial state refresh so remote trial data updates cleanly.

Version 1.0.12

- Changed the System page licence check so clicking Check Licence with a blank licence key forces a live trial/install check with the licence server instead of failing locally.
- Updated forced remote licence checks to report/check trial state when no licence key is attached.

Version 1.0.10
- Added a passive missing-button fallback for variable products in in-app browsers without reinitialising the personaliser modal.

Version 1.0.8
- Widened the Global Assets per-font Preview text size input so the Auto (20px) placeholder is fully visible.

Version 1.0.7
- Clarified the per-font preview size placeholder as Auto (20px) to show the current mobile default.
- Reduced Global Assets Display order column widths for a tighter admin layout.
- Fonts, standard colours and pattern colours now reorder within Global Assets after save based on their saved display order.

Version 1.0.6
- Added per-font Preview text size controls in Global Assets so each frontend font thumbnail sample can be tuned individually.

Version 1.0.5
- Added extra spacing between font thumbnail selectors and the Colour selector heading on the frontend personaliser.

Version 1.0.4
- Fixed frontend font thumbnail hover/active text colour so previews stay readable.
- Added selected font name to the frontend Font heading.
- Added display order controls for fonts, standard colours and pattern colours in Global Assets.
- Frontend font and colour selectors now respect configured display order, including mixed ordering for pattern colours.

Version 1.0.3
- Increased font thumbnail preview text size on the nested label element and strengthened CSS specificity so theme button styles do not override it.

Version 1.0.2 - 12th May 2026
- Increased frontend font thumbnail preview text size so font samples fill selector tiles more clearly.

Version 1.0.1 - 12th May 2026
- Applied font preview casing directly to rendered font thumbnail markup so Global Asset preview case settings visibly affect frontend selector labels.
- Enlarged font thumbnail selector previews to better fill each tile while preserving the stable 0.9.3 canvas render path.

Version 1.0.0 - 12th May 2026
- Added per-font Preview text case controls in Global Assets for thumbnail previews.
- Applied Default, Capitalised, Uppercase and Lowercase casing options to frontend font thumbnail labels.
- Defaulted Old English thumbnail preview text to Capitalised when no explicit preview case is selected.

Version 0.9.3 - 12th May 2026
- Improved frontend font thumbnail selectors so text thumbnails use a dark label colour on white backgrounds.
- Changed font thumbnail selector layout to a wider rectangular shape so font names and previews are less likely to be cropped.

Version 0.9.2 - 12th May 2026
- Added a dedicated Design Template inheritance toggle for canvas dimensions so templates can independently inherit canvas width/height from their Template Group.
- Separated canvas dimension inheritance from Behaviour & Controls inheritance while preserving legacy fallback behaviour for existing templates.

Version 0.9.1
- Repackaged the full 0.9.x plugin bundle after a failed WordPress upload left the installed plugin missing required include files.
- Added a defensive bootstrap check so an incomplete upload shows an admin error instead of causing a frontend fatal error.

Version 0.9.0 - 12th May 2026
- Added optional canvas width/height controls for Design Templates. Existing templates keep the legacy background-image canvas size until dimensions are set.
- Added canvas width/height controls to Template Groups for inherited canvas aspect ratios.
- Updated frontend rendering so configured canvas dimensions control the customer canvas shape while legacy templates remain unchanged.
- Updated admin background preview to reflect configured canvas aspect ratio.
- Cleaned up Default text size field layout in templates and groups.

Version 0.8.2 - 12th May 2026
- Restored the private RIT Licence Server WordPress updater client so licensed RPP releases are injected into the normal WordPress Plugins/Updates screens again.
- Preserved the existing licence server package metadata, plugin information modal, update icons and download gating behaviour.

Version 0.8.1 - 12th May 2026
- Fixed required-personalisation add-to-cart handling so a visible WooCommerce-style product-page error is shown before theme/AJAX add-to-cart handlers can fail silently.
- Corrected the Product Personaliser admin menu icon so it renders at normal WordPress menu size and inherits admin menu theme colours through a CSS mask.

Version 0.8.0 - 12th May 2026
- Improved order item personalisation display for multi-line designs: duplicate global Font/Colour rows are hidden, empty unused lines are excluded, and Line styles now render in the compact `Line 1: Font (Colour) / Line 2: Font (Colour)` format.
- Required-personalisation products now allow WooCommerce add-to-cart validation to surface the normal on-page error notice when a customer tries to add without personalisation.
- Updated the Product Personaliser admin menu icon to the supplied RPP SVG.

Version 0.7.51
- Fixed dashboard variation labels so Personalised Product Performance only uses real WooCommerce variation attributes and does not include personalisation values.
- Preserved pattern colour analytics fix from 0.7.49/0.7.50.

Version 0.7.50
- Fixed dashboard Personalised Product Performance labels so variation details are resolved from order item variation metadata without displaying SKUs.

Version 0.7.49
- Dashboard personalised product performance now shows clean variation labels without SKUs.
- Dashboard colour analytics now prioritise pattern colour selections from line-level and top-level payload data before fallback colours.

Version 0.7.48
- Dashboard personalised product performance now shows variation details and SKU where available instead of duplicate-looking parent product rows.
- Daily Choice Trends now sort newest first.
- Dashboard colour analytics now resolve pattern colour selections by pattern name, preventing pattern colours such as Metallic Gold being counted as fallback colours such as White.

Version 0.7.47
- Plugin Check compatibility pass: added targeted PHPCS annotations for verified admin save handlers, WooCommerce add-to-cart request handling, backup/restore actions, licence status notices, and admin-only assignment lookup queries.
- Preserved existing RPP behaviour and full plugin structure.

Version 0.7.46
- Addressed WordPress Plugin Check findings for plugin headers, updater compatibility, escaping, translator comments and safer request handling.
- Added the GPL-compatible plugin header licence and WordPress 6.9 readme compatibility value.
- Removed the private updater transient hooks from this Plugin Check compatible build.

Version 0.7.45
- Matched the RIT Licence Server renewal/update flow used by RMA Pro.
- Active trial installs now show a licensed-version availability notice without receiving a private WordPress update.
- Expired licence installs can receive private update metadata while the licence server blocks package download until renewal.

Version 0.7.44
- Reduced automatic update and plugin-info HTTP timeouts so WordPress admin plugin screens are not held for up to 10 seconds by licence server calls.
- Added short failure caching for automatic update checks to prevent repeated slow requests when the licence server is unreachable or timing out.
- Preserved longer manual licence/update checks and existing successful update-response caching behaviour.

Version 0.7.43
- Fixed clean-site Design Template records so the full editor loads without requiring migrated VPC template data.
- Added safe standalone template data defaults for newly created RPP templates while preserving existing migrated Regal Dog templates.
- Updated frontend template payload generation so templates created from scratch can render using uploaded backgrounds, global assets and template/group settings.

Version 0.7.42
- Changed the System screen Licence status row to show the actual licence state returned by the licence server, such as paused, cancelled, expired or active.
- Removed any separate plugin access display from the System screen so the licence status remains the single visible state field.
- Improved locked licence notices so paused, cancelled, deactivated, archived, pending and invalid states show clearer reason-specific messages.

Version 0.7.40
- Allowed sites with an expired attached licence to keep using RPP core features.
- Kept expired licences visible as expired in the System / Licence screen while preventing locked-mode restrictions.
- Updated licence field validation display so expired paid licences are treated as attached paid access rather than invalid access.

Version 0.7.39
- Changed RPP to paid-only access with an automatic 7-day trial starting from first activation/install.
- Removed the manual premium trial start flow from the System / Licence screen.
- Locked frontend and admin personalisation features when the trial has ended or the attached licence is not active.
- Preserved licence server integration using the existing active, expired, paused, cancelled, invalid and deactivated states.

Version 0.7.38
- Fixed analytics dashboard KPI money values so the currency symbol and amount stay on one line.
- Normalised WooCommerce price styling inside dashboard KPI cards and chart value labels.
- Updated dashboard trend charts to open at the latest date so older dates can be reached by scrolling left.

Version 0.7.37
- Fixed Design Template font and colour inheritance toggles so unticking immediately unlocks the related checkbox grids.
- Moved section-level inheritance controls into the section headers so it is clearer which fields they control.
- Split Available Fonts and Available Colours & Patterns into separate controlled sections.
- Preserved existing meta keys, save logic and frontend inheritance behaviour.

Version 0.7.36
- Moved assigned products / variations to the top of the Design Template editor.
- Added separate inheritance controls for allowed fonts
- Allowed colours/patterns.
- Updated frontend asset filtering to respect the new granular font and colour inheritance settings.
- Preserved existing text, behaviour, pricing and assignment save logic.

Version 0.7.35
- Fixed the Design Template editor default text size field layout so mobile and desktop values no longer overlap.
- Removed JavaScript sectionising on the Design Template editor to prevent duplicate inherited and individual font/colour controls from rendering together.
- Preserved existing inheritance, save logic, meta keys and field names.

Version 0.7.34
- Fixed Template Group edit screen so the normal group name, slug and description fields remain visible/editable.
- Stopped the JS visual sectioniser from reprocessing Template Group taxonomy forms, which prevented hidden source tables and duplicated-looking fields.
- Preserved all Template Group save keys and inheritance behaviour.

Version 0.7.33
- Added a dedicated Choose button next to the Font file URL field in Global Assets.
- Added a dedicated Choose button next to the Font preview thumbnail URL field.
- Updated the media picker targeting so each Choose button fills the correct field.
- No font asset option names or save logic changed.

Version 0.7.32
- Fixed Template Group edit screen width by overriding the WordPress taxonomy edit form constraints.
- Expanded the Template Group settings table and section headers to use the available admin page width.
- No save logic, field names, or Template Group functionality changed.

Version 0.7.31
- Fixed Template Group add screen layout by removing advanced inherited options from the cramped creation column.
- Added safe defaults when creating a new Template Group, with full configuration handled on the edit screen.
- Improved Template Group edit screen width and section styling so it uses the full admin layout more cleanly.

Version 0.7.30
- Added granular backup/export checkboxes for fonts, colours, patterns, frontend settings, general settings, design groups, design templates and product assignments.
- Added granular restore checkboxes so admins can restore selected areas only.
- Added General Settings to backup/restore coverage, including preview image retention settings.
- Removed legacy all-in-one backup compatibility so the importer only accepts the current granular backup format.
- Added scoped admin styling for the Backup / Restore component picker.

Version 0.7.29
- Added explicit visible labels next to Designer Toolbar colour pickers.
- Added explicit visible labels next to Mobile Bottom Sheet colour pickers.
- No setting names, saving logic, or frontend behaviour changed.

Version 0.7.28
- Fixed Design Templates and Template Groups admin visual overhaul by adding visible card-style section headers to the actual rendered edit screens.
- Reorganised existing template and group fields into Canvas, Behaviour, Text, Assets, Assignment, and Pricing sections without changing field names or save behaviour.

Version 0.7.26
- Visually reorganised Design Template admin settings into clearer grouped sections.
- Visually reorganised Template Group admin settings into clearer grouped sections.
- Preserved existing field names, saving behaviour, inheritance logic, and frontend functionality.

Version 0.7.25
- Split Frontend Settings saved summary and cart controls into separate cards for clearer admin navigation.
- Removed the Frontend Settings sidebar section map.
- Added clearer labels to Designer Toolbar and Mobile Bottom Sheet colour controls.

Version 0.7.24
- Changed the RPP analytics dashboard default range to the last 30 days and stores each admin user's last selected dashboard date range.
- Reorganised the Frontend Settings screen into clearer visual sections without changing saved option names or frontend behaviour.

Version 0.7.23
- Replaced the RPP dashboard with an analytics dashboard for personalised product orders, including date presets, custom date range filtering, personalised item/product sales totals, personalisation revenue, trend charts, and top/bottom colour and font selections.
- Kept the Dashboard submenu as the first Product Personaliser menu item.

Version 0.7.22
- Changed cart and mini cart summaries for multi-line designs so each text line includes its own font and colour inline, removing the separate Line styles row.

Version 0.7.21
- Adjusted default/centred text rendering to account for font ascent and descent, so 50/50 placement visually centres the actual rendered text rather than the font baseline.

Version 0.7.20
- Improved default text centring by using the rendered text bounding box when template/group default positions or fixed-centre positioning are active.
- Prevents inherited Template Group 50 / 50 positioning from appearing visually off-centre due to font side bearings or very large text sizes.

Version 0.7.19
- Updated frontend settings previews so toolbar and bottom sheet colour changes update immediately while editing, without needing to save first.

Version 0.7.18
- Fixed inherited Template Group default text positions so grouped templates calculate the starting X/Y against the actual canvas dimensions after the background image loads. 50 / 50 now visually centres text consistently.

Version 0.7.17
- Hid Font from cart and mini-cart item data when the linked design template or Template Group only has one available font.

Version 0.7.16
- Moved the selected colour name into the Colour label so swatch mode displays values as “Colour: Name” above the swatches.

Version 0.7.15
- Fixed empty top guidance messages incorrectly falling back to the template description on templates that are not in a Template Group. Empty top guidance now stays hidden.
- Removed the unused fixed-centre helper translation from frontend config.

Version 0.7.14
- Removed the customer-facing fixed-centre helper message from the frontend designer and cart edit modal.

Version 0.7.13
- Added visible colour names for swatch selectors on hover, focus, and tap.
- Hid frontend font or colour controls automatically when only one option is available for the active template/template group.

Version 0.7.12
- Removed the 200px cap from the Mobile default text size field on templates and Template Groups. Larger mobile sizes now save correctly.

Version 0.7.11
- Fixed template behaviour saving when a design template is not assigned to a Template Group. Local settings such as Fix text in centre now save correctly even if inheritance is ticked but no group exists.

Version 0.7.10
- Added explicit labels and helper descriptions for each designer toolbar and mobile bottom sheet colour setting.
- Added admin preview blocks showing which toolbar and bottom sheet elements each colour setting affects.

Version 0.7.9
- Enlarged the toolbar panel close control for easier mobile use.
- Centred toolbar font/colour dropdown panels on mobile to avoid overlapping fixed page elements.
- Added frontend colour settings for the designer toolbar, toolbar buttons, and mobile bottom sheet.
- Saved preview images now hide the active text selection outline and resize handle.
- Matched the cart edit Save Personalisation button text sizing with the Cancel button.

Version 0.7.8
- Split the designer toolbar into clearer Font and Colour buttons for multi-line editing.
- Moved mobile toolbar panels to a compact fixed bottom sheet so expanded controls do not cover the canvas.
- Increased Undo and Redo icon sizing in the designer toolbar.

Version 0.7.7
- Replaced the multi-line style popover with a compact designer toolbar above the canvas.
- Moved Undo and Redo into the toolbar when toolbar mode is active.
- Added compact floating toolbar controls for selected-line font and colour without pushing the form down.

Version 0.7.6
- Changed multi-line style popover placement so the panel appears outside the canvas preview instead of covering the design area.
- Kept the compact font/colour controls scrollable for mobile while preserving canvas visibility.

Version 0.7.5
- Added a Template Group / Design Template option for multi-line style controls: standard inline controls or compact pop-up controls when selected text is tapped.
- Added compact text style pop-up UI for multi-line designs, with font and colour controls close to the selected canvas text.
- Updated blank canvas taps so multi-line text is unselected instead of leaving the previous line active.
- Preserved the simple single-line designer flow.

Version 0.7.4
- Changed Undo and Redo to plain black icon controls so theme button styling does not affect them.
- Prevented blank canvas taps from moving the currently selected text.

Version 0.7.3
- Tightened mobile resize-handle hit detection so dragging selected text is less likely to trigger resizing.
- Aligned resize hit detection to the visible bottom-right handle instead of using an oversized outer hit area.
- Changed Undo and Redo controls to centred arrow buttons with hover titles.

Version 0.7.2
- Improved mobile and desktop resize-handle hit detection so the resize handle takes priority over text dragging.
- Increased the effective mobile resize touch target without making the visible canvas handle bulky.
- Added optional Undo and Redo controls at Design Template and Template Group level, storing the latest 10 editor states.

Version 0.7.1
- Added separate mobile and desktop default text position settings for Design Templates and Template Groups.
- Fixed the admin layout for default text position fields so X/Y controls no longer overlap.
- Fixed frontend selector configuration so colour thumbnail swatches render when enabled.
- Improved proportional resize handles for desktop and mobile canvas editing, including single-line designs.
- Added a Duplicate action for Template Groups that copies group settings without reassigning templates.

Version 0.7.0
- Added template and template group options for colour swatch selectors, font thumbnail selectors, proportional text resizing, and default text start positions.
- Added per-line font and colour styling for multi-line designs while preserving the simple single-line designer flow.
- Added font thumbnail image support in Global Assets.
- Changed design templates to use a single Template Group assignment.
- Extended cart edit, preview, AJAX save, cart meta, and order meta handling for the new per-line personalisation payload.

Version 0.6.63
- Fixed RPP cart price compounding after currency switching by storing the raw product base price when personalisation is added.
- Added separate base-currency personalisation price storage so cart recalculations remain idempotent.
- Added a pricing filter for currency-plugin compatibility without changing existing cart edit behaviour.

Version 0.6.62
- Hardened cart edit modal save handling on mobile by disabling backdrop-close for the edit modal.
- Captured cart edit save via pointer/touch/click events before mobile keyboard viewport changes can redirect the tap.
- Added a short modal interaction lock and live input blur/read step before saving.

Version 0.6.61
- Removed the hard 240px cap from desktop default text size fields at template-group and design-template level.
- Kept minimum validation in place so saved text size values remain valid.

Version 0.6.60
- Added separate mobile and desktop default text size settings at template-group and design-template level.
- Desktop modal designer now uses the desktop text size.
- Added per-text-component movement control so added text lines can be kept locked with the main text or moved independently.

Version 0.6.59
- Moved required-personalisation assignment control from product/variation edit screens into Design Template assignment rows.
- Required assigned simple products and selected variations now open the designer automatically instead of showing the Personalise button first.
- Kept variation-level assignment support intact.

Version 0.6.58
- Changed the product-page designer to open as a larger desktop modal while preserving the existing inline/mobile layout.
- Tightened design template assignment search so results are filtered by product title and variation assignments display usable variation details.

Version 0.6.57
- Added mini-cart spacing between RPP meta labels and values.
- Updated design template product/variation assignment search results to show clean product titles and variation names without raw IDs.
- Kept assignment search title-based and variation-level.

Version 0.6.56
- Added separate template behaviour inheritance controls for canvas background colour, fixed-centre text and save behaviour.
- Fixed inherited behaviour fields staying disabled when text component inheritance was disabled.
- Hardened cart edit text saving by posting and sanitising live text lines separately and centring locked text during redraw.

Version 0.6.55
- Hide internal RPP order item meta from WooCommerce order confirmation, admin order meta output and customer emails.
- Added General Settings page with preview image retention options and daily cleanup for stored preview files.

Version 0.6.54
- Added template-group inheritance for canvas background colour, fixed-centre text behaviour and save behaviour.
- Hardened cart edit text syncing on mobile by saving live input text before preview generation and clamping text position inside the canvas.

Version 0.6.53
- Added RPP Backup / Restore admin page.
- Backup export now includes global assets, frontend settings, template groups, design templates and product\/template assignment settings.
- Restore supports merge\/update mode and replace mode without touching WooCommerce orders or saved order item personalisation meta.

Version 0.6.52
- Fixed Template Group allowed font saving where a global font has an empty CSS family value by falling back to the font name instead of saving an empty checkbox value.
- Made asset checkbox matching use non-empty CSS/name/ID candidates so saved font and colour selections remain visible after reload.
- Added frontend font CSS fallback to the font name when the CSS family field is blank.

Version 0.6.51
- Fixed Template Group allowed font persistence
- Made checkbox matching tolerant of legacy saved values.
- Removed canvas background snapping while keeping green centre guide lines during dragging.
- Replaced cart Preview/Edit text links with icon-only actions.

Version 0.6.50
- Fixed cart Preview/Edit reliability by re-enabling the cart action injection fallback and forcing the links onto their own row under the cart item meta.
- Added a per-template canvas background colour used beneath the canvas image when the image is offset or does not cover the full frame.
- Improved admin canvas background dragging so horizontal and vertical positioning redraws from a cached image instead of reloading the image during movement.
- Added the template background colour to the frontend canvas payload so customer previews
- Saved previews use the same underlay colour.

Version 0.6.49
- Removed remaining normalised template debug summary, components table and JSON output from the design template edit screen.
- Restored cart Preview/Edit links by rendering them below the cart item name instead of as WooCommerce item meta.
- Added template group control to hide the Personalisation price row in cart and mini-cart while still applying the charge to totals.
- Removed the customer-facing designer title text.
- Moved the bottom guidance message under the Save/Cancel buttons.
- Added draggable admin canvas background positioning with centre snap guidance
- Saved background X/Y offsets.
- Kept the frontend scroll position setting with Top, Middle and Lower options.

Version 0.6.48
- Hardened cart/order handling so RPP meta is only stored when real personalisation text exists.
- Moved cart Preview/Edit into a dedicated Personalisation actions row and renamed Personalisation charge to Personalisation.
- Improved pricing field alignment in template and group admin screens.
- Greyed out inherited template group fields until inheritance is disabled.
- Added inherited top and bottom TinyMCE guidance messages for template groups/templates.
- De-duplicated pattern colours on the frontend, preferring the pattern entry where names match.
- Included pattern entries in allowed colour selection for template groups and templates.

Version 0.6.47
- Added inherited template group controls for fonts, colours, guidance, default text size and personalisation pricing.
- Added cart preview image replacement setting.
- Added scroll position control
- Improved cart meta alignment.
- Confirmed RPP order item meta keys for template, payload, preview and pricing.

Version 0.6.47
- Fixed design template inheritance toggle so inherited text component values become editable immediately when inheritance is unticked.
- Restored delete/add controls dynamically when switching from inherited to local text component settings.

Version 0.6.45
- Updated design template text component settings so inherited template group values are shown as read-only fields.
- Prevented inherited text component values from being saved as local template overrides.

Version 0.6.44
- Removed obsolete configurator migration and fallback references from frontend, admin screens, and plugin documentation.
- Removed legacy scanner and migration classes now that RPP runs independently.

Version 0.6.43
- Rebuilt System / Licence page to match the RMA Pro four-column layout.
- Added automatic licence server check-in/reporting so RPP appears on the licence server.
- Added support, debug tools, licence field status icon, changelog and coming soon panels.

Version 0.6.42
- Added System / Licence admin page modelled on RMA Pro.
- Added licence activation, removal, re-check and 7-day premium trial handling for the Regal Product Personaliser product slug.
- Added RIT Licence Server update and plugin-info client, including icon/banner metadata support.

Version 0.6.41
- Fix: Keep the cart Colour value intact and place Preview/Edit links underneath it instead of replacing it.
- Fix: Cart action alignment now avoids injecting action markup into WooCommerce item-data values.

Version 0.6.40
- Fix: Move cart Preview/Edit links under the visible personalisation meta instead of outputting a separate Actions row.
- Fix: Remove empty Actions label behaviour from cart item data.

Version 0.6.38
- Fix: Forces cart Preview/Edit actions into the same WooCommerce item-data block that already renders Text/Font/Colour, so XStore/custom cart templates cannot strip them from the product-name hook.
- Fix: Uses anchor-based cart action links to avoid WooCommerce/WP KSES stripping button markup from formatted cart item data.
- Fix: Adds a visible Template Group selector beside both top and bottom bulk-action controls and a hidden field fallback so bulk assignment submits the selected group reliably.
- Fix: Adds admin-side validation/alert when the Template Group bulk action is used without selecting a group.

Version 0.6.38
- Fix: Removes the empty cart item data action row that displayed as a lone colon on some themes.
- Fix: Adds a cart-page footer injection fallback so Preview/Edit actions still render when the theme overrides WooCommerce cart item name output.
- Fix: Adds clearer bulk Template Group controls beside the bulk action dropdown and prevents submission until a group is selected.
- Improvement: Adds admin notices for Template Group bulk assignment success or missing group selection.

Version 0.6.36
- Fix: Adds cart Preview/Edit actions as a cart item data row as well as the product-name hook, improving compatibility with themes that override WooCommerce cart item name output.
- Fix: Reworks admin pattern preview control layout to prevent field overlap on narrower admin screens.
- Fix: Improves admin pattern preview font matching and redraw timing.
- Improvement: Adds white/black background toggle for pattern preview canvas.
- Improvement: Adds bulk Template Group assignment controls to the Design Templates list table.

Version 0.6.35
- Fix: Restored cart Preview/Edit actions by appending them directly to the WooCommerce cart item name on the main cart page.
- Fix: Kept mini-cart clean by not rendering cart edit/preview actions outside the main cart page.
- Fix: Reworked admin pattern preview layout so font, X/Y/scale fields no longer overlap.
- Fix: Improved admin pattern preview font loading by registering font-face aliases for both font name and CSS family name.
- Improvement: Added a visible Template Groups submenu under Product Personaliser.

Version 0.6.34
- Fix: Restore cart/mini-cart personalisation metadata output.
- Fix: Pattern preview now loads saved pattern URLs, applies selected preview font and normalises legacy wp-content URLs.
- Fix: Saved summary styling now applies directly to the summary wrapper.
- Improvement: Added Test/Live frontend visibility mode.
- Improvement: Added configurable Personalise button icon.
- Improvement: Added template-level text lines and character limits.
- Change: Removed separate allowed patterns selector from templates; pattern colours are controlled through allowed colours.

Version 0.6.32
- Fixed product designer Cancel so it clears unsaved personalisation state instead of leaving saved-looking values.
- Improved admin pattern preview with custom preview text, selected font rendering, cached image redraws and cleaner field layout.
- Fixed cart preview regeneration by storing the live canvas preview during cart edit saves.
- Persisted pattern offset and scale values through cart and order payloads.
- Applied saved summary border/background colours directly to the rendered summary.
- Added per-template option to add to basket and redirect to cart after saving personalisation.
- Adjusted designer and post-save scroll offsets for mobile keyboard visibility and theme layouts.
- Added admin thumbnail preview for template background images.

Version 0.6.31
- Fixed the product designer Cancel action so it clears unsaved personalisation, hides the saved summary and restores the Personalise button state.
- Fixed pattern preview dragging in admin by caching loaded pattern images and redrawing without blanking the preview during drag.
- Persisted pattern offset X/Y/scale values in the saved personalisation payload.
- Regenerated
- Saved cart preview images during cart edit saves where canvas export is available.
- Added canvas background image thumbnails to design template settings.
- Added saved personalisation preview rendering to WooCommerce order admin and HTML order/email item output.
- Adjusted post-save scroll offsets to position the preview higher on desktop and mobile.

Version 0.6.30
- Isolated the cart edit modal controls from the product-page personaliser by removing duplicate modal IDs for text, font, colour, canvas and save controls.
- Fixed cart edit text persistence by reading the active modal text field directly at save time and posting it separately to the AJAX handler.
- Kept WooCommerce cart item updates in place
- Preserved session persistence with calculate_totals(), set_session() and session save.
- Prevented cart edit state from updating product-page summary fields while the modal is open.

Version 0.6.29
- Fixed cart edit persistence by updating the existing WooCommerce cart item in place instead of removing and re-adding it.
- Ensured edited text, font and colour are saved together from the active cart edit modal fields.
- Removed duplicated Preview/Edit actions above the personalisation details so cart actions only appear once in the meta area.
- Hardened cart modal rendering when only the RPP unique cart key is available.

Version 0.6.28
- Fixed cart edit text saving by reading the active modal input directly at save time instead of relying on stale shared state.
- Stored cart edit modal context on the modal itself so duplicate product-page fields cannot override cart edit values.
- Replaced the edited WooCommerce cart line item after save while preserving product, variation, quantity and non-RPP cart item data.
- Kept the Saving... loader active until the AJAX save response returns.

Version 0.6.27
- Fixed cart edit text updates by posting the live modal text field separately from the JSON payload.
- Hardened cart edit field selectors to avoid stale duplicate ID values on cart pages.
- Preserved existing font/colour save behaviour.

Version 0.6.26
- Rebuilt cart-page personalisation edit saving to replace the WooCommerce cart line item with updated RPP payload data instead of mutating the existing cart item in place.
- Preserves product, variation, quantity, variation attributes and non-RPP cart item data while updating personalisation.
- Returns the replacement cart key after save
- Forces WooCommerce totals/session persistence.

Version 0.6.25
- Fixed JavaScript syntax regression in compact cart payload builder.
- Restored frontend personaliser initialisation, product-page button rendering, and cart edit script execution.

Version 0.6.24
- Fixed cart-page edit saving by sending a compact payload instead of the full preview image data URI.
- Forced WooCommerce session data save after cart item personalisation updates.

Version 0.6.23
- Restored visible Preview/Edit actions on the main cart page by hiding only the generated label, not the action row.
- Changed customer-facing personalisation label from "Personalisation text" to "Text" in cart, mini cart and order/email item meta.

Version 0.6.22
- Fixed cart edit save handling when the cart action link has no rendered cart key on first load.
- Cart edit save now always stays in the cart edit AJAX path and can fall back by unique key or template ID.
- Ensured WooCommerce cart/session are loaded before updating cart item personalisation.

Version 0.6.21
- Fixed cart item meta alignment so Colour stays aligned with its value.
- Moved cart Preview/Edit fallback into a separate hidden-label meta row for mobile cart templates.

Version 0.6.20
- Restored cart Preview/Edit actions for mobile cart templates that do not render the filtered cart item name.
- Kept Preview/Edit actions hidden outside the main cart page so the mini cart remains clean.

Version 0.6.19
- Fixed cart edit immediately after add-to-cart by rendering Preview/Edit from the cart item name hook, which supplies the real WooCommerce cart item key on first load.
- Removed cart action output from item meta to avoid stale or empty cart keys before the cart page is refreshed.

Version 0.6.18
- Fixed cart inline edit save by reading the modal fields directly at save time.
- Scoped cart edit controls to the modal to avoid duplicate-ID selector conflicts.
- Added stricter AJAX success checking and persistent cart/session update after save.

Version 0.6.17
- Fixed cart edit AJAX save persistence.
- Added robust cart item lookup using the RPP unique cart item key.
- Added explicit WooCommerce cart totals/session refresh after inline cart edits.

Version 0.6.16
- Removed cart action links from mini cart output so Edit/Preview only appear on the main cart page.
- Added saving state and spinner to cart edit modal save button.

Version 0.6.15
- Fixed the design template product assignment picker so it renders as AJAX search/click-to-add instead of a plain multi-select.
- Added the missing admin AJAX endpoint for product and variation assignment search.
- Fixed cart inline edit saving so the modal writes the updated payload back to the correct cart item.
- Improved the cart edit modal header: centred title, larger title, and larger close button.

Version 0.6.14
- Removed duplicated bold personalisation output from the mini cart.
- Added Preview and Edit actions through WooCommerce item data so they show more reliably on cart and mini-cart templates.
- Hidden the generated WooCommerce “Personalisation actions” label so cart actions appear as plain links/buttons.
- Added a fallback preview modal message for older cart items that do not yet have preview image data saved.

Version 0.6.13
- Added AJAX product/variation search assignment inside design templates.

- Added click-to-add assignment UI with removable assigned items.

- Added assignment fallback so product-page personaliser still loads from template-managed assignments if product meta was not written by an earlier build.

- Improved variation assignment lookup to include inherited variation post status.

Version 0.6.12
- Added delete buttons with confirmation for Global Asset rows.
- Improved pattern colour editing with draggable canvas preview, selectable preview font, and manual axis/scale controls.
- Removed redundant product-page template assignment controls while keeping required-personalisation controls.
- Added cart inline edit modal for existing RPP personalisation data.

Version 0.6.11
- Fixed cart action output so Edit/Preview no longer render as empty meta labels with stray colons.
- Preserved canvas preview data URLs for cart preview buttons.
- Added template-level product and variation assignment UI.
- Added design-template list column showing linked products/variations.

Version 0.6.10
- Fixed Global Assets Colours card rendering after fonts.
- Moved patterns into the backend Colours card with standard/pattern sections.
- Removed frontend Pattern colours separator from the customer colour dropdown.
- Added pattern position and scale controls with backend preview.
- Added stronger mini-cart personalisation output.

Version 0.6.9
- Added frontend button sizing controls, including optional Add to Basket size inheritance.
- Added configurable scroll target after saving personalisation.
- Changed cart edit output to a plain “Edit” link without the duplicated “Edit:” label.
- Added a setting to toggle the cart preview button.
- Improved preview capture for same-origin uploaded canvas/pattern images.

Version 0.6.8
- Changed saved frontend button to Preview personalisation after personalisation is saved.
- Added inline Edit button below saved personalisation details.
- Merged standard colours and pattern colours into one Global Assets Colours card.
- Improved pattern colour availability on the frontend when text component colour restrictions are active.

Version 0.6.7
- Added frontend setting to toggle the basket/cart edit personalisation link.
- Matched the edit personalisation link sizing to normal personalisation meta.
- Improved colour display so cart and order meta prefer colour names instead of hex codes.

Version 0.6.6
- Merged pattern overlays into the frontend Colour selector with a divider for pattern colours.
- Improved font switching so selected fonts redraw immediately after browser font loading.
- Saved personalisation summary now shows text, font and colour, with optional preview button and configurable summary styling.
- Save personalisation now closes the designer and scrolls back to the Add to Basket area.
- Moved Cancel below Save in the designer actions.

Version 0.6.5
- Reworked Global Assets into collapsible admin cards for Fonts, Colours and Patterns.
- Added WordPress colour picker controls while preserving editable hex fields.
- Added Frontend Settings screen for Personalise button text and button styling.
- Added template option to fix text to the centre of the canvas by default, with constrained dragging when unlocked.
- Improved placeholder text positioning so “Your text” starts centred.
- Removed internal design template name from the customer-facing designer title.
- Added Cancel button to close the designer.
- Added cart preview button using the saved personalisation canvas image.
- Continued storing personalisation data on order items so it appears in standard WooCommerce order emails.

Version 0.6.4
- Added .otf font upload support for RPP Global Assets.
- Added Global Assets guidance explaining that .otf is supported but .woff2/.woff are preferred for production because .otf files are usually larger, slower and can render less consistently.
- Improved frontend @font-face output to include correct font format hints for .woff2, .woff and .otf files.

Version 0.6.3
- Fixed the Global Assets admin screen not rendering on PHP 8+ because of unquoted keys/constants.

Version 0.6.2
- Added RPP Global Assets admin page for managing fonts, colours and pattern overlays.
- Added Media Library upload buttons for font files, pattern images and template background images.
- Added template-level canvas background image setting.
- Added template-level restrictions for allowed fonts, colours and patterns.
- Added duplicate action for RPP design templates.
- Changed cart and order meta to show personalisation text, font and colour instead of the internal template name.
- Added a basic cart edit link back to the product page.
- Added frontend pattern overlay selection and rendering support.

Version 0.6.1
- Changed frontend behaviour to improve the product selection flow: variable products show nothing until a variation is selected, then show a Personalise button.
- Moved the frontend personaliser after the Add to Basket button instead of rendering the full canvas before purchase controls.
- Added a contained responsive designer panel with preview, controls, save button, close button, and mobile touch dragging.
- Added template guidance content support.
- Kept version increments to patch-level numbering.

Version 0.6.0
- Added simple product immediate RPP loading and variable product deferred loading until a variation is selected.
- Added variation template fallback to parent product template.
- Added product-level and variation-level required personalisation flags.
- Added frontend and server-side add-to-basket enforcement for required text.
- Improved canvas rendering to use migrated option image backgrounds and legacy text coordinates where available.
- Added per-text-component font and colour filtering using legacy Custom Text Addon settings.

Version 0.5.0
- Added first future-proof frontend canvas engine scaffold.
- Added variation-aware template detection on the product page.
- Added cart and order meta capture for RPP personalisation payloads.
- Added public CSS/JS assets for the new RPP renderer.
- Fixed version bump in plugin header and runtime constant.

Version 0.4.0
- Added Product Personaliser Templates meta box on WooCommerce product edit screens.
- Stores selected template IDs in `_rit_rpp_template_ids`.
- Added safe version upgrade routine and imported template title cleanup.
- Frontend rendering remains disabled; this build only validates clean product-to-template assignment.

Version 0.3.5
- Fixed plugin header/version constant so WordPress upgrades consistently.
- Added RPP Template Data meta box on Design Template edit screens.
- Shows migrated normalised template summary, components, text component IDs, normalised JSON.
- Confirmed product assignment migration remains disabled; product links are read-only until exact assignment logic is validated.

Version 0.3.4
- Disabled product assignment writes during migration.
- Left candidate product links as read-only scan data only.

Version 0.3.3
- Safer migration handling for templates, text blocks, fonts, colours, and patterns.

Version 0.3.2
- Restored Product Personaliser dashboard submenu.

Version 0.3.1
- Tightened legacy config detection.

Version 0.3.0
- Added initial migration engine.

Changelog

Product Personaliser for WooCommerce

v1.3.11
Version 1.3.11 - 9th November 2026
- Route saved personalisations through WooCommerce's normal product form submission and send a resized, compressed preview to prevent oversized cart requests.
See Full Changelog
Version 1.3.10 - 28th September 2026
- Standardised the System-page header and version badge, and routed support through the Licence Server with consent-based diagnostics and structured bug reporting.

Version 1.3.7 - 23rd September 2026
- Refined the System page appearance for a more consistent experience.

Version 1.3.6 - 23rd September 2026
- Polished the licence and support experience on the System page.

Version 1.3.5 - 23rd September 2026
- Refined licence and support tools for a more consistent experience.

Version 1.3.4 - 23rd September 2026
- Improved licence status synchronisation and the update experience.

Version 1.3.3 - 23rd September 2026
- Simplified the compatibility declarations displayed in release notes.

Version 1.3.2 - 23rd September 2026
- Compatibility with WordPress: 7.1.2
- Tested WooCommerce up to: 11.1.2

Version 1.3.1 - 21st September 2026
- Removed the Coming Soon System card
- Expanded the remaining cards to equal columns.

Version 1.2.16 - 20th September 2026
- Hardened private update validation
- Refreshes protected download URLs immediately before installation.

Version 1.2.15 - 19th September 2026
- Await Licence Server confirmation before enabling a code-less trial.

Version 1.2.14 - 19th September 2026
- Added a Settings link on the Installed Plugins page.

Version 1.2.13 - 16th September 2026
- Added identified staging activation and compatibility reporting to the Licence Server check.
- Restricted Backup and Restore when the paid licence has expired.

Version 1.2.12 - 14th September 2026
- Hid trial-only controls and details when a paid licence is attached,
- Simplified the active licence confirmation message.

Version 1.2.11 - 11th September 2026
- Standardised System-page commerce actions for paid, expired, trial, paused and cancelled licence states.

Version 1.2.10 - 11th September 2026
- Show the renewal action for active paid licences as well as expired paid licences.

Version 1.2.9 - 11th September 2026
- Stored trial codes only after server acceptance
- Added trial-aware purchase and renewal actions.

Version 1.2.8 - 11th September 2026
- Added secure Regal IT customer-account trial activation codes and protected trial updates.

Version 1.2.7 - 26th August 2026
- Removed the generic Visit plugin site link from the Installed Plugins page.

Version 1.2.6 - 26th August 2026
- Added Regal IT and other-plugin links to the Installed Plugins page.

Version 1.2.5 - 22nd August 2026
- Clarified the active text line in multi-line designer preview toolbars.

Version 1.2.4 - 21st August 2026
- Aligned the Label column heading with its text field on Design Templates and Template Groups.

Version 1.2.3 - 21st August 2026
- Standardised delete action padding, height and destructive styling across RPP asset and template controls.

Version 1.2.2 - 21st August 2026
- Refined the RPP admin interface with calmer surfaces, softer controls and borders, improved spacing, clearer hierarchy and responsive table presentation.

Version 1.2.1 - 21st August 2026
- Kept the Product Personaliser menu expanded and the relevant submenu highlighted on Design Template, Template Group and plugin-admin screens.
- Fixed the menu context filter accepting WordPress's nullable submenu value, preventing errors on unrelated admin pages.

Version 1.2.0 - 21st August 2026
- Added reusable RPP UI foundations for cards, buttons, badges, notices, loading states, empty states, tables and asynchronous selectors.
- Improved Design Template product and variation assignment with accessible keyboard controls, clear loading and error feedback, and scalable selected-item loading.

Version 1.1.2 - 17th June 2026
- Fixed dashboard analytics so single-line orders count the actual stored Font and Colour order item meta before falling back to payload style data.
- Corrected historical dashboard reporting on reload for affected font and colour counts.

Version 1.1.1
- Removed the extra rendered-size tip from the Text component settings helper text.
- Added clearer helper text for Disallowed characters on Design Templates and Design Groups.

Version 1.1.0
- Added per-line minimum and maximum text size limits to Design Template text component settings.
- Added inherited per-line minimum and maximum text size limits through Design Groups.
- Applied optional per-line resize limits on the frontend while preserving the existing resize range when limits are blank.

Version 1.0.24
- Fixed personalised products losing the visible product title on the main cart page using WooCommerce's native cart item name filter.
- Added a late cart item name restore pass for personalised cart items so theme output cannot leave the title blank.
- Kept RPP cart edit/preview actions under the personalisation meta without changing mini-cart output.

Version 1.0.23
- Fixed multi-currency cart pricing so personalised product line prices are stored in the store base currency for WooCommerce totals, preventing currency plugins from converting the personalised total twice.
- Kept the personalisation charge row converted for display while applying the underlying cart item price in the correct base-currency format.

Version 1.0.22
- Fixed repeated cart total recalculation so personalisation charges are not added more than once in base or switched currencies.
- Adjusted currency cart pricing to derive the product base price from the current storefront currency before adding the converted personalisation charge.

Version 1.0.21
- Fixed cart pricing for currency-switched stores so personalisation charges are added to the current converted product price instead of a raw/base product price.
- Hardened recalculation handling to avoid double-adding personalisation charges during repeated cart total calculations.

Version 1.0.20
- Fixed frontend personalisation charge display so WooCommerce currency symbols render correctly instead of showing escaped HTML entities.
- Added the Cart price row setting to Design Templates, positioned between Personalisation pricing and Designer price display.
- Added Template Group inheritance support for the Design Template Cart price row setting.

Version 1.0.19
- Displayed the personalisation charge in the product page personalisation summary when the designer price display option is enabled.
- Made the in-designer price display label clearer and easier to spot.
- Clarified the Design Template and Template Group setting wording for showing personalisation prices.

Version 1.0.18
- Converted personalisation option charges into the active storefront currency instead of only changing the currency symbol.
- Added currency-safe cart recalculation so personalisation totals remain stored in base currency while displayed and charged in the current currency.
- Added a Designer price display option to Design Templates and Template Groups, with template inheritance support.
- Added frontend designer price display for templates where the new setting is enabled.

Version 1.0.17
- Updated the expired trial lock message to refer to Regal Product Personaliser.
- Added a licensed update availability admin notice for active trials and expired licences when a newer private build is available, with a link to review licence options.
- Simplified the expired licence notice, linked Renew the licence to the System / Licence tab,
- Displayed the notice across RPP admin pages.

Version 1.0.16
- Fixed frontend Personalise button styling so saved colour and sizing settings render correctly on product pages.
- Updated Default text position previews to follow the configured canvas aspect ratio, including square canvases.
- Hardened Canvas background image zoom handling so percentage-style saved values cannot render as unintended heavy zoom.

Version 1.0.15
- Removed the duplicate Design Templates submenu entry on new installs.
- Improved Design Templates creation wording
- Made the New Design / Add New Design admin action button more prominent.
- Added per-design Canvas background image zoom control while preserving existing template rendering defaults.
- Corrected inheritance checkbox defaults for new ungrouped Design Templates without changing existing saved designs.

Version 1.0.14
- Added domain-change reporting to licence, update, and trial requests.

Version 1.0.13
- Fixed System / Licence display so removed licences no longer show stale licence expiry dates.
- Hardened blank-key trial state refresh so remote trial data updates cleanly.

Version 1.0.12

- Changed the System page licence check so clicking Check Licence with a blank licence key forces a live trial/install check with the licence server instead of failing locally.
- Updated forced remote licence checks to report/check trial state when no licence key is attached.

Version 1.0.10
- Added a passive missing-button fallback for variable products in in-app browsers without reinitialising the personaliser modal.

Version 1.0.8
- Widened the Global Assets per-font Preview text size input so the Auto (20px) placeholder is fully visible.

Version 1.0.7
- Clarified the per-font preview size placeholder as Auto (20px) to show the current mobile default.
- Reduced Global Assets Display order column widths for a tighter admin layout.
- Fonts, standard colours and pattern colours now reorder within Global Assets after save based on their saved display order.

Version 1.0.6
- Added per-font Preview text size controls in Global Assets so each frontend font thumbnail sample can be tuned individually.

Version 1.0.5
- Added extra spacing between font thumbnail selectors and the Colour selector heading on the frontend personaliser.

Version 1.0.4
- Fixed frontend font thumbnail hover/active text colour so previews stay readable.
- Added selected font name to the frontend Font heading.
- Added display order controls for fonts, standard colours and pattern colours in Global Assets.
- Frontend font and colour selectors now respect configured display order, including mixed ordering for pattern colours.

Version 1.0.3
- Increased font thumbnail preview text size on the nested label element and strengthened CSS specificity so theme button styles do not override it.

Version 1.0.2 - 12th May 2026
- Increased frontend font thumbnail preview text size so font samples fill selector tiles more clearly.

Version 1.0.1 - 12th May 2026
- Applied font preview casing directly to rendered font thumbnail markup so Global Asset preview case settings visibly affect frontend selector labels.
- Enlarged font thumbnail selector previews to better fill each tile while preserving the stable 0.9.3 canvas render path.

Version 1.0.0 - 12th May 2026
- Added per-font Preview text case controls in Global Assets for thumbnail previews.
- Applied Default, Capitalised, Uppercase and Lowercase casing options to frontend font thumbnail labels.
- Defaulted Old English thumbnail preview text to Capitalised when no explicit preview case is selected.

Version 0.9.3 - 12th May 2026
- Improved frontend font thumbnail selectors so text thumbnails use a dark label colour on white backgrounds.
- Changed font thumbnail selector layout to a wider rectangular shape so font names and previews are less likely to be cropped.

Version 0.9.2 - 12th May 2026
- Added a dedicated Design Template inheritance toggle for canvas dimensions so templates can independently inherit canvas width/height from their Template Group.
- Separated canvas dimension inheritance from Behaviour & Controls inheritance while preserving legacy fallback behaviour for existing templates.

Version 0.9.1
- Repackaged the full 0.9.x plugin bundle after a failed WordPress upload left the installed plugin missing required include files.
- Added a defensive bootstrap check so an incomplete upload shows an admin error instead of causing a frontend fatal error.

Version 0.9.0 - 12th May 2026
- Added optional canvas width/height controls for Design Templates. Existing templates keep the legacy background-image canvas size until dimensions are set.
- Added canvas width/height controls to Template Groups for inherited canvas aspect ratios.
- Updated frontend rendering so configured canvas dimensions control the customer canvas shape while legacy templates remain unchanged.
- Updated admin background preview to reflect configured canvas aspect ratio.
- Cleaned up Default text size field layout in templates and groups.

Version 0.8.2 - 12th May 2026
- Restored the private RIT Licence Server WordPress updater client so licensed RPP releases are injected into the normal WordPress Plugins/Updates screens again.
- Preserved the existing licence server package metadata, plugin information modal, update icons and download gating behaviour.

Version 0.8.1 - 12th May 2026
- Fixed required-personalisation add-to-cart handling so a visible WooCommerce-style product-page error is shown before theme/AJAX add-to-cart handlers can fail silently.
- Corrected the Product Personaliser admin menu icon so it renders at normal WordPress menu size and inherits admin menu theme colours through a CSS mask.

Version 0.8.0 - 12th May 2026
- Improved order item personalisation display for multi-line designs: duplicate global Font/Colour rows are hidden, empty unused lines are excluded, and Line styles now render in the compact `Line 1: Font (Colour) / Line 2: Font (Colour)` format.
- Required-personalisation products now allow WooCommerce add-to-cart validation to surface the normal on-page error notice when a customer tries to add without personalisation.
- Updated the Product Personaliser admin menu icon to the supplied RPP SVG.

Version 0.7.51
- Fixed dashboard variation labels so Personalised Product Performance only uses real WooCommerce variation attributes and does not include personalisation values.
- Preserved pattern colour analytics fix from 0.7.49/0.7.50.

Version 0.7.50
- Fixed dashboard Personalised Product Performance labels so variation details are resolved from order item variation metadata without displaying SKUs.

Version 0.7.49
- Dashboard personalised product performance now shows clean variation labels without SKUs.
- Dashboard colour analytics now prioritise pattern colour selections from line-level and top-level payload data before fallback colours.

Version 0.7.48
- Dashboard personalised product performance now shows variation details and SKU where available instead of duplicate-looking parent product rows.
- Daily Choice Trends now sort newest first.
- Dashboard colour analytics now resolve pattern colour selections by pattern name, preventing pattern colours such as Metallic Gold being counted as fallback colours such as White.

Version 0.7.47
- Plugin Check compatibility pass: added targeted PHPCS annotations for verified admin save handlers, WooCommerce add-to-cart request handling, backup/restore actions, licence status notices, and admin-only assignment lookup queries.
- Preserved existing RPP behaviour and full plugin structure.

Version 0.7.46
- Addressed WordPress Plugin Check findings for plugin headers, updater compatibility, escaping, translator comments and safer request handling.
- Added the GPL-compatible plugin header licence and WordPress 6.9 readme compatibility value.
- Removed the private updater transient hooks from this Plugin Check compatible build.

Version 0.7.45
- Matched the RIT Licence Server renewal/update flow used by RMA Pro.
- Active trial installs now show a licensed-version availability notice without receiving a private WordPress update.
- Expired licence installs can receive private update metadata while the licence server blocks package download until renewal.

Version 0.7.44
- Reduced automatic update and plugin-info HTTP timeouts so WordPress admin plugin screens are not held for up to 10 seconds by licence server calls.
- Added short failure caching for automatic update checks to prevent repeated slow requests when the licence server is unreachable or timing out.
- Preserved longer manual licence/update checks and existing successful update-response caching behaviour.

Version 0.7.43
- Fixed clean-site Design Template records so the full editor loads without requiring migrated VPC template data.
- Added safe standalone template data defaults for newly created RPP templates while preserving existing migrated Regal Dog templates.
- Updated frontend template payload generation so templates created from scratch can render using uploaded backgrounds, global assets and template/group settings.

Version 0.7.42
- Changed the System screen Licence status row to show the actual licence state returned by the licence server, such as paused, cancelled, expired or active.
- Removed any separate plugin access display from the System screen so the licence status remains the single visible state field.
- Improved locked licence notices so paused, cancelled, deactivated, archived, pending and invalid states show clearer reason-specific messages.

Version 0.7.40
- Allowed sites with an expired attached licence to keep using RPP core features.
- Kept expired licences visible as expired in the System / Licence screen while preventing locked-mode restrictions.
- Updated licence field validation display so expired paid licences are treated as attached paid access rather than invalid access.

Version 0.7.39
- Changed RPP to paid-only access with an automatic 7-day trial starting from first activation/install.
- Removed the manual premium trial start flow from the System / Licence screen.
- Locked frontend and admin personalisation features when the trial has ended or the attached licence is not active.
- Preserved licence server integration using the existing active, expired, paused, cancelled, invalid and deactivated states.

Version 0.7.38
- Fixed analytics dashboard KPI money values so the currency symbol and amount stay on one line.
- Normalised WooCommerce price styling inside dashboard KPI cards and chart value labels.
- Updated dashboard trend charts to open at the latest date so older dates can be reached by scrolling left.

Version 0.7.37
- Fixed Design Template font and colour inheritance toggles so unticking immediately unlocks the related checkbox grids.
- Moved section-level inheritance controls into the section headers so it is clearer which fields they control.
- Split Available Fonts and Available Colours & Patterns into separate controlled sections.
- Preserved existing meta keys, save logic and frontend inheritance behaviour.

Version 0.7.36
- Moved assigned products / variations to the top of the Design Template editor.
- Added separate inheritance controls for allowed fonts
- Allowed colours/patterns.
- Updated frontend asset filtering to respect the new granular font and colour inheritance settings.
- Preserved existing text, behaviour, pricing and assignment save logic.

Version 0.7.35
- Fixed the Design Template editor default text size field layout so mobile and desktop values no longer overlap.
- Removed JavaScript sectionising on the Design Template editor to prevent duplicate inherited and individual font/colour controls from rendering together.
- Preserved existing inheritance, save logic, meta keys and field names.

Version 0.7.34
- Fixed Template Group edit screen so the normal group name, slug and description fields remain visible/editable.
- Stopped the JS visual sectioniser from reprocessing Template Group taxonomy forms, which prevented hidden source tables and duplicated-looking fields.
- Preserved all Template Group save keys and inheritance behaviour.

Version 0.7.33
- Added a dedicated Choose button next to the Font file URL field in Global Assets.
- Added a dedicated Choose button next to the Font preview thumbnail URL field.
- Updated the media picker targeting so each Choose button fills the correct field.
- No font asset option names or save logic changed.

Version 0.7.32
- Fixed Template Group edit screen width by overriding the WordPress taxonomy edit form constraints.
- Expanded the Template Group settings table and section headers to use the available admin page width.
- No save logic, field names, or Template Group functionality changed.

Version 0.7.31
- Fixed Template Group add screen layout by removing advanced inherited options from the cramped creation column.
- Added safe defaults when creating a new Template Group, with full configuration handled on the edit screen.
- Improved Template Group edit screen width and section styling so it uses the full admin layout more cleanly.

Version 0.7.30
- Added granular backup/export checkboxes for fonts, colours, patterns, frontend settings, general settings, design groups, design templates and product assignments.
- Added granular restore checkboxes so admins can restore selected areas only.
- Added General Settings to backup/restore coverage, including preview image retention settings.
- Removed legacy all-in-one backup compatibility so the importer only accepts the current granular backup format.
- Added scoped admin styling for the Backup / Restore component picker.

Version 0.7.29
- Added explicit visible labels next to Designer Toolbar colour pickers.
- Added explicit visible labels next to Mobile Bottom Sheet colour pickers.
- No setting names, saving logic, or frontend behaviour changed.

Version 0.7.28
- Fixed Design Templates and Template Groups admin visual overhaul by adding visible card-style section headers to the actual rendered edit screens.
- Reorganised existing template and group fields into Canvas, Behaviour, Text, Assets, Assignment, and Pricing sections without changing field names or save behaviour.

Version 0.7.26
- Visually reorganised Design Template admin settings into clearer grouped sections.
- Visually reorganised Template Group admin settings into clearer grouped sections.
- Preserved existing field names, saving behaviour, inheritance logic, and frontend functionality.

Version 0.7.25
- Split Frontend Settings saved summary and cart controls into separate cards for clearer admin navigation.
- Removed the Frontend Settings sidebar section map.
- Added clearer labels to Designer Toolbar and Mobile Bottom Sheet colour controls.

Version 0.7.24
- Changed the RPP analytics dashboard default range to the last 30 days and stores each admin user's last selected dashboard date range.
- Reorganised the Frontend Settings screen into clearer visual sections without changing saved option names or frontend behaviour.

Version 0.7.23
- Replaced the RPP dashboard with an analytics dashboard for personalised product orders, including date presets, custom date range filtering, personalised item/product sales totals, personalisation revenue, trend charts, and top/bottom colour and font selections.
- Kept the Dashboard submenu as the first Product Personaliser menu item.

Version 0.7.22
- Changed cart and mini cart summaries for multi-line designs so each text line includes its own font and colour inline, removing the separate Line styles row.

Version 0.7.21
- Adjusted default/centred text rendering to account for font ascent and descent, so 50/50 placement visually centres the actual rendered text rather than the font baseline.

Version 0.7.20
- Improved default text centring by using the rendered text bounding box when template/group default positions or fixed-centre positioning are active.
- Prevents inherited Template Group 50 / 50 positioning from appearing visually off-centre due to font side bearings or very large text sizes.

Version 0.7.19
- Updated frontend settings previews so toolbar and bottom sheet colour changes update immediately while editing, without needing to save first.

Version 0.7.18
- Fixed inherited Template Group default text positions so grouped templates calculate the starting X/Y against the actual canvas dimensions after the background image loads. 50 / 50 now visually centres text consistently.

Version 0.7.17
- Hid Font from cart and mini-cart item data when the linked design template or Template Group only has one available font.

Version 0.7.16
- Moved the selected colour name into the Colour label so swatch mode displays values as “Colour: Name” above the swatches.

Version 0.7.15
- Fixed empty top guidance messages incorrectly falling back to the template description on templates that are not in a Template Group. Empty top guidance now stays hidden.
- Removed the unused fixed-centre helper translation from frontend config.

Version 0.7.14
- Removed the customer-facing fixed-centre helper message from the frontend designer and cart edit modal.

Version 0.7.13
- Added visible colour names for swatch selectors on hover, focus, and tap.
- Hid frontend font or colour controls automatically when only one option is available for the active template/template group.

Version 0.7.12
- Removed the 200px cap from the Mobile default text size field on templates and Template Groups. Larger mobile sizes now save correctly.

Version 0.7.11
- Fixed template behaviour saving when a design template is not assigned to a Template Group. Local settings such as Fix text in centre now save correctly even if inheritance is ticked but no group exists.

Version 0.7.10
- Added explicit labels and helper descriptions for each designer toolbar and mobile bottom sheet colour setting.
- Added admin preview blocks showing which toolbar and bottom sheet elements each colour setting affects.

Version 0.7.9
- Enlarged the toolbar panel close control for easier mobile use.
- Centred toolbar font/colour dropdown panels on mobile to avoid overlapping fixed page elements.
- Added frontend colour settings for the designer toolbar, toolbar buttons, and mobile bottom sheet.
- Saved preview images now hide the active text selection outline and resize handle.
- Matched the cart edit Save Personalisation button text sizing with the Cancel button.

Version 0.7.8
- Split the designer toolbar into clearer Font and Colour buttons for multi-line editing.
- Moved mobile toolbar panels to a compact fixed bottom sheet so expanded controls do not cover the canvas.
- Increased Undo and Redo icon sizing in the designer toolbar.

Version 0.7.7
- Replaced the multi-line style popover with a compact designer toolbar above the canvas.
- Moved Undo and Redo into the toolbar when toolbar mode is active.
- Added compact floating toolbar controls for selected-line font and colour without pushing the form down.

Version 0.7.6
- Changed multi-line style popover placement so the panel appears outside the canvas preview instead of covering the design area.
- Kept the compact font/colour controls scrollable for mobile while preserving canvas visibility.

Version 0.7.5
- Added a Template Group / Design Template option for multi-line style controls: standard inline controls or compact pop-up controls when selected text is tapped.
- Added compact text style pop-up UI for multi-line designs, with font and colour controls close to the selected canvas text.
- Updated blank canvas taps so multi-line text is unselected instead of leaving the previous line active.
- Preserved the simple single-line designer flow.

Version 0.7.4
- Changed Undo and Redo to plain black icon controls so theme button styling does not affect them.
- Prevented blank canvas taps from moving the currently selected text.

Version 0.7.3
- Tightened mobile resize-handle hit detection so dragging selected text is less likely to trigger resizing.
- Aligned resize hit detection to the visible bottom-right handle instead of using an oversized outer hit area.
- Changed Undo and Redo controls to centred arrow buttons with hover titles.

Version 0.7.2
- Improved mobile and desktop resize-handle hit detection so the resize handle takes priority over text dragging.
- Increased the effective mobile resize touch target without making the visible canvas handle bulky.
- Added optional Undo and Redo controls at Design Template and Template Group level, storing the latest 10 editor states.

Version 0.7.1
- Added separate mobile and desktop default text position settings for Design Templates and Template Groups.
- Fixed the admin layout for default text position fields so X/Y controls no longer overlap.
- Fixed frontend selector configuration so colour thumbnail swatches render when enabled.
- Improved proportional resize handles for desktop and mobile canvas editing, including single-line designs.
- Added a Duplicate action for Template Groups that copies group settings without reassigning templates.

Version 0.7.0
- Added template and template group options for colour swatch selectors, font thumbnail selectors, proportional text resizing, and default text start positions.
- Added per-line font and colour styling for multi-line designs while preserving the simple single-line designer flow.
- Added font thumbnail image support in Global Assets.
- Changed design templates to use a single Template Group assignment.
- Extended cart edit, preview, AJAX save, cart meta, and order meta handling for the new per-line personalisation payload.

Version 0.6.63
- Fixed RPP cart price compounding after currency switching by storing the raw product base price when personalisation is added.
- Added separate base-currency personalisation price storage so cart recalculations remain idempotent.
- Added a pricing filter for currency-plugin compatibility without changing existing cart edit behaviour.

Version 0.6.62
- Hardened cart edit modal save handling on mobile by disabling backdrop-close for the edit modal.
- Captured cart edit save via pointer/touch/click events before mobile keyboard viewport changes can redirect the tap.
- Added a short modal interaction lock and live input blur/read step before saving.

Version 0.6.61
- Removed the hard 240px cap from desktop default text size fields at template-group and design-template level.
- Kept minimum validation in place so saved text size values remain valid.

Version 0.6.60
- Added separate mobile and desktop default text size settings at template-group and design-template level.
- Desktop modal designer now uses the desktop text size.
- Added per-text-component movement control so added text lines can be kept locked with the main text or moved independently.

Version 0.6.59
- Moved required-personalisation assignment control from product/variation edit screens into Design Template assignment rows.
- Required assigned simple products and selected variations now open the designer automatically instead of showing the Personalise button first.
- Kept variation-level assignment support intact.

Version 0.6.58
- Changed the product-page designer to open as a larger desktop modal while preserving the existing inline/mobile layout.
- Tightened design template assignment search so results are filtered by product title and variation assignments display usable variation details.

Version 0.6.57
- Added mini-cart spacing between RPP meta labels and values.
- Updated design template product/variation assignment search results to show clean product titles and variation names without raw IDs.
- Kept assignment search title-based and variation-level.

Version 0.6.56
- Added separate template behaviour inheritance controls for canvas background colour, fixed-centre text and save behaviour.
- Fixed inherited behaviour fields staying disabled when text component inheritance was disabled.
- Hardened cart edit text saving by posting and sanitising live text lines separately and centring locked text during redraw.

Version 0.6.55
- Hide internal RPP order item meta from WooCommerce order confirmation, admin order meta output and customer emails.
- Added General Settings page with preview image retention options and daily cleanup for stored preview files.

Version 0.6.54
- Added template-group inheritance for canvas background colour, fixed-centre text behaviour and save behaviour.
- Hardened cart edit text syncing on mobile by saving live input text before preview generation and clamping text position inside the canvas.

Version 0.6.53
- Added RPP Backup / Restore admin page.
- Backup export now includes global assets, frontend settings, template groups, design templates and product\/template assignment settings.
- Restore supports merge\/update mode and replace mode without touching WooCommerce orders or saved order item personalisation meta.

Version 0.6.52
- Fixed Template Group allowed font saving where a global font has an empty CSS family value by falling back to the font name instead of saving an empty checkbox value.
- Made asset checkbox matching use non-empty CSS/name/ID candidates so saved font and colour selections remain visible after reload.
- Added frontend font CSS fallback to the font name when the CSS family field is blank.

Version 0.6.51
- Fixed Template Group allowed font persistence
- Made checkbox matching tolerant of legacy saved values.
- Removed canvas background snapping while keeping green centre guide lines during dragging.
- Replaced cart Preview/Edit text links with icon-only actions.

Version 0.6.50
- Fixed cart Preview/Edit reliability by re-enabling the cart action injection fallback and forcing the links onto their own row under the cart item meta.
- Added a per-template canvas background colour used beneath the canvas image when the image is offset or does not cover the full frame.
- Improved admin canvas background dragging so horizontal and vertical positioning redraws from a cached image instead of reloading the image during movement.
- Added the template background colour to the frontend canvas payload so customer previews
- Saved previews use the same underlay colour.

Version 0.6.49
- Removed remaining normalised template debug summary, components table and JSON output from the design template edit screen.
- Restored cart Preview/Edit links by rendering them below the cart item name instead of as WooCommerce item meta.
- Added template group control to hide the Personalisation price row in cart and mini-cart while still applying the charge to totals.
- Removed the customer-facing designer title text.
- Moved the bottom guidance message under the Save/Cancel buttons.
- Added draggable admin canvas background positioning with centre snap guidance
- Saved background X/Y offsets.
- Kept the frontend scroll position setting with Top, Middle and Lower options.

Version 0.6.48
- Hardened cart/order handling so RPP meta is only stored when real personalisation text exists.
- Moved cart Preview/Edit into a dedicated Personalisation actions row and renamed Personalisation charge to Personalisation.
- Improved pricing field alignment in template and group admin screens.
- Greyed out inherited template group fields until inheritance is disabled.
- Added inherited top and bottom TinyMCE guidance messages for template groups/templates.
- De-duplicated pattern colours on the frontend, preferring the pattern entry where names match.
- Included pattern entries in allowed colour selection for template groups and templates.

Version 0.6.47
- Added inherited template group controls for fonts, colours, guidance, default text size and personalisation pricing.
- Added cart preview image replacement setting.
- Added scroll position control
- Improved cart meta alignment.
- Confirmed RPP order item meta keys for template, payload, preview and pricing.

Version 0.6.47
- Fixed design template inheritance toggle so inherited text component values become editable immediately when inheritance is unticked.
- Restored delete/add controls dynamically when switching from inherited to local text component settings.

Version 0.6.45
- Updated design template text component settings so inherited template group values are shown as read-only fields.
- Prevented inherited text component values from being saved as local template overrides.

Version 0.6.44
- Removed obsolete configurator migration and fallback references from frontend, admin screens, and plugin documentation.
- Removed legacy scanner and migration classes now that RPP runs independently.

Version 0.6.43
- Rebuilt System / Licence page to match the RMA Pro four-column layout.
- Added automatic licence server check-in/reporting so RPP appears on the licence server.
- Added support, debug tools, licence field status icon, changelog and coming soon panels.

Version 0.6.42
- Added System / Licence admin page modelled on RMA Pro.
- Added licence activation, removal, re-check and 7-day premium trial handling for the Regal Product Personaliser product slug.
- Added RIT Licence Server update and plugin-info client, including icon/banner metadata support.

Version 0.6.41
- Fix: Keep the cart Colour value intact and place Preview/Edit links underneath it instead of replacing it.
- Fix: Cart action alignment now avoids injecting action markup into WooCommerce item-data values.

Version 0.6.40
- Fix: Move cart Preview/Edit links under the visible personalisation meta instead of outputting a separate Actions row.
- Fix: Remove empty Actions label behaviour from cart item data.

Version 0.6.38
- Fix: Forces cart Preview/Edit actions into the same WooCommerce item-data block that already renders Text/Font/Colour, so XStore/custom cart templates cannot strip them from the product-name hook.
- Fix: Uses anchor-based cart action links to avoid WooCommerce/WP KSES stripping button markup from formatted cart item data.
- Fix: Adds a visible Template Group selector beside both top and bottom bulk-action controls and a hidden field fallback so bulk assignment submits the selected group reliably.
- Fix: Adds admin-side validation/alert when the Template Group bulk action is used without selecting a group.

Version 0.6.38
- Fix: Removes the empty cart item data action row that displayed as a lone colon on some themes.
- Fix: Adds a cart-page footer injection fallback so Preview/Edit actions still render when the theme overrides WooCommerce cart item name output.
- Fix: Adds clearer bulk Template Group controls beside the bulk action dropdown and prevents submission until a group is selected.
- Improvement: Adds admin notices for Template Group bulk assignment success or missing group selection.

Version 0.6.36
- Fix: Adds cart Preview/Edit actions as a cart item data row as well as the product-name hook, improving compatibility with themes that override WooCommerce cart item name output.
- Fix: Reworks admin pattern preview control layout to prevent field overlap on narrower admin screens.
- Fix: Improves admin pattern preview font matching and redraw timing.
- Improvement: Adds white/black background toggle for pattern preview canvas.
- Improvement: Adds bulk Template Group assignment controls to the Design Templates list table.

Version 0.6.35
- Fix: Restored cart Preview/Edit actions by appending them directly to the WooCommerce cart item name on the main cart page.
- Fix: Kept mini-cart clean by not rendering cart edit/preview actions outside the main cart page.
- Fix: Reworked admin pattern preview layout so font, X/Y/scale fields no longer overlap.
- Fix: Improved admin pattern preview font loading by registering font-face aliases for both font name and CSS family name.
- Improvement: Added a visible Template Groups submenu under Product Personaliser.

Version 0.6.34
- Fix: Restore cart/mini-cart personalisation metadata output.
- Fix: Pattern preview now loads saved pattern URLs, applies selected preview font and normalises legacy wp-content URLs.
- Fix: Saved summary styling now applies directly to the summary wrapper.
- Improvement: Added Test/Live frontend visibility mode.
- Improvement: Added configurable Personalise button icon.
- Improvement: Added template-level text lines and character limits.
- Change: Removed separate allowed patterns selector from templates; pattern colours are controlled through allowed colours.

Version 0.6.32
- Fixed product designer Cancel so it clears unsaved personalisation state instead of leaving saved-looking values.
- Improved admin pattern preview with custom preview text, selected font rendering, cached image redraws and cleaner field layout.
- Fixed cart preview regeneration by storing the live canvas preview during cart edit saves.
- Persisted pattern offset and scale values through cart and order payloads.
- Applied saved summary border/background colours directly to the rendered summary.
- Added per-template option to add to basket and redirect to cart after saving personalisation.
- Adjusted designer and post-save scroll offsets for mobile keyboard visibility and theme layouts.
- Added admin thumbnail preview for template background images.

Version 0.6.31
- Fixed the product designer Cancel action so it clears unsaved personalisation, hides the saved summary and restores the Personalise button state.
- Fixed pattern preview dragging in admin by caching loaded pattern images and redrawing without blanking the preview during drag.
- Persisted pattern offset X/Y/scale values in the saved personalisation payload.
- Regenerated
- Saved cart preview images during cart edit saves where canvas export is available.
- Added canvas background image thumbnails to design template settings.
- Added saved personalisation preview rendering to WooCommerce order admin and HTML order/email item output.
- Adjusted post-save scroll offsets to position the preview higher on desktop and mobile.

Version 0.6.30
- Isolated the cart edit modal controls from the product-page personaliser by removing duplicate modal IDs for text, font, colour, canvas and save controls.
- Fixed cart edit text persistence by reading the active modal text field directly at save time and posting it separately to the AJAX handler.
- Kept WooCommerce cart item updates in place
- Preserved session persistence with calculate_totals(), set_session() and session save.
- Prevented cart edit state from updating product-page summary fields while the modal is open.

Version 0.6.29
- Fixed cart edit persistence by updating the existing WooCommerce cart item in place instead of removing and re-adding it.
- Ensured edited text, font and colour are saved together from the active cart edit modal fields.
- Removed duplicated Preview/Edit actions above the personalisation details so cart actions only appear once in the meta area.
- Hardened cart modal rendering when only the RPP unique cart key is available.

Version 0.6.28
- Fixed cart edit text saving by reading the active modal input directly at save time instead of relying on stale shared state.
- Stored cart edit modal context on the modal itself so duplicate product-page fields cannot override cart edit values.
- Replaced the edited WooCommerce cart line item after save while preserving product, variation, quantity and non-RPP cart item data.
- Kept the Saving... loader active until the AJAX save response returns.

Version 0.6.27
- Fixed cart edit text updates by posting the live modal text field separately from the JSON payload.
- Hardened cart edit field selectors to avoid stale duplicate ID values on cart pages.
- Preserved existing font/colour save behaviour.

Version 0.6.26
- Rebuilt cart-page personalisation edit saving to replace the WooCommerce cart line item with updated RPP payload data instead of mutating the existing cart item in place.
- Preserves product, variation, quantity, variation attributes and non-RPP cart item data while updating personalisation.
- Returns the replacement cart key after save
- Forces WooCommerce totals/session persistence.

Version 0.6.25
- Fixed JavaScript syntax regression in compact cart payload builder.
- Restored frontend personaliser initialisation, product-page button rendering, and cart edit script execution.

Version 0.6.24
- Fixed cart-page edit saving by sending a compact payload instead of the full preview image data URI.
- Forced WooCommerce session data save after cart item personalisation updates.

Version 0.6.23
- Restored visible Preview/Edit actions on the main cart page by hiding only the generated label, not the action row.
- Changed customer-facing personalisation label from "Personalisation text" to "Text" in cart, mini cart and order/email item meta.

Version 0.6.22
- Fixed cart edit save handling when the cart action link has no rendered cart key on first load.
- Cart edit save now always stays in the cart edit AJAX path and can fall back by unique key or template ID.
- Ensured WooCommerce cart/session are loaded before updating cart item personalisation.

Version 0.6.21
- Fixed cart item meta alignment so Colour stays aligned with its value.
- Moved cart Preview/Edit fallback into a separate hidden-label meta row for mobile cart templates.

Version 0.6.20
- Restored cart Preview/Edit actions for mobile cart templates that do not render the filtered cart item name.
- Kept Preview/Edit actions hidden outside the main cart page so the mini cart remains clean.

Version 0.6.19
- Fixed cart edit immediately after add-to-cart by rendering Preview/Edit from the cart item name hook, which supplies the real WooCommerce cart item key on first load.
- Removed cart action output from item meta to avoid stale or empty cart keys before the cart page is refreshed.

Version 0.6.18
- Fixed cart inline edit save by reading the modal fields directly at save time.
- Scoped cart edit controls to the modal to avoid duplicate-ID selector conflicts.
- Added stricter AJAX success checking and persistent cart/session update after save.

Version 0.6.17
- Fixed cart edit AJAX save persistence.
- Added robust cart item lookup using the RPP unique cart item key.
- Added explicit WooCommerce cart totals/session refresh after inline cart edits.

Version 0.6.16
- Removed cart action links from mini cart output so Edit/Preview only appear on the main cart page.
- Added saving state and spinner to cart edit modal save button.

Version 0.6.15
- Fixed the design template product assignment picker so it renders as AJAX search/click-to-add instead of a plain multi-select.
- Added the missing admin AJAX endpoint for product and variation assignment search.
- Fixed cart inline edit saving so the modal writes the updated payload back to the correct cart item.
- Improved the cart edit modal header: centred title, larger title, and larger close button.

Version 0.6.14
- Removed duplicated bold personalisation output from the mini cart.
- Added Preview and Edit actions through WooCommerce item data so they show more reliably on cart and mini-cart templates.
- Hidden the generated WooCommerce “Personalisation actions” label so cart actions appear as plain links/buttons.
- Added a fallback preview modal message for older cart items that do not yet have preview image data saved.

Version 0.6.13
- Added AJAX product/variation search assignment inside design templates.

- Added click-to-add assignment UI with removable assigned items.

- Added assignment fallback so product-page personaliser still loads from template-managed assignments if product meta was not written by an earlier build.

- Improved variation assignment lookup to include inherited variation post status.

Version 0.6.12
- Added delete buttons with confirmation for Global Asset rows.
- Improved pattern colour editing with draggable canvas preview, selectable preview font, and manual axis/scale controls.
- Removed redundant product-page template assignment controls while keeping required-personalisation controls.
- Added cart inline edit modal for existing RPP personalisation data.

Version 0.6.11
- Fixed cart action output so Edit/Preview no longer render as empty meta labels with stray colons.
- Preserved canvas preview data URLs for cart preview buttons.
- Added template-level product and variation assignment UI.
- Added design-template list column showing linked products/variations.

Version 0.6.10
- Fixed Global Assets Colours card rendering after fonts.
- Moved patterns into the backend Colours card with standard/pattern sections.
- Removed frontend Pattern colours separator from the customer colour dropdown.
- Added pattern position and scale controls with backend preview.
- Added stronger mini-cart personalisation output.

Version 0.6.9
- Added frontend button sizing controls, including optional Add to Basket size inheritance.
- Added configurable scroll target after saving personalisation.
- Changed cart edit output to a plain “Edit” link without the duplicated “Edit:” label.
- Added a setting to toggle the cart preview button.
- Improved preview capture for same-origin uploaded canvas/pattern images.

Version 0.6.8
- Changed saved frontend button to Preview personalisation after personalisation is saved.
- Added inline Edit button below saved personalisation details.
- Merged standard colours and pattern colours into one Global Assets Colours card.
- Improved pattern colour availability on the frontend when text component colour restrictions are active.

Version 0.6.7
- Added frontend setting to toggle the basket/cart edit personalisation link.
- Matched the edit personalisation link sizing to normal personalisation meta.
- Improved colour display so cart and order meta prefer colour names instead of hex codes.

Version 0.6.6
- Merged pattern overlays into the frontend Colour selector with a divider for pattern colours.
- Improved font switching so selected fonts redraw immediately after browser font loading.
- Saved personalisation summary now shows text, font and colour, with optional preview button and configurable summary styling.
- Save personalisation now closes the designer and scrolls back to the Add to Basket area.
- Moved Cancel below Save in the designer actions.

Version 0.6.5
- Reworked Global Assets into collapsible admin cards for Fonts, Colours and Patterns.
- Added WordPress colour picker controls while preserving editable hex fields.
- Added Frontend Settings screen for Personalise button text and button styling.
- Added template option to fix text to the centre of the canvas by default, with constrained dragging when unlocked.
- Improved placeholder text positioning so “Your text” starts centred.
- Removed internal design template name from the customer-facing designer title.
- Added Cancel button to close the designer.
- Added cart preview button using the saved personalisation canvas image.
- Continued storing personalisation data on order items so it appears in standard WooCommerce order emails.

Version 0.6.4
- Added .otf font upload support for RPP Global Assets.
- Added Global Assets guidance explaining that .otf is supported but .woff2/.woff are preferred for production because .otf files are usually larger, slower and can render less consistently.
- Improved frontend @font-face output to include correct font format hints for .woff2, .woff and .otf files.

Version 0.6.3
- Fixed the Global Assets admin screen not rendering on PHP 8+ because of unquoted keys/constants.

Version 0.6.2
- Added RPP Global Assets admin page for managing fonts, colours and pattern overlays.
- Added Media Library upload buttons for font files, pattern images and template background images.
- Added template-level canvas background image setting.
- Added template-level restrictions for allowed fonts, colours and patterns.
- Added duplicate action for RPP design templates.
- Changed cart and order meta to show personalisation text, font and colour instead of the internal template name.
- Added a basic cart edit link back to the product page.
- Added frontend pattern overlay selection and rendering support.

Version 0.6.1
- Changed frontend behaviour to improve the product selection flow: variable products show nothing until a variation is selected, then show a Personalise button.
- Moved the frontend personaliser after the Add to Basket button instead of rendering the full canvas before purchase controls.
- Added a contained responsive designer panel with preview, controls, save button, close button, and mobile touch dragging.
- Added template guidance content support.
- Kept version increments to patch-level numbering.

Version 0.6.0
- Added simple product immediate RPP loading and variable product deferred loading until a variation is selected.
- Added variation template fallback to parent product template.
- Added product-level and variation-level required personalisation flags.
- Added frontend and server-side add-to-basket enforcement for required text.
- Improved canvas rendering to use migrated option image backgrounds and legacy text coordinates where available.
- Added per-text-component font and colour filtering using legacy Custom Text Addon settings.

Version 0.5.0
- Added first future-proof frontend canvas engine scaffold.
- Added variation-aware template detection on the product page.
- Added cart and order meta capture for RPP personalisation payloads.
- Added public CSS/JS assets for the new RPP renderer.
- Fixed version bump in plugin header and runtime constant.

Version 0.4.0
- Added Product Personaliser Templates meta box on WooCommerce product edit screens.
- Stores selected template IDs in `_rit_rpp_template_ids`.
- Added safe version upgrade routine and imported template title cleanup.
- Frontend rendering remains disabled; this build only validates clean product-to-template assignment.

Version 0.3.5
- Fixed plugin header/version constant so WordPress upgrades consistently.
- Added RPP Template Data meta box on Design Template edit screens.
- Shows migrated normalised template summary, components, text component IDs, normalised JSON.
- Confirmed product assignment migration remains disabled; product links are read-only until exact assignment logic is validated.

Version 0.3.4
- Disabled product assignment writes during migration.
- Left candidate product links as read-only scan data only.

Version 0.3.3
- Safer migration handling for templates, text blocks, fonts, colours, and patterns.

Version 0.3.2
- Restored Product Personaliser dashboard submenu.

Version 0.3.1
- Tightened legacy config detection.

Version 0.3.0
- Added initial migration engine.
  • Changelogs
  • Roadmap
  • RMA Pro Documentation
  • Ecommerce Management
  • What we can do
  • Professional Setup Services
  • Blog
  • Knowledge Base
  • Terms and Conditions
  • Privacy Policy
  • Acceptable Use Policy
© Copyright Regal IT Ltd. All Rights Reserved