=== Drop Print ===
Contributors: callumalden, dropprint
Tags: woocommerce, print on demand, fine art prints, giclee, dropshipping
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.0.5
WC requires at least: 8.6
WC tested up to: 10.9.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Sell fine art prints from your WooCommerce shop. You hold no stock — a customer orders, and the Drop Print Global Network prints, packs and ships it.

== Description ==

Drop Print turns any WooCommerce product into a fine art print listing.

You upload your artwork once, choose a paper and the sizes you want to sell, and set your prices. WooCommerce builds the size options on the product for you. When a customer buys, the order is printed and shipped by the Drop Print Global Network — you never handle the print yourself.

Drop Print is built for artists and galleries rather than mass-market merchandise, and prints archival giclée and photographic work.

= How it works =

1. Open any product and choose **Edit with Drop Print**. That opens a full-screen builder.
2. Add your artwork, pick a paper, choose the sizes you want to sell, and set your prices.
3. Save, and publish the product as you normally would. A product becomes a live Drop Print product once it has artwork and at least one configured size — there is no separate switch to find.
4. When an order comes in, pay for printing from your Orders screen, or let Auto-Production do it for you.

= What is in version 2.0 =

* **A full-screen builder.** Artwork, paper, sizes and prices in one continuous flow, instead of a panel of separate steps.
* **Live prices.** Every price you see is worked out for that paper, that size and that destination at the moment you look at it, rather than read from a downloaded list.
* **Colour guidance on your own file.** Compare your actual artwork against each paper's real colour range before you commit, instead of reading a generic description of the paper.
* **A physical proof, if you want one.** Order a true-size print on the paper you are considering and hold it in your hand before you list anything.
* **Live shipping at checkout.** A real rate worked out for each order and destination, not a flat estimate.
* **Hands-off fulfilment, when you are ready for it.** Auto-Production sends an order to print the moment your customer pays.

= Everything the plugin does =

* **The builder.** A full-screen editor on any product: add artwork, pick a paper, choose sizes, set prices, save.
* **Honest size guidance.** Sizes are grouped by how well they suit your file — which ones fit its shape, which need a crop, and which your file is not detailed enough to print well at. Each size tells you why, in plain terms.
* **Paper colour suitability.** A soft proof and a plain-language read on how each paper handles your own artwork, with a Recommended mark when one paper clearly suits it better than the rest.
* **Hard proofs.** Order a real, true-size print of your artwork on a paper before you sell on it. It arrives with a QR code you scan to tell us whether you are happy with it.
* **Live pricing and margins.** Set a percentage margin, override any individual price, and see the real production cost as you build.
* **Live shipping rates.** A dedicated WooCommerce shipping method that quotes each order at checkout.
* **Quote & Pay.** Pay for printing on an order from your Orders screen, with saved-card support.
* **Auto-Production.** One switch for your whole shop, off until you turn it on, that sends paid orders straight to print with no manual step.
* **Order status where you already work.** A Drop Print column on your normal WooCommerce Orders screen, with tracking once an order ships.
* **Guided setup.** A first-run wizard collects what is needed, offers to configure live shipping, and connects your account.
* **Pro membership.** Lower printing costs on every order, and cheaper proofs.
* **Optional file encryption.** Encrypt your uploaded artwork in storage against your own account's key. Off by default — turn it on if your organisation requires it.
* **Translations.** Spanish (Spain and seven Latin American locales) and Simplified Chinese.

== Installation ==

1. Install and activate the plugin from your WordPress dashboard. WooCommerce must be installed and active.
2. A short setup guide opens on its own the first time you visit your dashboard. It asks a few questions, offers to set up live shipping, and connects your Drop Print account.
3. Open any WooCommerce product, choose the **Drop Print** tab, and select **Edit with Drop Print** to build your first print listing.

You can skip the setup guide and come back to it later — look for the Connect Account notice in your dashboard, or Drop Print in your left-hand menu.

== Frequently Asked Questions ==

= Do I need a Drop Print account? =
Yes. The setup guide creates one for you, or connects an account you already have.

= Does this plugin require WooCommerce? =
Yes. WooCommerce must be installed and active.

= How do I turn Drop Print on for a product? =
There is nothing to switch on. Open the product's Drop Print tab, choose Edit with Drop Print, and add your artwork and sizes — the product becomes a Drop Print product the moment it has both.

= What file types can I upload? =
JPEG, PNG and TIFF. There is no minimum file size to upload — once you have chosen a paper, the builder tells you size by size which prints your file is detailed enough for.

= How is pricing worked out? =
Printing costs are quoted live for the paper, size and destination. You set a percentage margin, and can override the selling price on any individual size.

= Do I have to pay for printing on each order myself? =
Either way works. Quote & Pay lets you pay for an order from your Orders screen when you choose to. Auto-Production does it automatically the moment your customer pays. Auto-Production is one setting for your whole shop, not a choice per product, and it is off until you switch it on.

= Who is charged for printing? =
Whichever connected account has a card on file. If more than one person administers your shop, each of you has your own Drop Print connection and settings, so it is worth agreeing between you who that should be.

= I already sell Drop Print products. What happens when I update? =
Your existing products keep selling. Drop Print 2.0 uses a new print catalogue, and a guided screen in your dashboard walks you through moving your existing print products onto it, showing you exactly what will change before anything is applied.

= What happens if I deactivate the plugin? =
Nothing is deleted. Your uploaded artwork stays where it is, and the "Print Dimensions" product attribute the plugin adds to WooCommerce remains. If you are retiring Drop Print for good, removing those is a manual step.

= What are the server requirements? =
PHP 7.4 or newer. Your PHP upload limits (`upload_max_filesize`, `post_max_size`), memory limit and execution time need to be high enough for your artwork files, and WordPress cron must be running. The optional file encryption also needs PHP's OpenSSL extension; everything else works without it.

== Screenshots ==

1. The Drop Print builder — artwork, paper and sizes in one screen.
2. Paper colour suitability, checked against your own artwork.
3. Choosing sizes, grouped by how well they suit your file.
4. Ordering a hard proof before you list a print.
5. Quote & Pay on a WooCommerce order.
6. The Drop Print settings screen.

== Changelog ==

= 2.0.5 =
* Fix: Some products migrated from 1.x could show artwork in the wrong orientation, or with an inconsistent preview, if the original photo carried rotation information from the camera or scanner that Drop Print wasn't reading. This is corrected automatically in the background; no action needed.
* Fix: A leftover uppercase SKU format from before 2.0.4 could remain on some products even after updating. This is corrected automatically in the background; no action needed.
* Change: The size-picker panel has been decluttered and reorganised — sizes now collapse into groups, sizes you've already chosen for the product are listed separately, and controls have moved closer to the parts of the screen they affect.

= 2.0.4 =
* Fix: A builder bug where rotating artwork that already had a crop selected produced the wrong result.

= 2.0.3 =
* Change: The screen that moves your existing products onto the 2.0 catalogue no longer shows raw SKU codes by default. Product, size, target paper and status are all still there in plain English; a "Show SKU changes" checkbox reveals the underlying codes if you want to check them. What the migration actually does is unchanged, and your backups still record every SKU either way.
* Fix: The migration review screen now reliably handles catalogues of any size — large stores with hundreds or thousands of products to move will no longer risk an incomplete run going unnoticed.
* Change: Renamed "SKU" to "Drop Print code" throughout the migration review screen, so it isn't confused with your own WooCommerce product SKUs.
* New: You can now apply a paper choice to every matching product in one action during migration, instead of one at a time.
* New: A standing "Change paper" tool under Drop Print settings, so you can move existing products onto a different paper at any time — not just during the one-time move to the 2.0 catalogue.
* Change: While a migration is running, progress now shows clearly in its own window on screen, with a reminder to keep the browser tab open until it finishes.
* Fix: Several display issues on the migration review screen (unreadable text, a paper-choice window that could get stuck open, and an oversized "size" column).

= 2.0.2 =
* Fix: Packaging correction. This release contains the complete 2.0 build.

= 2.0.1 =
* Fix: Packaging correction.

= 2.0 =
A rebuilt Drop Print. The product-editor panel is replaced by a full-screen builder, prices and shipping are quoted live, and there are new ways to check a paper before you sell on it.

* Feature: Full-screen "Edit with Drop Print" builder — artwork, paper, sizes and prices in one continuous flow, replacing the in-panel steps.
* Change: A product now becomes a Drop Print product as soon as it has artwork and a configured size. The separate "Enable Drop Print" checkbox is gone.
* Feature: Live pricing throughout — printing costs are quoted for the paper, size and destination as you build, rather than read from a downloaded list.
* Feature: Colour suitability — a soft proof and a plain-language read on how each paper handles your own artwork, so you can compare papers on your actual file before choosing one.
* Feature: Hard proofs — order a real, true-size print of your artwork on a paper you are considering, from inside the builder, and approve it by scanning the code it arrives with.
* Feature: Live shipping rates at checkout, via a dedicated WooCommerce shipping method, instead of a static estimate.
* Feature: Auto-Production — optionally send an order to print the moment your customer pays, with no manual Quote & Pay step. One setting for the whole shop, off by default.
* Feature: Guided first-run setup, including an offer to configure live shipping for your shop.
* Feature: A Drop Print column on the WooCommerce Orders screen, showing production status and tracking in the place you already work.
* Feature: Size names now include standard A-series titles (A4, A3, A2 and so on) where a size matches, and they are searchable by that name.
* Feature: A guided screen for moving products created in earlier versions onto the 2.0 print catalogue, with a preview of every change before it is applied.
* Change: The production-asset container extension is now `.drop` (previously `.afp`). Existing files are unaffected; new uploads write `.drop` files.
* Fix: A partial write on the container writer could leave a corrupted file if a request was interrupted mid-upload. Writes now go to a temporary file and are renamed into place only once complete.

= 1.1.5 =
* Feature: Guided first-use tour on the product edit screen, built on WooCommerce's own walkthrough component, to help new users get their first Drop Print product set up.
* Feature: Self-healing pricelist cache — the plugin now fetches and repairs a missing pricelist automatically in the background instead of showing an error, and recovers gracefully after a plugin deactivate/reactivate.
* Feature: Order cancellation from My Account, with a confirmation step, for orders still awaiting production.
* Feature: Dashboard-wide notice for orders with an artwork processing issue, in addition to the existing per-order indicator.
* Feature: Upgrade prompts are now only shown once you have actually started using Drop Print, so new users are no longer prompted to upgrade before they have set anything up.
* Feature: Product setup no longer requires saving the product before enabling Drop Print, and publishing while variations are unsaved is now caught with a clear prompt instead of silently breaking the setup.
* Feature: Added Spanish (Spain and Latin American regional variants) and Simplified Chinese translations.
* Fix: Resolved a PHP 8 compatibility issue that could prevent pricelists from being fetched.
* Fix: Various refinements to the AFP file tracking used internally for uploads, resets, and product duplication.

= 1.1.4 =
* Fix: Cache busting with reload account details.

= 1.1.3 =
* Feature: "Remember this card" option when paying with a new card in Quote & Pay.
* Feature: Toggle file encryption on or off.
* Fix: Saved cards added via My Account now correctly appear as the default card in Quote & Pay.
* Fix: Returning to your dashboard after a Pro upgrade no longer gets stuck on the WooCommerce order page.
* Fix: Seamless registration link for new users.
* Fix: Alert to enable on all Product related pages.
* Fix: Disconnection warning explains encryption will break with alternate account connection.
* UI: Redesigned the Quote & Pay payment modal and the Pro-unlock celebration screen.

= 1.1.2 =
* Feature: Added more robust server status feedback on the settings page.
* Feature: Display user's email address instead of the client ID on the settings page.
* Feature: Disabled "Reload Account Info" button if the Drop Print server were to be found offline.
* Feature: Ensured "Quote & Pay" button only displays for orders containing Drop Print products.
* Performance: Optimised JavaScript and UI loading for non-connected admin users.
* Fix: Client-side maximum file upload size now dynamically matches server limits.

= 1.1.1 =
* Feature: Checks whether WooCommerce is installed before allowing activation.
* Fix: Removed erroneous 1.1 folder from root directory.

= 1.1 =
* Feature: Complete workflow for uploading images, matching products, staging selections, and automatically creating/updating variations on product save.
* Feature: Robust server-side file handling with chunking, preview generation, dimension detection, optional compression, and file encryption.
* Feature: Integrated Reset functionality using a meta flag and cleanup during product save.
* Feature: Direct term assignment using `wp_set_object_terms` for improved variation reliability.
* Feature: Added "Copy to Featured Image" functionality.
* Feature: Daily CRON job for pricelist syncing and manual trigger option.
* Fix: Addressed issues with attribute/variation persistence during updates and resets.
* Fix: Resolved various AJAX errors and improved error handling/feedback.
* UI: Enhanced user interface with overlays and better state management.

= 1.0 =
* Initial release.
Basic connection, settings framework, and pricelist viewing.

== Upgrade Notice ==

= 2.0.4 =
Fixes a builder bug where rotating artwork that already had a crop selected produced the wrong result.

= 2.0.3 =
A display change on the product migration screen: raw SKU codes are now hidden behind a "Show SKU changes" checkbox. Nothing about how the migration works has changed.

= 2.0.2 =
Packaging fix. If you installed 2.0 or 2.0.1, please update to this release.

= 2.0.1 =
Packaging fix.

= 2.0 =
A major update. The product-editor panel is replaced by a full-screen builder, and printing and shipping are priced live. Existing products keep selling — a guided screen moves them onto the 2.0 catalogue and shows every change first. Review your settings after upgrading.

= 1.1.5 =
Adds a guided first-use tour, a self-healing pricelist cache, My Account order cancellation, dashboard-wide file-issue alerts, and Spanish/Chinese translations. Fixes a PHP 8 pricelist issue and smooths out the product save workflow.

= 1.1.3 =
Adds optional file encryption and a "Remember this card" option, redesigns the Quote & Pay modal, and fixes saved-card selection and the post-Pro-upgrade dashboard redirect.

= 1.1 =
This version introduces the full variation management workflow, secure file handling, and automated pricelist updates.
Please review settings after upgrading.

== Support ==

Documentation and support: https://aldenfineprint.com/drop-print/support
