

Admin options after install.
Contact Camo protects email addresses from scrapers and bots — now with a native Gutenberg block so you can build beautiful, protected contact experiences without touching a single line of code.
Contact Camo is a plugin for WordPress developed by Plan Left that effectively hides or obfuscates email addresses from scammers, web scrapers and internet bots to help minimize spam and other nefarious, automated actors.
In addition to protecting email addresses, Contact Camo provides rich, visual control over how those protected email addresses are displayed and interacted with by your visitors — all from inside the WordPress block editor.
Contact Camo now feels right at home in the WordPress block editor. Drag it in, configure it visually, and see a live preview of exactly what your visitors will see — no shortcodes, no guesswork.
Everything is point-and-click:
All of the above is available through the shortcode too, for those who prefer it.
We work with many non-profits and educational organizations that need to list contact info in directories on their website. Due to the public visibility of these and their large user base, our clients’ web properties are under constant threat from spammers and bots. We wanted to ensure that their user directories were safe from these threats while still being functional to visitors. In other words, we needed to hide a bunch of email addresses from the outside world while still allowing the outside world to contact those users via their email address. When we got to developing this plugin, we knew we had to provide a solution that was as bulletproof as possible while allowing our clients and customers the most amount of control over things as practical.
The client was very pleased with the end-result and so were we. So, we decided to offer it back to the community. Our development team reviewed and scrutinized the existing plugin, found areas for improvements and further customizations, and baked them right in for everyone to use.
Site administrators and content editors/moderators. Anyone with a WordPress site that would like the peace of mind of knowing that their users’ email addresses are safely hidden from spam bots and other unintended consumers with ill intent. Content creators that don’t want to worry about the complications and time expenditure of dealing with and managing their user base getting spammed from their platform. And especially when any of the above mentioned require some level of control over what’s displayed to their users, who may very well be their customers or clients or patients, etc… It’s for site builders that want protection AND customization without being overwhelmed.
With the new Gutenberg block, that means literally anyone editing a page in WordPress — no code required.
Contact Camo hides or obfuscates email addresses in the source code AND the DOM. Not only this, it ensures the unobfuscated email address is never used in any page or ajax request from its originating context; all handling/processing is done server-side. Once obfuscated, the client-side never sees the original email address again (where obfuscated). The obfuscation (key) is a hash that is stored in a lookup table with the original email address.
A few of the limitations we found in some existing (but great) plugins:
With the Gutenberg block (recommended): Search for “Contact Camo” in the block inserter, drop it onto your page, enter the email address you want to protect, and configure everything else from the visual sidebar. Done. You’ll see a live preview of the output right there in the editor.
With the shortcode: Contact Camo provides a simple shortcode that can be placed anywhere shortcodes are supported. The shortcode’s default output is a clickable link with the obfuscated email address’s generated hash stored in a data attribute. On click, this hash is used to look up the email address and then open the browser’s configured email client with the “To” field pre-populated.
The shortcode accepts parameters for overriding the default output — output a button instead of a link, add CSS classes, change the text output, choose an icon, set a color, and more.
The shortcode also supports an embedded contact form or an optional modal popup contact form as an alternative to triggering the email client.
For our plugin, we wanted to give site administrators the option to either completely hide the email address and never let any end content consumer see any piece of the email, or to hide the email until requested and reveal it in context after a specific action is taken.
We chose to err on the side of simplicity, balanced with enough options to be truly useful. The Gutenberg block makes all of these options accessible without writing a single line of code:
All of the above is also available via the shortcode for developers and power users.
Block Editor:
Search for “Contact Camo” in the block inserter (+), add it to your page, enter an email address in the sidebar, and you’re protected.
Shortcode:
[contactcamo email="[email protected]"]output: a basic anchor tag with default text
[contactcamo email="[email protected]" label="Contact Us" form=true button=true]output: a clickable button with text that says “Contact Us”
[contactcamo email="[email protected]" label="Contact Us" form=true button=true popup=true]output: a clickable button that, when clicked, pops up a modal contact form
[contactcamo email="[email protected]" icon="email" display="both" iconsize="md"]output: a link with a mail icon and text
[contactcamo email="[email protected]" id="one-contactcamo-to-rule-them-all" label="Fly, You Fools!" button=true class="btn btn-lg btn-lt-blue"]output: a large, styled clickable button with custom text
email required string
the email address to be obfuscated
label optional string default=”Email”
the visible text on the link or button
subject optional string
pre-fills the email subject line
icon optional string
a Dashicon slug (e.g. email, phone, admin-users) to show alongside the label
display optional string default=”both”
controls what is shown: both (icon + text), icon (icon only), or text (text only)
iconsize optional string default=”sm”
icon size preset: xs (12px), sm (16px), md (20px), lg (28px), xl (36px), or custom
iconsizepx optional integer default=20
custom icon size in pixels, used when iconsize=custom
textcolor optional string
a hex color value (e.g. #e63946) for the text and icon color
form optional boolean default=false
if true, show a contact form instead of opening an email client
popup optional boolean default=false
if true, show the contact form in a modal overlay when clicked
formtitle optional string default=”Compose Email Message”
the heading shown at the top of the popup form
formwidth optional integer default=325
maximum width of the contact form in pixels; set to 0 for full width
button optional boolean default=false
if true, render a <button> element instead of an <a> tag
containerpadding optional integer default=15
padding in pixels applied to the outer container
class optional string
CSS class(es) to add to the link or button element, space delimited
id optional string
HTML id attribute to add to the link or button element
There is also an admin page for Contact Camo. From this page, you can configure where the contact form redirects after form submission.