=== Noorifa - Display WooCommerce Product Variations in 3D ===
Contributors: noorealam
Tags: woocommerce, 3d, product viewer, variation, product gallery
Requires at least: 6.3
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Interactive 3D product viewer for WooCommerce. Customers rotate, zoom and switch colors/materials — WooCommerce still handles pricing and checkout.

== Description ==

Noorifa adds an interactive 3D product viewer to your WooCommerce store. WooCommerce remains fully responsible for products, pricing, inventory, variations, cart, checkout and orders — Noorifa focuses exclusively on interactive presentation, appearance switching and visualization.

https://www.youtube.com/watch?v=yI84DVha0wI



[Live Demo](https://noor-e-alam.com/noorifa/)

**Features**
* Noorifa configuration metabox inside the WooCommerce product editor, with per-product enable/disable.
* Upload a `.glb`/`.gltf` 3D model per product, with automatic mesh detection (including Draco-compressed models).
* Appearance system: define named looks (e.g. "Red", "Oak Wood") and assign a flat color, an image texture (with adjustable tile scale), or leave a mesh at its model's original material.
* WooCommerce attribute mapping: connect one or more product attributes (e.g. "Color" and, independently, "Material") to appearances, so different meshes can be switched independently at the same time.
* Frontend 3D viewer with swatch-style color/texture selectors that drive WooCommerce's own variation selection — price, stock and add-to-cart keep working exactly as WooCommerce already handles them.
* Graceful fallback: the interactive viewer only replaces the product gallery once the model has actually finished loading in the customer's browser. If 3D isn't supported, JavaScript is disabled, or the model fails to load, the customer simply sees WooCommerce's normal product gallery.

= Requirements =
* WooCommerce must be installed and active.
* PHP 8.1 or higher.

== Installation ==
1. Upload the plugin files to the `/wp-content/plugins/noorifa` directory, or install the plugin through the WordPress plugins screen.
2. Activate the plugin through the "Plugins" screen.
3. Make sure WooCommerce is installed and active.
4. Edit a product and open the "Noorifa – 3D Product Viewer" box to configure it.

== Frequently Asked Questions ==

= Does Noorifa work with any WooCommerce theme? =

Yes, on a best-effort basis. Noorifa hooks into standard WooCommerce actions and moves its viewer inside WooCommerce's own product gallery element once the model loads, so it inherits whatever layout the active theme already applies there — including block/FSE themes that render the gallery as an independent Gutenberg block.

= Does Noorifa require WooCommerce? =

Yes, WooCommerce must be installed and active. Noorifa will show an admin notice and stay inactive if it is missing.

= Will Noorifa conflict with other plugins? =

Noorifa namespaces all of its code, prefixes every hook, option and meta key with `noorifa`/`_noorifa_`, and does not bundle a Composer autoloader, avoiding the most common causes of plugin-to-plugin conflicts.

= Does Noorifa send any data to external services? =

No. See "External services" below.

== External services ==

Noorifa does not connect to any external service, API, or CDN at runtime. It bundles its own copies of the following open-source JavaScript libraries so nothing is ever fetched from a third party:

* **Three.js** (MIT License) — WebGL 3D rendering engine, used to display and light the uploaded 3D model.
* **Google Draco** (Apache License 2.0) — mesh decompression library, used only to decode Draco-compressed `.glb`/`.gltf` files entirely in the visitor's browser. Only the pure-JavaScript decoder build is bundled.

All uploaded 3D models and images are stored in, and served from, your own WordPress Media Library.

== Screenshots ==

1. Noorifa configuration metabox in the WooCommerce product editor.
2. Interactive 3D viewer on the frontend product page with color/material swatches.

== Changelog ==

= 1.0.0 =
* Initial release
