Description
Clipboard Snippet Copier lets you share ready-to-use shortcodes, demo layouts, or any reusable code snippets with your visitors. Click a button and the snippet is copied straight to their clipboard. No manual selection, no copy/paste errors.
You decide whether the snippet stays hidden (fetched only when copied) or is displayed inline as a styled code block. Either mode is one click away for the visitor.
Why use it?
- Sell or showcase shortcodes โ give buyers a “Copy Demo” button without exposing messy markup.
- Document your code โ share PHP / JS / CSS examples on tutorial pages with a proper copy button.
- Reduce support tickets โ eliminate “the shortcode didn’t work” issues caused by smart quotes, missing brackets, or whitespace mangling.
- Track engagement โ built-in per-snippet copy counter shows what your audience actually uses.
Key features
- ๐ One-click copy to clipboard with success/failure tooltip.
- ๐ Hidden mode โ the snippet is stored in the admin and fetched via AJAX only when copied (never rendered in the HTML).
- ๐๏ธ Inline mode โ render the snippet visibly as a
<pre><code>block with a copy button on top. - ๐งฑ Gutenberg block with sidebar controls (snippet ID, label, inline toggle, language hint).
- ๐ข Shortcode for the Classic Editor, WPBakery, Elementor and any other builder.
- ๐งฎ Copy counter โ sortable “Copies” column on the admin list, so you can see what’s popular.
- โ๏ธ Settings page โ default label, default CSS class, tooltip text, guest-access toggle.
- ๐ CodeMirror editor on the snippet edit screen โ keeps your indentation and angle brackets intact.
- โก Tiny footprint โ no jQuery dependency on the frontend, no external libraries.
- ๐ Translation-ready.
How it works
- You add a snippet in Code Snippets Add New and note its ID.
- You drop the Clipboard Snippet block (or the
[clipsnco_code_copy_btn]shortcode) onto any page. - When a visitor clicks the button, the snippet is fetched over AJAX and written to their clipboard โ without ever appearing in the page source (unless you turned on inline mode).
Usage
Quick start (shortcode)
[clipsnco_code_copy_btn id="123" label="Copy Code"]
Where 123 is the ID of your snippet (visible in the Code Snippets admin list).
Shortcode attributes
id(required, integer) โ the snippet ID.label(optional, string) โ button text. Defaults to the value set on the Settings page.class(optional, string) โ extra CSS classes added to the button.inline(optional, “yes” / “no”) โ whenyes, the snippet is rendered as a<pre><code>block with a copy button on top. Defaultno.language(optional, string) โ e.g.php,js,css. Adds alanguage-xxxclass on the<code>element so syntax-highlighter libraries (Prism.js, highlight.js) can colourise it.
Examples:
- Hidden snippet, custom label:
[clipsnco_code_copy_btn id="42" label="Copy shortcode"] - Inline display with PHP highlighting:
[clipsnco_code_copy_btn id="42" inline="yes" language="php"] - Extra CSS class for theme styling:
[clipsnco_code_copy_btn id="42" class="my-cta-btn"]
Gutenberg block
In the block editor, search for “Clipboard Snippet” and insert it. The sidebar lets you set:
- Snippet ID โ the post ID of the snippet to copy.
- Button label โ overrides the default label.
- Show code inline โ toggle hidden vs inline display.
- Language hint โ optional syntax-highlighter class.
The block is server-rendered, so you can switch between block and shortcode usage freely.
Alternative button markup
If your page builder won’t let you drop a <button> element, you can put any element on the page with the data attribute or the helper class โ the plugin’s frontend script picks it up automatically:
<a href="#" class="wcp-code-copy-btn" data-codecopy-id="123">Copy</a>
โฆor, when even attributes aren’t allowed, use the class-only form:
<span class="wcp-code-copy-btn data-codecopy-id-123">Copy</span>
Settings
Code Snippets Settings lets you configure:
- Default button label
- Default CSS class applied to every button
- Tooltip text shown on copy success / failure
- Whether non-logged-in visitors are allowed to copy snippets
Copy counter
Every successful copy by a non-editor user bumps a _clipsnco_copy_count post meta value. The count is shown in the Copies column on the snippets admin list. Click the column header to sort by most-copied.
Styling
The button receives the class wcp-code-copy-btn plus anything you add via the shortcode/block class attribute. The inline-mode wrapper uses these classes (override them from your theme):
.clipsnco-inline-wrapโ outer container.clipsnco-inline-toolbarโ top bar containing the copy button.clipsnco-preโ the<pre>element.clipsnco-codeโ the<code>element (also getslanguage-xxxwhen set)
Screenshots

The Code Snippets admin list with the ID, Shortcode and Copies columns. 
Editing a snippet โ the CodeMirror editor keeps indentation and syntax intact. 
The Settings page (default label, default class, tooltip text, guest-access toggle). 
The Clipboard Snippet Gutenberg block with its sidebar controls. 
A copy button on the frontend, with the success tooltip. 
Inline mode rendering the snippet as a styled <pre><code>block.
Blocks
This plugin provides 1 block.
- Clipboard Snippet
Installation
- Upload the plugin files to
/wp-content/plugins/clipboard-snippet-copier, or install it directly from the WordPress.org repository. - Activate the plugin through the Plugins screen.
- Go to Code Snippets Add New to create your first snippet.
- Insert the Clipboard Snippet block on any page, or paste the shortcode below.
FAQ
-
Yes. Drop as many blocks/shortcodes as you like โ each one copies its own snippet.
-
Will the snippet appear in the page source?
-
Only if you enable inline mode. In the default hidden mode the snippet lives in the WordPress admin and is fetched over AJAX the moment the button is clicked.
-
Does it work with page builders like WPBakery or Elementor?
-
Yes. Place the
[clipsnco_code_copy_btn]shortcode in any text/HTML widget, content block or builder element. -
Yes โ that’s inline mode. Set
inline="yes"on the shortcode or flip the Show code inline toggle on the block. -
Does this play nicely with syntax highlighters?
-
Yes. In inline mode, add the
languageattribute (language="php",language="js", โฆ) and the plugin emits a matchinglanguage-xxxclass on the<code>element. Prism.js, highlight.js and most other highlighters pick that up automatically. -
Where can I see how many times a snippet has been copied?
-
Go to Code Snippets in the admin. The Copies column shows the running total; click the header to sort.
-
Can I prevent non-logged-in visitors from copying snippets?
-
Yes. Code Snippets Settings Allow guests controls this.
-
Does the plugin require jQuery?
-
No. The frontend script uses native
fetchand the Clipboard API, with anexecCommandfallback for older/insecure contexts. -
Is the plugin translation-ready?
-
Yes โ text domain
clipboard-snippet-copier, translations loaded from the/languagesfolder.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Clipboard Snippet Copier” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Clipboard Snippet Copier” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.4
- New: Gutenberg block “Clipboard Snippet” with sidebar controls (id, label, inline toggle, language hint).
- New: Inline mode โ render the snippet visibly as a
<pre><code>block with a copy button on top (inline="yes"). - New: Language hint attribute that emits a
language-xxxclass for syntax highlighters. - New: Settings page โ default label, default CSS class, tooltip text, guest-access toggle.
- New: Copy counter per snippet, shown as a sortable admin column.
- New: CodeMirror editor on the snippet edit screen for proper code formatting.
- Improvement: Frontend script no longer depends on jQuery.
- Improvement: Centralised
CLIPSNCO_VERSIONconstant used across asset enqueues. - Improvement: Translations now properly loaded via
load_plugin_textdomain(). - Improvement: Escaped admin column output.
- Improvement: AJAX response now includes a
contentkey (legacyshortcodekey preserved for backwards compatibility). - Fix: Removed stray
console.logfrom the frontend script.
1.2
- Fixed: Resource version not set in call to
wp_enqueue_style().
1.1
- Bug fixes.
1.0
- Initial release of Clipboard Snippet Copier.