seeonwall.com – Wall Art Preview for WooCommerce

Plugin Banner

seeonwall.com – Wall Art Preview for WooCommerce

by mateuszdziurdziak

Download
Description

“How big is it, really?” is the question that stops a poster sale. seeonwall.com answers it on the
product page: shoppers photograph their own wall with the phone already in their hand and see your
print on it at true physical size — 30×40 looks like 30×40, next to their actual sofa, in their
actual light. No app, no shopper account, no AR-capable phone. Add the button once and it appears
on every poster you sell, now and in the future.

What shoppers get

  • True scale, not a mockup. The wall is measured once, then the poster is drawn at its real
    size with perspective correction — comparing 50×70 against 70×100 is a click, not a guess.
  • Their wall, or a room scene. Take a photo, upload one, or skip the photo and pick a stock
    room. Whichever is faster for them.
  • Every device, every browser. Desktop, older phones, and in-app browsers like Instagram and
    Facebook. Start on desktop, scan a QR code, finish on the phone — the preview follows.
  • Their own language — fourteen of them. English, German, Polish, Spanish, French, Italian,
    Portuguese, Dutch, Swedish, Norwegian Bokmål, Danish, Finnish, Czech and Slovak. The preview
    follows the language your store page is already in, with nothing to configure.
  • Frames, mats and sizes. Frame widths and colours, a passe-partout, and every size you sell.
  • One wall, the whole catalogue. Once a shopper has set up their wall, a small icon on every
    other product card — in related products, on category pages, in search results — opens that
    print on the same wall in one tap. No second photo, no second setup. (Paid plans.)
  • A preview worth sharing. Shoppers download the image or send a link to the person whose
    opinion decides the purchase — and that link leads back to your product page.

What you get

  • Little per-product setup. Switch the button on for the products you want, alone or in bulk.
    It reads the size from the size attribute of a variation or the size field on the product page.
    No theme surgery, no shortcode per item.
  • Placement and styling you control. Nine positions on the product template, or the
    [seeonwall_button] shortcode. Label, colour and shape are settings, with a label field for
    each of the fourteen shopper languages.
  • Analytics on every plan, Free included. Sessions, views, shares and downloads, plus a
    per-poster breakdown: how many shoppers opened each artwork, and how many got it onto a wall.
  • Order analytics, if you want them. Turn them on to see how often a poster that shoppers saw
    on their wall is added to the cart, ordered and refunded, next to the shoppers who skipped the
    preview. Off by default, and only shoppers who agree to statistics are counted.
  • A storefront that stays fast. One small deferred script that never blocks your page,
    EU-hosted, and wall photos delete themselves after seven days. No tracking cookies: order
    analytics, if you turn them on, add one session cookie, only for shoppers who agree to statistics.

Requires WooCommerce (8.0+) installed and active. Connecting takes one click — no signup, no
API key: the plugin proves it controls your domain and a free account is provisioned.

External service: seeonwall.com

This plugin is the client for seeonwall.com, a hosted service (https://seeonwall.com) that renders
the wall previews. The plugin does not visualize anything itself and is not usable without that
service, which is operated by the plugin author.

What the plugin sends: on connect, once, when you click Connect — your store’s URL and the
connecting admin’s email address, in exchange for a store token; the email is used only for
account notices and billing, never shown to shoppers or used for marketing. On product pages
of connected stores — the viewer script is loaded from https://seeonwall.com/seeonwall.js
(loaded, not bundled, because the preview is a live service kept current server-side) and passed
the product’s image URL and physical dimensions. When you run Auto setup on the
Products page — the title and the image URLs (at most 10) of each product it analyses; the service
fetches those images and has an AI model on Microsoft Azure in the EU, reached through Requesty’s EU
gateway in Frankfurt, find the artwork in them. When you run Read sizes from product text on the
Products page — the title, the categories, the descriptions and the attributes of each product
without a size, and of each product sized by its variations when you select that; an AI model on Microsoft Azure in the EU, reached the same way, reads the sizes in
that text. If you turn on order
analytics
(off by default), and only for shoppers who agree to statistics through the WP Consent
API — each add-to-cart, paid order and refund of a poster that shows the button, as the poster image
URL, the quantity and the step the shopper reached in the preview, with the order and refund
numbers, which the service keeps only as a one-way code for 30 days. No name, email address,
postal address or price. For those shoppers, the store also keeps the preview step of each poster
in the cart in the session cookie seeonwall_labels, which the browser deletes when it closes. Apart from that, the plugin sends no shopper data.

What the service does with shopper data, once a shopper opens the preview: a room-scene
template
uploads nothing at all. A photo of the shopper’s own wall is stored in an EU
Cloudflare R2 bucket and analysed by an AI model on Amazon Bedrock in Frankfurt (through Requesty’s EU
gateway in Frankfurt) to detect the wall corners; it stays in the EU for its whole lifetime, is never used to train
models, and is deleted when the session expires after 7 days. Shoppers never create an account,
Cloudflare Turnstile guards uploads against bots, and a notice stating all of this is shown in
the viewer before the shopper uploads. Your WordPress admin also carries this text, ready to copy
into your own policy, under Settings Privacy.

Terms of Use: https://seeonwall.com/terms · Privacy Policy: https://seeonwall.com/privacy ·
Sub-processors: https://seeonwall.com/subprocessors

Reporting illegal content

Content hosted by seeonwall.com that is unlawful — a poster image used without the rights holder’s
permission, say — can be reported to abuse@seeonwall.com. The Article 16 EU Digital Services Act
notice-and-action procedure is at https://seeonwall.com/report

Source Code

The admin settings page is a small React + TypeScript app. The plugin ships its compiled, minified
output (assets/js/settings.js, assets/css/settings.css); the human-readable source is under
src/, with build instructions in src/README.md. Node.js + Vite (npm install && npm run
build
). React and ReactDOM resolve at runtime to the copies WordPress ships.

Translations

Shoppers get fourteen languages. The wall preview and the “See on wall” button speak English,
German, Polish, Spanish, French, Italian, Portuguese, Dutch, Swedish, Norwegian Bokmål,
Danish, Finnish, Czech and Slovak, following the language your store page is in — no setting to change, and no
per-language setup on a multilingual store.

The settings screen ships six translations beyond English — German, Polish, Spanish, French,
Italian and Portuguese — for the PHP strings and the React settings screen, following your
WordPress admin language including variants such as de_AT, es_MX, fr_CA, pt_BR and pt_AO.
Portuguese is European Portuguese, with Brazilian and Angolan locales resolving to it rather than
to English. translate.wordpress.org translations take precedence.

  1. Install through the WordPress plugins screen, or upload the files to
    /wp-content/plugins/seeonwall-for-woocommerce.
  2. Activate it through the “Plugins” screen.
  3. Go to WooCommerce seeonwall.com and click Connect to seeonwall.com.

Step by step, with screenshots: https://seeonwall.com/guides/wordpress-setup

  1. A true-to-scale wall preview with bookmarks and recently viewed posters.

    A true-to-scale wall preview with bookmarks and recently viewed posters.

  2. The room-scene picker and QR flow.

    The room-scene picker and QR flow.

  3. The analytics dashboard.

    The analytics dashboard.

  4. The mobile wall preview.

    The mobile wall preview.

Does this cost anything, and what are the limits?

The plugin is free, and so is the plan it connects you to: a free account is provisioned on
connect, with no card and no expiry. Paid plans buy higher limits, remove the seeonwall.com
attribution from Basic up, add shopper session sharing from Premium up, and drop the monthly view
ceiling on Ultra. Each starts with a 14-day free trial, billed by seeonwall.com directly. Analytics
are on every plan, Free included.

WooCommerce seeonwall.com shows a live meter for each limit under Current usage. Per hour, as
Free / Basic / Premium / Ultra: preview sessions 150 / 500 / 2,500 / 10,000 · photo uploads
40 / 200 / 1,000 / 2,000 · downloads and shares 50 / 250 / 1,000 / 2,000 · poster views
100 / 1,000 / 10,000 / 50,000, plus a monthly view budget of 500 / 5,000 / 25,000 / none. Hitting
an hourly limit never breaks your store — the button still appears and opens, but shoppers who
reach the preview are asked to try again later. When the monthly view budget is used up, the
button is hidden until the month resets or you upgrade. Details: https://seeonwall.com/docs

Can I connect more than one store to one seeonwall.com account?

Yes. Connect the first store as usual. In each further store, choose “Already have a seeonwall.com
account? Connect this store to it” and approve the store in your seeonwall.com dashboard. Free and
Basic plans take two stores, Premium and Ultra three, and the stores share the plan’s limits.
When the plan is full, the approval screen offers to replace one of your stores instead, which is
also how you move a store to a new domain. A store installed under a path, such as
example.com/eu, is a store of its own.

Which product field sets the poster’s physical size?

Three sources, in this order. First, the list under Product data seeonwall.com Print sizes.
Second, on a variable product, a variation attribute value that names a size, such as “21×30 cm”
or “A4”; shoppers get a size selector inside the preview listing every size you sell. Third, the
size field on the product page, which the button finds by itself, or which a CSS selector in the
settings names. WooCommerce’s Shipping dimensions (Product data Shipping Width/Height) are not
read: they often measure the box, not the print.

Which products show the button, and where does it appear?

On a new store, only the products where you switch it on: set “Always show” under Product data
seeonwall.com, click Turn on on the Products tab, or choose “Turn the wall preview on” in Bulk
actions (quick edit, bulk edit and the CSV import work too). Set Product visibility to “All products
where a size can be found” to show it on every product at once; a store that was already
connected when this changed keeps that setting. The size comes from the list under Product data seeonwall.com, a
variation attribute that names a size, or the size field on the product page, whichever answers
first. On a product page that has none of these, the button does not show. The button
sits right after Add to cart by default; Storefront button offers nine positions on the standard
product template, or set the position to “Place it myself with a shortcode” and write
[seeonwall_button] exactly where your theme needs it.

Can shoppers compare several posters on the same wall?

Yes — that is the fast wall preview. Once a shopper has photographed and calibrated their wall
on one product page, every other eligible product card can carry a small icon that opens that
print on the same wall in one tap, at its own size, without a second photo. Turn it on under
WooCommerce seeonwall.com Button Fast wall preview: choose the listings that get the icon
(related and upsell products on product pages, the shop page and category, tag and attribute
archives, search results, product grids on other pages) and the corner of the card it sits in.
It needs a paid plan; on the Free plan the icon does not appear. Every poster opened this way is
one poster view from the same allowance as the full preview, and the icon only appears to
shoppers who already have a wall set up. The plugin marks each eligible card in PHP, so it works
with classic product loops, the Product Collection block, the [products] shortcode and AJAX
filters alike — no theme selector to configure.

Which image does the button preview, and what if my photos are mockups?

By default the product’s image. Product data seeonwall.com lets you pick a different one from the media
library or paste an image URL. If the photo shows the print framed or on a coloured background, mark
the artwork area on the same tab — drag a box around the print, with a one-click starting point —
so the preview shows the print at its true size rather than treating the whole mockup as the poster.
When the image and the print size have different proportions, the preview stretches the image by
up to 8% and crops only the remainder from the edges, so text near the edges stays visible;
WooCommerce seeonwall.com Button Poster image Fit to size can only crop or only stretch
instead.
The tab also says whether the product shows the button and, if not, exactly why, and WooCommerce
seeonwall.com Products lists the whole catalogue by status, marks products whose image or sizes
will not preview correctly, opens a product on a wall, and edits a product’s image, artwork area,
sizes and mat in place. When many products use the same mockup, mark the artwork area on one
of them and use “Apply artwork area to the same mockup” on its row to set it on the others (step by
step: https://seeonwall.com/guides/woocommerce-mockup-artwork). For
whole catalogues, the SeeOnWall preview / image / artwork area columns travel through
WooCommerce’s product CSV export and import.

Do previews show the poster in a frame?

Only if you say so — by default the print is bare and the shopper can add, widen, recolour or
remove a frame. Framing sets a shop-wide default, or list the frames you actually sell in the
seeonwall.com dashboard and shoppers pick from those. To offer only some of them, or no frame at
all, use “Frames the shopper can pick” on the product’s seeonwall.com tab, or on the Frames page of
the dashboard for the whole shop. If your product photos already show the frame, choose “No frame”.

Can the preview show a mat (passe-partout)?

Yes, when the print is sold with one. On the product’s seeonwall.com tab, tick “Sold with a mat” and
list the mat for each size: 21x30:30x40 is a 21 × 30 print in a 30 × 40 mat, 30x40:21x30 is a
30 × 40 print with a 21 × 30 window, and 50x70:5 is a 5 cm mat inside the 50 × 70. Numbers without
a unit are in your store’s dimension unit. Pick the mat colour on the same tab. The mat is set for
the product, not for each variation, and shoppers cannot remove it in the preview. When the mat is
printed on the poster image and the poster size includes it, do not tick “Sold with a mat”; tick
“Keep the mat in the artwork area” in Auto setup instead. To give many products the same mats, add
a mat to each size of a print size set in Bulk actions on the Products page.

What language do shoppers see the preview in?

Whatever language your store page is in, out of fourteen: English, German, Polish, Spanish, French,
Italian, Portuguese, Dutch, Swedish, Norwegian Bokmål, Danish, Finnish, Czech and Slovak. The
button reads the page’s lang attribute and follows it — including a language switcher that
changes it after load — so a multilingual store built with WPML, Polylang or TranslatePress needs
no per-language setup. A shopper on any other language gets English. Button text under WooCommerce seeonwall.com has a
field per language if our wording is not yours.

Which editors, themes and page builders does it work with?

Product editor. The seeonwall.com tab lives in the product editor’s Product data box, next to
General, Inventory and Shipping. The same per-product settings — button on/off, poster image,
artwork area, print sizes — are also reachable from WooCommerce seeonwall.com Products, from
quick edit and bulk edit on the products list, and through the CSV columns.

Themes and templates. The button attaches to WooCommerce’s standard product-template hooks,
so it appears on classic themes (Storefront and the like) and on block themes whose Single
Product template keeps the classic template block or the Add to Cart form block — which is how
Twenty Twenty-Five and other block themes ship. A Single Product template rebuilt from product
blocks in the Site Editor has no hooks for “after the price”; put the seeonwall.com button block
where you want it instead.

Page builders. Elementor gets a native seeonwall.com button widget (in the WooCommerce
category when Elementor Pro is present, otherwise under General). Divi, WPBakery, Bricks, Beaver
Builder, Oxygen and every other builder with a shortcode or code element take
[seeonwall_button] — set Position to “Place it myself with a shortcode” so no second button
appears. See https://seeonwall.com/docs#woocommerce-hooks

Versions. Tested in CI on every change against the two most recent WordPress releases and
the two most recent WooCommerce releases — the PHP suite and the browser suite both boot a
real WordPress + WooCommerce for each. The plugin needs WordPress 6.6+ and WooCommerce 8.0+,
and declares HPOS compatibility.

Can a developer change the button’s placement or markup?

Yes. seeonwall_button_hook, seeonwall_button_priority and seeonwall_button_html filter the
placement and the markup, and SeeOnWall_Storefront::mount_html( $product ) returns the markup for any
product. Reference: https://seeonwall.com/docs#woocommerce-hooks

2.2.0

  • New: mats in print size sets. In Bulk actions on the Products page, each size of a
    print size set can have a mat, written as on the product tab: a width like 3, a larger size for a
    mat around the print, or a smaller size for the opening in the mat. Applying the set gives the
    products that mat for that size. An empty mat keeps the mat that a product has. The review shows
    each mat change, and says why when a product’s mats could not be saved. Two rows of the same
    size, also when written differently (a4 and 21×29.7), are refused.
  • New: Auto setup can switch the button on. When Product visibility is “Only products with the
    preview enabled”, tick “Switch the button on for approved products” in Auto setup to switch on
    each product that you approve. Products that you switched off yourself stay off.

Older releases are listed in changelog.txt, shipped alongside this file, and at
https://seeonwall.com/changelog

Back to top