Share your feature requests anytime
Search icon Our Plugins

Selling photos (PRO)

Overview

With Photo Gallery RB PRO any gallery can sell its photos. Every photo gets a Buy button — on the image and in the lightbox — and the buyer chooses from your price list: a digital download, a print, or anything else you offer.

You choose how the buyer pays:

  • WooCommerce cart — the photos go into your WooCommerce shop’s cart and are paid with its checkout, payment methods, taxes and shipping.
  • Built-in checkout — a light cart on the gallery itself and payment with Stripe (cards, Apple Pay, Google Pay and other methods you enable in Stripe) or PayPal. No shop plugin needed.

Both can be used on one site: each gallery has its own choice.


Open the gallery’s Sell tab:

Setting Meaning
Sell photos from this gallery turns selling on
Checkout WooCommerce cart or Built-in checkout: Stripe / PayPal (without WooCommerce only the built-in checkout is offered)
What is for sale the price list: every photo of the gallery is offered with these options
Button text e.g. Buy, Order a print

Each option of the price list has a name, a price and a kind:

  • Digital download — the buyer gets the original file after the payment
  • Print (shipped) — you print and send it; nothing is downloaded

For example: Digital download — 10, Print 20×30 cm — 25, Print 30×45 cm — 40. Click Add an option for more. The price is always taken from the gallery when the photo goes into the cart; nothing the browser sends can change it.


Selling through WooCommerce

With WooCommerce active and Checkout → WooCommerce cart:

  1. The visitor clicks Buy, picks an option and clicks Add to cart
  2. View cart leads to your WooCommerce cart, where the photo shows with its picture, title and option
  3. Checkout, payment, taxes, coupons, shipping and order emails are WooCommerce’s own

Photo Gallery RB does not add a product per photo: two hidden products, Photo — digital download and Photo print, carry the photos into the cart. Keep them; they do not show in the shop. The prices of the price list are in WooCommerce’s currency.

When the order is paid, every digital line gets a Download original button on the order page, in My Account → Orders and in the order emails.


The built-in checkout

Payment keys

Open Photo Gallery → Shop & Payments:

Setting Meaning
Currency of the built-in checkout: USD, EUR, GBP, PLN, UAH, CAD, AUD, CHF, SEK, NOK, DKK, CZK or JPY (galleries that sell through WooCommerce use WooCommerce’s currency)
Stripe: Secret key Stripe Dashboard → Developers → API keys. A sk_test_… key lets you try everything with Stripe’s test cards
Stripe: Webhook signing secret optional but recommended — see below
PayPal: Client ID, Secret developer.paypal.com → Apps & Credentials → your app
PayPal: Sandbox for test payments with sandbox keys
Links work for (days) how long download links work
Downloads per photo how many times each bought photo can be downloaded
Order notifications to your email for new orders; empty — the site admin email

Only the methods with keys are offered to buyers. Saved keys are never shown again: type over a key to replace it, or tick Remove.

Stripe webhook. In Stripe, open Developers → Webhooks → Add endpoint, enter the address shown on the settings screen (https://your-site/wp-json/pgrb-pro/v1/stripe), choose the event checkout.session.completed and paste its whsec_… secret. Then an order is confirmed even if the buyer closes the browser right after paying. Without it, orders are confirmed when the buyer comes back from Stripe.

What the buyer sees

  1. Buy → an option → Add to cart. A cart button appears on the page.
  2. The cart lists the photos and the total, and asks for the buyer’s email — the download links are sent there.
  3. Pay by card opens Stripe’s payment page, Pay with PayPal opens PayPal.
  4. After the payment the buyer is back on your site, on the order page: Thank you! Your payment went through. with a Download original button for each digital photo. The same links arrive by email.

The cart is kept in the browser, so it survives a reload and a walk through several galleries.

For prints, we recommend the WooCommerce cart for now: it collects the shipping address with the order.

Orders

Photo Gallery → Orders lists the orders of the built-in checkout: the buyer’s email, the photos, the total, the status (pending, paid, failed) and the payment method. On an order:

  • Mark as paid and send the links — for a payment you received another way
  • Send the links again — e.g. when the buyer lost the email
  • Delete

Protected downloads

A bought photo is never downloaded from its address in the Media Library. The buyer gets a link of their own:

  • signed — it cannot be guessed or changed to another photo or order
  • expiring — it works for the number of days you set (7 by default)
  • limited — each photo can be downloaded the number of times you set (5 by default)

The link gives the original file, as you uploaded it. When a link has expired or was used up, the buyer sees a clear message and can ask you: Send the links again gives them fresh links.

Turn off the lightbox’s Download button in galleries that sell — see Lightbox — and consider protecting the photos on the page.

Simplify your WordPress workflow!

Build faster, cleaner, and more reliable WordPress websites using lightweight plugins designed for real-world workflows.

Get started now