=== ArtInAR – 2D to 3D Art === Contributors: roesware Tags: woocommerce, 3d, augmented reality, product, shortcode Requires at least: 5.8 Tested up to: 6.9 Requires PHP: 7.4 Stable tag: 1.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Convert 2D paintings into realistic 3D canvas models that customers can preview on their wall in Augmented Reality. == Description == Art In AR adds an AR/3D button to WooCommerce product pages so customers can view your product in their own space. It supports GLB (Android) and USDZ (iOS) models and works with Advanced Custom Fields (ACF) or standard post meta. Features: - Automatic button display via a configurable WooCommerce hook - Shortcode: `[art_in_ar_buttons]` for manual placement - GLB and USDZ URLs via meta keys - Optional QR-code fallback for desktop/unsupported devices - Lightweight and privacy-friendly: no tracking, no external ads. = Translations = - Base language: English (`artinar`). - Included locales: Dutch (Netherlands `nl_NL`), Dutch (Belgium `nl_BE`), German (Germany `de_DE`). - Community translations are managed via translate.wordpress.org. When this plugin is hosted on WordPress.org, translations are delivered automatically. = Requirements = - WooCommerce - WordPress 5.8+ - PHP 7.4+ == Installation == 1. Upload the plugin folder to `/wp-content/plugins/` or install via the WordPress dashboard. 2. Activate the plugin through the ‘Plugins’ menu in WordPress. 3. Configure the meta keys and texts via Settings → Art In AR. - Default meta keys: `art_in_ar_glb_url` and `art_in_ar_usdz_url`. 4. Add the GLB/USDZ URLs to your product (via ACF or post meta). 5. Optional: use the `[art_in_ar_buttons]` shortcode to place the buttons manually. == Frequently Asked Questions == = The 3D model fails to load ("Failed to fetch") = If you host your GLB files on a different domain or a CDN, ensure that your server sends the correct CORS headers. Specifically, the `Access-Control-Allow-Origin` header must be present. The plugin automatically adds `crossorigin="anonymous"` when an external URL is detected to support this. = Where do I store the GLB/USDZ URLs? = Use the standard post meta fields `art_in_ar_glb_url` and/or `art_in_ar_usdz_url`. If ACF is installed, you can also use ACF fields with those keys. = Does this work without ACF? = Yes. The plugin tries `get_field()` first and falls back to `get_post_meta()`. = Can I change the button position? = Yes, via Settings → Art In AR you can adjust the WooCommerce hook or disable automatic display and use the shortcode. = Does the plugin load external scripts or track users? = Yes, it utilizes Google Scene Viewer for AR on Android. No tracking is performed by the plugin itself. The QR-code styling library is bundled locally for better privacy. See the Privacy section for more details. == Screenshots == 1. Example of the AR/3D button on the product page. 2. Settings page with meta key and text options. == Changelog == = 1.2 = * Fixes for WooCommerce == Changelog == = 1.1 = * Add support for WooCommerce variable products: AR/3D models can now be set per variation. * Refactor model URL retrieval into a reusable helper method. = 1.0.0 = Initial release. == Upgrade Notice == = 1.1 = Adds per-variation AR/3D model support for WooCommerce variable products. = 1.0.0 = Initial stable release. == Privacy == This plugin is designed with privacy in mind. 1. **Google Scene Viewer** - **Service:** An Android system component for viewing 3D models in AR. - **Usage:** Used to display GLB models on Android devices. - **Data sent:** When an Android user clicks the "View on your wall" button, the URL of the GLB model is sent to Google's Scene Viewer. - **Terms & Privacy:** [Google Terms of Service](https://policies.google.com/terms) / [Google Privacy Policy](https://policies.google.com/privacy) The `qr-code-styling` library is bundled within the plugin and is loaded locally from your own server, so no IP addresses are shared with a third-party CDN for this purpose. Optionally, you can enable a QR display (Settings → Art In AR). When enabled, a QR code is generated using the `qr-code-styling` library. If you host your own GLB/USDZ assets on an external domain, this is your own responsibility and subject to your privacy policy.