=== SR Product 360° View ===
Contributors: superrishi
Tags: woocommerce, 360, 360 view, product viewer, product spin
Requires at least: 5.0
Tested up to: 7.1
Requires PHP: 7.0
Stable tag: 6.3.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Interactive 360° product image viewer for WooCommerce. Drag, swipe or use the arrow keys; opens fullscreen; works on touch.

== Description ==

SR Product 360° View turns a sequence of product photos into an interactive 360°
spin on your WooCommerce store. Shoppers drag, swipe, or use the arrow keys to
rotate the product; open a fullscreen popup; and zoom in, on desktop and touch.

= See it in action =

[youtube https://www.youtube.com/watch?v=QAVCUZBcFfE]

= What the free version does =

* **Simple and variable products**: choose one 360° set on the product and it shows on
  every variation.
* **Store-wide settings**: size, autoplay, looping, drag and swipe, hover-to-rotate,
  flick-to-spin, zoom, and the 360° badge, all in **Global Settings** under the
  **360° View** menu.
* **Display modes**: a 360° badge on the product gallery that opens a fullscreen
  viewer, inline placement in the gallery/summary/tabs, or the `[sr360]` shortcode.
* **Fullscreen viewer**: play/pause, a frame slider, and zoom, with full keyboard and
  screen-reader support.
* **Shoppers can find them**: a small 360° marker on products in shop, category and
  search listings, and a 360° column in the admin Products list so you can see your own
  coverage at a glance.
* **Accessible**: keyboard-operable viewer and admin, ARIA state, focus-trapped modals,
  and `prefers-reduced-motion` support.
* **Developer-friendly**: a documented REST endpoint, filters/actions, template
  overrides, and a shortcode.

= What the premium version adds =

The free version above is complete and not time-limited. Premium is for larger catalogues
and finer control:

* **Bulk import**: set up 360° views across many products at once from a server folder
  or a remote/CDN URL pattern, with a dry run that writes nothing first and a background
  importer that handles large catalogues without timing out.
* **A different 360° set per variation**: the viewer follows the shopper’s
  selection as they choose a colour or size.
* **Per-product and per-variation settings**: override the store-wide defaults on
  individual products instead of everywhere at once.
* **A configurable popup**: size, overlay colour and opacity, background, close button
  and which controls appear. *(The free version’s popup always opens fullscreen.)*
* **Replace the featured image** with the 360° view in the product gallery.

Details: https://superrishi.com

== Installation ==

1. Upload the plugin to `wp-content/plugins/`, or install it from your site’s
   Plugins screen, and **Activate** it. Requires WooCommerce.
2. Edit a product and open the **Product 360° View** meta box.
3. Click **Select 360° images** and choose your images in spin order (name them so they
   sort in order, e.g. `frame-01 … frame-36`).
4. **Update** the product, and the 360° viewer appears on the product page.
5. Adjust store-wide defaults in **Global Settings** under the **360° View** menu.

== Frequently Asked Questions ==

= Is the free version limited? =

No caps and no time limit. There is no restriction on how many products can have a 360°
view, how many images a set may contain, or how long you can use it. What premium adds is
listed above (bulk import, per-variation sets, per-product settings, popup configuration
and replace-featured), and everything else is in the free version.

= How many images do I need? =

Any contiguous sequence. Commonly 24, 36, or 72 photos taken at even rotation
steps. Images are sorted by filename, so name them sensibly.

= Can each variation have its own 360° view? =

In the premium version, yes: each variation can have its own set of images, and the viewer
switches as the shopper changes their selection.

In the free version, 360° sets are chosen on the product rather than per variation: pick one
set on the product and it shows for every variation of it.

If you are moving from a previous version of this plugin and your 360° images were set up
per variation, the free version will not show them until you choose a set on the product
itself. The importer leaves your old data untouched either way, so nothing is lost and
upgrading picks the per-variation sets straight back up.

= Can I load images from a CDN or a server folder? =

That is **Bulk Import**, which is a premium feature: it sets up many products at once from
a folder path or a URL pattern. In the free version you choose each product’s images from
your Media Library.

For images served from another domain, set the CORS mode and have that host send an
`Access-Control-Allow-Origin` header; the plugin tells you when this is needed.

= I used a previous version of this plugin. Will my old 360° data be imported? =

**Yes, from 6.1.0 onwards.** If the plugin finds 360° data from a pre-6.0 version on
your site, it shows a notice offering to review and import it. You see exactly what was
found, what cannot be imported, and why, before anything is written, and nothing
is imported until you say so. Your old data is never altered or deleted, so you can check
the results before you rely on them. It works even if your subscription has lapsed.

One case needs help: the most recent older version kept the list of which images make up
each 360° view on SuperRishi’s servers (your images themselves have always been on your
own site). If your licence details are no longer on the site, the importer cannot fetch
that list on its own. It will say so plainly rather than failing quietly. Contact
support and we can sort it out.

The importer is a temporary tool for the migration window and will be removed in a later
version.

= Does the viewer work on touch devices and with a keyboard? =

Yes. Drag on desktop, swipe on touch, and rotate with the arrow keys when the viewer
is focused. Popups trap and restore focus, and auto-rotation respects
`prefers-reduced-motion`.

= I switched my product template to WooCommerce’s new Product Gallery block. Where is the 360° badge? =

SR Product 360° View attaches to WooCommerce’s standard product gallery: the classic
gallery, and the default block template’s **Product Image Gallery** block, which both
fire the gallery hooks the plugin uses. WooCommerce’s newer **Product Gallery** block
renders differently and does not fire those hooks, so the badge and the "replace
featured image" mode will not appear there. Use the standard Product Image Gallery block,
or choose the **Inline** display mode or the `[sr360]` shortcode. These place the
viewer directly and do not depend on the gallery.

== Screenshots ==

1. The 360° viewer on a WooCommerce product page.
2. The Product 360° View meta box with a populated, reorderable image grid.
3. Global Settings, with store-wide defaults for every product.
4. The fullscreen viewer with play/pause, frame slider and zoom.
5. The 360° marker on products in a shop listing.
6. The 360° column in the admin Products list.

== Changelog ==

= 6.3.1 =
* Popup: the close button makes a half turn anticlockwise when the mouse is over it.

= 6.3.0 =
* Fixed: on a desktop, dragging the 360° view keeps rotating after the pointer leaves the
  image, in the popup and the inline viewer, and in the popup a drag can start anywhere on
  the white area around the image.
* The 360° data kept on SuperRishi’s servers for the previous plugin stays available for
  import until 30 April 2027.
* New 360° Check-up tab under 360° View: checks every product’s 360° view for images that
  are missing, broken or served from another server, and lets you add images or remove a
  dead view one product at a time. The premium version also checks images on a CDN and
  reports on variations.
* Popup: redrawn control icons; the close button, the expand button and the 360° badge are
  at least 44px on phones; the close button keeps its look under any theme’s hover styles
  and turns on its vertical axis when the mouse is over it; a clear gap between the image
  and the controls bar, and a lighter bar.
* Product editor: the override rows and the image grid fit phone screens, with controls
  that are easy to tap.
* Products list: the 360° column no longer squeezes the other columns.
* Wording: British spelling throughout, plain-language paths through the settings, and
  help text on the cross-origin (CORS) mode and on zoom that says what actually happens.
  The CORS notice now appears only when something needs your attention.
* Premium: the licence client no longer ships inside the free version; a site whose
  licence is removed returns to the free behaviour without losing any data; clearer
  reasons when something is refused, with links to Help and the FAQ.
* Tested up to WordPress 7.1.

= 6.2.0 =
This is a ground-up rebuild of SR Product 360° View, and the first release of the 6.x line.
Versions 6.0.0 and 6.1.0 were development milestones and were never published.

* Rebuilt from scratch: a new viewer, a new settings system, and a new admin experience.
* **Your 360° data from the previous version is found and offered for import.** A notice
  shows what was found, what can and cannot be imported and why, and nothing is written
  until you say so. Your old data is never altered or deleted, so you can keep the old
  plugin installed until you are happy with the result, and it works even if your
  subscription has lapsed. The importer is temporary and will be removed in a later version.
* Store-wide settings for size, autoplay, looping, drag, touch and swipe, hover-to-rotate,
  flick-to-spin, and zoom.
* Display modes: a 360° badge on the product gallery that opens a fullscreen viewer,
  inline placement, or the `[sr360]` shortcode.
* Shoppers can see which products have a 360° view before opening them: a small marker on
  the product image in shop, category and search listings, and on "You may also like"
  grids. In the admin, a 360° column in the Products list shows your coverage at a glance.
* A percentage loading bar while a large set downloads, so the viewer no longer sits on a
  blank stage before the first frame appears.
* Works with block-based (Site Editor) product templates, and falls back sensibly on themes
  and gallery plugins that do not fire WooCommerce’s standard hooks.
* Accessibility: keyboard-operable viewer and admin, ARIA state, focus-trapped dialogs, and
  `prefers-reduced-motion` support.
* Fully translatable, with a translation template included.
* A documented REST endpoint, filters and actions, and theme-overridable templates.
* Security hardening throughout, and an automated test suite covering the parts that matter.

== Upgrade Notice ==

= 6.3.1 =
Upgrading from 5.6 or older: this is a ground-up rebuild. Your 360° data is untouched; the
plugin finds it and offers to import it, until 30 April 2027. Upgrading from 6.2.0: adds the
360° Check-up tab, phone-friendly popup controls and a desktop drag fix.

= 6.3.0 =
Adds the 360° Check-up tab, phone-friendly controls, a turn on the popup close button when
you hover it, and clearer wording. No data changes.

= 6.2.0 =
A ground-up rebuild. Your existing 360° data is left untouched. The plugin finds it and
offers to import it for you, showing you what it found before anything is written, and it
works even if your subscription has lapsed.
