=== Precise Expressions Product Customiser ===
Contributors: preciseexpressions
Tags: woocommerce, product customizer, product options, uploads, personalization
Requires at least: 6.0
Tested up to: 7.0
Stable tag: 1.0.26
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
WC requires at least: 8.0
WC tested up to: 10.7

Add custom options to WooCommerce products. Shoppers personalize items by uploading images and text in a live preview modal.

== Description ==

Precise Expressions Product Customizer adds an on-page customizer to WooCommerce products. Customers click “Personalize your product” to open a modal where they can upload images, add text, and adjust their design (move/rotate/resize) within your permitted area. The final preview is saved with the cart item and carried into the order for easy fulfilment.

**Key Features:**
* **Modal customizer:** Upload PNG/JPG and add text; move/rotate/resize with a live preview.
* **Permitted area:** Define the customization area per product with a draggable/resizable bounding box.
* **Variable product aware:** The customizer button only enables when a valid, in-stock option is selected.
* **Cart + checkout preview:** Customers see their customized preview through checkout.
* **Order fulfilment friendly:** Admin order view includes downloadable design links and a list of fonts used.
* **Media Library friendly:** Artwork is stored under uploads/precise-expressions-product-customizer (outside the Media Library) to reduce bloat.

Optional Google Fonts: Disabled by default, toggleable in settings.

**How it works:**
1.  Enable the customizer on any product via the “Product Customizer” tab in the product data panel.
2.  (Optional) Upload a transparent mockup image (e.g., a phone case or t-shirt frame) to overlay on top of the customer's design.
3.  The customer designs their item, clicks "Done", and adds to cart.
4.  You receive the combined preview image and individual assets in the order details.

== External Services ==

This plugin includes an optional feature to load fonts from **Google Fonts** to provide typography options in the customizer.

* **Service:** Google Fonts (https://fonts.google.com)
* **Data Shared:** When enabled, visitors’ browsers request font files from Google’s servers, which typically includes IP address and user agent.
* **Control:** This feature is **disabled by default**. It can be enabled in *WooCommerce > Product Customizer > Settings*.

== Bundled Resources ==

This plugin bundles the following third-party library:

* **Fabric.js**
    * Source: https://fabricjs.com/
    * License: MIT (see `assets/vendor/fabric/LICENSE.txt` included in the plugin)

== Installation ==

1.  Upload the plugin files to the `/wp-content/plugins/precise-expressions-product-customizer` directory, or install the plugin through the WordPress plugins screen directly.
2.  Activate the plugin through the 'Plugins' screen in WordPress.
3.  Ensure WooCommerce is installed and active.
4.  Go to any Product > Edit > Product Customizer tab to enable the feature.

== Screenshots ==

1.  **Frontend Editor:** The customer experience for designing a product.
2.  **Product Settings:** Configuring the customizer on a product.
3.  **Order View:** Viewing the customized design in the admin area.
4.  **Store Front:** Viewing store front integration
5.  **Single Product Page:** The customer experience for launching the customizer from the single product page

== Pro Version ==
A Pro version is available with additional features for advanced workflows.
Pro version: https://software.preciseexpressions.com.au/product/simple-product-customiser-pro/

== Changelog ==

= 1.0.26 =
* Fix: Save generated artwork only inside uploads/precise-expressions-product-customizer.
* Fix: Sanitize nonce input before verification in product settings.
* Tweak: Remove non-essential header/readme URLs that failed automated availability checks.


= 1.0.25 =
* Fix: Improved Block Theme compatibility (shop + product pages).
* Fix: Ensure customized preview image persists in cart and checkout.
* Update: Added draggable/resizable permitted-area bounding box.
* Update: Store generated artwork under uploads/precise-expressions-product-customizer (outside the Media Library) with retention setting.

= 1.0.24 =
* Fix: Orders screen UI cleanups and improved preview display.
* Update: Local Fabric.js support and optional Google Fonts toggle.

= 1.0.23 =
* Update: Added "Product Card Layout" CSS as an opt-in setting.
* Update: Added external service disclosure for Google Fonts.
* Fix: Improved error handling and dependency checks.

= 1.0.22 =
* Initial release.
