Proofing

Pro Feature

This is a part of the Visual Portfolio Pro plugin.
Purchase the Pro plugin to access this and other advanced features.

Proofing lets clients pick the photos they want from a gallery you send them. One gallery can serve many clients. Each client gets a personal link and keeps a selection of their own, so a class of 30 students needs one gallery, not 30 copies of it. You see every client’s picks in one window and copy their file names for Lightroom or Capture One.

Proofing works with the Visual Portfolio block only.

See a live proofing gallery, or read what photo proofing galleries do before you set one up.

Where it is

Visual Portfolio → Proofing in the admin menu. Proofing galleries are a separate post type (vp_proofing) with the URL /proofing/gallery-name/. They support a title, content, the author and a post password. Galleries with one shared selection also take comments.

Choose how clients select

Every proofing gallery has one of two selection modes. You choose it before you publish, and it cannot change after that.

Per clientOne shared selection
Who picksEach client on their own. Nobody sees another client’s picksEveryone with the link ticks the same photos
How clients get inA personal link, or their name on the shared linkThe gallery link
Feedback on photosPrivate notes, seen only by the client and you. Comments are hiddenComments on the page, seen by every visitor
What you get backOne selection per client, compared in the Clients windowOne selection, approved once
EmailsInvitations, reminders, a copy for the client, and one email per selection or a daily digestOne email to the client when you publish, one to you on approval
Used byNew galleries, by defaultGalleries created before Visual Portfolio Pro 3.10.0

Use Per client when several people pick from the same photos, such as the students of one class or the members of one team. Use One shared selection when one client picks one set of photos.

  1. Go to Visual Portfolio → Proofing → Add New Proofing Gallery.
  2. The editor opens with a gallery set up for proofing: all photos on one page, Masonry layout, a click opens the photo in the popup, watermarks on. You cannot move or remove the gallery, but you can change its settings.
  3. Add the photos. In Add photos, click Upload or Media Library, or drop the files on it. On WordPress 7.0 and older the editor shows the Visual Portfolio block instead. Click Edit Gallery in it and pick the photos.
  4. Open the Proofing Settings panel in the document sidebar. Its settings are described in the next sections.
  5. Optional. Set a post password in the Publish panel. Visitors of the gallery link need it. A personal link opens the gallery without it.
  6. Click Publish. The publish check shows the selection mode, such as Selection: Per client. Pick Per client or One shared selection there.
  7. Click Publish again.

The block editor is used for this post type even when the Classic Editor plugin is active or the user has disabled the visual editor.

Send one gallery to many clients

Applies to galleries with Per client selection.

After you publish, the Proofing Settings panel shows whether the gallery is open, how many clients sent their selection, a Manage clients button and the Shared link with a copy button. Bring clients in through the shared link, by adding them yourself, or both.

Copy the Shared link and send it to all your clients, for example in a class group chat. A client who opens it sees Pick your photos, enters their name, and clicks Start. From then on they work on their own selection.

The Client email setting decides whether the form also asks for an email: Optional (the default), Required or Don’t ask. A client who enters an email gets their personal link by email, to continue on another device.

If someone enters an email that the gallery already has, the form does not open that client’s selection. It emails the personal link to that address and says “This email address is already registered for this gallery. We emailed your personal link to it.”

The shared link takes new clients only while the gallery is published and before its end date. Otherwise it shows “This gallery is not open for selection yet.” If you set a post password, visitors of the shared link enter it before the name form.

Add clients and email them their links

  1. In Proofing Settings, click Manage clients. The Clients window opens.
  2. Click Add clients.
  3. In Names or emails, one per line, enter one client per line, in any of these forms: Anna Smith <[email protected]>, [email protected] or Chris Lee.
  4. Optional. Turn off Email them their personal link now if you want to send the links yourself.
  5. Click the Add button, for example Add 12 clients. The new clients appear under Not opened.

One add takes up to 500 lines. A line with an email the gallery already has, or with a mistyped email, is skipped, and the message after adding counts the skipped lines.

Each client with an email gets an invitation with a View Photos button that opens their personal link, and the end date if the gallery has one. Invitations go out in the background, a few at a time, so 100 invitations take a few minutes. If the gallery is a draft or past its end date, the box reads Email them their personal link when the gallery opens, and the invitations wait until it opens.

A client without an email gets no invitation. Copy their link in the Clients window and send it yourself.

A personal link opens one client’s selection on any device, without the post password. The browser then remembers the client for a year, so the shared link opens their selection too. Anyone who has the link can change that client’s selection, so send it to the client alone.

In the Clients window, select a client to see their link. Copy link copies it. Email link sends it again, and reads Resend invitation while the client has not opened the gallery. The email buttons show only for clients with an email and work only while the gallery is open.

To stop a link from working, click the three-dot icon next to the client’s name and select Replace link. The old link, and every browser that remembered it, then shows “This link is no longer valid. Enter your name to continue, or ask the photographer for a new link.” Send the client the new link.

Settings of a per-client gallery

In a gallery with Per client selection, the Proofing Settings panel shows each setting as a row with its value. Click the value to change it, then click Save.

SettingWhat it does
SelectionPer client or One shared selection. Locked after publishing
PhotosHow many photos each client sends: At least (1 by default) and At most (no limit by default). When a client reaches the maximum, the other checkboxes are disabled
Open untilThe last day clients can pick. The gallery closes at the end of that day in your site’s timezone. After that, clients see “This gallery is closed” instead of the photos. No end date by default
Client emailWhether the name form on the shared link asks for an email: Optional, Required or Don’t ask
Email meEach time a client sends a selection (the default), Once a day as one digest, or Never
RemindersOn by default. Emails each client who has an email and has not sent: once 2 days after their last change, and once 3 days before Open until. Each reminder goes out once

After the end date the panel reads “Closed since” with the date, and shows Open for 7 more days. Click it to move the end date 7 days ahead, then click Save.

Read your clients’ picks

Applies to galleries with Per client selection.

All selections of a gallery are in the Clients window. Open it in any of these ways:

  • Manage clients in the Proofing Settings panel.
  • Clients under the gallery title in Visual Portfolio → Proofing, or the link in the Selection column there, which reads “3 of 12 clients sent”.
  • The View Selection or View Selections button in an email about a sent selection.
  • Manage clients on the gallery page, which you see when you open the page logged in as a user who can edit the gallery.

The window lists All clients first, then the clients grouped by status, each with the number of photos they picked. A search field shows when the gallery has more than 8 clients.

StatusMeaning
SentThe client sent the selection. It is locked and counts in All clients
SelectingThe client opened the gallery or entered their name and has not sent yet
Not openedYou added the client and they have not opened their link yet

Compare all clients

All clients shows the gallery’s photos with the number of clients who picked each, such as 3/5. Only clients with the Sent status count. Choose which photos to show:

  • Picked: photos at least one client picked. This is the default.
  • By all: photos every client who sent picked.
  • Not picked: photos nobody picked.
  • All: every photo.

Click a photo to see who picked it and their notes on it.

See one client

Select a client to see their email, a line with their history, such as “Invited Mar 3 · Opened Mar 4 · Sent today, 10:30”, and their picks with their notes under each photo. While the client has not sent, the count reads, for example, “8 photos, not sent yet”.

The three-dot icon next to the name holds Allow changes for a sent selection, Replace link and Remove client. Remove client deletes the client’s selection and notes, and their link stops working.

Copy filenames and download a CSV

Copy filenames copies the file names of the photos on screen: one client’s picks, or the photos the All clients filter shows. Click the arrow next to it to pick the format. Paste the list into the file name filter of Lightroom or Capture One to find the picked photos.

FormatWhat it copies
Lightroom (default)Names separated by commas, without the extension: DSC_0012, DSC_0034
Capture OneNames separated by spaces, without the extension: DSC_0012 DSC_0034
One per lineFull file names, one per line: DSC_0012.jpg

The names are those of the files you uploaded, not of the -scaled copies WordPress makes of large photos.

Download CSV in the same menu saves one file with a row for each client and picked photo. Its columns are Client, Email, Status, Submitted, Photo ID, Filename, Label and Note. It also lists clients who have not sent yet. The Status column holds submitted for a sent selection, active for a client who is selecting, and invited for one who has not opened the gallery.

Let a client change a sent selection

Select the client, click the three-dot icon next to the name, and select Allow changes. The client can change the selection and send it again. If the gallery is past its end date, that client gets 7 more days.

What the client sees

Applies to galleries with Per client selection.

  • A line above the photos names the client: “Anna, tick the photos you want. Your picks save as you go.” Next to it, Switch lets another person on the same device enter their own name.
  • Every photo shows its label, a checkbox and a note icon. Clicking a photo opens it in the lightbox.
  • The note icon opens “Note on #1523”, where the client writes up to 1,000 characters and clicks Save Note. Only the client and you see notes.
  • A bar stays at the bottom of the screen with the count (“5 selected”, or “5 of 20 selected” when there is a maximum), the minimum (“pick at least 1”), Show selected, Save and Send selection.
  • Picks save on their own, in the same way as in a shared gallery, and follow the client to another device that uses their link.
  • Send selection first asks “Send your selection?”. Send sends it, and Keep picking goes back.

After sending, the page reads “Thanks, Anna. Your 12 photos are with the photographer.” with the date, and “To change something, ask the photographer to reopen your selection.” A client who gave an email gets a copy of the picks and notes.

When you open the gallery page logged in as a user who can edit it, you see the photos with the line “Only you see this. Clients enter their name here or open their personal link.” The checkboxes are disabled for you. Visitors who are not clients see the name form instead of the photos.

After the end date, every visitor except you and reopened clients sees “This gallery is closed” and “Picking ended on” with the date, instead of the photos. A shared gallery with an expiry date shows the same.

Galleries with one shared selection

Galleries created before Visual Portfolio Pro 3.10.0 use this mode, and you can pick it for a new gallery before publishing. Everyone who opens the link works on one selection, and the gallery is approved once.

Proofing Settings panel

The panel shows a status stepper: Creating → Sent → Approved (the middle step reads Published when no email is sent).

Selection shows the mode. It can change only while the status is Creating.

While the status is Creating:

SettingWhat it does
Send EmailWhen on, publishing the gallery emails the client. When off, the gallery is published and you send the link yourself
Client EmailRequired when Send Email is on. Saving is blocked with the notice “Please enter Client Email” until it is filled
MessageThe email body. Tags you can use: {post_url} (rendered as a “View Photos” button), {post_password} (rendered as “Password to access the post:” followed by the password, only when the post is password protected; otherwise the tag is removed), {author_name} (the author’s display name). Default text: “Dear Client. Please select the photos you like and send your selection back to us. We will start post-production as soon as we have your approval. {post_url} {post_password} Sincerely, {author_name}”. Saving is blocked with “Please enter Client Message” when Send Email is on and the message is empty

While the status is Creating or Sent:

SettingWhat it does
Minimum SelectionPhotos the client must select before sending. Default 1
Maximum SelectionPhotos the client may select at most. Empty or 0 means no limit. When the limit is reached, the remaining checkboxes are disabled

In every status, Expiry Date is the last day clients can pick. After it they see a closed message instead of the photos. Leave it empty to keep the gallery open.

While the status is Sent the panel shows “The gallery has been sent to the client for approval.” (or “The gallery has been published, you have to send the gallery URL to the client for approval.” when no email was sent).

While the status is Sent or Approved, the panel shows Selected Files with a format and a Copy Filenames button. It copies the file names of the photos selected so far, in the format you pick: Lightroom (the default), Capture One or One per line, as described in Copy filenames and download a CSV. While the status is Approved the panel also shows “The gallery has been approved by the client.”

Always visible: the Proofing Gallery URL link, and for Sent or Approved galleries the Reset proofing status button. Reset opens a dialog where you choose the status to go back to (Creating or Sent) and whether to Preserve approved selections. The change is applied when you click Save.

The client opens the gallery link (and enters the post password if you set one). While the gallery is in the Sent status:

  • Every photo shows its label (click to copy it), a checkbox, and an outline when selected. Clicking a photo opens it in the lightbox.
  • The toolbar above the gallery has a Select All checkbox, a display filter (Display All, Display Selected only, Display Unselected only), a counter (selected / limit, or selected / total), a Save button and a Send Selection button. Send Selection is disabled while nothing is selected.
  • Selections are saved automatically 10 seconds after the last change, when the client clicks Save, when the tab regains focus, and when the client tries to leave the page (with a “You have unsaved changes” warning). The selection survives Load More, infinite scroll and page reloads.
  • Every 15 seconds the page pulls the saved selection from the server, so two people looking at the same gallery see each other’s ticks. A local unsaved change is never overwritten.
  • If the minimum is not reached, Send Selection shows “Please select at least N photo(s) before submitting.” If the maximum is exceeded, “You can select a maximum of N photo(s).”

When the client clicks Send Selection, the gallery status becomes Approved, the page shows “Proofing selection has been sent, we will contact you shortly.” and the checkboxes are disabled. The client cannot change the selection after that unless you reset the status.

Comments

If your theme prints a comment form on single posts, the client can comment on the proofing page. Under the textarea the plugin adds the hint “You can use item labels to mention photos in comments. For example: “The photo #123 is beautiful!””. A label written in a comment (#123, or #filename-123) becomes a link that opens that photo in the lightbox. Comments need to be enabled for the post as usual.

Item Label

In a proofing gallery the block’s Skin panel gets an extra setting, Item Label. It decides what clients see on each photo and how they mention photos in comments:

  • Item ID (default): # followed by the attachment ID, for example #1523
  • Filename
  • Title
  • Description

Titles and descriptions fall back to the file name when empty.

Emails

Every email goes through wp_mail(). “You” is the email address of the gallery author. Emails that list photos show up to 50, each as its label and file name, such as #1523 DSC_0012.jpg.

A gallery with Per client selection sends these emails:

EmailWhenToContent
InvitationYou add clients with the invitation box on, or click Email link or Resend invitationThe clientSubject Select your photos: "Gallery title", a View Photos button with the personal link, and the end date
Personal linkA client enters an email on the shared link, or an email the gallery already hasThe clientSubject Your link to "Gallery title" and an Open My Gallery button
Client’s copyA client sends the selectionThe client, if they gave an emailSubject Your selection for "Gallery title", with the photos and notes
SelectionA client sends, and Email me is Each timeYou, with reply-to set to the clientSubject Anna sent a selection for "Gallery title", the photos with notes, and a View Selection button that opens the client in the Clients window
Daily digestOnce a day, when Email me is Once a day and someone sent since the last digestYouSubject New selections for "Gallery title", each client with the number of photos, and a View Selections button
ReminderReminders is on. See Settings of a per-client galleryClients with an email who have not sentSubject Reminder: "Gallery title" and a Continue Selecting button

A gallery with One shared selection sends these:

EmailWhenToContent
To the clientYou publish the gallery with Send Email on and both Client Email and Message filledClient Email, from your addressSubject Proofing "Gallery title". Your Message with the tags replaced, and a “View Photos” button
ApprovalThe client clicks Send SelectionYou, with reply-to set to Client EmailSubject Proofing gallery "Gallery title" approved, the photos, and a “View Approved Photos” button that opens the gallery in the editor

All emails except To the client come from no-reply@your-domain, or from the site’s admin email when the site address has no domain, such as localhost. Replies to the client emails go to you.

Invitations sent when you add clients, reminders and the daily digest are sent by WP-Cron, which runs when someone visits the site. On a site with few visitors they can arrive hours late. A real cron job that calls wp-cron.php sends them on time.

If your site cannot send mail, none of these arrive. Use an SMTP plugin if emails do not arrive. In a shared gallery the status still changes: the gallery becomes Sent only if the client email was sent, and Approved when the client sends the selection. The client email of a shared gallery is sent from the author’s address, so a strict SPF or DMARC policy on your domain can reject it. The status then stays at Creating.

Watermarks in proofing galleries

New proofing galleries have Add Watermarks to Photos switched on in the block’s Protection panel. Watermarked copies are shown only if they exist for the current watermark settings (see Watermarks). If you have not configured a watermark, the original photos are shown.

Caching and performance

Proofing pages send no-cache headers and set the DONOTCACHEPAGE constants, so page caching plugins skip them. The Pro “AJAX Cache and Preload” script is disabled on proofing pages. The selection is saved through the REST API (/wp-json/vpf/v1/proofing/<id>/selections), limited to 10 saves per minute per visitor and gallery, or per client in a per-client gallery. If a security plugin blocks the REST API for logged-out visitors, clients cannot save; the page then shows “An error occurred. Please refresh the page and try again.”

Status reference

StatusMeaningClient can select
CreatingDraft or just published without an email being sent yetNo
Sent / PublishedGallery is with the client. A per-client gallery keeps this status while it is openYes
ApprovedThe client of a shared gallery sent the selectionNo
ExpiredPast Open until or Expiry DateNo

The admin list of proofing galleries shows a Selection column, with “12 photos” for a shared gallery and “3 of 12 clients sent” for a per-client gallery, and a Status dot with the meanings above. In a per-client gallery each client also has a status of their own, listed in Read your clients’ picks.

Client data and privacy

Proofing keeps each client’s name, email, selection, notes and history with the gallery. Tools → Export Personal Data and Tools → Erase Personal Data in WordPress include them under Visual Portfolio Proofing. Erasing removes the client from every gallery. Deleting a gallery for good deletes its clients.

Troubleshooting

  • The proofing page returns 404. Open Settings → Permalinks and click Save Changes to flush rewrite rules. Since 3.6.0 the plugin repairs this itself on the next admin page load.
  • The client’s checkboxes are greyed out. The selection was already sent, the gallery is past its end date, or the client picked the most photos allowed. In a shared gallery, reset the status from the editor. In a per-client gallery, select Allow changes for that client.
  • The email never arrived. In a shared gallery, check Send Email was on before publishing, and that the site can send mail (test with an SMTP plugin). A gallery whose email failed stays in Creating; fix mail delivery and publish again, or send the link manually.
  • Invitations or reminders arrive late or never. WP-Cron sends them. Check that WP-Cron runs on your site, or call wp-cron.php from a real cron job. The client’s history line in the Clients window shows “Email failed” when the site could not send.
  • A client sees “This link is no longer valid.” Their link was replaced, or they were removed. Copy the current link from the Clients window and send it again.
  • The comment form is gone. Galleries with Per client selection take no comments. Clients leave private notes on photos instead.
  • Selections disappear between visits. Selections are stored on the server, not in the browser. If a caching or security plugin blocks /wp-json/vpf/v1/, saving fails silently until the page shows the error message.
Was this page helpful?