Start here
All documentation Installing JMGallery Your first gallery How JMGallery stores thingsFilling the library
Adding photos Custom fields The library and bulk editing CSV export and importShowing photos
Building a display Grid, masonry and list Shortcodes The archive page and filters Single item pages The Elementor widgetPro features
Video Captions, backgrounds, hover Protecting your photos Downloads and sellingReference
Settings reference Licences and updates For developers TroubleshootingFree downloads, zip downloads of a selection, a price on the caption and a Buy button that sends people to whatever checkout you already use.
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.
download | Yes / no. When on, the item is downloadable. |
|---|---|
price | Number. Shown with your currency symbol, to two decimal places. |
buy_url | Link. 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 symbol | Anything you type. $, £,
€, kr. |
|---|---|
| Note under Buy button | One 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
- Upload the photos and set a shared album.
- Set the preview cap and a watermark. See Protecting your photos.
- Bulk-set a price across the set, then adjust the few that differ.
- Create the products in your checkout and import their URLs into
buy_url. - Build a display with the price ticked as a caption line, and put its shortcode on your shop page.
- Leave
downloadoff everywhere except the samples you are happy to give away.