{"id":352274,"date":"2026-09-13T11:57:18","date_gmt":"2026-09-13T11:57:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vizzel-for-woocommerce\/"},"modified":"2026-09-13T11:57:00","modified_gmt":"2026-09-13T11:57:00","slug":"vizzel-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vizzel-for-woocommerce\/","author":23545332,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.0","stable_tag":"1.3.0","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Vizzel for WooCommerce","header_author":"Vizzel","header_description":"Vizzel storefront features for WooCommerce. Each feature is a widget you enable here \u2014 starting with Wall Preview, which lets shoppers see a product on their own wall from a photo of their room.","assets_banners_color":"a3907b","last_updated":"2026-09-13 11:57:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/vizzel.ai","rating":0,"author_block_rating":0,"active_installs":0,"downloads":64,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.0":{"tag":"1.3.0","author":"vizzel","date":"2026-09-13 11:57:00","revision":3693615}},"upgrade_notice":{"1.3.0":"<p>Adds optional purchase attribution, so you can see which sales followed a wall\npreview. It is off by default and sends no order data until you turn it on.<\/p>","1.2.2":"<p>Privacy fix: the plugin no longer schedules or makes any request to Vizzel until you\nconnect your store. Nothing changes for an already-connected store.<\/p>","1.2.1":"<p>Internal tidy-up: the admin screen&#039;s CSS is now added entirely through WordPress&#039;s\nstylesheet APIs. Nothing changes for you or for shoppers.<\/p>","1.2.0":"<p>Fixes Add to cart in the Wall Preview popup, which previously did nothing. Also adds\nan editable button text field and tidies the Preview history popup.<\/p>","1.1.0":"<p>Adds an optional Wall previews tab to My account. Enabling it means logged-in\ncustomers&#039; room photos are kept until they delete them, rather than removed after a\nshort window \u2014 review your privacy policy before turning it on.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3693637,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3693637,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Vizzel settings screen once a store is connected \u2014 widgets, language, and the connection panel.","2":"Choosing where the button sits on the product page, with a live preview that follows the placement.","3":"The Appearance panel \u2014 accent colour with named presets and a label contrast check, plus button shape.","4":"The \"See it on your wall\" button on a WooCommerce product page.","5":"A shopper framing their room photo to a square before generating.","6":"The finished preview, with the artwork placed on the shopper's own wall."}},"plugin_section":[],"plugin_tags":[8522,210,45083,18208,286],"plugin_category":[45,50],"plugin_contributors":[280449],"plugin_business_model":[],"class_list":["post-352274","plugin","type-plugin","status-publish","hentry","plugin_tags-art","plugin_tags-gallery","plugin_tags-product-preview","plugin_tags-visualization","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-media","plugin_contributors-vizzel","plugin_committers-vizzel"],"banners":{"banner":"https:\/\/ps.w.org\/vizzel-for-woocommerce\/assets\/banner-772x250.png?rev=3693637","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vizzel-for-woocommerce\/assets\/icon-256x256.png?rev=3693637","icon_2x":"https:\/\/ps.w.org\/vizzel-for-woocommerce\/assets\/icon-256x256.png?rev=3693637","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Vizzel brings AI storefront experiences to your WooCommerce shop. The plugin is a\nsingle, extensible container: you connect it to your Vizzel workspace once, then\nenable the widgets you want from one settings screen.<\/p>\n\n<p><strong>Widgets<\/strong><\/p>\n\n<ul>\n<li><strong>Wall Preview<\/strong> \u2014 adds a \"See it on your wall\" button to the product page. A\nshopper uploads a photo of their room, frames the wall, and Vizzel places the\nproduct's artwork on it, true to scale. Ideal for galleries and art sellers.<\/li>\n<\/ul>\n\n<p>More widgets are added over time and appear on the same settings screen \u2014 no\nplugin changes needed.<\/p>\n\n<p>Widgets are rendered by the Vizzel widget bundle inside an isolated Shadow DOM, so\nthey never conflict with your theme. All display copy, usage caps and availability\nare controlled from your Vizzel dashboard.<\/p>\n\n<p><strong>What you control in WordPress<\/strong><\/p>\n\n<ul>\n<li>Which widgets are on.<\/li>\n<li>The button's wording.<\/li>\n<li>Where the button sits on the product page (five placements, with a live preview).<\/li>\n<li>Which product categories to hide it on.<\/li>\n<li>Button accent colour, shape and font.<\/li>\n<li>The widget language, or automatic per shopper.<\/li>\n<\/ul>\n\n<p><strong>A Vizzel account is required.<\/strong> The plugin is the storefront half of a hosted\nservice \u2014 without a workspace and a publishable key it renders nothing.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to Vizzel, a third-party service operated by Vizzel, to\ngenerate product previews. It will not work without it.<\/p>\n\n<p><strong>1. Vizzel API \u2014 <code>https:\/\/api.vizzel.ai<\/code><\/strong><\/p>\n\n<ul>\n<li><em>When your store's admin saves a publishable key:<\/em> the key is sent so Vizzel can\nconfirm it is valid before the plugin switches anything on.<\/li>\n<li><em>When an admin opens the Vizzel settings screen of a connected store:<\/em> a request\nis made for the list of supported widget languages. No store or visitor data is\nsent, and nothing is requested before the store is connected.<\/li>\n<li><em>When a visitor uses a widget on your storefront (from their browser):<\/em> the\npublishable key, the WooCommerce product ID, the product title and image URL,\nthe chosen language, and <strong>the photo of their room that they upload<\/strong> are sent so\nthe preview can be generated. For a visitor who is <strong>not logged in<\/strong>, room photos\nare used only to produce that preview and are deleted automatically after a short\nretention window. An anonymous, randomly generated per-visit ID is also sent so\nVizzel can count widget usage; it is not derived from anything identifying and\ncontains no personal data.<\/li>\n<li><em>When a logged-in customer uses a widget, and the Preview history widget is\nenabled:<\/em> an opaque per-customer token is also sent. The token is a random value\ngenerated on your own site and stored in WordPress user meta; it is <strong>not<\/strong> their\nemail, name, or user ID, and Vizzel cannot resolve it back to a person. It lets\ntheir previews be listed back to them under <strong>My account \u2192 Wall previews<\/strong>, which\nmeans those room photos and previews are <strong>kept until the customer deletes them<\/strong>\nrather than being deleted after the short window. Each customer keeps a limited\nnumber of previews; older ones are removed automatically.<\/li>\n<li><em>When a logged-in customer opens or deletes a preview:<\/em> the same token is sent,\nplus the preview's ID.<\/li>\n<li><em>When you export or erase personal data<\/em> for a customer from Tools \u2192 Export\/Erase\nPersonal Data: the token is sent so their previews can be listed or deleted.<\/li>\n<li><em>When you have turned on Purchase attribution, and a shopper buys a product they\npreviewed:<\/em> your store sends the preview's opaque token, the product and variation\nIDs, the quantity, the line total, the currency, and the order's ID and status.\nThe request is signed by your own site so Vizzel can confirm it came from you.\n<strong>No customer name, email, phone, billing or shipping address, order notes or\npayment data is sent.<\/strong> This setting is <strong>off by default<\/strong>: no order information\nof any kind leaves your store until an administrator turns it on, and turning it\noff stops it again.<\/li>\n<li><em>When such an order is refunded or its status changes:<\/em> the same fields are sent\nagain so the earlier figure can be corrected.<\/li>\n<\/ul>\n\n<p><strong>2. Vizzel CDN \u2014 <code>https:\/\/cdn.vizzel.ai<\/code><\/strong><\/p>\n\n<ul>\n<li>The widget JavaScript bundle is loaded from Vizzel's CDN on product pages where an\nenabled widget appears. While your store is connected, your server also requests a\nsmall manifest file from this host twice a day to learn the current bundle version.\nNo store or visitor data is sent in either request. Neither request is made \u2014 and\nnothing is scheduled \u2014 until an administrator has connected the store.<\/li>\n<\/ul>\n\n<p><strong>Nothing is sent to Vizzel, and no request of any kind is made, until an\nadministrator connects the store with a publishable key.<\/strong> Installing and activating\nthe plugin schedules no background work and generates no traffic. Disconnecting stops\nall of it again. No visitor data is sent until a visitor actively uses a widget.<\/p>\n\n<p>Vizzel's terms of service: https:\/\/vizzel.ai\/terms\nVizzel's privacy policy: https:\/\/vizzel.ai\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In Vizzel, connect this store and copy your <strong>publishable key<\/strong>.<\/li>\n<li>Install and activate Vizzel for WooCommerce (WooCommerce must be active).<\/li>\n<li>Open <strong>Vizzel<\/strong> in the WordPress admin menu, paste your publishable key, and\nenable the widgets you want (e.g. Wall Preview).<\/li>\n<li>Visit a product page \u2014 the enabled widgets appear automatically.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20vizzel%20account%3F\"><h3>Do I need a Vizzel account?<\/h3><\/dt>\n<dd><p>Yes. The plugin is the storefront half of a hosted service: it needs a Vizzel\nworkspace and a publishable key before it renders anything. See the <strong>External\nservices<\/strong> section for exactly what is sent where.<\/p><\/dd>\n<dt id=\"is%20my%20publishable%20key%20a%20secret%3F\"><h3>Is my publishable key a secret?<\/h3><\/dt>\n<dd><p>No. It is a public identifier bound to your store's domain and rate-limited by\nVizzel, so it is safe to appear in your page source. The settings screen still\nhandles it like a credential \u2014 the field is masked (with a reveal toggle), and once\nyour store is connected the key is not shown again \u2014 so it is not exposed over a\nshared screen, a screenshot, or a support session.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20a%20shopper%27s%20room%20photo%3F\"><h3>What happens to a shopper's room photo?<\/h3><\/dt>\n<dd><p>For a visitor who is not logged in, it is sent to Vizzel to generate that one\npreview and then deleted automatically after a short retention window.<\/p>\n\n<p>If you enable the <strong>Preview history<\/strong> widget, a logged-in customer's previews and\nroom photos are <strong>kept<\/strong> instead, so they can find them again under <strong>My account \u2192\nWall previews<\/strong>. They can delete any preview themselves at any time, and each\ncustomer keeps only a limited number \u2014 older ones are removed automatically.<\/p>\n\n<p>Either way the photo is never stored by this plugin and never written to your\nWordPress site. Enabling Preview history changes what you are telling shoppers\nabout their photos, so review your own privacy policy before switching it on.<\/p><\/dd>\n<dt id=\"how%20do%20i%20export%20or%20delete%20a%20customer%27s%20previews%3F\"><h3>How do I export or delete a customer's previews?<\/h3><\/dt>\n<dd><p>Use WordPress's built-in <strong>Tools \u2192 Export Personal Data<\/strong> and <strong>Tools \u2192 Erase\nPersonal Data<\/strong>. This plugin answers both requests: an export lists the customer's\npreviews, and an erasure deletes them from Vizzel and forgets the token that linked\nthem.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20key%20or%20move%20this%20store%20to%20another%20workspace%3F\"><h3>How do I change the key or move this store to another workspace?<\/h3><\/dt>\n<dd><p>Open <strong>Vizzel<\/strong>, choose <strong>Disconnect<\/strong>, and confirm. The widgets stop appearing on\nyour storefront immediately and the stored key is removed. Your widget setup\n(placement, hidden categories, appearance) is kept, so pasting a new key restores it\nas it was.<\/p><\/dd>\n<dt id=\"where%20is%20a%20widget%27s%20copy%20and%20limits%20configured%3F\"><h3>Where is a widget's copy and limits configured?<\/h3><\/dt>\n<dd><p>In your Vizzel dashboard. The plugin only decides which widgets are on and passes\nthe product context; everything else is server-driven.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20high-performance%20order%20storage%3F\"><h3>Does it work with High-Performance Order Storage?<\/h3><\/dt>\n<dd><p>Yes. The plugin never touches orders, and declares itself compatible.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20if%20i%20delete%20the%20plugin%3F\"><h3>What is removed if I delete the plugin?<\/h3><\/dt>\n<dd><p>Deleting it removes the Vizzel settings option (connection and widget setup), its two\ncached lookups, its scheduled bundle-version check, and every customer's preview\ntoken. Deactivating keeps the settings, so switching the plugin off and on again does\nnot mean reconnecting \u2014 but it does remove the scheduled check, which is recreated\nwhen the plugin is active and your store is connected.<\/p>\n\n<p>Removing the tokens means previews already generated can no longer be reached from\nyour store; Vizzel removes the imagery on its own retention schedule. To delete a\nspecific customer's previews outright, use Tools \u2192 Erase Personal Data before\ndeleting the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>New: see which sales followed a wall preview.<\/strong> Turn on <em>Purchase attribution<\/em>\non the Vizzel settings screen and, when a shopper buys a product they previewed,\nyour store reports that sale to Vizzel so it can be credited to the preview.<\/li>\n<li><strong>It is off by default and does nothing until you switch it on.<\/strong> While it is\noff, no order information of any kind leaves your store.<\/li>\n<li>What gets sent is deliberately narrow: the preview's anonymous token, the product\nand variation IDs, the quantity, the line total, the currency, and the order's ID\nand status. No customer name, email, phone, billing or shipping address, order\nnotes or payment details \u2014 the full list is under \"External services\" above.<\/li>\n<li>Refunds and status changes are reported too, so a refunded sale stops counting.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li><strong>The plugin now contacts Vizzel only after you connect it.<\/strong> Activating it no\nlonger schedules the twice-daily check for the current widget bundle version \u2014\nthat schedule is created when you connect your store with a publishable key, and\nremoved again when you disconnect. An installed but unconfigured plugin makes no\noutbound request at all.<\/li>\n<li>Deleting the plugin also clears that scheduled check, so nothing is left behind.<\/li>\n<li>No change to how anything looks or behaves once your store is connected.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Every style the plugin adds to the WordPress admin now goes through WordPress's\nown stylesheet APIs. The settings screen no longer writes <code>style<\/code> attributes of\nits own: the accent colour, button shape and font you choose travel as CSS\ncustom properties added with <code>wp_add_inline_style()<\/code> alongside the plugin's\nstylesheet, so WordPress can version, order and dequeue all of it as one thing.<\/li>\n<li>No change to how anything looks or behaves, on the settings screen or your\nstorefront.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li><strong>Add to cart now works<\/strong> from the Wall Preview popup. The button announced the\nintent but nothing acted on it, so it only closed the popup. It now triggers your\ntheme's own Add to cart control, so variations, quantity and validation behave\nexactly as they do elsewhere on the page.<\/li>\n<li><strong>The button's wording is yours.<\/strong> A \"Button text\" field on the Wall Preview card\nsets what shoppers see, previewed live as you type. Leave it empty to keep the\nwording from your Vizzel dashboard.<\/li>\n<li>The finished preview is now shown whole in the popup instead of being cropped to\nfill the panel \u2014 tall and wide rooms alike.<\/li>\n<li><strong>Preview history has its own Appearance section<\/strong>, previewing the Wall previews\ntab in My account rather than a product page with a button that widget never\nrenders.<\/li>\n<li>The preview detail popup is sized to its content instead of carrying the empty\nsecond panel that made it roughly twice as wide as it needed to be.<\/li>\n<li>Removed \"Try another piece in this room\" from the preview detail popup.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New <strong>Preview history<\/strong> widget: adds a \"Wall previews\" tab to WooCommerce My\naccount where a logged-in customer can revisit every preview they have created,\ncompare it against their room, download it, jump back to the product, or try\nanother piece in the same room without re-uploading a photo.<\/li>\n<li>Previews created by a logged-in customer are now kept so they can be listed back\nto them, instead of being deleted after the short retention window. Customers can\ndelete any preview themselves, and each keeps a limited number.<\/li>\n<li>Customers are identified to Vizzel only by an opaque random token stored in\nWordPress user meta \u2014 never an email, name, or user ID.<\/li>\n<li>Added WordPress privacy integration: previews are included in Export Personal\nData and removed by Erase Personal Data.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release \u2014 Vizzel container plugin with the Wall Preview widget.<\/li>\n<li>Connection: the publishable key is entered in a masked field with a reveal\ntoggle, is never rendered back into the page once confirmed, and can be removed\nwith Disconnect (widget setup is kept for reconnecting).<\/li>\n<li>Appearance: hex-editable accent with named presets and a label contrast check, a\nsegmented button-shape control, and a product-page live preview that follows the\nchosen placement.<\/li>\n<li>Placement: five product-page positions, plus per-category exclusion.<\/li>\n<\/ul>","raw_excerpt":"Let shoppers see a product on their own wall. Connect once, then turn on the widgets you want \u2014 starting with Wall Preview.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352274","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=352274"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vizzel"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352274"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352274"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352274"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352274"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352274"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}