Reviews, Claims and Enquiries: how visitors and owners interact with listings

How Smart Directory Pro handles reviews, moderation, owner claims with 6-digit codes, enquiry forms, saved listings and privacy requests.

Watch: collecting and approving reviews

A visitor leaves a star review, you approve it in one click, and the listing rating updates.

Watch: how owners claim a listing

An owner claims a listing with a 6 digit email code and the admin approves the claim.

Smart Directory Pro gives visitors four ways to interact with a listing: leave a star review, save the business, send the business an enquiry, and (for owners) claim the listing with a 6-digit email code. Reviews and claims wait in admin queues for your approval. Enquiries go straight to the business by email, and saved listings live on the visitor’s own account.

This guide covers version 1.9.6 of the plugin and the Smart Directory Pro theme’s single listing template.

The settings that switch each feature on

Claims, reviews and enquiries are on by default. You control them from Directory > Settings > General, in the Features row.

Checkbox label What it controls Default
Enable business claims The Claims admin screen and claim actions On
Enable reviews & ratings Whether new reviews are accepted at all On
Enable “Contact this business” enquiry forms (sent to the claimed owner, or the listing email) Whether the enquiry form renders and sends On

With reviews switched off, every submission is refused with the message “Reviews are not enabled on this site.”

Reviews: how visitors rate a business

Any visitor can leave one review per listing, with a 1 to 5 star rating and review text. Guests also give a name and a valid email address; signed-in members skip those two fields because their account details are used.

The theme shows the form under the heading “Write a Review” at the bottom of each listing’s reviews section.

✎ Write a Review Your Rating * Your Name * Sam Patel Email * sam@example.com Review Title Summarize your experience Your Review * Tell others about your experience… ➤ Submit Review
The theme’s review form (sdt-review-form). Signed-in members see the same form without the name and email row.

What happens when a review is submitted

Every review goes through one write path, so the theme form, the plugin form and the REST API apply the same checks in the same order:

  1. Reviews enabled: the “Enable reviews & ratings” setting must be on.
  2. Published listing: the listing must exist and be published, otherwise the visitor sees “Invalid listing.”
  3. Rating and text: a rating from 1 to 5 (“Please select a star rating.”) and non-empty review text (“Review text is required.”).
  4. Length: review text is capped at 5,000 characters. Titles are trimmed to 200 characters and names to 100.
  5. Guest details: guests need a name (“Please enter your name.”) and a valid email (“Please enter a valid email address.”).
  6. Spam check: more than one link, or words such as bitcoin, crypto, casino, forex or giveaway, returns “Your review could not be accepted. Please remove links and try again.”
  7. Rate limit: 5 reviews per visitor per hour, and 200 per hour across the whole site.
  8. One review per listing: members are matched by account, guests by a one-way hash of their IP address. A repeat gets “You have already submitted a review for this listing.”

The form also carries a hidden honeypot field. Bots that fill it receive a normal success message and nothing is saved.

Pending by default

New reviews are saved as Pending and stay off the listing until you approve them. The visitor sees “Thank you! Your review has been submitted for approval.”

Developers can publish reviews instantly by setting auto_approve_reviews to true in the sdp_general option. The visitor then sees “Thank you! Your review has been published.” and the rating updates straight away.

If “review_notify” is on in your email settings, the site emails you about each new review with a link to moderate it.

How the star rating is calculated

The listing’s average and review count come from approved reviews only. They are recalculated when a review is approved, and stored on the listing as _sdp_avg_rating and _sdp_review_count.

Importing reviews from a CSV

The CSV importer recognises a reviews file when it has place_id, review_text and one of review_id, reviewer_id or reviewer_profile. It shows “Reviews CSV detected. Reviews will be matched to listings by Place ID.” and attaches each row to the listing with that Place ID.

Imported reviews are Approved when the import’s default status is Publish, and Pending otherwise.

Moderating reviews in the admin

Go to Directory > Reviews & Claims > Reviews to approve, reject or delete reviews. The menu item shows a badge with the number of pending reviews.

Reviews 14 total reviews All Pending Approved Rejected Search reviews… Review Listing Rating Status Date Actions Sam Patel Quick, friendly and fairly priced. Oak & Anvil Joinery ★★★★☆ 4/5 pending 24 Sep 2026 Approve Reject Delete Jo Reid Booked a table for six, lovely evening. The Mill Kitchen ★★★★★ 5/5 pending 23 Sep 2026 Approve Reject Delete
Directory > Reviews & Claims > Reviews, filtered to Pending. Approve hides once a review is approved, and Reject hides once it is rejected.
  • Tabs: All, Pending, Approved and Rejected, with a search box on the right.
  • Columns: Review (author and text), Listing, Rating, Status, Date and Actions.
  • Delete asks “Delete this review? This cannot be undone.” and removes the review permanently.

The screen lists 20 reviews per page. Approving a review recalculates that listing’s average rating and review count.

Owner replies to reviews

The listing owner or a site admin can post one public reply per review. Posting again updates the existing reply rather than adding a second one.

For owners, replying depends on the listing’s package including the Review Response feature. Without it, the owner sees “Replying to reviews is a Pro feature. Upgrade this listing to respond.” Admins can always reply.

The reply is shown under the review with the business name as its author.

Claims: how owners take control of a listing

A business owner claims a listing in two steps: they request a 6-digit code by email, then enter it on the listing. After that, the claim waits in your Claims queue until you approve it.

Unclaimed listings show a banner headed “Is this your business?” with a Claim This Listing button. The claimant must be signed in.

Step 1: request the code

The form asks for a Business Email, an optional phone number, whether they are the “Business Owner” or “Authorised Manager”, and optional notes (up to 1,000 characters). Pressing Send Verification Code saves the claim with the status pending_verification and emails the code.

A user can hold only one active claim per listing, and a listing that is already claimed refuses new claims with “This listing has already been claimed.”

Step 2: enter the code

🏢 Is this your business? A verification code has been sent to owner@oakandanvil.co.uk. Enter it below to continue. Verification Code 482913 Verify & Submit Claim ↻ Resend Code
Step 2 of the claim form in the listing sidebar. The code field accepts 6 digits and supports one-time-code autofill.

The code rules are strict:

  • The code expires 24 hours after it is sent. An expired code returns “Verification code has expired. Please request a new one.”
  • Five wrong entries burn the code. Each mistake returns “Invalid verification code.” and the fifth ends that code with “Too many incorrect attempts. Please request a new code.” Requesting a new code resets the count, so the new code always gets five tries.
  • Only a hash of the code is stored. The plain 6-digit number exists only in the email.

A correct code moves the claim to pending, shows “Email verified! Your claim has been submitted and is awaiting admin review.” and emails you that a verified claim is waiting.

Approving claims in the admin

Go to Directory > Reviews & Claims > Claims. The screen is titled “Business Claims” and has the same All, Pending, Approved and Rejected tabs, with columns for Listing, Claimant, Submitted, Status and Actions.

Press View to open the “Claim Request” panel with the email, phone and message, then Approve Claim or Reject. Pending rows also carry Approve and Reject buttons in the table.

Approving a claim sets its status to Approved, marks the listing as claimed (which removes the “Is this your business?” banner), records the claimant as the listing owner and post author, closes any other open claims on that listing and emails the claimant. From then on, enquiries for that listing go to the owner. Rejecting sets the status to Rejected.

Claim invitation emails

Claim outreach emails unclaimed businesses an invitation to claim their listing, at a daily cap you set. It is off by default and starts in dry-run mode, with a default cap of 25 emails a day.

Each business is invited once, ever. The email contains a claim link that proves the recipient controls the business email address, so they skip the 6-digit code step. Links stop working after 30 days by default.

With the outreach “auto approve” setting on (the default), a claim made through the link transfers the listing immediately. With it off, the claim lands in your Claims queue like any other.

Every invitation carries a one-click unsubscribe link. The recipient confirms with “Yes, unsubscribe me” and the address is never emailed again.

Enquiries: the “Contact this business” form

The enquiry form lets any visitor message a business from its listing, and the email goes straight to the business with the visitor set as Reply-To. The business answers by pressing Reply in its own inbox.

The theme places the form in the listing sidebar, under the contact card.

💬 Contact Oak & Anvil Joinery Your name Sam Patel Your email sam@example.com Phone (optional) Message Hi, could you quote for fitted wardrobes in a small bedroom next month? Send enquiry Your message and contact details go straight to the business.
The enquiry form (sdp-enquiry). Signed-in visitors find their name and email already filled in.

Who receives the enquiry

The recipient is chosen in this order:

  1. The claimed owner’s account email, when the listing has been claimed.
  2. Otherwise, the first valid address in the listing’s _sdp_email, _business_email or _sdp_contact_email fields.

If neither exists, the form does not render on that listing. That keeps visitors from writing a message nobody will receive.

Validation and protection

  • Name, a valid email and a message of at least 10 characters are required. The message is capped at 3,000 characters.
  • More than one link, or words such as bitcoin, crypto, casino or forex, block the send.
  • A hidden honeypot field catches bots silently.
  • Each visitor can send 5 enquiries per hour, with a site-wide ceiling of 300 per hour.

The business receives an email with the subject “[Your Site] New enquiry from Sam Patel”, the visitor’s name, email, phone and message, and a link to the listing. The visitor sees “Thanks, your message has been sent to the business.”

Each delivered enquiry adds 1 to the listing’s _sdp_enquiry_count, so you can show owners how many leads the directory sent them.

Placing the form anywhere

Use the shortcode on any page or post:

[sdp_enquiry_form id="123"]

Replace 123 with the listing ID. Left empty, id defaults to the current post.

Favourites: the Save button and Saved businesses page

Signed-in visitors press Save on a listing to keep it in their own saved list. Guests who press Save are sent to the login page and returned to the listing afterwards.

NOT SAVED ♡ Save SAVED ♥ Saved Pressing the button again removes the listing from the saved list.
The Save button (sdp-fav) at the top of the listing sidebar, before and after saving.

Each account can save up to 500 listings, newest first. Every listing also keeps a public _sdp_favourite_count, which goes up and down as people save and unsave it.

Building a Saved businesses page

Create a page and add this shortcode:

[sdp_favourites]

Signed-in visitors see each saved business with its thumbnail, name, city and a Save button to remove it. Guests see “Sign in to see the businesses you have saved.” with a login link. An empty list shows “You have not saved any businesses yet. Press Save on a listing to keep it here.”

To place a single Save button elsewhere, use [sdp_favourite_button id="123"].

Privacy: export and erase requests

Smart Directory Pro plugs into WordPress’s own Tools > Export Personal Data and Tools > Erase Personal Data screens. Requests appear under the name “Smart Directory Pro”.

Data Export Erase
Directory reviews Listing, name, rating, title, review, date Anonymised: name becomes “Anonymous”, email and IP hash cleared. The review text stays on the listing.
Listing claims Listing, status, notes, submitted date Kept, because claims record who controls a listing. The erase report says so.
Claim invitations Listing, status, sent date Email cleared and status set to unsubscribed, so the person is never invited again.
Advertising enquiries and ads Business, status, date Unpaid leads deleted. Paid ads kept for accounting with the email removed.

Enquiries are delivered by email rather than stored in the database, so there is no enquiry table to export. Saved listings are stored in the visitor’s own user meta.

The plugin also adds suggested wording to Settings > Privacy describing the review, claim and advertising data it keeps.

FAQ

Why is a new review not showing on the listing?

New reviews are saved as Pending. Approve it under Directory > Reviews & Claims > Reviews and it appears, with the listing’s average rating updated.

Can someone leave two reviews for the same business?

No. Each account, or each guest IP address (stored as a one-way hash), gets one review per listing.

How long does a claim verification code last?

24 hours. Five wrong entries end the code early, and the claimant is asked to request a new one.

Does a verified claim give the owner control straight away?

A code-verified claim moves to Pending and waits for your approval. Claims made through an outreach invitation link transfer immediately while the outreach auto approve setting is on.

Who gets an enquiry if nobody has claimed the listing?

The first valid address in the listing’s email fields. If the listing has no email at all, the enquiry form is hidden on that listing.

Can the business reply to an enquiry directly?

Yes. The visitor is set as Reply-To, so pressing Reply in the business’s inbox answers the visitor.

Do guests need an account to save a business?

Yes. Pressing Save as a guest opens the login page and returns the visitor to the listing afterwards.

What happens to a review when its author asks for erasure?

The name becomes “Anonymous” and the email and IP hash are cleared. The rating and review text stay on the listing.

In section: Core Features Updated September 29, 2026
AI Search Optimized by AEO God Mode (opens in a new tab)