Free downloads, zip downloads of a selection, a price on the caption and a Buy button that sends people to whatever checkout you already use.

yoursite.com/gallery-item/harbour-dawn/Harbour, dawnLocationPortofinoPeopleAna · BeaAlbumItaly 1994Year1994Date taken12 June 1994DownloadBuy · $40.00Related by Album
Download and Buy sit under the title, and appear only when the item has the fields for them.

The three fields

Pro seeds these on first run unless your site already has fields with those keys. They are ordinary fields; delete the ones you do not need.

downloadYes / no. When on, the item is downloadable.
priceNumber. Shown with your currency symbol, to two decimal places.
buy_urlLink. Where the Buy button goes.

The keys matter, not the labels. Rename Free download to Downloadable if you prefer; keep the key as download.

Free downloads

An item is downloadable when a download field exists, it is switched on for that item, the item is published, and there is a local file to hand over. A YouTube or Vimeo link fails the last test, so no button appears on it.

An item with both a price and a buy_url is for sale, so it never offers a free download, even if download is on. Offer a free sample as a separate item.

Switch download on across a whole set at once from the bulk editor.

Settings › Downloads & selling › Download size decides which registered size is served. full gives the original, clean, regardless of any watermark.

Zip downloads

Tick Show a checkbox on each downloadable item in a display and visitors get a checkbox on every downloadable item and a button that zips the selection. The button’s label is yours to set.

The same thing can be switched on for the archive page under Settings › Archive page: checkboxes to download several items at once.

A zip of two hundred full-size originals is a large file built in one request. For sets that big, point people at a delivery service rather than at your web server.

Prices and Buy buttons

Set a price and a buy_url on an item and a Buy button appears on its page, carrying the formatted price. The price also formats correctly wherever it appears in a caption or a library column.

Two settings shape it:

Currency symbolAnything you type. $, £, €, kr.
Note under Buy buttonOne line of small print under every Buy button. Delivery time, licence terms, VAT.

What the Buy button does not do

It links out. JMGallery takes no payment, holds no cart and knows nothing about orders. The checkout is whatever you point it at — a WooCommerce product, a Stripe payment link, a Gumroad page, an e-mail address.

That is deliberate. Payment handling is a compliance problem with a well-supplied market, and a gallery plugin has no business being a worse version of one.

Filling in buy links quickly

Export to CSV, paste a column of checkout URLs beside the matching rows in a spreadsheet, import it back. Far faster than clicking through a hundred items. See CSV export and import.

A print shop, end to end

  1. Upload the photos and set a shared album.
  2. Set the preview cap and a watermark. See Protecting your photos.
  3. Bulk-set a price across the set, then adjust the few that differ.
  4. Create the products in your checkout and import their URLs into buy_url.
  5. Build a display with the price ticked as a caption line, and put its shortcode on your shop page.
  6. Leave download off everywhere except the samples you are happy to give away.