New Features
- Print Areas picker — A new customer-facing panel lets shoppers step through a product's print areas one at a time, each with a preview of its own artwork. Moving past the last area of a view switches the product view automatically. Place it anywhere with
[chamevo_module type="print-areas"], the Elementor Module widget, orregisterModule(), and tune its presentation under Settings → Features → Print Areas. - Customizer dimensions per device — UI Composer's Layout tab gains a Dimensions section to set the customizer's height, min height and max height separately for desktop, tablet and mobile, in px, %, vh, vw or rem. A device switch previews each breakpoint live, so the mobile layout can be checked without leaving wp-admin. Previously this required hand-written CSS.
Improvements
- Design data key renamed — New orders store the design under the
_chamevo_dataorder item meta key (previously_fpd_data), and carts/saved designs usechamevo_data. Existing data is not touched: all old keys remain readable forever, active carts survive the update, and "order again" works for old orders. Third-party tools reading the raw_fpd_dataline-item meta directly (e.g. via the WooCommerce core REST API) should also check_chamevo_data; the plugin's own API is unaffected and still accepts_fpd_dataasitem_key. - Dropbox connect — The Dropbox redirect URI is now derived from your site address instead of a fixed external default, so connecting an account works without editing the field. It is shown read-only and can still be overridden by a filter.
Bug Fixes
- Switching variations mid-load — On variable products the form stayed clickable while the customizer was still loading the new variation, so rapid switching could leave the canvas showing one product and the form another. The form is now genuinely blocked until the product is on the canvas, and a selection made during loading is queued instead of dropped.
- Print profile leaking between views — In the product builder, a view's "View-level profile" could show the previously-opened view's profile, and saving then wrote it onto the wrong view while clearing the original. Each view keeps its own profile again.