{"id":401456,"date":"2026-11-12T19:23:21","date_gmt":"2026-11-12T19:23:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/clientcopy-portal\/"},"modified":"2026-11-12T19:23:00","modified_gmt":"2026-11-12T19:23:00","slug":"clientcopy-portal","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/clientcopy-portal\/","author":23602035,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.0","stable_tag":"2.1.0","tested":"7.1.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"ClientCopy Portal","header_author":"ClientCopy","header_description":"Stop chasing clients for content. Collect it, approve it, publish it, all inside WordPress.","last_updated":"2026-11-12 19:23:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/clientcopy.godhustler90956.workers.dev","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.0":{"tag":"2.1.0","author":"buildwithsud","date":"2026-11-12 19:23:00","revision":3799111}},"upgrade_notice":{"2.0.0":"<p>If you use ClientCopy Pro, install the new ClientCopy Pro add-on after updating: its features moved out of this plugin. Your license and settings are kept.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3799111,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3799111,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3799111,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3799111,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[5590,191578,17989,292378,9936],"plugin_category":[],"plugin_contributors":[292379],"plugin_business_model":[],"class_list":["post-401456","plugin","type-plugin","status-publish","hentry","plugin_tags-agency","plugin_tags-client-onboarding","plugin_tags-client-portal","plugin_tags-content-collection","plugin_tags-web-design","plugin_contributors-buildwithsud","plugin_committers-buildwithsud"],"banners":{"banner":"https:\/\/ps.w.org\/clientcopy-portal\/assets\/banner-772x250.png?rev=3799111","banner_2x":"https:\/\/ps.w.org\/clientcopy-portal\/assets\/banner-1544x500.png?rev=3799111","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/clientcopy-portal\/assets\/icon-128x128.png?rev=3799111","icon_2x":"https:\/\/ps.w.org\/clientcopy-portal\/assets\/icon-256x256.png?rev=3799111","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Stop chasing clients for text, photos and files. With ClientCopy Portal you create a project, send the client one private link, and they fill in a checklist. You review each item and approve it, and the approved content is written into the page, post field or ACF field you chose.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li><strong>Create a project<\/strong> for a client, optionally from a template (a \"5 Page Business Site\" template is included).<\/li>\n<li><strong>Add items<\/strong>: short text, rich text, an image, a gallery, a file, a URL, or credentials. Map each one to a page or post (title, content, excerpt, featured image), a custom field or an ACF field.<\/li>\n<li><strong>Send the link.<\/strong> The client opens it with no account and no password, types, uploads files and sees their work saved as they go.<\/li>\n<li><strong>Review.<\/strong> Approve an item to write it to the site, or send it back with a note. The item reopens for the client and they get an email.<\/li>\n<li><strong>Reminders<\/strong> go out automatically for outstanding items after the due date.<\/li>\n<\/ol>\n\n<p><strong>Good to know<\/strong><\/p>\n\n<ul>\n<li>No limits on projects or templates.<\/li>\n<li>Approved content is only written to draft, pending or scheduled pages unless you allow writing to published content in Settings, so nothing changes on a live page by surprise.<\/li>\n<li>Everything runs on your own site. The plugin makes no connections to outside servers and sends no data to the developer.<\/li>\n<li>Logins and other credentials a client sends are encrypted, never written to a page, and each time you view one is recorded in the activity log.<\/li>\n<li>A \"powered by ClientCopy\" line is available for the client portal and emails, and it is off unless you turn it on.<\/li>\n<li>Works with ACF (optional). The client portal is its own page, so your theme does not affect it.<\/li>\n<\/ul>\n\n<p><strong>Optional Pro add-on<\/strong><\/p>\n\n<p>A separate add-on, ClientCopy Pro, is sold on the developer's website. It adds your own logo, colours and name to the client portal and emails, your own email wording, a reply-to address, a custom portal address and updates in your dashboard. It is not needed to use ClientCopy Portal.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>clientcopy-portal<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin from the Plugins screen.<\/li>\n<li>Activate it. A <strong>ClientCopy<\/strong> item appears in the admin menu.<\/li>\n<li>Open <strong>ClientCopy \u2192 Projects \u2192 New project<\/strong> to start.<\/li>\n<\/ol>\n\n<p>Portal links look like <code>yoursite.com\/clientcopy\/portal\/{long-random-code}\/<\/code>. If you use a page cache or CDN, exclude <code>\/clientcopy\/<\/code> and <code>\/wp-json\/clientcopy\/<\/code> from it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20client%20need%20an%20account%3F\"><h3>Does the client need an account?<\/h3><\/dt>\n<dd><p>No. They open their private link. You can replace the link at any time and the old one stops working at once.<\/p><\/dd>\n<dt id=\"where%20are%20the%20client%27s%20files%20stored%3F\"><h3>Where are the client's files stored?<\/h3><\/dt>\n<dd><p>In your normal WordPress uploads folder and Media Library, under hard-to-guess names. Do not treat the Media Library as private storage. Put anything secret in a <strong>Credentials<\/strong> item, which is encrypted.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20contact%20any%20outside%20service%3F\"><h3>Does the plugin contact any outside service?<\/h3><\/dt>\n<dd><p>No. The plugin makes no requests to other servers. The links to documentation and to the optional Pro add-on in the admin are ordinary links that open when you click them. Emails are sent through your site's own email setup (<code>wp_mail<\/code>).<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data if I delete the plugin?<\/h3><\/dt>\n<dd><p>It is kept, because it is client work. To remove the tables as well, add <code>define( 'CLIENTCOPY_REMOVE_DATA_ON_UNINSTALL', true );<\/code> to <code>wp-config.php<\/code> before deleting the plugin.<\/p><\/dd>\n<dt id=\"can%20i%20change%20what%20is%20shown%20on%20the%20client%20portal%3F\"><h3>Can I change what is shown on the client portal?<\/h3><\/dt>\n<dd><p>You can turn the small \"powered by\" line on or off in Settings. Your own logo, colours and name are part of the optional Pro add-on.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%3F\"><h3>Where is the source code?<\/h3><\/dt>\n<dd><p>The plugin ships with its unminified source: the <code>src\/<\/code> folder, <code>package.json<\/code> and <code>webpack.config.js<\/code>. To rebuild the files in <code>build\/<\/code>, run <code>npm install<\/code> and then <code>npm run build<\/code> inside the plugin folder.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>New hooks for add-ons: <code>clientcopy_activity_logged<\/code> (fires for every project event) and <code>clientcopy_project_deleted<\/code>. The activity list shows a readable summary for events that add-ons log.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>ClientCopy Portal is now fully free: no limits on projects or templates.<\/li>\n<li>The paid features (your own logo, colours and name, email wording, reply-to, custom portal path, dashboard updates) moved to a separate add-on, ClientCopy Pro. Sites that had a Pro license keep their license and settings: install the ClientCopy Pro add-on to turn the paid features back on.<\/li>\n<li>The \"powered by ClientCopy\" line is now off by default and can be turned on in Settings.<\/li>\n<li>Client links on a custom path from version 1.x keep working.<\/li>\n<li>New hooks for add-ons.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Fix: the \"Needs your review\" and \"Overdue\" figures counted archived projects. They now count active projects only.<\/li>\n<li>Fix: the one-line preview of a client's text ran a heading and the next paragraph together.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fix: on sites with \"Plain\" permalinks the client link opened the home page. Links now work with every permalink setting.<\/li>\n<li>A Docs link on the Plugins page and in the ClientCopy header.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Security hardening: API responses are never cacheable, client uploads get unguessable file names, and client content is cleaned again before it is shown in the admin.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>New logo in the admin menu and header.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New invite email and an optional \"item approved\" email, with a live preview and a test email.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Collect website content from your clients through one private link, approve each item, and write it straight into your pages.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/401456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=401456"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/buildwithsud"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=401456"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=401456"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=401456"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=401456"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=401456"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=401456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}