Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository

Sunshine Photo Cart

Client Proofing Gallery & Photo Cart Plugin. Sell prints from your own WordPress website.

Sunshine Photo Cart is a WordPress client proofing gallery & photo cart plugin. You can have a full-featured system to sell photos on your own website with no limits or commissions. Easily create galleries, sell to clients, and make more money than ever.

Create your own standalone demo installation of WordPress + Sunshine + all the add-ons pre-installed to see it in action! This is fully functional WordPress installation where you can test all the features without having to install it on your own site.

This free version is fully functional and has the following features:

  • Cart system for letting users choose photo, select product and add to cart for purchase
  • Accept offline payments (check) or online payments (PayPal)
  • Unlimited galleries, images and products!
  • No commissions!
  • Integrates directly into your theme automatically (or use one of our layouts)
  • Upload images via FTP or browser in WordPress admin
  • Galleries can be password protected, require email, require user account or be completely private for specified users
  • Gallery end dates - great for pressuring clients to buy and not wait forever without purchasing
  • Sub galleries - great for weddings or large events
  • Favorites - Let users select their favorites, view any user's favorites in the admin
  • Social sharing - Get friends and family to see photos, increase exposure and possible sales!
  • Watermarking - Automatically have a watermark added to all your images when uploaded to a gallery
  • Multiple shipping methods (Flat rate, local delivery, pickup)
  • Easy order management
  • Printable invoices
  • International ready - Works with all currencies and translated into German, French, Spanish, Dutch, Finnish, Portuguese, British, Norwegian. See all available translations


While the core plugin is free, there are paid add-ons to improve Sunshine's features. You can pay only for the features you need!

...and so many more to come! Feel free to request new features


Get ALL our paid add-ons for an insanely discounted single price - Learn more

Author Sunshine Photo Cart
Contributors sunshinephotocart
Tags cart, client gallery, client proofing, e-commerce, e-store, ecommerce, eshop, gallery, photo, photo cart, photographer, photography, proofing, selling, wp ecommerce
  1. sunshine-photo-cart screenshot 1

    Main galleries view using Twenty Twelve theme

  2. sunshine-photo-cart screenshot 2

    Single gallery view

  3. sunshine-photo-cart screenshot 3

    Single image view

  4. sunshine-photo-cart screenshot 4


  5. sunshine-photo-cart screenshot 5


  6. sunshine-photo-cart screenshot 6

    Admin: Add gallery

  7. sunshine-photo-cart screenshot 7

    Admin: Add product

  8. sunshine-photo-cart screenshot 8

    Admin: Order details

  1. Activate the plugin
  2. Go to Sunshine > Settings and configure the options
  3. Create Products (example: 8x10)
  4. Create Galleries
  5. Make money selling to clients with no commission fees!


  • Update - Update class updated. Yep.
  • Fix - Issue with getimagesize error


  • Fix - Bug in passing user credits to PayPal
  • Update - Better database queries for Dashboard widget with gallery and image totals, thanks Rex Valkering!
  • Fix - Refinements to how og meta data is grabbed for images and galleries
  • Fix - Extra product shipping cost was recently dropped from being added to shipping total
  • Fix - Remove error when no allowed countries have yet been selected
  • Add - Hungarian translation


  • Fix - Handle meta data for gallery better
  • Fix - Social media sharing drop down fixed in Sunshine themes
  • Change - New placement for "Return to gallery" on Cart page
  • Change - Use better method to get cost for shipping, allows more shipping plugins to easily integrate (example: tiered shipping add-on)
  • Change - Output our meta data really early to prevent other plugins overriding it


  • Fix - Image theft prevention JS was being output before jQuery was even loaded causing JS error.
  • Fix - Favorite notifications going to order notifications email settings
  • Add - Include Order # on order detail page in custom theme template
  • Fix - Remove notice about user registration setting once it is changed
  • Fix - Update sharing URLs
  • Update - Updated translations


  • Fix - On update, make sure to set default the billing/shipping fields and what is required FOR REALS


  • Fix - On update, make sure to default the billing/shipping fields and what is required
  • Fix - Admin notifications were not being sent on new order


  • Fix - Add to cart and comment links for images on Favorites page
  • Fix - Search only searched top level galleries, not child galleries
  • Add - Ability to set allowed countries for billing/shipping
  • Add - Checkout field options, display and required
  • Add - Option to select which address is basis for tax (billing, shipping or everyone)
  • Fix - Prevent order notify email being sent when not a valid order
  • Fix - Improved/optimized is_sunshine a bit
  • Fix - Changing order status email was not being sent


  • Add - New "Ready for pickup" order status
  • Add - sunshine_after_gallery_emails hook in admin
  • Add - Show billing/shipping address for a user in profile edit screen
  • Add - Show user orders in user profile edit screen
  • Change - Order details - Use date format from WordPress settings
  • Fix - Password required text when guest checkout enabled on Checkout page
  • Fix - Recent orders adjust for guest checkout
  • Add - Show related galleries in admin Order list view
  • Add - When viewing gallery edit screen, new meta box to show all orders associated with the gallery
  • Change - Improved order history in user Account
  • Add - Return to last gallery viewed link on Cart page
  • Fix - Invoice in admin to better handle special characters
  • Fix - Issue with WordPress welcome panel always being shown
  • Fix - Additional strings made translatable
  • Fix - Cart totals CSS for mobile site
  • Fix - Better process for adding auto discounts
  • Change - No more, now using direct links to social sharing services
  • Fix - Additional strings available for translation in admin
  • Fix - Issue with proper credit attribution for an order


  • Fix - Update process for moving files to sunshine folder when using Amazon S3


  • Fix - Clear cart after order
  • Fix - Additional filters when adding order to help payment gateways


  • Add - Make Guest Checkout on/off setting


  • Change - Cleaner redirect if user cancels from PayPal site
  • Fix - Various issues related to setting prices with commas for the European users
  • Fix - Conflict with WooCommerce and some JavaScript that we both try to load
  • Change - Take out CSS for Lightbox, needs to be in Lightbox add-on
  • Add - Shortcodes can use hyphens or underscores
  • Change - Look for style.css file in theme, use it if it exists
  • Change - How Sunshine determines which image to apply watermark to because one specific theme was being weird and needed special accommodation
  • Add - Notice when selecting a parent gallery that the child gallery does not inherit any settings from the parent
  • Change - Remove unnecessary info from the System Info page
  • Add - Remove canonical URL for Sunshine galleries/images, messes with Facebook sharing


  • Fix - Issue determining when to send shipping information to PayPal, caused problems with Digital Download only orders
  • Fix - Offline payment instructions were not being included in customer receipt email


  • Fix - Some themes showed comment form for single images when comments were disabled


  • Fix - Restored the [sunshine-gallery-password] shortcode that somehow got removed


  • Fix - Billing address not being saved when Pickup address selected


  • Change - All images moved back to their own "sunshine" folder in wp-content to prevent conflicts with other Media Library files
  • Change - New placement for phone number field on checkout
  • Change - Pushed back how many days until prompted for survey/review
  • Add - Option for PayPal page style
  • Add - New notice to remind people to ask for help instead of just assuming something is broken
  • Add - Pinterest nopin meta tag when sharing disabled
  • Add - Quick edit for products
  • Add - Filter products by Price Level in admin
  • Fix - If Favorites disabled, was still showing some references to it in places
  • Fix - On Checkout/Account, changing country and available state selection was not working
  • Fix - When user deletes something from cart, delete selected shipping option forcing them to reselect
  • Fix - Issue with certain European date format and setting end date for gallery
  • Fix - If Pickup shipping method selected, billing fields not being checked/confirmed they were filled in
  • Update - Newest version of FontAwesome


  • Fix - If user creates account on Checkout page but has an error during Checkout process, tax may not get applied
  • Fix - Sometimes tax not shown on order detail page for customer


  • Fix - Saving billing/shipping info on account page
  • Fix - Different size for featured image meta data
  • Fix - Featured image for galleries not working
  • Fix - Don't show request to login on Checkout page if nothing is in cart
  • Update - German and Dutch languages


  • Fix - Code warnings for sharing feature
  • Fix - Rare cases billing information not being saved for order
  • Fix - Issues with loading translations
  • Update - Imported all translations from the translation site to be as up-to-date as possible


  • Add - Disable save image on iOS
  • Fix - Different way of doing thumbnail image for email receipts
  • Fix - CSS in email template fixed
  • Fix - Not saving created_timestamp properly for use in shoot order


  • Fix - Sometimes wrong tax calculation based on what is in cart


  • Fix - Color selectors in settings
  • Fix - If digital downloads only in cart and using PayPal, no address is sent and checkout cannot be completed


  • Add - Option to add watermark to thumbnail images
  • Add - Add "register here" text link to be more clear when a user wants to mark an image as favorite but not yet logged in
  • Fix - Issues using "Billing as Shipping" and error checking
  • Fix - Sharing images/galleries had wrong URLs
  • Fix - Taxable shipping costs not being added
  • Fix - Credits properly applied to PayPal payments
  • Fix - Yoast SEO was overriding Sunshine's own title tags with wrong data for individual galleries and images, not anymore
  • Fix - When using comma as decimal separator, issues with PayPal for payments
  • Update - All translations have been updated. All add-on strings are now included in the core Sunshine translation .pot file so ALL of Sunshine can now be fully translated.


  • Fix - New checkout order in Sunshine themes had old order
  • Fix - Better FAQ in readme


  • Fix - Better removal of images in favorites if they no longer exist
  • Fix - Calculation of discounts for % off products
  • Add - Shipping AND billing info in all order confirmation emails


  • Fix - If not using taxes, don't show on Checkout page
  • Fix - Some additional CSS to help overzealous themes
  • Fix - Not saving user information when using Pickup for an order
  • Fix - Don't show survey and rating nag right after install


  • Removed Freemius, no longer need it


  • Update - Better add-ons page in admin
  • Update - Re-order Checkout page, putting shipping first for better flow (example: don't ask for shipping info if pickup)
  • Update - Ability to see items in order on Checkout page
  • Update - Confirmation on Cart page if a user changes quantity but doesn't update
  • Update - New admin notices class, much easier way of adding notices in Sunshine to help users out and do promos
  • Update - New meta box styles
  • Fix - Only create Sunshine-related image sizes for Sunshine galleries
  • Fix - Slow servers, uploading large files times out. Set increased time limit for files to upload.
  • Fix - Allow bulk delete of Sunshine's various custom post types
  • Fix - Confirmed PayPal orders should be marked as "new", not "processing"
  • Fix - Logo size issues in email template for some users
  • Fix - Child gallery order not obeying gallery order settings
  • Fix - Phone number no longer required
  • Add - Set email address to receive submitted favorite notifications
  • Add - Link to Client Galleries in admin menu bar
  • Add - More add-on/pro license expiration reminders
  • Add - Link to Setup Guide on installation


  • Update - Improved methods for how PayPal orders are created and handled for better fallback when issues arise
  • Add - Include IP address tracking on all new orders (working toward VAT rules)
  • Add - New insights tracking via
  • Fix - Bug when user not logged in at checkout, has error at checkout - cart would disappear
  • Fix - Better hiding of payment methods when order total is 0 (free)
  • Fix - Some issues with calculating discounts
  • Fix - Watermark compatibility issues with new Digital Downloads 2.0


  • Fix - Bug not saving users for Private galleries


  • Update - Further refinements to gallery status/access options, now more combinations available
  • Update - Improved UI for gallery thumbnails in admin, ajax load on request so large galleries don't make this page so slow


  • Fix - Favorite page doesn't appear in sunshine_main_menu anymore, oops!


  • Fix - Couldn't save gallery as a draft
  • Fix - Don't clear user's cart after PayPal payment until they get to the actual receipt page, not on redirect
  • Fix - Could not remove discounts from cart page in some cases
  • Fix - At some point defining DONOTCACHEPAGE got removed accidentally
  • Fix - When going to registration page from a Sunshine page, custom password was not being saved
  • Change - Itemize everything when sent to PayPal instead of a single lump sum order
  • Change - How items in cart are handled when logged in/out


  • Fix - If gallery has expired, remove items from cart
  • Fix - If gallery has expired, don't allow items to be added to cart from Favorites page
  • Fix - If no cost for a shipping method is entered, default it to 0/free
  • Fix - Favorites page template not working with lightbox
  • Change - Make requiring an email for a gallery separate from the Access type
  • Change - Include gallery name when requesting gallery password


  • Fix - Further fixes for new permissions setup
  • Fix - Not saving updated order status


  • Fix - Password protected galleries, while still password protected, showing "Normal Access" in gallery edit settings
  • Fix - Pickup shipping method only at checkout would not let users finish, required shipping fields which were hidden
  • Add - New instructions field for Pickup shipping method
  • Add - Include pickup instructions on email receipt and order detail page if available


  • Fix - In newer installations, the version of Sunshine was not being tracked properly and so during updates the update function was not running


  • Fix - When viewing gallery on front end, make admin bar "edit" link go to gallery instead of Client Galleries page
  • Fix - Image processor typos
  • Fix - Issue applying discounts to logged in users
  • Fix - Missing a CSS class on the gallery list


ul> element for Sunshine themes * Update - Refined user capability access * Update - If Local Pickup is only shipping method, don't show shipping fields * Update - If Local Pickup is selected, hide shipping fields (even though they are above, might help reduce some confusion) * Update - If gallery requires email and logged in as admin, don't ask for email - not necessary! * Update - Made Image Processor ajax queued so it will not import the next image until the previous one is done. This helps slow servers from getting overwhelmed and causing errors. * Update - Remove automatically switching to "Uploaded to this page" when trying to set a featured image. Easy enough to do manually and causes issues when you don't want it from the current page.


  • Fix - Issues saving proper private users for a gallery
  • Fix - Issues saving proper expiration date for a gallery
  • Add - New option to include instructions for Pickup shipping method
  • Update - If order has pickup method, show instructions (if available) in receipt email and on order detail page


  • Fix - Access to Price Levels via add-on may not have been possible in some circumstances


  • Change - Big updates to how carts are stored for non-logged in users, handles really large carts better
  • Change - New FTP image processor, all ajaxy now and more efficient
  • Change - Gallery edit screen has all options in meta box, some moved from the Publish box
  • Change - Work with new 4.4 title tag requirements
  • Change - Update PayPal IPN handler to use wp_remote_post to work in more server situations
  • Change - Checkout is back to requiring users to be logged in before they check out as it was confusing to some users how it worked at Checkout if they were not already logged in to an existing account. Other updates to Checkout page to make this page more clear to understand including AJAX check and error if email already exists.
  • Add - More variables for email subjects
  • Add - CSS for [sunshine-menu] shortcode for better display by default
  • Add - Order ID in admin notification email subject
  • Add - Option to automatically add the Sunshine Main Menu before the Sunshine content on all Sunshine pages when using your own WordPress theme
  • Add - Option to disable breadcrumb display, helpful if you want to keep users to a single gallery
  • Add - On image detail page, add link back to it's gallery
  • Fix - Some strings were not translatable
  • Fix - Order images by created timestamp from oldest to newest instead of newest to oldest
  • Fix - PHP error notice clean up in dashboard
  • Fix - Users getting password updated notification when they register
  • Fix - In rare instances, doing checkout with PayPal when initially not logged in caused taxes to not be included


  • Add - New option for Terms of Use at checkout
  • Add - At checkout, if user enters email address that already exists it tries to log the user in instead of giving error that email already exists. If new email address, creates new user account.
  • Add - Ability to copy image file list for user's favorites (just like what is already available for Orders)
  • Add - Items in cart will now stay in cart for 30 days when not logged in and you close your browser
  • Add - Gallery list has filter on CSS class, used for updates to Masonry add-on
  • Update - All currently available translations updated
  • Fix - Prevent an image from being added to favorites multiple times on slow servers
  • Fix - Link to Bulk Add Products fixed
  • Fix - $ / % off product discount calculations redone
  • Fix - Checkout states / taxes not updating for non-logged in users
  • Fix - Orders in admin sortable by user/customer
  • Fix - Ordering images immediately after browser upload
  • Change - Make it very clear that in order to sort images by their created date, it must have EXIF field DateTimeDigitized in order to work
  • Change - Save the created_timestamp even if it doesn't exist so images will still appear even if not available in the image meta data
  • Change - Making adjustments to accommodate future Bulk Galleries add-on
  • Change - Use shipping name, instead of ID, in order receipts


  • Add - If you set the Featured Image for a product, a link to that image is now available on the add to cart form
  • Add - Filter for currency symbol
  • Add - Nag for review and survey
  • Fix - Media gallery cleanup running on admin pages it shouldn't
  • Fix - Media gallery popup when editing posts/pages or any non-Sunshine post type was not filtering out Sunshine gallery images and overwhelming the Media Library
  • Fix - Not saving shipping address information when it is different from billing
  • Fix - Reports using only shipped orders to determine total tax collected


  • Add - Watermarks images can now be set to repeat
  • Fix - Default/2013 Sunshine theme not outputting necessary CSS classes on Favorites page for each image
  • Fix - Default/2013 Sunshine theme having wrong thumbnail image size on Favorites page
  • Fix - Default/2013 Sunshine theme not showing password protected icon next to gallery title
  • Fix - Social media sharing sometimes show even when not enabled
  • Fix - Don't let users change quantity to negative value in cart
  • Change - Don't show email request form for gallery if currently logged in user is admin


  • Add - Define DONOTCACHEPAGE to prevent caching plugins from caching Sunshine pages
  • Add - About screen on install or update
  • Change - Main Menu now uses page title of Sunshine main page instead of "Galleries"
  • Fix - Outputting some debug code for email required galleries
  • Fix - Not pre-populating user email address for logged in user on checkout
  • Fix - Typo causing problems with PayPal checkout and invalid address errors


  • Tweak - In admin, for main products list show a "-" when product has no price set instead of $0 to be very clear no price has been set


  • Fix - When image is marked as favorite, not showing it as favorite in gallery thumbnail view
  • Fix - Some users reported get_user_screen() fatal errors on activation


  • Fix - Updated TGMPA to 2.5.2 which addresses issues with themes using older versions of TGMPA and a site crashing conflict which results


  • Free! We have moved to the add-on model and now the core Sunshine Photo Cart plugin is now free. Various features split out into individual plugins.
  • Fix - PHP error fixes, better code comments, better WordPress Coding Standards support
  • Fix - Sharing image on social media had wrong URL
  • Fix - When user returns to site after PayPal payment, take them to their purchase receipt page instead of main Client Galleries page
  • Fix - Improved mobile-friendly styling
  • Fix - Sharing now uses, easier to work with than
  • New - Ability to sort images in a gallery based on EXIF "created_date" which is now captured on upload


  • Add - Completely new lightbox system!
  • Add - Email automation feature!
  • Add - Product Options!
  • Add - Require email address to access gallery
  • Add - Search widget
  • Add - Track number of free image downloads
  • Add - Option to restrict who can download free images/galleries per gallery
  • Add - Customizable email subjects for various generated emails like order receipts
  • Add - Option to show image name under thumbnail on gallery view
  • Add - Admin order details - Lightroom file list: Quickly provides file names for you to search in Lightroom to quickly find images to make a new collection for easier fulfillment
  • Add - Admin order details - Sort order items by type (image, package, download) and indicate what each item is for easier fulfillment
  • Add - After adding to cart, link to return to gallery along with link to view cart is now available
  • Change - Improved email templates
  • Change - Downloading single image with no print release just downloads image, doesn't generate zip with single image
  • Change - Private gallery redirects to login screen when not logged in instead of ugly message page
  • Fix - Gallery URL now includes sub-galleries so no more sub-gallery name conflicts
  • Fix - Gallery digital download recheck minor adjustment
  • Fix - Download All link for individual order detail page
  • Fix - Conflict with other Campaign Monitor subscription plugins
  • Fix - Lightbox enabled, products for gallery disabled - add to cart link still showed
  • Fix - Newsletter was prompting to sign up for newsletter with invalid API keys
  • Fix - Image thumbnail size wrong in some cases on invoice in admin
  • Fix - Package with only digital negatives shows shipping options

  • Fix - PHP error in settings area preventing access to settings

  • Add - Notice about Sunshine not allowed as Front Page with link to Doc for how to resolve
  • Fix - Order status not appearing in Dashboard for Recent Orders
  • Fix - Installation didn't install some default data
  • Change - Limit number of most popular purchased images to 10

  • Fix - Order detail URLs not working in some instances
  • Fix - Purchase entire session didn't have thumbnail image in cart
  • Fix - Purchase entire session always added twice

  • Add - Allow customization of gallery, image and order URLs in settings to get around possible conflicts with themes and other plugins
  • Add - Update routine will check if "gallery" custom post type exists. If so, customize the gallery URL because this is the source of the URL conflict.
  • Fix - Masonry styling for 2, 3 and 5 column galleries fixed
  • Fix - Using own WordPress theme, password protected galleries may not be protected
  • Fix - More instances of currency symbol in admin for products to use settings, not always show $


  • Add - Masonry option for thumbnail display!
  • Add - Show discounts applied in admin order detail page
  • Add - Reports page, extremely basic sales tax report to start
  • Add - Add noindex meta tag to order pages to help clean up past security issue of order URLs being indexed
  • Add - Invoice / Packing slip available for all orders
  • Change - Use rewrite masks for handling Sunshine URLs, should now support any theme better even if not built to WP standards
  • Change - Text when showing the required registration form to checkout or add to favorites
  • Change - Always show Add to Favorites link, send user to register if they are not logged in
  • Fix - Various PHP warning fixes
  • Fix - Fix tax calculation when discount is greater than taxable amount
  • Fix - Further fixes to handle some servers and their case sensitivity issues with image file names
  • Fix - Currency symbol in admin for products to use settings, not always show $
  • Fix - Media Gallery was still displaying images from Private galleries


  • Fix - Case sensitivity issue for digital download files
  • Fix - Duplicate image name on cart/emails
  • Fix - When no shipping method yet selected on cart page, say "Select on checkout page" instead of $0.00 so not confusing to users thinking they are getting free shipping
  • Fix - Security issue allowing Order Detail page to be found if direct URL is known
  • Fix - Lightbox purchase popup did not have comments box when comments enabled
  • Fix - Image thumbnail in receipt email broken

  • Fix - Typo that prevents Favorites template from loading


  • Add - Digital negative products can only ever have a quantity of 1
  • Add - Option to disable favorites feature
  • Add - Added .jpeg to allowed file extensions
  • Add - Always show which gallery an image is from in cart/purchase receipt
  • Change - Gallery that requires login goes to login/register form instead of ugly wp_die page.
  • Change - If lightbox add to cart is checked, lightbox is not - thumbnail links to add to cart instead of nothing
  • Change - Include heading above package select to be more clear to users
  • Fix - Remove hash in URL because of the AddThis social sharing code
  • Fix - When adding images to existing gallery folder via FTP, entire gallery is re-imported
  • Fix - Negative quantity values gave user credit in their cart
  • Fix - Errors checking for valid digital download files when low res had all cap file extension
  • Fix - Price tiers when unchecked were still applied if tiers still present
  • Fix - Adjust logo on login page if selected image is too large
  • Fix - Image name not included in receipt when lightbox feature active
  • Fix - Link to invite user to gallery in messaging system does not prepopulate with selected gallery info

  • Fix - Remove output for tracking causing some JS errors in admin


  • New! - Installation data tracking so we can make Sunshine work better with popular plugins/themes (opt-out available)
  • Add - Allow low res images to be included in file downloads
  • Add - Missing digital download file recheck
  • Add - Better error checking/error display for image processor
  • Add - Alternate download method re-instated, cron job to delete zip files generated from alternate download method every day
  • Fix - PHP errors on registration errors occured in certain situations
  • Fix - Fix update routine to properly update attachment meta data
  • Fix - Watermark not always applied
  • Fix - Some items/discounts in cart not passed along after login/register


  • New! - Users no longer need username, just email/password to register
  • New! - Allow users to login with their email address instead of username
  • Add - Required field indicators on checkout form
  • Add - Digital negative products can only ever have a quantity of 1
  • Add - Product class name with filter on add to cart form
  • Add - Update WordPress menus with proper class names when viewing Sunshine related pages
  • Fix - Issue where images always showed comment form
  • Fix - Fix registration URL redirect from checkout to work with custom registration URLs
  • Fix - Digital download files are changed to lowercase file extension for case sensitive servers
  • Fix - Lightbox image order not same as gallery image order
  • Fix - Uploading images with an existing file name already uploaded caused issues with digital downloads
  • Fix - Download All link for order didn't work for some orders
  • Fix - Duplicating price level would give new price level a $0 price when it should be empty
  • Fix - Could not add/remove coupon code when logged out
  • Fix - Message system with quotes in the source code of the message did not display properly in the recipients inbox
  • Fix - Other pages on WP site trying to use SSL while Stripe with SSL enabled caused redirect issues


  • New! - Image and Digital Download file upload process can all be done within WP admin screen
  • New! - Download zip files are done on the fly, in chunks, so it can do huge files on any shared server
  • New! - Minimum order amount - set the minimum dollar amount a user must accrue for products on images in the gallery before allowing to checkout
  • New! - Gallery password shortcode [sunshine-gallery-password] - displays the gallery password form just like the widget, but in a shortcode
  • New! - Use image EXIF "Title" if it exists
  • Add - New option to disable the included Sunshine stylesheet when using your own theme
  • Change - Redid permalink structure so it works better with sub galleries
  • Fix - Add back System Info link
  • Fix - Don't load colorbox when not needed
  • Fix - Tons of small changes/fixes that most won't notice but we did. Honestly just forgot to write them all down.


  • Add - Gallery name after image name on order detail page in admin
  • Add - Invite user to gallery link from gallery edit screen
  • Fix - JavaScript errors when certain content entered for default messages
  • Fix - Adjust file select in settings area so admin isn't so slow
  • Fix - Remove wp_head from PayPal redirect page and use Google hosted jQuery in case theme injects invalid JavaScript so redirect will still work

  • Fix - Messaging had wrong function name causing no result
  • Fix - wp_footer back in for default and 2013 theme, needed for favorites feature


  • Add - Messaging addon. Ability to send template emails to already registered or new users to invite them to a gallery or to register
  • Add - Tiered pricing / automatic discounts - Give amount per item discount when user purchases x amount of the same product
  • Add - Option for a la carte % discount when package is added to cart
  • Add - Entire gallery downloads can now be included in packages
  • Add - Option for alternative digital download method as some servers had issues with default method
  • Add - Option to enable commenting on images in a gallery
  • Fix - Downloading all images from order not working for older galleries (pre 1.6.9)
  • Fix - Order email would always have same image/product for last two line items
  • Fix - Favorites notify email now uses display_name since some users have not yet set their first/last name yet
  • Fix - Images uploaded to Media Gallery are not having various sizes created
  • Fix - Adding same item to cart did not update total line item price
  • Change - Default theme is now your WordPress theme during plugin activation
  • Change - Ability to dismiss the user registration enabled nag notice in admin


  • Fix - PHP fatal error for users in the Default Sunshine theme


  • Add - Automatic watermark images
  • Add - Users can now submit their favorites, site admin receives email notifying of submission with link to see all favorites
  • Add - Ability to order galleries by custom order, date (old to new, new to old) or alphabetical
  • Add - Add cart quantity whenever the cart page name when shown (in WordPress menus, etc). ie, "Cart (4)" instead of just "Cart"
  • Add - New filters added for login/registration URLs
  • Add - Finnish translation
  • Change - Redirect URLs no longer use primary domain as this caused security issues on some servers
  • Change - Make sunshine-product custom post type not public
  • Change - When the same file name is uploaded twice it results in new file name that doesn't match high res file name and digital download doesn't work. Now storing download file name in post meta.
  • Change - Make Before/After HTML settings when using WordPress theme WYSIWYG instead of textarea
  • Change - When package is completed, it can no longer be selected from dropdown (visible, but made disabled) to prevent confusion display options to users
  • Fix - Wrong thumbnail size being used in themes
  • Fix - Before/After content in ProPhoto themes was showing on all pages, not just Sunshine pages
  • Fix - Bug with hiding admin bar for non-admins
  • Fix - If shipping method enabled, but no price entered - defaults to $0
  • Fix - When adding item to cart and it already exists in cart, increase quantity instead of adding new line item
  • Fix - Registration error when nothing in cart and errors turned on high
  • Fix - Update cart when using WordPress theme wasn't working
  • Update - All languages updated


  • Fix - Image processor not finding image URL properly in certain cases


  • Fix - Conflict with WordPress SEO plugin introduced by trying to handle ProPhoto5


  • Fix - Image processor didn't work with a custom upload folder
  • Fix - Nothing showing for ProPhoto5


  • Fix - Cart table layout had extra table header
  • Fix - When permanently deleting gallery but original FTP folder doesn't exist, PHP errors
  • Add - Option to make gallery download products taxable
  • Fix - Orders do not contain image_name


  • Add - Allow users to see products/pricing and add items to cart without registering or being logged in
  • Fix - Bulk add products weren't visible until you resaved each manually
  • Change - Redo how content is replaced to display current gallery/image to work with WP 3.8 and ProPhoto themes
  • Fix - Remove some more PHP warning messages in specific instances
  • Fix - If products disabled, don't show packages options or any purchase icons
  • Add - Proofing only option, disables any cart functionality throughout Sunshine
  • Add - sunshine_classes function for theme usage to make unique cases easier to style
  • Add - If products disabled or cart disabled in any way, handle layout of image detail page better so no empty space
  • Add - Remove main site's theme JS files from queue when using a Sunshine theme
  • Fix - Custom CSS styling in 2013 theme
  • Fix - Use WordPress date_format where needed
  • Add - German translation
  • Fix - Make pages/content on install/upgrade translatable
  • Fix - Image download links not working in 3.8.1
  • Fix - PHP error when adding order comment from admin
  • Fix - Gallery download link visible when gallery is expired
  • Add - Hide "Add New" link for orders in admin - can't manually add orders
  • Add - Hide permalink for discounts in admin, can't view a discount page anyway
  • Fix - Showing no shipping options when only digital products are in cart
  • Add - Print release document can be added to all digital downloads
  • Fix - When multiple of same package in cart, updating/deleting doesn't update/delete all of the packages
  • Add - "Remove" link added for each item in cart
  • Change - Redo how images are imported from FTP folder. Large size and thumbnails are put into normal wp-uploads folder, originals stay in FTP created folder.
  • Add - Option to delete all images attached to a gallery when gallery is permanently deleted
  • Add - Hide attachments for Sunshine galleries throughout WordPress admin except when editing a Sunshine gallery


  • Fix - Issues when image not set to use lightbox but add to cart link is
  • Fix - Remove error message on Sunshine dashboard when no recently logged in users
  • Fix - When package added to cart, can only add image to package if it matches the price level of the package
  • Fix - Price for entire gallery downloads not available in some cases
  • Add - Use the before/after HTML in custom theme again
  • Fix - Setting up newsletter integration was a bit confusing in regards to selecting which list
  • Fix - Packages was not querying for all available packages
  • Fix - Hide the action menu for galleries that require a password to prevent sharing, free downloads, packages link, etc
  • Fix - Rename individual file names that have special characters
  • Add - Add new capability "sunshine_manage_options" which can be assigned to custom user roles and allow Sunshine to be shown/hidden
  • Fix - PHP error when using credit system
  • Fix - Calculate taxes after discounts/credits are applied


  • Fix - Errors when removing discount from cart
  • Fix - Discount calculations for "$ off product" discounts
  • Fix - Add error message when non-existent discount code is entered
  • Fix - Taxing all shipping methods regardless of settings
  • Fix - Shipping costs not accurate in order details
  • Fix - PayPal addon not processing order after payment
  • Fix - Free orders were not being processed
  • Fix - Check for max uses of a coupon
  • Fix - Use site_url() in image processor for installs not in root


  • Change - Refactored Cart class to be true OO
  • Fix - Proper link building to individual image when using "/%categories%/%postname%/" permalink structure
  • Fix - Updated all translation packages with new strings introduced in recent new features
  • Add - Norwegian language
  • Change - Make product categories hierarchical, checkbox selection is much easier
  • Fix - Wrong order ID variable when downloading gallery causing some PHP warnings
  • Fix - Anyone could see order detail/invoice page
  • Add - Option for lightbox to open for images only or add to cart only (previously with lightbox enabled it opened both in lightbox)
  • Fix - Change session variable name because of conflict with main sunshine class variable


  • Remove - sunshine-sidebar widget area no longer necessary
  • Fix - Fixed compatibility with WordPress SEO plugin


  • Fix - Complete redo of theme integration, now replacing via the_content filters
  • Add - Ability to tax shipping costs
  • Add - Option for when Sunshine Main Menu widget is visible - On Sunshine pages or all pages
  • Add - Detect folder names with special characters and rename before image processing
  • Change - Moved "Shipping same as billing" under Shipping Info header
  • Add - Users can download all digital download items from order in a single click (zip file is created, then deleted)
  • Add - Free downloads, entire gallery or individual images. Settings on a per-gallery basis.
  • Fix - Dashboard last login users had wrong dates, duplicate users
  • Add - Digital download products are hidden when currently viewed image does not have high resolution file
  • Fix - URL to registration page when WP is installed in sub-folder
  • Add - Gallery expiration notice appears for galleries with expiration dates
  • Add - Ability to sell the digital negatives of an entire gallery
  • Fix - Packages with digital download items not showing download link
  • Fix - Allow more than one coupon code to be used on an order
  • Fix - Order comments from clients being sent to client instead of site admin
  • Fix - Order detail in admin not showing item price, only item total
  • Add - Themes using wp_title will get better tag content
  • Fix - Remaining items in package on cart page was wrong
  • Add - Image name next to image in cart, order and receipt emails


  • Fix - Theme integration not showing content for respective pages


  • Fix - Profit totals not accurate when users had a discount code or used credits
  • Fix - When updating line item qty on cart page, line item total not updating
  • Add - Discounts has new option - apply before/after tax
  • Fix - Only include Stripe JS on checkout page
  • Fix - Only include Favorites JS on Sunshine pages
  • Fix - Favorites page wasn't using Lightbox when enabled
  • Fix - Fail login, click register, successful register didn't redirect back
  • Fix - Admin bar is shown for admin users only
  • Add - Extra shipping costs per product (for heavy items), applied only to Flat Rate shipping method

  • Fix - Download files


  • Add - Notice if a package does not have any products assigned to it
  • Fix - Users with apostrophe in their name broke Private Gallery user selection
  • Fix - Bulk add products didn't assign categories properly
  • Fix - Netherlands translation
  • Fix - If invalid login, lost Sunshine login screen and got default WordPress screen


  • Fix - Order confirmation has credits only in $
  • Fix - Duplicate image comments appearing
  • Fix - Moved settings framework to load only in admin to significantly decrease memory usage on frontend
  • Fix - Users could checkout without fully filling packages in cart
  • Add - Don't show packages link if gallery Price Level has no valid packages. Package page to display no packages as well should someone guess the URL.

  • Fix - Image Processor and how it handles upper/lowercase file names for servers that are case sensitive

  • Fix - Gallery password form not using translated text
  • Fix - Some users seeing PHP error in footer of their theme


  • Add - Gallery Password Box - a new widget and option in themes to include a form where a user enters just a password and if a gallery matches then automatically be taken to said gallery.
  • Fix - Gallery/image stats not always being collected
  • Fix - Digital downloads was showing wrong number of files in each folder
  • Fix - Image processor handles filename.JPG (all caps file extensions) better
  • Fix - User registration was not sending Sunshine's welcome email
  • Add - sunshine_post_header / sunshine_pre_footer actions available for those using their own theme allowing for some extra HTML code to be injected making theme integration easier.
  • Fix - is_sunshine function was too far reaching, returned true too often


  • Add - Admin notice to indicate that enabled user registration is needed for Sunshine to work
  • Update - Make new Sunshine 2013 theme the selected theme on installation
  • Fix - Packages were $0 when added to cart


  • New - Sunshine 2013 Theme
  • Fix - Checkout totals not updating when state is input box
  • Update - Updated some Dutch translation text provided by customer
  • Fix - Private sub galleries were showing for everyone
  • Fix - Let tax be selected for entire country even if it has states/provinces available
  • Fix - Sharing links now obey the settings again
  • Update - Fix for conflict with other plugins that add custom image sizes which was resulting in duplicate images in galleries


  • Fix - Adjustments to admin image processor to handle errors a little better
  • Fix - Allow saving product prices with commas for international users
  • Fix - Adding new user in admin would log you in as that new user
  • Fix - Proper link to login/register pages when WordPress is not installed in root directory
  • Fix - Updated languages with all new text added.
  • Add - Add Dutch Language translation


  • Fix - More PHP warning messages cleaned up
  • Fix - CSS for image detail page when inside a lightbox
  • Fix - Remove option for making product categories parent/child in admin as this isn't possible in Sunshine
  • Fix - Allow products to have specific order be set
  • Fix - In admin, when viewing products, clicking on the category name shows you all products within that category
  • Fix - If no products for the specified price level of the gallery have a price, then don't show the category at all.
  • Add - Ability to base pricing of a new Price Level at a specified percentage of an existing price level


  • Fix - Further PHP warning messages cleaned up


  • Fix - Cleaned up some PHP errors that appeared for some users throughout Sunshine


  • Add-on - New Packages add-on! Combine multiple products into one. Customers can then add an image to the package.
  • Add - Bulk product add - ability to add many products in one go
  • Add - Digital downloads can also deliver .raw and .psd files
  • Add - Breadcrumb function to use in Sunshine themes
  • Fix - Digital download folder selection no longer limits search to just .jpg files, open to work with new allowed file types
  • Fix - Gallery password post URL fix for WPEngine
  • Fix - Show unlimited sub galleries when viewing a main gallery


  • Fix - Image file extension can now be .jpg or .JPG
  • Fix - When deleting a gallery, some users experienced a PHP error that didn't let the redirect after deletion occur
  • Fix - Remove "See customization options" link in Design tab options - no longer needed
  • Fix - Digital downloads folder selection now works for .jpg or .JPG images
  • Add - Digital downloads now allows for various file types: .jpg, .zip, .tif, .tiff, .dng, .png


  • New - Internationalization: Users can select country at checkout, tax can be applied to entire country or state within country
  • New - AddOn: PayJunction payment gateway
  • Update - Complete update of Custom Theme to use header/footer instead of overcomplicated previous method of replacing content. ProPhotoBlogs no longer supported as they do not build proper WordPress themes and was compromising the quality of everyone else's theme integration.
  • Add - If an order only contains digital downloads and payment method is anything but "offline", then mark the order as completed
  • Fix - Update process was destroying settings in some cases


  • Fix - Redoing how rewrite rules work to be much more efficient, fixing broken sub gallery URLs
  • Tweak - Increase timeout when checking license so updating plugin is less likely to return an error
  • Add - Making admin menus filterable so addons can better add a new submenu where it wants
  • Tweak - Moved Add Discount parts of cart page out of theme and to Discounts addon
  • Tweak - Redid how pagination URLs are built to work with new rewrite rules
  • Add - Always have Sunshine image detail pages disable commenting abilities (useful for custom themes)
  • Add - Check for permalink structure not being Default, show notice in admin if it is Default
  • Tweak - Better error messages when image processor fails
  • Fix - URL fixes for Colorbox usage


  • Add - Ability to override entire Sunshine template file by including own file in site theme's directory (i.e., yourtheme/sunshine/gallery.php)
  • Fix - More license activation fixing, kept trying to activate license after it was already activated and causing license to become deactivated
  • Add - Custom CSS field in Theme settings tab
  • Add - Remove unnecessary columns for Price Levels edit screen
  • Add - Additional data in the galleries list for # of images and expiration date
  • Add - Analytics addon now tracks totals for image purchases
  • Add - Analytics addon now tracks totals for galleries including cost of images sold in the gallery and total sales of images in gallery
  • Add - Analytics addon new dashboard widget: Most popular gallery based on sales
  • Add - Analytics addon new dashboard widget: Most popular images based on sales
  • Add - Analytics addon now displays most purchased images when editing a gallery in admin
  • Fix - When viewing gallery list in admin, "View" button had wrong URL
  • Tweak - Reorganized design options in admin settings
  • Tweak - Updated WordPress Theme CSS so it does not require body_class to be used
  • Add - Disable right click and now also dragging/dropping to desktop
  • Tweak - Analytics widget for latest logins only displays "Subscribers" (so ignoring admin logins)
  • Tweak - Gallery/Image view counts no longer track admin views
  • Tweak - Gallery Latest Visitors no longer shows admin views
  • Fix - Gallery Latest Visitors displaying properly from most recent to oldest
  • Fix - Price/total formatting issues for Stripe
  • Fix - Sales Total analytics widget wasn't working for older orders before Price Levels addon
  • Fix - Viewing gallery with required password does not increase view count
  • Tweak - Display total number of favorites user has selected in profile edit screen


  • Tweak - Created manual link to deactivate a license which is needed when a site owner has a crash and needs to re-establish


  • Fix - Update script was not properly making new Price Levels in some cases


  • Add - NEW ADDON: Price Levels - Ability to set a custom price level on products for each gallery.


  • Fix - More text added for translations
  • Fix - Anonymous user names were empty in admin when viewing users who viewed a gallery
  • Fix - Payment method not displaying in admin for an order
  • Fix - Improved responsive CSS for all themes
  • Fix - Remove coupon code link was broken on cart page
  • Fix - Discount calculations off in rare instance
  • Fix - Subtotals not displaying number formatting properly
  • Fix - Showing gallery description before a password is entered
  • Fix - Free orders marked as pending, should be new
  • Fix - Resolve all PHP warnings


  • Add - Analytics Addon. Track gallery views, image views, and tons of sales data to track most popular products, overall sales amounts and net profit
  • Add - Expired galleries can still be viewed by admin user


  • Add - If you pick a theme other than My WordPress Theme, a link to the Theme tab is added next to the option to make it more clear on how to customize it
  • Add - In user list in administration, add links to the user's Favorites and Credits
  • Fix - Optimized Sharing addon so it only shows relevant social media sites and most importantly hides the print option (Facebook, Twitter, Google+ - Pinterest not capable with AddThis in this format)
  • Add - Option to disable right click
  • Add - Email text settings now have WYSIWYG abilities
  • Add - Email signature text setting
  • Add - All text is now translatable using WordPress i18n standards - Starting with French, Spanish
  • Add - View user's cart in wp-admin when viewing/editing profile
  • Fix - Paying with credits and $0 balance simply returned checkout page and no errors


  • Fix - Newsletter signup checkbox was being displayed even when no settings entered
  • Remove - Old check payment method somehow made it back into the plugin - removed again
  • Fix - Link to digital download file fixed


  • Fix - Updating URLs on WordPress login, registration, password reset forms to better know when we are coming from a Sunshine page and link back to S

Where can I get help?

Use the support section on our website

Are there any limits?

Sunshine itself does not impose any limits on galleries, images, users, etc. You may want to check with your web host about your available file storage. There are many great web hosts which offer huge amounts of storage if you do have a host with small disk space limits. Otherwise, Sunshine does integrate with Amazon S3 for infinite file storage via the WP Offload S3 plugin.

What payment gateways can I accept?

Sunshine eomes with PayPal out-of-the-box and has add-ons for Stripe, PayJunction and Mollie (with iDEAL support)

Is there a demo?

Yes! You can create your own standalone installation of Sunshine to play with to your heart's content.

Does this work for any currency?

Yes, we make all currencies available

Can I help translate Sunshine?

Yes! Please see our translation site to help refine an existing translation or start a new one. Current Sunshine translations include: Dutch, French, Italian, Portuguese (Portugal and Brazil), German, Spanish, Finnish, Russian, Norwegian, UK.

Version 2.5.11

Requires WordPress version: 4.4 or higher

Compatible up to: 4.7.2

Last Updated 03 Jan 2017

Date Added: 06 Aug 2015

Plugin Homepage


4.9 stars
57 ratings


Not Enough Data

Works: 0
Broken: 0