=== LabelLoom – Sticker Sheet Maker ===
Contributors: oojosh, onlineoptimisation
Tags: stickers, labels, pdf, logo, print
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 1.0.1
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Visitors upload their logo and instantly receive a print-ready sticker sheet PDF by email, sized to the Avery L7654 label template.

== Description ==

LabelLoom lets your site visitors turn their logo into a print-ready sticker sheet in one step. They upload a PNG, JPG or SVG and enter their email address; the plugin tiles the logo across all 40 labels of an A4 sheet matching the Avery L7654 template (45.7 × 25.4 mm) and emails them the finished PDF. They print it onto a sheet of labels, peel and apply.

**Features**

* **One-step form** — add it anywhere with the “LabelLoom” block or the `[labelloom_sticker_form]` shortcode (a `compact="true"` variant suits sidebars and footers).
* **Blank template download** — `[labelloom_sticker_template]` links a blank L7654 grid PDF for visitors who want to lay stickers out themselves.
* **Delivered by email, not download** — you collect only a logo and an email address, and every request is logged so you can see who uses the tool.
* **Submissions log** — each request appears under Sticker Tool → Submissions with the customer email, status, and the exact sheet that was sent; preview or resend it any time.
* **Configurable sender and copy** — set the from name, from address, subject and message under Sticker Tool → Email settings, or leave them blank to use your site title and admin email.
* **Robust image handling** — oversized photos are scaled down automatically, EXIF rotation is corrected, transparent PNGs are flattened onto white, and SVGs are converted in the visitor’s browser so they work on any hosting.
* **Abuse protection** — nonce checks, a honeypot field, MIME sniffing, size caps and a per-email rate limit.

**Privacy**

Everything runs on your own server; nothing is sent to any external service. Uploaded logos are deleted as soon as the PDF is generated. Generated sheets are stored in a protected uploads folder so admins can preview and resend them, and are purged automatically after 90 days (filter `labelloom_sheet_retention_days` to change or disable this). Submissions (email address, logo filename, status) are stored as a private post type visible only to site admins. Deleting the plugin removes all stored data.

**Credits**

PDF generation uses the bundled [TCPDF](https://tcpdf.org/) library (LGPL). Avery is a trademark of Avery Products Corporation; this plugin is not affiliated with or endorsed by Avery, and references the L7654 layout only to describe compatible label stock.

== Installation ==

1. Install and activate the plugin.
2. Open **Sticker Tool → How to use** — it lists the block and shortcodes, and can create a ready-made draft page for you.
3. Check **Sticker Tool → Email settings**. The defaults (site title and admin email) work out of the box, but a dedicated address on your domain with SMTP configured is recommended for deliverability.
4. Submit the form once yourself and check the PDF arrives, then print a sheet on real label stock to confirm alignment.

== Frequently Asked Questions ==

= How do I change the sender address or the email text? =

Under **Sticker Tool → Email settings**. Any field left blank falls back to a sensible site default.

= Which label layout does it produce? =

An A4 sheet of 40 labels, 45.7 × 25.4 mm each, matching the widely available Avery L7654 template and compatible generic stock.

= Does it need Imagick or any special hosting? =

No. SVGs are converted to PNG in the visitor’s browser, and image processing falls back to GD when Imagick is unavailable. Any standard WordPress host works.

= Where are uploaded logos stored? =

They are deleted from the server as soon as the sticker sheet is generated. Only the generated PDF is kept, in a protected folder, so admins can preview or resend it.

= Can visitors download the PDF directly instead of receiving an email? =

No — email delivery is the point: it keeps the form to a single step and gives you a log of who used the tool.

== Screenshots ==

1. The upload form as visitors see it.
2. Email settings — sender identity and message copy.
3. The submissions log with preview and resend actions.
4. The built-in “How to use” guide.

== Changelog ==

= 1.0.1 =
* Renamed to LabelLoom – Sticker Sheet Maker with the labelloom prefix throughout.
* Storage folder now resolved at runtime with wp_upload_dir() for custom and multisite upload locations.
* Bundled TCPDF updated to 6.11.3 and loaded only when no other copy is present.

= 1.0.0 =
* Initial public release: upload form (block + shortcodes), Avery L7654 sheet generation, email delivery with configurable sender and copy, submissions log with preview/resend, blank template download, automatic sheet retention, full uninstall cleanup.

== Upgrade Notice ==

= 1.0.1 =
Initial public release.
