Initial release under the Chamevo brand (formerly Multistep Product Configurator).
Added: native chamevo-js integration via the <cv-customizer> web component (cvReady / cvProductCreate events, chamevo.canvas.addElement()).
Added: [chamevo_module type=”…”] shortcode support and the chamevo_before_product_designer / chamevo_after_product_designer placement hooks.
Added: Chamevo Modules subsection on the product-data tab for inserting customizer modules (Products, Graphics, Text, Designs, Manage Layers, Text Layers, Layouts, My Designs, Save / Load, Names & Numbers) as extra tabs.
Added: WooCommerce HPOS (High-Performance Order Storage) compatibility declaration.
Added: expanded plugin header (Plugin URI, Requires at least, Requires PHP, Tested up to, WC requires at least, WC tested up to).
Added: class-level and file-level DocBlocks across every PHP file, plus @param / @return annotations.
Changed: full rebrand of text domain, capability, plugin slug, asset folders, CSS classes, JS bundle, and admin labels to chamevo-multistep-product-configurator / chamevo_mspc_* / chamevo-mspc-*.
Changed: product-data tab UX overhaul with four sections (Layout, Behavior, Placement, Chamevo Modules) on a two-column responsive grid and inline-checkbox Behavior row.
Changed: clarified labels (Module -> Layout Style, Module Position -> Configurator Position, Product Image -> Product Gallery, Under MSPC -> Under Configurator) and help-tip icons on every dropdown.
Changed: head_handler() rewritten with apply_product_image_placement() / apply_module_position() lookup tables instead of long else-if chains.
Changed: WPCS sweep — strict / Yoda comparisons across the codebase.
Changed: all asset enqueues now ship a version param so updates bust the browser cache.
Removed: Fancy Product Designer integration and the legacy [fpd_module] shortcode / fpd_before_product_designer / fpd_after_product_designer hooks.
Removed: stray var_dump(“test”) debug call from the shortcode handler.
Fixed: the Chamevo graphic-options modal now opens correctly (preserves the mspc-set-fpd-params / mspc-fpd-params DOM ids while the form name switches to chamevo_mspc_chamevo_params).
Fixed: chamevo_mspc_not_empty() uses strict equality so boolean false is no longer treated as the literal string ‘0’.