{"id":32889,"date":"2014-11-16T20:08:26","date_gmt":"2014-11-16T20:08:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/wp-secure-content\/"},"modified":"2026-10-19T08:47:11","modified_gmt":"2026-10-19T08:47:11","slug":"wp-secure-content","status":"publish","type":"plugin","link":"https:\/\/zul.wordpress.org\/plugins\/wp-secure-content\/","author":11237862,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.1.3","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"WP Secure Content","header_author":"Fahad Mahmood","header_description":"","assets_banners_color":"6cc6c6","last_updated":"2026-10-19 08:47:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/androidbubble.com\/blog\/wordpress\/plugins\/wp-sc","header_author_uri":"http:\/\/www.androidbubbles.com","rating":5,"author_block_rating":0,"active_installs":10,"downloads":7712,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"fahadmahmood","date":"2018-01-05 23:47:46","revision":1797968},"1.1.0":{"tag":"1.1.0","author":"fahadmahmood","date":"2017-07-05 10:41:54","revision":1691150},"1.1.1":{"tag":"1.1.1","author":"fahadmahmood","date":"2017-11-20 09:13:32","revision":1771212},"1.1.2":{"tag":"1.1.2","author":"fahadmahmood","date":"2018-02-04 19:01:30","revision":1815223},"1.1.3":{"tag":"1.1.3","author":"fahadmahmood","date":"2019-05-05 02:03:50","revision":2080721},"1.1.4":{"tag":"1.1.4","author":"fahadmahmood","date":"2020-04-01 08:04:58","revision":2272527},"1.1.5":{"tag":"1.1.5","author":"fahadmahmood","date":"2020-05-16 00:53:42","revision":2305986},"1.1.6":{"tag":"1.1.6","author":"fahadmahmood","date":"2021-09-11 02:29:08","revision":2597134},"1.1.7":{"tag":"1.1.7","author":"fahadmahmood","date":"2022-09-07 12:20:57","revision":2781308},"1.1.8":{"tag":"1.1.8","author":"fahadmahmood","date":"2023-05-24 00:38:15","revision":2916554},"1.1.9":{"tag":"1.1.9","author":"fahadmahmood","date":"2024-11-04 12:42:18","revision":3181406},"1.2.0":{"tag":"1.2.0","author":"fahadmahmood","date":"2025-01-10 18:42:04","revision":3220397},"1.2.1":{"tag":"1.2.1","author":"fahadmahmood","date":"2025-01-11 09:34:14","revision":3220640},"2.0.0":{"tag":"2.0.0","author":"fahadmahmood","date":"2026-10-19 08:47:11","revision":3754323}},"upgrade_notice":{"2.0.0":"<p>This is a full rebuild. Your old exclusions are migrated automatically, but please review Settings \u2192 WP Secure Content after upgrading to confirm your access rules and copy-protection settings.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"1"},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":2305986,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":2305986,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-600x600.png":{"filename":"icon-600x600.png","revision":3754323,"resolution":"600x600","location":"assets","locale":"","width":600,"height":600}},"assets_banners":{"banner-1280x720.png":{"filename":"banner-1280x720.png","revision":3754323,"resolution":"1280x720","location":"assets","locale":"","width":1280,"height":720},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2305986,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2597134,"resolution":"772x250","location":"assets","locale":"","width":940,"height":304}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3754323,"resolution":"1","location":"assets","locale":"","width":1920,"height":1631},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3754323,"resolution":"2","location":"assets","locale":"","width":1920,"height":934},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3754323,"resolution":"3","location":"assets","locale":"","width":1920,"height":934},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3754323,"resolution":"4","location":"assets","locale":"","width":1903,"height":23911}},"screenshots":{"1":"Content protection settings \u2014 content types, defaults, teaser and lock messages.","2":"Copy protection settings.","3":"The Protected content list.","4":"Category rules"}},"plugin_section":[],"plugin_tags":[18193,19898,30794,17051,286],"plugin_category":[45],"plugin_contributors":[79969,231855],"plugin_business_model":[],"class_list":["post-32889","plugin","type-plugin","status-publish","hentry","plugin_tags-content-protection","plugin_tags-members-only","plugin_tags-password-protect","plugin_tags-restrict-content","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-fahadmahmood","plugin_contributors-invoicepress","plugin_committers-fahadmahmood","plugin_support_reps-acrobaticsjs","plugin_support_reps-codingchamp","plugin_support_reps-danialcooper","plugin_support_reps-ibulbworksupport","plugin_support_reps-jamescharles9","plugin_support_reps-jqueryacrobatics","plugin_support_reps-richiewatson"],"banners":{"banner":"https:\/\/ps.w.org\/wp-secure-content\/assets\/banner-772x250.png?rev=2597134","banner_2x":"https:\/\/ps.w.org\/wp-secure-content\/assets\/banner-1544x500.png?rev=2305986","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wp-secure-content\/assets\/icon-128x128.gif?rev=2305986","icon_2x":"https:\/\/ps.w.org\/wp-secure-content\/assets\/icon-256x256.gif?rev=2305986","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wp-secure-content\/assets\/screenshot-1.png?rev=3754323","caption":"Content protection settings \u2014 content types, defaults, teaser and lock messages."},{"src":"https:\/\/ps.w.org\/wp-secure-content\/assets\/screenshot-2.png?rev=3754323","caption":"Copy protection settings."},{"src":"https:\/\/ps.w.org\/wp-secure-content\/assets\/screenshot-3.png?rev=3754323","caption":"The Protected content list."},{"src":"https:\/\/ps.w.org\/wp-secure-content\/assets\/screenshot-4.png?rev=3754323","caption":"Category rules"}],"raw_content":"<!--section=description-->\n<p>WP Secure Content lets you lock down any post, page, or WooCommerce product without writing a single line of code. Choose per item whether content is public, members only, restricted to specific roles, or protected by a password \u2014 and optionally add copy protection on top.<\/p>\n\n<p><strong>Why use it?<\/strong><\/p>\n\n<ul>\n<li>Turn selected content into a members-only area without a heavy membership plugin.<\/li>\n<li>Gate premium products or downloads behind a password or role.<\/li>\n<li>Show a teaser to logged-out visitors to encourage sign-ups.<\/li>\n<li>Lock just part of a page with a shortcode when the whole page should stay public.<\/li>\n<\/ul>\n\n<p><strong>Core features<\/strong><\/p>\n\n<ul>\n<li><strong>Per-item \"Content access\" box<\/strong> \u2014 set access on each post, page, or product: public, members only, specific roles, or password protected.<\/li>\n<li><strong>Sensible defaults per content type<\/strong> \u2014 choose a default access level for posts, pages, and products; override it per item whenever needed.<\/li>\n<li><strong>Bulk actions<\/strong> \u2014 apply access changes to many posts at once from the post list screens.<\/li>\n<li><strong>Teaser previews<\/strong> \u2014 display a short excerpt above the lock message to give visitors a taste of what's behind the gate.<\/li>\n<li><strong>Custom lock messages<\/strong> \u2014 separate, editable messages for logged-out visitors, disallowed roles, and the password prompt.<\/li>\n<li><strong>Brute-force protection<\/strong> \u2014 passwords are rate-limited to slow down guessing attempts.<\/li>\n<li><strong>Deep protection<\/strong> \u2014 also protects excerpts, the REST API, and feeds so the content can't leak through alternate channels.<\/li>\n<li><strong>WooCommerce aware<\/strong> \u2014 locked products cannot be purchased, and access is enforced on the product page.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 wrap any part of a page in <code>[wpsc_protect]...[\/wpsc_protect]<\/code> to lock only that block.<\/li>\n<li><strong>Optional copy protection<\/strong> \u2014 block right-click, text selection, copy keys, dragging, and printing. Configurable and off by default.<\/li>\n<li><strong>Administrator bypass<\/strong> \u2014 admins and post editors can always view protected content, and skip copy protection.<\/li>\n<\/ul>\n\n<p><strong>Where to configure it<\/strong><\/p>\n\n<p>Go to <strong>Settings \u2192 WP Secure Content<\/strong> and use the tabs:<\/p>\n\n<ol>\n<li><strong>Content protection<\/strong> \u2014 enable content types, set default access, teaser and lock messages, and exceptions.<\/li>\n<li><strong>Copy protection<\/strong> \u2014 toggle and tune the copy-protection behaviours.<\/li>\n<li><strong>Protected content<\/strong> \u2014 review every item that is currently locked.<\/li>\n<li><strong>Category rules<\/strong> \u2014 apply access rules to whole categories.<\/li>\n<\/ol>\n\n<h3>Usage<\/h3>\n\n<p><strong>Lock a single item<\/strong><\/p>\n\n<p>Edit the post, page, or product and open the <strong>Content access<\/strong> box in the sidebar. Select Public, Members only, Specific roles, or Password, then save.<\/p>\n\n<p><strong>Lock part of a page with a shortcode<\/strong><\/p>\n\n<p>[code]\n[wpsc_protect]Members only text[\/wpsc_protect]\n[\/code]<\/p>\n\n<p>Restrict to specific roles and show a custom message:<\/p>\n\n<p>[code]\n[wpsc_protect roles=\"subscriber,customer\" message=\"Customers only.\"]...[\/wpsc_protect]\n[\/code]<\/p>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>roles<\/code> \u2014 comma-separated role slugs allowed to view the block.<\/li>\n<li><code>message<\/code> \u2014 custom message shown when the visitor cannot view the block.<\/li>\n<li><code>password<\/code> \u2014 require a password for the block.<\/li>\n<\/ul>\n\n<p><strong>Set defaults for a content type<\/strong><\/p>\n\n<p>On the <strong>Content protection<\/strong> tab, enable the content types you want to lock and choose a default access level for each. Individual items can still override the default.<\/p>\n\n<p><strong>Bulk edit access<\/strong><\/p>\n\n<p>From the post list screen, select multiple items, choose the access action in the <strong>Bulk actions<\/strong> dropdown, and apply.<\/p>\n\n<h3>Pro<\/h3>\n\n<p>Pro adds unlock-by-purchase (WooCommerce), access windows, multiple passwords, and category rules.<\/p>\n\n<p><strong>Enabling Pro<\/strong><\/p>\n\n<ol>\n<li>Drop the <code>pro\/<\/code> folder into the plugin folder.<\/li>\n<li>Visit <strong>Settings \u2192 WP Secure Content<\/strong> \u2014 Pro features appear automatically.<\/li>\n<li>Remove the <code>pro\/<\/code> folder at any time to return to the free version. Your data is preserved.<\/li>\n<\/ol>\n\n<h3>License<\/h3>\n\n<p>WP Secure Content is free software, released under the GPLv2 or later.<\/p>\n\n<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wp-secure-content<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin through <strong>Plugins \u2192 Add New<\/strong> in WordPress.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Open <strong>Settings \u2192 WP Secure Content<\/strong> to choose your defaults and messages.<\/li>\n<li>Edit any post, page, or product and use the <strong>Content access<\/strong> box to override access for that item.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Products can be locked like any other content type, and locked products cannot be purchased.<\/p><\/dd>\n<dt id=\"can%20i%20protect%20only%20part%20of%20a%20page%3F\"><h3>Can I protect only part of a page?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>[wpsc_protect]<\/code> shortcode to wrap the section you want to lock.<\/p><\/dd>\n<dt id=\"are%20excerpts%2C%20the%20rest%20api%20and%20feeds%20protected%20too%3F\"><h3>Are excerpts, the REST API and feeds protected too?<\/h3><\/dt>\n<dd><p>Yes. When an item is locked, its excerpt, REST API representation, and feed entry are protected as well.<\/p><\/dd>\n<dt id=\"can%20administrators%20always%20see%20locked%20content%3F\"><h3>Can administrators always see locked content?<\/h3><\/dt>\n<dd><p>By default, yes. Administrators and post editors can bypass protection. You can turn this off on the <strong>Content protection<\/strong> tab.<\/p><\/dd>\n<dt id=\"is%20copy%20protection%20enabled%20by%20default%3F\"><h3>Is copy protection enabled by default?<\/h3><\/dt>\n<dd><p>No. Copy protection is optional and configurable on the <strong>Copy protection<\/strong> tab.<\/p><\/dd>\n<dt id=\"does%20it%20support%20password-protected%20items%3F\"><h3>Does it support password-protected items?<\/h3><\/dt>\n<dd><p>Yes, and password attempts are rate-limited to reduce brute-force guessing.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20old%20exclusions%20when%20i%20upgrade%20to%202.0%3F\"><h3>What happens to my old exclusions when I upgrade to 2.0?<\/h3><\/dt>\n<dd><p>Old exclusions are migrated automatically. Check <strong>Protected content<\/strong> after upgrading to review the result.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20alongside%20a%20membership%20plugin%3F\"><h3>Can I use this alongside a membership plugin?<\/h3><\/dt>\n<dd><p>Yes. Access is role-based, so it composes with any plugin that manages WordPress roles.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Rebuilt from the ground up.<\/li>\n<li>Per-post access rules with a \"Content access\" box on the edit screen.<\/li>\n<li>Clear settings organised into tabs.<\/li>\n<li>New Protected content list.<\/li>\n<li><code>[wpsc_protect]<\/code> shortcode for locking part of a page.<\/li>\n<li>REST API and excerpt protection.<\/li>\n<li>Copy protection is now optional and configurable.<\/li>\n<li>Old exclusions are migrated automatically.<\/li>\n<\/ul>","raw_excerpt":"Control who can see your posts, pages and WooCommerce products: members only, specific roles or a password, with optional copy protection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/32889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=32889"}],"author":[{"embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fahadmahmood"}],"wp:attachment":[{"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=32889"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=32889"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=32889"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=32889"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=32889"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zul.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=32889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}