{"id":398101,"date":"2026-11-08T08:01:02","date_gmt":"2026-11-08T08:01:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/elfit-ai-virtual-try-on-for-woocommerce\/"},"modified":"2026-11-08T08:00:51","modified_gmt":"2026-11-08T08:00:51","slug":"fitotry-ai-virtual-try-on-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fitotry-ai-virtual-try-on-for-woocommerce\/","author":7819527,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.1","stable_tag":"1.8.1","tested":"7.1.4","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Fitotry AI Virtual Try-On for WooCommerce","header_author":"micromax","header_description":"Enable customers to virtually try on clothing, shoes, glasses, jewelry, and accessories directly in WooCommerce using OpenRouter AI.","assets_banners_color":"334385","last_updated":"2026-11-08 08:00:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/fitotry-ai-virtual-try-on-for-woocommerce\/","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":108,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.1":{"tag":"1.8.1","author":"micromax2","date":"2026-11-08 08:00:51","revision":3790662}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3790720,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3790720,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3790720,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3790720,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"fito\/tryon-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"fito\/tryon-button","version":"1.8.1","title":"AI Try-On Button","category":"woocommerce","icon":"camera","description":"Insert a virtual AI Try-On button into your product templates or posts.","keywords":["try-on","ai","virtual fitting","fashion","fitting room"],"textdomain":"fitotry-ai-virtual-try-on-for-woocommerce","attributes":{"buttonText":{"type":"string","default":""},"alignment":{"type":"string","default":"left"}},"supports":{"html":false,"align":["left","center","right"]},"editorScript":"file:.\/index.js","style":"fito-tryon-public"}},"tagged_versions":["1.8.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3790720,"resolution":"1","location":"assets","locale":"","width":1225,"height":760},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3790720,"resolution":"2","location":"assets","locale":"","width":1222,"height":795},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3790720,"resolution":"3","location":"assets","locale":"","width":1228,"height":811},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3790720,"resolution":"4","location":"assets","locale":"","width":677,"height":767},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3790720,"resolution":"5","location":"assets","locale":"","width":677,"height":527},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3790720,"resolution":"6","location":"assets","locale":"","width":677,"height":772}},"screenshots":{"1":"Customer try-on modal with camera capture, photo upload, and privacy consent.","2":"Interactive Before\/After split comparison slider with drag handle.","3":"Immersive full-screen try-on stage preview.","4":"Admin analytics dashboard with try-on metrics and Chart.js activity graph.","5":"Searchable audit logs with prompt and response inspector.","6":"AI Prompts manager with mutually exclusive category mapping and preset prompt editing.","7":"Abuse prevention, rate limiting, and customer data privacy settings."}},"plugin_section":[],"plugin_tags":[2353,7097,158825,251506,286],"plugin_category":[45],"plugin_contributors":[255790],"plugin_business_model":[],"class_list":["post-398101","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-fashion","plugin_tags-try-on","plugin_tags-virtual-fitting","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-micromax2","plugin_committers-micromax2"],"banners":{"banner":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/banner-772x250.png?rev=3790720","banner_2x":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/banner-1544x500.png?rev=3790720","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/icon-128x128.png?rev=3790720","icon_2x":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/icon-256x256.png?rev=3790720","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-1.jpg?rev=3790720","caption":"Customer try-on modal with camera capture, photo upload, and privacy consent."},{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-2.jpg?rev=3790720","caption":"Interactive Before\/After split comparison slider with drag handle."},{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-3.jpg?rev=3790720","caption":"Immersive full-screen try-on stage preview."},{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-4.jpg?rev=3790720","caption":"Admin analytics dashboard with try-on metrics and Chart.js activity graph."},{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-5.jpg?rev=3790720","caption":"Searchable audit logs with prompt and response inspector."},{"src":"https:\/\/ps.w.org\/fitotry-ai-virtual-try-on-for-woocommerce\/assets\/screenshot-6.jpg?rev=3790720","caption":"AI Prompts manager with mutually exclusive category mapping and preset prompt editing."}],"raw_content":"<!--section=description-->\n<p><strong>Fitotry AI Virtual Try-On for WooCommerce<\/strong> brings studio-grade artificial intelligence virtual fitting technology directly into your WooCommerce store. Shoppers can upload a personal photo or snap a live selfie with their webcam or mobile camera to preview realistic try-ons of apparel, footwear, eyewear, jewelry, watches, hats, and accessories.<\/p>\n\n<p>All image generations are powered by a Bring-Your-Own-Key (BYOK) architecture with direct support for OpenRouter. Connect directly to upstream AI vision models with zero middleman fees, zero recurring SaaS markups, and complete data privacy control.<\/p>\n\n\n\n<h3>Key Features (100% Free &amp; Standalone)<\/h3>\n\n<ul>\n<li><strong>OpenRouter Bring-Your-Own-Key (BYOK)<\/strong>: Connect directly to OpenRouter using your personal developer API key with access to top vision models.<\/li>\n<li><strong>Storefront Single Product Placements<\/strong>: Display interactive try-on buttons on single product pages below or above the Add to Cart button, in a custom product tab, via the <code>[fitotry_tryon]<\/code> shortcode, or via the Gutenberg block.<\/li>\n<li><strong>Interactive Comparison Split Slider<\/strong>: Responsive mouse-drag and mobile touch-friendly split slider allowing shoppers to inspect exact Before and After fitting results.<\/li>\n<li><strong>Fullscreen Try-On Stage<\/strong>: Immersive full-screen view mode with mobile optimization and keyboard Escape key closing.<\/li>\n<li><strong>Camera Capture &amp; File Upload<\/strong>: Drag-and-drop file upload zone supporting JPG, PNG, and WebP, plus integrated live webcam\/mobile camera capture.<\/li>\n<li><strong>Category-Gated Store Filtering<\/strong>: Enable virtual try-on storewide or exclusively for designated product categories with automatic subcategory coverage.<\/li>\n<li><strong>Store Access Controls &amp; Guest Showcase<\/strong>: Choose between public access for all visitors or restrict try-on strictly to registered users with custom guest Before\/After showcase images and login prompts.<\/li>\n<li><strong>AI Fitting Prompts Manager<\/strong>:\n\n<ul>\n<li>Built-in prompt presets for Clothing, Shoes, Eyewear, Watches, Hats, Bags, and Jewelry.<\/li>\n<li>Fully customizable fitting prompt instructions and category mappings for each preset.<\/li>\n<li>Mutually exclusive category mapping to prevent conflicting fitting instructions.<\/li>\n<li>Dynamic <code>{product_title}<\/code> placeholder interpolation.<\/li>\n<li>Global AI system prompt configuration for photorealism and identity fidelity.<\/li>\n<\/ul><\/li>\n<li><strong>Abuse Prevention &amp; Privacy Controls<\/strong>:\n\n<ul>\n<li>Adaptive rate limiting per customer account or per device cookie &amp; IP (minute, hour, or day).<\/li>\n<li>Configurable audit log retention in database (1 day, 3 days, 1 week, 30 days, or never).<\/li>\n<li>Automated 24-hour photo disk retention auto-cleanup via WP-Cron.<\/li>\n<li>One-click manual photo purge tool.<\/li>\n<\/ul><\/li>\n<li><strong>Analytics &amp; Performance Tracking<\/strong>: Real-time KPI metrics tracking daily, weekly, monthly, and lifetime try-ons, success rate, duration, spend, and bundled local Chart.js graph.<\/li>\n<li><strong>High-Performance Order Storage (HPOS) Compatible<\/strong>: Fully isolated database tables compliant with WooCommerce HPOS.<\/li>\n<li><strong>Full RTL &amp; Persian Localization<\/strong>: Bundled Persian (fa_IR) translation files and native right-to-left layout support.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external artificial intelligence APIs to generate realistic virtual try-on images. All connections use a Bring-Your-Own-Key (BYOK) architecture where the store administrator provides their own developer API key. No personal or customer data is transmitted until a shopper explicitly clicks the Try-On button and submits a fitting request, or when an administrator tests their API credentials in settings.<\/p>\n\n<h4>1. OpenRouter<\/h4>\n\n<ul>\n<li><strong>What it is and what it does<\/strong>: OpenRouter (openrouter.ai) is an AI model aggregator and routing service that processes virtual try-on requests using multimodal vision and diffusion models. Upstream generated fitting images returned by OpenRouter endpoints are downloaded via secure server-side HTTP GET requests into the store's local uploads directory for customer display and split-slider comparison.<\/li>\n<li><strong>When data is transmitted<\/strong>: Data is transmitted when a customer submits a try-on request, when completed result images are retrieved from OpenRouter to the web server, or when the administrator clicks \"Test Connection\" in settings to verify API key validity.<\/li>\n<li><strong>What data is transmitted<\/strong>: When a try-on is requested, the customer's uploaded or camera-captured photo, the WooCommerce product image, and category-specific prompt instructions are transmitted for AI inference. When retrieving completed images, standard HTTP GET request headers are sent to fetch the image bytes. During connection tests, only the API key is verified without sending customer data.<\/li>\n<li><strong>Terms of Service<\/strong>: https:\/\/openrouter.ai\/terms<\/li>\n<li><strong>Privacy Policy<\/strong>: https:\/\/openrouter.ai\/privacy<\/li>\n<\/ul>\n\n<h3>Third-Party Assets<\/h3>\n\n<p>This plugin bundles the following open-source third-party library:<\/p>\n\n<ul>\n<li><strong>Chart.js<\/strong> (v4.5.1)\n\n<ul>\n<li>Purpose: Powers analytics and try-on activity data visualization in the admin dashboard.<\/li>\n<li>Source: https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v4.5.1<\/li>\n<li>License: MIT License (https:\/\/github.com\/chartjs\/Chart.js\/blob\/master\/LICENSE.md)<\/li>\n<li>Copyright: (c) 2025 Chart.js Contributors<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>fitotry-ai-virtual-try-on-for-woocommerce<\/code> folder to your <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Navigate to <strong>AI Try-On &gt; Settings<\/strong> in your WordPress admin menu.<\/li>\n<li>Enter your OpenRouter API Key and click <strong>Test Connection<\/strong> to verify connectivity.<\/li>\n<li>Choose your Primary Model.<\/li>\n<li>Configure button placement, store access controls, and enabled product categories as desired.<\/li>\n<li>Navigate to <strong>AI Try-On &gt; Prompts<\/strong> to customize fitting prompt instructions and category mappings for your product categories.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>The plugin supports OpenRouter out of the box with Bring-Your-Own-Key (BYOK) architecture, giving you direct access to top vision models with zero middleman fees.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20completely%20free%3F\"><h3>Is this plugin completely free?<\/h3><\/dt>\n<dd><p>Yes. Core virtual try-on capabilities, including OpenRouter integration, single-product button placements, split comparison slider, rate limiting, and custom category fitting prompts, are 100% free and included directly in this plugin.<\/p><\/dd>\n<dt id=\"how%20does%20customer%20photo%20privacy%20work%3F\"><h3>How does customer photo privacy work?<\/h3><\/dt>\n<dd><p>Customer photos are stored in an isolated uploads directory protected by index.php files and server restrictions. Temporary customer photos are automatically purged after 24 hours via WP-Cron, and store owners can trigger an immediate manual photo purge at any time from the settings screen.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20virtual%20try-on%20to%20logged-in%20customers%20only%3F\"><h3>Can I restrict virtual try-on to logged-in customers only?<\/h3><\/dt>\n<dd><p>Yes. Set the Access Level to \"Logged-In Users Only\". When guests click the try-on button, a modal appears showcasing a sample Before\/After fitting preview card along with your store's signup and login links. Direct REST submissions from guests are rejected with HTTP 401 Unauthorized.<\/p><\/dd>\n<dt id=\"how%20does%20adaptive%20rate%20limiting%20work%3F\"><h3>How does adaptive rate limiting work?<\/h3><\/dt>\n<dd><p>When restricted to logged-in customers, limits are enforced per user account so users have consistent rate limits regardless of device or IP changes. When set to allow everyone, limits are enforced per browser device and IP address, allowing multiple people on the same household or office Wi-Fi network to enjoy separate try-on limits.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20virtual%20try-on%20to%20specific%20product%20categories%3F\"><h3>Can I limit virtual try-on to specific product categories?<\/h3><\/dt>\n<dd><p>Yes. In <strong>AI Try-On &gt; Settings<\/strong>, select the enabled product categories. The try-on button will only appear for products in those categories, with automatic subcategory coverage. Submissions for non-allowed products are rejected on the server.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. The plugin dynamically updates the single product try-on button to target the active variation photo when a shopper selects different attributes.<\/p><\/dd>\n<dt id=\"how%20are%20category%20prompts%20kept%20exclusive%3F\"><h3>How are category prompts kept exclusive?<\/h3><\/dt>\n<dd><p>In <strong>AI Try-On &gt; Prompts<\/strong>, each WooCommerce category can only be mapped to a single fitting prompt card. As soon as a category is selected in one card, it is hidden from all other prompt cards to prevent conflicting instructions.<\/p><\/dd>\n<dt id=\"are%20third-party%20scripts%20loaded%20from%20external%20cdns%3F\"><h3>Are third-party scripts loaded from external CDNs?<\/h3><\/dt>\n<dd><p>No. All assets, including Chart.js for analytics, are bundled locally within the plugin to ensure full compliance with WordPress.org security guidelines and offloading policies.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Security: Concurrency-hardened atomic rate limiting and error flood controls via dedicated database registry and object cache primitives to eliminate transient race conditions.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Rebrand: Complete transition to Fitotry AI Virtual Try-On for WooCommerce.<\/li>\n<li>Shortcode: Updated shortcode to [fitotry_tryon].<\/li>\n<li>Localization: Rebranded text domain to fitotry-ai-virtual-try-on-for-woocommerce and updated POT catalog.<\/li>\n<li>Assets: Synchronized block metadata and version headers.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Standalone Release: Pure open-source virtual try-on engine for WooCommerce.<\/li>\n<li>Database: Streamlined job records and automated privacy purge retention.<\/li>\n<li>Block &amp; Assets: Synchronized block metadata and script handles.<\/li>\n<li>Compliance: Complete WordPress.org guideline alignment and zero-dependency standalone execution.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Feature: Bring-Your-Own-Key (BYOK) architecture for OpenRouter AI vision models.<\/li>\n<li>Feature: Responsive Before\/After split comparison slider with drag handle.<\/li>\n<li>Feature: Integrated camera snapshot and drag-and-drop file upload.<\/li>\n<li>Feature: Category-specific AI fitting prompt instructions and system prompt manager.<\/li>\n<li>Feature: Rate limiting and automated 24-hour photo cleanup via WP-Cron.<\/li>\n<li>Feature: Admin analytics dashboard with try-on metrics and Chart.js activity graph.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Security: Hardened database SQL queries with $wpdb-&gt;prepare() using %i identifier placeholders.<\/li>\n<li>Compliance: Resolved direct database query parameters to achieve 100% PluginCheck DirectDB compliance.<\/li>\n<li>Maintenance: Bumped core plugin and Gutenberg block version to 1.5.0.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Architecture: Established extensible action and filter contracts for try-on modules.<\/li>\n<li>Enhancement: Added fito_tryon_loaded and fito_tryon_admin_submenus hook contracts.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Security: Hardened REST API submit endpoint against SSRF with strict product gallery and upload directory validation.<\/li>\n<li>Security: Added URL and private IP range validation before outbound image resolution.<\/li>\n<li>Compliance: Cleaned admin menu titles and action links per WordPress.org dashboard integration standards.<\/li>\n<li>API: Promoted fito-tryon\/v1 as canonical REST namespace with argument validation schemas and nonce verification.<\/li>\n<li>Performance: Primed post and postmeta caches with _prime_post_caches to eliminate N+1 database queries on admin logs.<\/li>\n<li>Performance: Added static memoization for category access lookups in high-traffic catalog loops.<\/li>\n<li>Database: Schema version bumped to 1.3.0 with composite indexes on jobs and logs tables.<\/li>\n<li>Database: Implemented atomic batch job deletion for background cleanup tasks.<\/li>\n<li>Compliance: Bundled Chart.js locally to comply with WordPress.org external asset offloading rules.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Security: Hardened client IP resolution and throttled client error reporting endpoint.<\/li>\n<li>Feature: Added Sent Prompt and Received AI Response audit inspection in log details modal.<\/li>\n<li>Feature: Added configurable database log retention options (1 day, 3 days, 1 week, 30 days, or never).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Feature: Added Category Prompts manager with mutually exclusive category mappings for 7 built-in apparel categories.<\/li>\n<li>Feature: Added Guest Sample Showcase modal card and access control gating.<\/li>\n<li>Feature: Added Fullscreen try-on inspection stage.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial production release.<\/li>\n<li>OpenRouter API key validation and model selection.<\/li>\n<li>Async job queue and real-time REST polling with animated progress bar.<\/li>\n<li>Interactive Before\/After split comparison slider.<\/li>\n<li>Full RTL support and Persian (fa_IR) localization.<\/li>\n<\/ul>","raw_excerpt":"AI-powered virtual try-on for WooCommerce products. Customers upload a photo or snap a camera shot to preview realistic fittings in real time.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398101"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/micromax2"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398101"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398101"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398101"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398101"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398101"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}