*** WooCommerce Mix and Match Products Changelog***
2025.04.02 - version 2.7.10
* Fix: Fatal error in compatibility with Force Sells when displaying force sells on a child item product.
* Fix: Incorrect add to cart error when mix and match container has unsynced force sells.
2025.03.17 - version 2.7.9
* Update: Tested up to WooCommerce 9.9.0.
* New: Force Sells for WooCommerce compatibility.
* Fix: Incorrect class instantiation in admin when product is not mix-and-match type.
* Fix: Escape any remaining translatable strings.
* Change: Move `woocommerce_after_cart_item_quantity_update` callback to earlier priority for Force Sells compatibility.
* Change: `wc-add-to-cart-mnm` script params use booleans instead of yes|no strings. Advanced script integrations should re-test.
* Tweak: Update sass files to use Dart Sass.
2025.01.17 - version 2.7.8
* Fix: Write error to WooCommerce>Status>Logs if child item cannot be saved to DB.
* Fix: Show an admin notice in product editor if child items cannot be saved.
* Fix: Show update notice in product metabox.
* Tweak: Harden foreign key checking on update.
2024.08.22 - version 2.7.7
* Update: Tested up to WooCommerce 9.2.0.
* Fix: Remove image link from thumbnail if theme does not support wc-product-gallery-lightbox.
* Fix: Set validation context to cart if $_GET['update-container'] is set. Fixes display of button text in mobile footer plugin when editing in cart.
* Fix: Change form validation context to edit when switching subscriptions.
2024.08.07 - version 2.7.6
* Fix: Cart validation error when adding multiples of pack with same configuration.
2024.08.05 - version 2.7.5
* Fix: Show parent thumbnail for variations without thumbnail.
2024.07.26 - version 2.7.4
* New: Introduce styling for Mix and Match products in Receipt Rendering engine.
* Fix: Resolved a fatal error triggered with WooCommerce 9.1, when tracking and legacy Order data storage were enabled.
* Fix: Harden validation of mix and match container that's already in cart.
* Fix: Show placeholder image if child product has no thumbnail.
* Tweak: Slight simplification to add to cart validation error strings( "You have selected too many items" and "You have selected too few items"). Double check your translations for to
2024.06.29 - version 2.7.3
* Fix: Incorrect quantity input value when editing a mix and match container in cart. #536.
* Fix: Remove permalinks from child items in the cart block.
* Tweak: As a last resort, attempt to get posted quantity from string inputs, ie: "mnm_quantity[99]" which commonly happens when themes attempt ajax add to cart.
* Tweak: Rename wp.hooks action `wc-mnm-initialize.${product_type}` to `wc.mnm.initialize.${product_type}`
* Tweak: Tell `wc-add-to-cart` script params to redirect to cart when editing a container in the cart.
2024.06.26 - version 2.7.2
* Fix: When creating duplicate product, limit duplicating child items to custom DB table if using products as contents source.
* Fix: Missing container contents list in checkout block on initial page load.
* Fix: Fix pay-for-order conflict with WooPayments.
2024.05.11 - version 2.7.1
* New: Introduce `wc_mnm_container_get_cart_edit_link` filter and add APFS subscription parameters to edit in cart link.
* Fix: Handle missed dynamic properties missed in 2.7.0 objects.
* Tweak: Update edit-container.php template.
* Tweak: Parameter for `wc.mnm.initialize.${type}` wp.hook is now an object.
2024.04.22 - version 2.7.0
* Important: Requires WordPress 5.0.
* New: Eliminated dynamic properties on objects. Resolves warning notices in PHP 8.2+. (Important! If using Not Sold Separately, you will need to upgrade to 2.4 of later: https://github.com/kathyisawesome/wc-not-sold-separately/releases/latest)
* New: Introduce wp.hooks actions `wc-mnm-initialize.${product_type}` and `wc.mnm.container.container-updated` and filter `wc.mnm.container.update_order_item_data` for compatibility with mini-extensions. NB: This replaces the experimental `wc_mnm_update_container_order_item_data` triggerHandler and the Javascript `wc-mnm-initialize.${product_type}` custom event in the order metabox scripts.
* Fix: Show child item availability/stock status if container has insufficient stock.
* Tweak: Add grayscale effect to out of stock child items.
* Tweak: Style compatibility tweak for quantity input alignment in Twenty TwentyFour theme.
2023.12.16 - version 2.6.1
* Fix: Adding/editing container contents in Order admin.
2023.12.16 - version 2.6.0
* New: Declare support for Cart and Checkout blocks.
* New: Initial support for Store API add container to cart. #474.
* New: Extend product data response for Store API. Consumed by mini-extensions.
* Fix: Child product modal gallerys due to core WooCommerce using the Script API strategy feature to defer front-end scripts in WordPress 6.3+.
* Tweak: CSS rules for notices in Twenty Twentyfour theme.
2023.12.09 - version 2.5.2
* Fix: Properly close markup after edit in cart link.
2023.12.01 - version 2.5.1
* Fix: Incorrect validation always preventing packs containing any sold individually child item from being added to cart. #516.
* Tweak: Use wc_mnm_is_product_container_type() in store API class for future extensibility.
* Tweak: Always add the validation context as data attribute on to the form.
2023.09.27 - version 2.5.0
* Update: Tested up to WooCommerce 8.2.0.
* Fix: Update all templates for safer string escaping.
* Fix: Update KIA Customizer Range Input package to better limit number of columns in Customizer input.
* Fix: Prevent overfilling of pack on pre-filled packes (pre-filled by URL param).
* Fix: Enqueue order editing scripts on Subscriptions page when using HPOS.
* Tweak: Use admin theme colors in product edit admin.
* Tweak: Slight change to when global mix and match product object is generated in edit screen.
2023.07.11 - version 2.4.10
* Fix: Format the container line total for per-item priced containers with correct decimal setting in the cart block.
* Fix: Order item editing script not loaded on HPOS new order page.
* Fix: Introduce WC_MNM_Core_Compatibility::get_post_or_object_meta() to better support older versions of WC.
* Fix: Suppress item removed popup notifications for child items in Cart Block when Container is removed. #505.
* Tweak: Important: The 'Form Location' option is no longer supported when using a block theme. Use the following snippet to force its use: 'add_filter( 'wc_mnm_has_legacy_product_template', '__return_true' );' #503.
* Tweak: Hide points and rewards message when container has a minimum of 0 points.
* Tweak: Rename css class for child items in documents generated by Print Invoices and Packing lists.
2023.07.03 - version 2.4.9
* Fix: Problem with plus/minus buttons not being able to reset back to 0.
* Fix: Default to using Astra's plus/minus buttons when active.
2023.06.28 - version 2.4.8
* Fix: Prevent double display of "Edit Selections" button that was introduced by WooCommerce 7.8.
2023.06.27 - version 2.4.7
* Fix: PHP Fatal error: Uncaught Error: Attempt to modify property "data" in REST API product response in PHP 8.1.
2023.06.13 - version 2.4.6
* Update: Tested up to WooCommerce 7.7.0.
* Fix: Use `registerCheckoutFilters` graduated filter in Blocks plugin.
* Fix: Use WC_MNM_Helpers:get_supported_product_types() to define excluded product types automatically in metabox product selector.
* Fix: Allow input quantity to decrease if the container is overfill for any reason.
* Fix: Update single-product/mnm/mnm-product-quantity.php template to remove errant markup.
* Fix: Legacy meta class fatal error when trying to read Pre-1.10 data.
* Fix: Hide child item's stock remaining when parent is out of stock. #499.
* Dev: Rename `wc_mnm_supported_products` filter to `wc_mnm_supported_product_types`
2023.04.24 - version 2.4.5
* Fix: Compatibility with Astra theme's quick view feature.
* Dev: Move conditional logic for customizer settings to their respective callback functions for broader compatibility.
2023.04.24 - version 2.4.4
* New: Add `wc_mnm_child_item_rest_response` filter to customize REST response of child items.
* Fix: Change front end script event listeners to catch pure Javascript events on the quantity inputs.
2023.03.02 - version 2.4.3
* Fix: Vertical alignment of quantity inputs in grid mode (for most themes).
* Fix: Tweak WoodMart theme module to support different column numbers.
2023.03.01 - version 2.4.2
* Fix: Previous quantity is not correctly calculated when it's 0. #495.
* Fix: Declare table display for table element.
2023.02.10 - version 2.4.1
* New: Add string to prompt users to change configuration when editing container.
* Fix: Switch admin notes check to a daily schedule.
2023.02.09 - version 2.4.0
* New: Optional mobile-optimized layout for small screens, see settings in Customizer.
* New: Optional plus/minus buttons, see settings in Customizer.
* New: Display category description when listing child products by category.
* Fix: Reapply discounts/coupons after editing a Mix and Match product in order admin.
* Dev: Move category title text to a template.
* Dev: Move template includes from after_setup_theme to template_redirect hook for better compat with Customzier.
* Dev: Refactor WC_Mix_and_Match_Stock_Manager and WC_MNM_Child_Item classes. Eliminate need to re-instantiate product objects and easier extensibility for validating in other contexts (such as weight). But extreme caution if you were using these classes for any custom purposes.
2023.01.19 - version 2.3.1
* Fix - Fixed double subscription discount on container cart prices when using per-item pricing. #434.
2023.01.16 - version 2.3.0
* IMPORTANT: PHP 7.2 is required.
* Update: Tested up to WooCommerce 7.3.0.
* New: Separate out "X in stock" remaining text and display in child item details, updated single-product/mnm/mnm-product-quantity.php template.
* Fix: Correctly parse hierarchical child category IDs. Closes #470.
* Fix: Add static className to item data for better blocks compat. Closes #468.
* Fix: Missing export data for layout override and weight calculation.
* Fix: Flatsome compatibility for equal-height product images.
* Fix: Disable per-product overrides when viewing customizer.
* Fix: Default value of customizer settings for show thumbnails/short-description.
* Fix: Fixed a fatal error that was triggered when using PHP v8 and using Cart/Checkout Blocks.
* Fix: Rename tabular layout 'product-name' header cell to 'product-details'.
* Tweak: Audit CSS styles to remove as much explicit padding/margin as possible.
* Tweak: Add a close icon to font family for use by mini-extensions.
* Tweak: Add woocommerce_product_loop_title_classes filter for parity with core.
* Tweak: Adjust front-end styles for mobile first.
* Tweak: Center align quantity inputs in Storefront theme.
* Tweak: container.child_items in script is now an ARRAY. Please check if doing very advanced custom Javascript modifications.
* Dev: Rename WC_MNM_Container.validation_context property to validation_mode.
* Dev: Re-key wc_mnm_child_item_data_attributes to not use 'data-' prefix. It will be auto-added.
* Dev: Introduce wc_mnm_center_align_quantity filter.
2022.11.07 - version 2.2.2
* Fix: Double-charging for child items when ordering again. #466.
* Fix: Front-end validation allow overfilled container to be reduced. #461.
* Fix: Child Category IDs are not imported. #467.
* Tweak: Make get_child_item_by_product_id() method public.
2022.10.24 - version 2.2.1
* Tweak: Use core cart functions for detecting parent/child relationships in cart item filters.
* Tweak: Add wrapping when doing wc_ajax_mnm_update_container_order_item. For compat with mini-extensions.
* Tweak: Admin edit orders, handle updates with no changes.
2022.10.24 - version 2.2.0
* Important: mnm-add-to-cart-wrap.php template is deprecated.
* Update: Tested up to WooCommerce 7.0.0.
* Update: Declare compatibility with High Performance Order Tables (HPOS).
* New: Convert container order item editing to use reuasable ajax callbacks and templates. Fixes display issues in admin and allows for extensibility.
* New: Add get_permalink() and get_title() methods/filters to WC_MNM_Child_Item class.
* New: 2nd parameter to WC_Product_MNM_Data_Store_CPT::query_child_items_by_container() to optionally change format of returned data.
* New: Add `wc_mnm_category_caption` hook for displaying info about the category titles when using category contents.
* Fix: Invalid array_key_exists() syntax in custom db 2.0 upgrade function.
* Fix: Flatsome theme grid classes.
* Fix: Stop saving duplicate meta keys. Upgrade routine to clean up duplicate data.
* Fix: Restore photoSwipe modal for themes that support it.
* Fix: Thumbnail and short description live previews in Customizer.
* Fix - Prevent child item stock from being reduced when editing Mix and Match products in configurable orders.
* Tweak: Change CoCart validation to use built-in validation methods. NB: This means the loss of CoCart specific-filters/error codes, please test accordingly.
* Tweak: Remove quantity inputs for child items in cart block (show per container quantity in title).
* Tweak: Change selections config to per-container quantity in checkout block.
* Tweak: Add styles to order edit modal.
* Dev: Modify $.wc_mnm_form() script to 1. not require passing objects to initialize, 2. define properties in intialize() method so they can be reattached. 3. return the current element for script chaining.
* Dev: Introduce `wc_mnm_product_container_types` filter for testing if product is Mix and Match type. For future extensibilty.
* Dev: Admin functions for generating enhanced searches and toggle fields.
* Dev: Admin Simplify relational hide/show fields in metabox via classnames.
* Dev: Introduce wc_mnm_form_classes filter for