Skip to content
GPLWP Guides

How to sell digital images from WordPress galleries

Media & Galleries Time About 45 minutes for a small gallery 7 steps Updated 5 Oct 2026

MEDIA & GALLERIES
The short answer

WordPress galleries can display images but cannot charge customers or deliver protected files after payment. Use WooCommerce with downloadable products for the manual route, or use a gallery payments addon when you want image-level checkout without building a separate shop.

The route
  1. 01Choose how customers will buy
  2. 02Prepare protected download files
  3. 03Create downloadable products
  4. 04Connect the gallery to checkout
  5. 05Configure secure delivery
  6. 06Test the complete purchase
  7. 07Use the faster gallery checkout

What you need

  • A WordPress site with an image gallery
  • Admin access to WordPress
  • A payment account such as Stripe or a WooCommerce payment gateway
  • High-resolution files prepared for delivery

Choose how customers will buy

WordPress itself does not provide a checkout, payment confirmation, or protected download delivery for gallery images. A normal Gallery block can show pictures, but it cannot turn each picture into a paid digital product.

For the manual route, use WooCommerce and create downloadable products. For a small gallery, you can link each gallery image or button to its matching product page. This is workable, but it means maintaining a product, price, file, and checkout link for every image.

Prepare protected download files

Export the files customers should receive, rather than selling the large originals used by the gallery. Decide whether buyers receive one size, several sizes, or a ZIP archive, and use clear filenames.

Do not rely on an ordinary Media Library URL as protection. Files uploaded through the Media Library can be accessed by anyone who knows the direct URL, so attach paid files through the downloadable product settings instead. WooCommerce stores those files separately from the public media area.

Create downloadable products

In WooCommerce, add a product for each image or package. Mark it as Virtual and Downloadable, enter the price, then attach the delivery file. Add a download limit or expiry date if your sales terms require one.

If each gallery image has a different file, create one product per image. A variable product can work when the customer chooses options such as web, print, or high-resolution files, because downloadable files can be assigned to individual variations.

Connect the gallery to checkout

Add a purchase link, button, or call to action beside each image and point it to the correct product. If your gallery plugin has a WooCommerce integration, assign each image to its product and enable the purchase form in the gallery or lightbox.

Check the mobile settings as well as the desktop settings. A common failure is that the purchase control appears in the gallery on desktop but is hidden in the mobile or lightbox view. When using an integration, confirm that every image points to the intended product before publishing.

Configure secure delivery

Open WooCommerce > Settings > Products > Downloadable products and choose a protected delivery method such as Force Downloads or X-Accel-Redirect/X-Sendfile if your host supports it. Avoid Redirect only unless you accept that anyone with the file URL may share it.

Decide whether downloads become available after payment or only when the order is marked Complete. If all products are virtual and downloadable, WooCommerce can complete the order automatically. Test both the order email and the customer’s account download area.

Test the complete purchase

Place a real or test order from an incognito browser on a phone and a desktop. Check the image, price, payment screen, confirmation page, email, download link, file size, and delivered resolution.

If the email has no download link, first check the order status and whether the product is actually marked downloadable. If downloads time out, large files or server settings may be the cause; switch delivery methods or ask your host about PHP and server download limits.

Use the faster gallery checkout

If you already use Envira Gallery, the Envira Gallery Payments Addon is the faster route. It connects Stripe to the gallery, lets you set prices for individual or selected images, places purchase buttons in the gallery or lightbox, and delivers the purchased image automatically without requiring WooCommerce.

Activate the addon, connect Stripe in the gallery settings, enable payments for the gallery, choose button placement, set the available download size, and select automatic fulfilment or manual review. This is a better fit than the WooCommerce route when the gallery is the shop and you do not need a wider catalogue, cart, or store system.

The fast route

Let Envira Gallery Payments Addon do it

Stripe-powered image sales with gallery checkout and automatic delivery, without needing WooCommerce or a separate store.

Get Envira Gallery Payments Addon

Sources

  1. woocommerce.com /document/digital-downloadable-product-handling/?utm_source=…
  2. woocommerce.com /document/managing-products/product-editor-settings/?utm_sou…
  3. enviragallery.com /docs/woocommerce-addon/?utm_source=openai
  4. enviragallery.com /new-sell-images-directly-from-your-galleries-with-envira-pa…

Questions

Can WordPress sell images from a gallery without a plugin?
No, WordPress core can display a gallery but does not provide payment processing, order records, or protected digital delivery. You need an ecommerce or payment plugin, or an external checkout connected to a delivery process. A manual payment link followed by an emailed file is possible, but it is difficult to secure and easy to mismanage as sales increase.
Should I use one product for every image?
Use one downloadable product per image when each purchase must deliver a different file. This gives WooCommerce a clear product-to-file relationship and makes refunds and order records easier to understand. Use a variable product when one image has selectable versions, such as web and high-resolution downloads, with a different file assigned to each variation.
Are images in the WordPress Media Library protected after purchase?
No, a normal Media Library file can usually be opened by anyone who has its direct URL. Put paid delivery files in the ecommerce plugin’s protected download storage or use a delivery service designed for private files. This matters even if the gallery itself is restricted, because the original file URL may still be publicly reachable.
Why did a customer pay but not receive the image?
The usual causes are an order that has not reached the status that grants downloads, a product that was not marked downloadable, a missing file association, or a failed email. Check the order’s download permissions and confirm the file opens from the customer-facing download link. Also check spam delivery and your site’s email configuration before changing the gallery.
What is the fastest way to sell images directly in a lightbox?
Use a gallery payment addon that supports image-level pricing and checkout in the gallery or lightbox. For Envira Gallery users, its Payments Addon connects Stripe, adds purchase buttons, and can deliver purchased files automatically, so you avoid creating and maintaining a separate WooCommerce product for every gallery image.