ToolkitCustomizeWidgetsEmail Reveal

Email Reveal — Help

Click-to-reveal, click-to-copy email button on member profiles — keeps addresses safe from scrapers.

🖼️
Screenshot coming soon
A live preview of the Email Reveal widget will appear here.

What it does

Email Reveal puts a small button on every member profile that hides the email address until a visitor clicks. The first click reveals the address; a second button copies it in one click. Email scrapers and bots see only the button — never the actual address — keeping your members' inboxes safe from harvesting.

Two parts work together:

  1. Reveal button on member profile pages (e.g. "See Email")
  2. Optional opt-in checkbox on the member's own profile-edit form so each member chooses whether their email is shown publicly

How it works

Every member has a public-email field on their profile. The widget reads that field — and optionally an opt-in toggle — and decides whether to render the reveal button.

  • First click — the button changes to show the actual email address inline
  • Second click on the new "Copy" button — the email is copied to the visitor's clipboard
  • Bots and scrapers never see the email because it's only injected into the page after a real click — protects against the bulk-harvesting attacks that flood public directories

Settings tab

Configure via Plugins → DirectoryCustomize → My Widgets → Member Email Reveal → Configure → Settings.

Setting Default What it controls
Member Opt-In Yes (recommended) Adds a "Show my email on my profile" checkbox to each member's profile-edit form. Turn off to make every member with an email on file revealable
Who Can Reveal All visitors Who's allowed to click the reveal button. Three options: All visitors / Logged-in members only / Paid members only
Paid Plan IDs (empty) Comma-separated plan IDs allowed to reveal — only appears when "Who Can Reveal" is set to Paid. Find your plan IDs in your directory's membership-plans admin
Button Text See Email Text on the initial reveal button — localize ("Voir l'email") or rephrase ("Show contact", "Email me")
Button Icon fa-envelope FontAwesome icon class shown next to the reveal button text. Set empty to hide the icon
Copy Button Text Copy Text on the second-step copy button

Design tab

Configure via Plugins → DirectoryCustomize → My Widgets → Member Email Reveal → Configure → Design.

Option Values What it controls
Design Preset bootstrap · system · shoreline · bright · custom Color theme applied to the reveal + copy buttons. Each preset has a coordinated set of background, text, and hover colors
Design Tint -30 to +30 Lightness offset applied on top of the preset — shifts lighter (negative) or darker (positive) without breaking the preset's harmony

Preset guide:

  • bootstrap (default) — uses your BD theme's existing button styles, blends seamlessly with other site buttons
  • system — neutral grayscale, works on any directory regardless of accent color
  • shoreline — teal/green tones, soft and professional
  • bright — vivid, high-contrast, draws attention to the reveal action
  • custom — pick "custom" when none of the presets fit and you want to override colors via custom CSS

Member opt-in flow

When Member Opt-In is on:

  1. A new field appears on each member's profile-edit form labeled "Show my email on my profile"
  2. The field defaults to checked for new sign-ups (so existing members aren't auto-hidden — they have to actively opt out)
  3. Members can uncheck it any time → their reveal button stops appearing for all visitors
  4. Their actual email field is unaffected — only the public-reveal visibility changes
  5. Admins can override per-member if needed via the standard member-edit screens

Access control patterns

Pick the access mode that fits your business model:

All visitors — best for public directories where contact info is part of the public listing value (local-business directories, free professional networks, open community sites). Maximum exposure with bot-protection still in place via click-to-reveal.

Logged-in members only — best for member-to-member networking sites where the value is the relationship between members. Keeps casual scrapers out and creates a small sign-up incentive.

Paid members only — best for premium directories or B2B platforms where contact-info access is a paid-tier benefit. List the allowed plan IDs in Paid Plan IDs; viewers on those plans see the button, others see nothing.

Common questions

Why isn't the reveal button showing on a profile that should have one?

Four things to check, in order:
  1. Does the member have an email saved in the public-email field? Empty field = no button.
  2. If Member Opt-In is on, has this member opted in (their "Show my email" checkbox)?
  3. If Who Can Reveal is "Paid members only", does the visitor's plan ID match your allowlist?
  4. Is the visitor logged in (when access mode is set to logged-in or paid)?

Will scrapers and bots be able to see member emails?

No. The email is never present in the initial page HTML — it's only injected after a real click. Automated scrapers that download pages without executing clicks won't find the address.

Can I change "See Email" to something else?

Yes — change Button Text in Settings. Common alternatives: "Show contact", "Email me", "Get in touch", or a localized translation. Same applies to the second-step Copy Button Text.

What's the difference between the design presets?

bootstrap uses your BD theme's existing button styles for seamless blending. system is neutral grayscale that works anywhere. shoreline is soft teal/green for professional contexts. bright is vivid high-contrast for emphasis. custom means "I'll handle styling via custom CSS." Try presets first; only reach for custom when none fit.

Does the copy button work on mobile?

Yes. The copy button uses the standard browser clipboard API — works on iOS Safari, Android Chrome, and every desktop browser. On older browsers without clipboard support, the email is still revealed for the visitor to manually copy.

What field stores the email being revealed?

The widget reads from the public_contact_email custom field on each member's profile. If your directory uses a different field name, the widget can be configured to read from that field — contact support to set it up.

Can I track how many times member emails are revealed?

Not built into the widget today, but the click event can be wired into your analytics setup (Google Analytics, Plausible, etc.). Contact support if you'd like to add tracking.

Where it lives

In your DirectoryCustomize plugin admin: Plugins → DirectoryCustomize → My Widgets → Member Email Reveal.

Two configuration tabs: Settings (6 options) and Design (preset + tint). Save changes apply immediately — no rebuild or republish needed.

Need more help?

If you've checked the questions above and the button still isn't behaving as expected, contact support with:

  • Your directory URL
  • The member username + the visitor's account type (logged out / logged in / paid plan)
  • A screenshot of your Settings tab

We'll help you sort it out.