{"id":345442,"date":"2026-08-01T20:52:18","date_gmt":"2026-08-01T20:52:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/seeonwall-for-woocommerce\/"},"modified":"2026-09-29T21:33:02","modified_gmt":"2026-09-29T21:33:02","slug":"seeonwall-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/zgh.wordpress.org\/plugins\/seeonwall-for-woocommerce\/","author":23537617,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.23.4","stable_tag":"1.23.4","tested":"7.1.2","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"SeeOnWall \u2013 Wall Art Preview for WooCommerce","header_author":"Mateusz Dziurdziak","header_description":"Let shoppers preview posters on their own wall, at true physical scale, directly on your product pages.","assets_banners_color":"f2ede4","last_updated":"2026-09-29 21:33:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/seeonwall.com\/wordpress-setup-guide","header_author_uri":"https:\/\/profiles.wordpress.org\/mateuszdziurdziak\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1151,"num_ratings":0,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mateuszdziurdziak","date":"2026-08-01 20:51:58","revision":3631310},"1.0.1":{"tag":"1.0.1","author":"mateuszdziurdziak","date":"2026-08-05 00:00:34","revision":3634741},"1.0.2":{"tag":"1.0.2","author":"mateuszdziurdziak","date":"2026-08-05 21:28:50","revision":3635856},"1.1.0":{"tag":"1.1.0","author":"mateuszdziurdziak","date":"2026-08-11 13:33:31","revision":3642054},"1.10.0":{"tag":"1.10.0","author":"mateuszdziurdziak","date":"2026-08-31 21:29:55","revision":3674973},"1.11.0":{"tag":"1.11.0","author":"mateuszdziurdziak","date":"2026-08-31 23:09:18","revision":3675040},"1.12.0":{"tag":"1.12.0","author":"mateuszdziurdziak","date":"2026-09-02 20:52:06","revision":3678652},"1.13.0":{"tag":"1.13.0","author":"mateuszdziurdziak","date":"2026-09-04 07:07:55","revision":3680778},"1.14.0":{"tag":"1.14.0","author":"mateuszdziurdziak","date":"2026-09-04 22:38:48","revision":3681877},"1.15.0":{"tag":"1.15.0","author":"mateuszdziurdziak","date":"2026-09-04 23:08:56","revision":3681896},"1.16.0":{"tag":"1.16.0","author":"mateuszdziurdziak","date":"2026-09-06 00:22:11","revision":3682888},"1.17.0":{"tag":"1.17.0","author":"mateuszdziurdziak","date":"2026-09-06 15:01:02","revision":3683576},"1.18.0":{"tag":"1.18.0","author":"mateuszdziurdziak","date":"2026-09-07 08:05:39","revision":3684431},"1.19.0":{"tag":"1.19.0","author":"mateuszdziurdziak","date":"2026-09-07 13:41:55","revision":3685023},"1.2.0":{"tag":"1.2.0","author":"mateuszdziurdziak","date":"2026-08-12 16:57:32","revision":3643793},"1.20.0":{"tag":"1.20.0","author":"mateuszdziurdziak","date":"2026-09-09 14:09:48","revision":3688442},"1.21.0":{"tag":"1.21.0","author":"mateuszdziurdziak","date":"2026-09-09 21:44:12","revision":3689035},"1.22.0":{"tag":"1.22.0","author":"mateuszdziurdziak","date":"2026-09-11 13:18:24","revision":3691437},"1.22.1":{"tag":"1.22.1","author":"mateuszdziurdziak","date":"2026-09-11 15:39:52","revision":3691684},"1.22.2":{"tag":"1.22.2","author":"mateuszdziurdziak","date":"2026-09-11 21:43:21","revision":3692121},"1.23.0":{"tag":"1.23.0","author":"mateuszdziurdziak","date":"2026-09-24 22:03:45","revision":3712104},"1.23.1":{"tag":"1.23.1","author":"mateuszdziurdziak","date":"2026-09-28 14:27:23","revision":3717359},"1.23.2":{"tag":"1.23.2","author":"mateuszdziurdziak","date":"2026-09-28 22:02:03","revision":3717961},"1.23.3":{"tag":"1.23.3","author":"mateuszdziurdziak","date":"2026-09-29 18:59:17","revision":3719664},"1.23.4":{"tag":"1.23.4","author":"mateuszdziurdziak","date":"2026-09-29 21:33:02","revision":3719879},"1.3.0":{"tag":"1.3.0","author":"mateuszdziurdziak","date":"2026-08-13 08:30:01","revision":3644639},"1.3.1":{"tag":"1.3.1","author":"mateuszdziurdziak","date":"2026-08-13 08:45:23","revision":3644674},"1.4.0":{"tag":"1.4.0","author":"mateuszdziurdziak","date":"2026-08-14 21:09:35","revision":3647963},"1.5.0":{"tag":"1.5.0","author":"mateuszdziurdziak","date":"2026-08-15 20:02:03","revision":3649005},"1.6.0":{"tag":"1.6.0","author":"mateuszdziurdziak","date":"2026-08-19 06:43:03","revision":3653969},"1.7.0":{"tag":"1.7.0","author":"mateuszdziurdziak","date":"2026-08-19 12:02:00","revision":3654551},"1.7.1":{"tag":"1.7.1","author":"mateuszdziurdziak","date":"2026-08-20 19:28:53","revision":3657681},"1.8.0":{"tag":"1.8.0","author":"mateuszdziurdziak","date":"2026-08-25 22:44:16","revision":3666062},"1.8.1":{"tag":"1.8.1","author":"mateuszdziurdziak","date":"2026-08-25 23:27:44","revision":3666089},"1.8.2":{"tag":"1.8.2","author":"mateuszdziurdziak","date":"2026-08-27 21:27:13","revision":3669533},"1.8.3":{"tag":"1.8.3","author":"mateuszdziurdziak","date":"2026-08-31 10:05:06","revision":3673846},"1.9.0":{"tag":"1.9.0","author":"mateuszdziurdziak","date":"2026-08-31 13:48:11","revision":3674369}},"upgrade_notice":{"1.23.4":"<p>Nothing to change on your store. Print sizes can now mark the height and width with H and W.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3631310,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3631310,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3631310,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3631310,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"seeonwall\/button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"seeonwall\/button","version":"1.22.1","title":"SeeOnWall button","category":"woocommerce","icon":"format-image","description":"The \u201cSee on your wall\u201d button for the product of the page \u2014 for block product templates in the Site Editor, and for any page that names a product.","keywords":["seeonwall","wall","preview","poster","button"],"textdomain":"seeonwall-for-woocommerce","usesContext":["postId","postType"],"attributes":{"productId":{"type":"integer","default":0}},"supports":{"html":false,"align":["left","center","right"],"spacing":{"margin":true}},"editorScript":"seeonwall-block-editor"}},"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0","1.10.0","1.11.0","1.12.0","1.13.0","1.14.0","1.15.0","1.16.0","1.17.0","1.18.0","1.19.0","1.2.0","1.20.0","1.21.0","1.22.0","1.22.1","1.22.2","1.23.0","1.23.1","1.23.2","1.23.3","1.23.4","1.3.0","1.3.1","1.4.0","1.5.0","1.6.0","1.7.0","1.7.1","1.8.0","1.8.1","1.8.2","1.8.3","1.9.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3681892,"resolution":"1","location":"assets","locale":"","width":2540,"height":1524},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3681892,"resolution":"2","location":"assets","locale":"","width":2540,"height":1524},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3681892,"resolution":"3","location":"assets","locale":"","width":2540,"height":1524},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3681892,"resolution":"4","location":"assets","locale":"","width":1600,"height":900}},"screenshots":{"1":"A true-to-scale wall preview with bookmarks and recently viewed posters.","2":"The room-scene picker and QR flow.","3":"The analytics dashboard.","4":"The mobile wall preview."}},"plugin_section":[],"plugin_tags":[276418,9615,247834,258763,252866],"plugin_category":[45],"plugin_contributors":[274191],"plugin_business_model":[],"class_list":["post-345442","plugin","type-plugin","status-publish","hentry","plugin_tags-art-prints","plugin_tags-poster","plugin_tags-product-visualization","plugin_tags-room-visualizer","plugin_tags-wall-art","plugin_category-ecommerce","plugin_contributors-mateuszdziurdziak","plugin_committers-mateuszdziurdziak"],"banners":{"banner":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/banner-772x250.png?rev=3631310","banner_2x":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/banner-1544x500.png?rev=3631310","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/icon-128x128.png?rev=3631310","icon_2x":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/icon-256x256.png?rev=3631310","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/screenshot-1.jpg?rev=3681892","caption":"A true-to-scale wall preview with bookmarks and recently viewed posters."},{"src":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/screenshot-2.jpg?rev=3681892","caption":"The room-scene picker and QR flow."},{"src":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/screenshot-3.jpg?rev=3681892","caption":"The analytics dashboard."},{"src":"https:\/\/ps.w.org\/seeonwall-for-woocommerce\/assets\/screenshot-4.jpg?rev=3681892","caption":"The mobile wall preview."}],"raw_content":"<!--section=description-->\n<p><strong>\"How big is it, really?\"<\/strong> is the question that stops a poster sale. SeeOnWall answers it on the\nproduct page: shoppers photograph their own wall with the phone already in their hand and see your\nprint on it at true physical size \u2014 30\u00d740 looks like 30\u00d740, next to their actual sofa, in their\nactual light. No app, no shopper account, no AR-capable phone. Add the button once and it appears\non every poster you sell, now and in the future.<\/p>\n\n<h4>What shoppers get<\/h4>\n\n<ul>\n<li><strong>True scale, not a mockup.<\/strong> The wall is measured once, then the poster is drawn at its real\nsize with perspective correction \u2014 comparing 50\u00d770 against 70\u00d7100 is a click, not a guess.<\/li>\n<li><strong>Their wall, or a room scene.<\/strong> Take a photo, upload one, or skip the photo and pick a stock\nroom. Whichever is faster for them.<\/li>\n<li><strong>Every device, every browser.<\/strong> Desktop, older phones, and in-app browsers like Instagram and\nFacebook. Start on desktop, scan a QR code, finish on the phone \u2014 the preview follows.<\/li>\n<li><strong>Their own language \u2014 eleven of them.<\/strong> English, German, Polish, Spanish, French, Italian,\nPortuguese, Dutch, Swedish, Norwegian Bokm\u00e5l and Danish. The preview follows the language your\nstore page is already in, with nothing to configure.<\/li>\n<li><strong>Frames, mats and sizes.<\/strong> Frame widths and colours, a passe-partout, and every size you sell.<\/li>\n<li><strong>One wall, the whole catalogue.<\/strong> Once a shopper has set up their wall, a small icon on every\nother product card \u2014 in related products, on category pages, in search results \u2014 opens that\nprint on the same wall in one tap. No second photo, no second setup. (Paid plans.)<\/li>\n<li><strong>A preview worth sharing.<\/strong> Shoppers download the image or send a link to the person whose\nopinion decides the purchase \u2014 and that link leads back to your product page.<\/li>\n<\/ul>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>Zero per-product setup.<\/strong> The button reads each product's Dimensions field, and new products\nare picked up automatically. No theme surgery, no shortcode per item.<\/li>\n<li><strong>Placement and styling you control.<\/strong> Nine positions on the product template, or the\n  [seeonwall_button] shortcode. Label, colour and shape are settings, with a label field for\neach of the eleven shopper languages.<\/li>\n<li><strong>Analytics on every plan, Free included.<\/strong> Sessions, views, shares and downloads, plus a\nper-poster breakdown: how many shoppers opened each artwork, and how many got it onto a wall.<\/li>\n<li><strong>A storefront that stays fast.<\/strong> One small deferred script that never blocks your page, no\ntracking cookies, EU-hosted, and wall photos delete themselves after seven days.<\/li>\n<\/ul>\n\n<p><strong>Requires WooCommerce<\/strong> (8.0+) installed and active. Connecting takes one click \u2014 no signup, no\nAPI key: the plugin proves it controls your domain and a free account is provisioned.<\/p>\n\n<h4>External service: SeeOnWall<\/h4>\n\n<p>This plugin is the client for <strong>SeeOnWall<\/strong>, a hosted service (https:\/\/seeonwall.com) that renders\nthe wall previews. The plugin does not visualize anything itself and is not usable without that\nservice, which is operated by the plugin author.<\/p>\n\n<p>What the plugin sends: <strong>on connect<\/strong>, once, when you click <strong>Connect<\/strong> \u2014 your store's URL and the\nconnecting admin's email address, in exchange for a store token; the email is used only for\naccount notices and billing, never shown to shoppers or used for marketing. <strong>On product pages<\/strong>\nof connected stores \u2014 the viewer script is loaded from <code>https:\/\/seeonwall.com\/seeonwall.js<\/code>\n(loaded, not bundled, because the preview is a live service kept current server-side) and passed\nthe product's image URL and physical dimensions. The plugin sends <strong>no shopper data<\/strong>.<\/p>\n\n<p>What the service does with shopper data, once a shopper opens the preview: a <strong>room-scene\ntemplate<\/strong> uploads nothing at all. A <strong>photo of the shopper's own wall<\/strong> is stored in an EU\nCloudflare R2 bucket and analysed by Google Vertex AI (EU Data Boundary endpoint, europe-west1)\nto detect the wall corners; it stays in the EU for its whole lifetime, is never used to train\nmodels, and is deleted when the session expires after 7 days. Shoppers never create an account,\nCloudflare Turnstile guards uploads against bots, and a notice stating all of this is shown in\nthe viewer before the shopper uploads. Your WordPress admin also carries this text, ready to copy\ninto your own policy, under Settings \u2192 Privacy.<\/p>\n\n<p>Terms of Use: https:\/\/seeonwall.com\/terms \u00b7 Privacy Policy: https:\/\/seeonwall.com\/privacy \u00b7\nSub-processors: https:\/\/seeonwall.com\/subprocessors<\/p>\n\n<h4>Reporting illegal content<\/h4>\n\n<p>Content hosted by SeeOnWall that is unlawful \u2014 a poster image used without the rights holder's\npermission, say \u2014 can be reported to abuse@seeonwall.com. The Article 16 EU Digital Services Act\nnotice-and-action procedure is at https:\/\/seeonwall.com\/report<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>The admin settings page is a small React + TypeScript app. The plugin ships its compiled, minified\noutput (<code>assets\/js\/settings.js<\/code>, <code>assets\/css\/settings.css<\/code>); the human-readable source is under\n    src\/, with build instructions in <code>src\/README.md<\/code>. Node.js + Vite (<code>npm install &amp;&amp; npm run\nbuild<\/code>). React and ReactDOM resolve at runtime to the copies WordPress ships.<\/p>\n\n<h3>Translations<\/h3>\n\n<p><strong>Shoppers get eleven languages.<\/strong> The wall preview and the \"See on wall\" button speak English,\nGerman, Polish, Spanish, French, Italian, Portuguese, Dutch, Swedish, Norwegian Bokm\u00e5l and\nDanish, following the language your store page is in \u2014 no setting to change, and no per-language\nsetup on a multilingual store.<\/p>\n\n<p><strong>The settings screen ships six translations<\/strong> beyond English \u2014 German, Polish, Spanish, French,\nItalian and Portuguese \u2014 for the PHP strings and the React settings screen, following your\nWordPress admin language including variants such as de_AT, es_MX, fr_CA, pt_BR and pt_AO.\nPortuguese is European Portuguese, with Brazilian and Angolan locales resolving to it rather than\nto English. translate.wordpress.org translations take precedence.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install through the WordPress plugins screen, or upload the files to\n   \/wp-content\/plugins\/seeonwall-for-woocommerce.<\/li>\n<li>Activate it through the \"Plugins\" screen.<\/li>\n<li>Go to WooCommerce \u2192 SeeOnWall and click <strong>Connect to SeeOnWall<\/strong>.<\/li>\n<\/ol>\n\n<p>Step by step, with screenshots: https:\/\/seeonwall.com\/wordpress-setup-guide<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20cost%20anything%2C%20and%20what%20are%20the%20limits%3F\"><h3>Does this cost anything, and what are the limits?<\/h3><\/dt>\n<dd><p>The plugin is free, and so is the plan it connects you to: a free account is provisioned on\nconnect, with no card and no expiry. Paid plans buy higher limits, remove the seeonwall.com\nattribution from Basic up, add shopper session sharing from Premium up, and drop the monthly view\nceiling on Ultra. Each starts with a 14-day free trial, billed by SeeOnWall directly. Analytics\nare on every plan, Free included.<\/p>\n\n<p>WooCommerce \u2192 SeeOnWall shows a live meter for each limit under <strong>Current usage<\/strong>. Per hour, as\nFree \/ Basic \/ Premium \/ Ultra: preview sessions 150 \/ 500 \/ 2,500 \/ 10,000 \u00b7 photo uploads\n20 \/ 200 \/ 1,000 \/ 2,000 \u00b7 downloads and shares 50 \/ 250 \/ 1,000 \/ 2,000 \u00b7 poster views\n100 \/ 2,500 \/ 10,000 \/ 50,000, plus a monthly view budget of 500 \/ 5,000 \/ 25,000 \/ none. Hitting\na limit never breaks your store \u2014 the button still appears and opens, but shoppers who reach the\npreview are asked to try again later. Details: https:\/\/seeonwall.com\/docs<\/p><\/dd>\n<dt id=\"can%20i%20connect%20more%20than%20one%20store%20to%20one%20seeonwall%20account%3F\"><h3>Can I connect more than one store to one SeeOnWall account?<\/h3><\/dt>\n<dd><p>Yes. Connect the first store as usual. In each further store, choose \"Already have a SeeOnWall\naccount? Connect this store to it\" and approve the store in your SeeOnWall dashboard. Free and\nBasic plans take two stores, Premium and Ultra three, and the stores share the plan's limits.\nWhen the plan is full, the approval screen offers to replace one of your stores instead, which is\nalso how you move a store to a new domain. A store installed under a path, such as\n    example.com\/eu, is a store of its own.<\/p><\/dd>\n<dt id=\"which%20product%20field%20sets%20the%20poster%27s%20physical%20size%3F\"><h3>Which product field sets the poster's physical size?<\/h3><\/dt>\n<dd><p>WooCommerce's own Dimensions (Product data \u2192 Shipping \u2192 Width\/Height), in your store's dimension\nunit. On a variable product each variation's own Dimensions are used, and shoppers get a size\nselector inside the preview listing every size you sell. A variation left without Dimensions\nstates no size \u2014 WooCommerce shows it the parent's \u2014 so a product whose variations are all like\nthat is sized by whatever Poster size names next. A simple product sold in several sizes\ncan list them under Product data \u2192 SeeOnWall \u2192 Print sizes instead. Nothing to type twice.<\/p>\n\n<p>Setting Poster size to \"The size field on the product page, only\" is the one exception: that\nchoice says your stored measurements are the packaging rather than the print, so neither\nShipping \u2192 Dimensions nor a variation's dimensions are read, and Print sizes is the only size a\nproduct can state.<\/p><\/dd>\n<dt id=\"which%20products%20show%20the%20button%2C%20and%20where%20does%20it%20appear%3F\"><h3>Which products show the button, and where does it appear?<\/h3><\/dt>\n<dd><p>By default, every product SeeOnWall can find a size for: the list under Product data \u2192 SeeOnWall,\nthe dimensions of a variation, a size field on the product page, or Shipping \u2192 Dimensions \u2014 whichever\nthe Poster size setting reaches first. Product visibility can make this opt-in per product instead, and any single\nproduct can be switched on or off under Product data \u2192 SeeOnWall (or in quick edit and bulk edit). The button\nsits right after Add to cart by default; Storefront button offers nine positions on the standard\nproduct template, or set the position to \"Place it myself with a shortcode\" and write\n    [seeonwall_button] exactly where your theme needs it.<\/p><\/dd>\n<dt id=\"can%20shoppers%20compare%20several%20posters%20on%20the%20same%20wall%3F\"><h3>Can shoppers compare several posters on the same wall?<\/h3><\/dt>\n<dd><p>Yes \u2014 that is the <strong>fast wall preview<\/strong>. Once a shopper has photographed and calibrated their wall\non one product page, every other eligible product card can carry a small icon that opens that\nprint on the same wall in one tap, at its own size, without a second photo. Turn it on under\nWooCommerce \u2192 SeeOnWall \u2192 Button \u2192 Fast wall preview: choose the listings that get the icon\n(related and upsell products on product pages, the shop page and category, tag and attribute\narchives, search results, product grids on other pages) and the corner of the card it sits in.\nIt needs a paid plan; on the Free plan the icon does not appear. Every poster opened this way is\none poster view from the same allowance as the full preview, and the icon only appears to\nshoppers who already have a wall set up. The plugin marks each eligible card in PHP, so it works\nwith classic product loops, the Product Collection block, the <code>[products]<\/code> shortcode and AJAX\nfilters alike \u2014 no theme selector to configure.<\/p><\/dd>\n<dt id=\"which%20image%20does%20the%20button%20preview%2C%20and%20what%20if%20my%20photos%20are%20mockups%3F\"><h3>Which image does the button preview, and what if my photos are mockups?<\/h3><\/dt>\n<dd><p>By default the product's image. Product data \u2192 SeeOnWall lets you pick a different one from the media\nlibrary or paste an image URL. If the photo shows the print framed or on a coloured background, mark\nthe <strong>artwork area<\/strong> on the same tab \u2014 drag a box around the print, with a one-click starting point \u2014\nso the preview shows the print at its true size rather than treating the whole mockup as the poster.\nThe tab also says whether the product shows the button and, if not, exactly why, and WooCommerce \u2192\nSeeOnWall \u2192 Products lists the whole catalogue by status. For whole catalogues,\nthe SeeOnWall preview \/ image \/ artwork area columns travel through WooCommerce's product CSV\nexport and import.<\/p><\/dd>\n<dt id=\"do%20previews%20show%20the%20poster%20in%20a%20frame%3F\"><h3>Do previews show the poster in a frame?<\/h3><\/dt>\n<dd><p>Only if you say so \u2014 by default the print is bare and the shopper can add, widen, recolour or\nremove a frame. Framing sets a shop-wide default, or list the frames you actually sell in the\nSeeOnWall dashboard and shoppers pick from those.<\/p><\/dd>\n<dt id=\"what%20language%20do%20shoppers%20see%20the%20preview%20in%3F\"><h3>What language do shoppers see the preview in?<\/h3><\/dt>\n<dd><p>Whatever language your store page is in, out of eleven: English, German, Polish, Spanish, French,\nItalian, Portuguese, Dutch, Swedish, Norwegian Bokm\u00e5l and Danish. The button reads the page's\n    lang attribute and follows it \u2014 including a language switcher that changes it after load \u2014 so\na multilingual store built with WPML, Polylang or TranslatePress needs no per-language setup.\nA shopper on any other language gets English. Button text under WooCommerce \u2192 SeeOnWall has a\nfield per language if our wording is not yours.<\/p><\/dd>\n<dt id=\"which%20editors%2C%20themes%20and%20page%20builders%20does%20it%20work%20with%3F\"><h3>Which editors, themes and page builders does it work with?<\/h3><\/dt>\n<dd><p><strong>Product editor.<\/strong> The SeeOnWall tab lives in the product editor's Product data box, next to\nGeneral, Inventory and Shipping. The same per-product settings \u2014 button on\/off, poster image,\nartwork area, print sizes \u2014 are also reachable from WooCommerce \u2192 SeeOnWall \u2192 Products, from\nquick edit and bulk edit on the products list, and through the CSV columns.<\/p>\n\n<p><strong>Themes and templates.<\/strong> The button attaches to WooCommerce's standard product-template hooks,\nso it appears on classic themes (Storefront and the like) and on block themes whose Single\nProduct template keeps the classic template block or the Add to Cart form block \u2014 which is how\nTwenty Twenty-Five and other block themes ship. A Single Product template rebuilt from product\nblocks in the Site Editor has no hooks for \"after the price\"; put the <strong>SeeOnWall button<\/strong> block\nwhere you want it instead.<\/p>\n\n<p><strong>Page builders.<\/strong> Elementor gets a native <strong>SeeOnWall button<\/strong> widget (in the WooCommerce\ncategory when Elementor Pro is present, otherwise under General). Divi, WPBakery, Bricks, Beaver\nBuilder, Oxygen and every other builder with a shortcode or code element take\n    [seeonwall_button] \u2014 set Position to \"Place it myself with a shortcode\" so no second button\nappears. See https:\/\/seeonwall.com\/docs#woocommerce-hooks<\/p>\n\n<p><strong>Versions.<\/strong> Tested in CI on every change against the two most recent WordPress releases and\nthe two most recent WooCommerce releases \u2014 the PHP suite and the browser suite both boot a\nreal WordPress + WooCommerce for each. The plugin needs WordPress 6.6+ and WooCommerce 8.0+,\nand declares HPOS compatibility.<\/p><\/dd>\n<dt id=\"can%20a%20developer%20change%20the%20button%27s%20placement%20or%20markup%3F\"><h3>Can a developer change the button's placement or markup?<\/h3><\/dt>\n<dd><p>Yes. <code>seeonwall_button_hook<\/code>, <code>seeonwall_button_priority<\/code> and <code>seeonwall_button_html<\/code> filter the\nplacement and the markup, <code>seeonwall_poster_width_cm<\/code> \/ <code>seeonwall_poster_height_cm<\/code> override the\nsize per product, and <code>SeeOnWall_Storefront::mount_html( $product )<\/code> returns the markup for any\nproduct. Reference: https:\/\/seeonwall.com\/docs#woocommerce-hooks<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.23.4<\/h4>\n\n<ul>\n<li><strong>New: Print sizes accept H and W after a number.<\/strong> Write <code>36\"H x 24\"W<\/code> or <code>36H x 24W<\/code> to put\nthe height first. Before, the plugin dropped these sizes. A size without these letters is\nstill read as width \u00d7 height.<\/li>\n<\/ul>\n\n<p>Older releases are listed in changelog.txt, shipped alongside this file, and at\nhttps:\/\/seeonwall.com\/changelog<\/p>","raw_excerpt":"Shoppers see your posters at true size on a photo of their own wall, or in a room scene, before they buy. No app, no shopper account.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=345442"}],"author":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mateuszdziurdziak"}],"wp:attachment":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345442"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345442"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345442"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345442"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345442"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}