= 2.0.32 =
* Included readable widget source in the WordPress.org release package.
* Added a dedicated cart nonce for posted GiftNote message IDs.

= 2.0.31 =
* Opened the matching record or upload form immediately when shoppers choose Record Voice, Record Video, or Upload File.

= 2.0.30 =
* Updated the out-of-box product widget teaser text to "Send a Voice or Video Note".

= 2.0.29 =
* Stabilized product page widget placement by rendering a single current-product widget root and matching teaser text to the saved setting.

= 2.0.28 =
* Removed the GiftNote price from product item meta so the add-on cost only appears in the order totals fee row.

= 2.0.27 =
* Fixed checkout GiftNote removal so the trash icon uses a dedicated AJAX endpoint and refreshes checkout totals in place.

= 2.0.26 =
* Added a setting to customize the product page GiftNote teaser text.

= 2.0.25 =
* Anchored the product GiftNote widget directly above Delivery Information while keeping it below purchase buttons.

= 2.0.24 =
* Placed the product GiftNote widget after the full purchase button container in Elementor and custom product templates.

= 2.0.23 =
* Added a dedicated product widget row so GiftNote no longer competes with custom theme purchase buttons.

= 2.0.22 =
* Forced product page GiftNote placement below visible Buy Now controls to avoid custom theme button-row distortion.

= 2.0.21 =
* Added a default product page placement below Buy Now buttons for custom WooCommerce themes.

= 2.0.20 =
* Improved product page widget placement across custom WooCommerce themes with layout-safe positioning and fallback rendering.

= 2.0.19 =
* Fixed early translation loading notice triggered by product page widget placement registration.

= 2.0.18 =
* Refreshed the GiftNote security token automatically when cached product pages provide a stale nonce.

= 2.0.17 =
* Added a WooCommerce setting for choosing where the GiftNote widget appears on product pages.

= 2.0.16 =
* Added a cart totals fallback row for themes that omit WooCommerce fee rows, keeping GiftNote fees visible on the cart page.

= 2.0.15 =
* Added a cart and checkout trash icon so shoppers can remove an attached GiftNote before payment.
* Recalculate GiftNote fees immediately after removal.

= 2.0.14 =
* Fixed GiftNote cart fees for stores that enter prices inclusive of tax.
* Added a GiftNote price tax mode setting so merchants can choose whether the configured customer price includes or excludes tax.
* Prevented stale pending GiftNote session data from adding an extra cart fee after the cart item already has a GiftNote.

= 2.0.13 =
* Prepared the plugin for WordPress.org submission.
* Switched the storefront widget to the bundled local asset by default.
* Removed the custom external update mechanism from the submitted plugin.
* Removed forced plugin-rendered Velop credits from the order admin panel.
* Improved Velop service, privacy, terms, and widget source disclosures.

= 2.0.12 =
* Synced final WooCommerce order number, order status, and billing sender name back to Velop after checkout.
* Kept shopper-entered GiftNote sender names intact while filling blank names from WooCommerce order details.

= 2.0.11 =
* Synced WooCommerce cart GiftNote pricing with the Velop merchant portal when no local store override is set.
* Reduced merchant status cache time so portal price changes reach stores faster.

= 2.0.10 =
* Removed direct viewer and token access from the WooCommerce order admin panel.
* Reduced the QR preview size for narrow order side panels.
* Fixed customer GiftNote price fees for cart flows where the message remains in the WooCommerce session.

= 2.0.9 =
* Added a multi-GiftNote WooCommerce order admin panel with QR, status, scans, token, viewer, and print actions.
* Added WooCommerce plugin coding rules and WordPress standard readme metadata.

= 2.0.8 =
* Improved release metadata wiring.

= 2.0.7 =
* Improved the WooCommerce order admin GiftNote panel UI.

= 2.0.6 =
* Improved downloadable plugin versioning and metadata.
