{"id":235850,"date":"2025-07-14T15:17:26","date_gmt":"2025-07-14T15:17:26","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/content-time-lock\/"},"modified":"2026-04-21T17:09:11","modified_gmt":"2026-04-21T17:09:11","slug":"content-time-lock","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/content-time-lock\/","author":23163452,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.1","stable_tag":"1.1.1","tested":"6.9.4","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Content Time Lock","header_author":"WPMake","header_description":"Content Time Lock.","assets_banners_color":"192f61","last_updated":"2026-04-21 17:09:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpmake.com\/wordpress-plugins\/","header_author_uri":"https:\/\/www.wpmake.net\/timed-content-locker\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":460,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"wpmakedev","date":"2025-07-14 15:17:00"},"1.1.0":{"tag":"1.1.0","author":"wpmakedev","date":"2026-04-21 16:54:39"},"1.1.1":{"tag":"1.1.1","author":"wpmakedev","date":"2026-04-21 17:09:11"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3512081,"resolution":"256x256","location":"assets","locale":""},"icon-512x512.png":{"filename":"icon-512x512.png","revision":3512081,"resolution":"512x512","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3512081,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3512081,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3512081,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3512081,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3512081,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3512081,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3512081,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3512081,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3512081,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3512081,"resolution":"8","location":"assets","locale":""}},"screenshots":{"1":"The Time Lock metabox inside the post editor \u2014 set an unlock date, pick a role restriction, and optionally override the global message.","2":"The locked content placeholder as a student sees it, with the countdown timer running.","3":"The three countdown timer styles: text, flip-card, and circular.","4":"The global settings page under Tools \u2192 Content Time Lock.","5":"The All Time Locks admin list \u2014 every locked post with its unlock date and current locked or unlocked status."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[126393,260732,260730,260731,143667],"plugin_category":[],"plugin_contributors":[234352],"plugin_business_model":[],"class_list":["post-235850","plugin","type-plugin","status-publish","hentry","plugin_tags-content-schedule","plugin_tags-course-drip","plugin_tags-drip-content","plugin_tags-restrict-by-date","plugin_tags-timed-content","plugin_contributors-wpmakedev","plugin_committers-wpmakedev"],"banners":{"banner":"https:\/\/ps.w.org\/content-time-lock\/assets\/banner-772x250.png?rev=3512081","banner_2x":"https:\/\/ps.w.org\/content-time-lock\/assets\/banner-1544x500.png?rev=3512081","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/content-time-lock\/assets\/icon-256x256.png?rev=3512081","icon_2x":"https:\/\/ps.w.org\/content-time-lock\/assets\/icon-256x256.png?rev=3512081","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-1.png?rev=3512081","caption":"The Time Lock metabox inside the post editor \u2014 set an unlock date, pick a role restriction, and optionally override the global message."},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-2.png?rev=3512081","caption":"The locked content placeholder as a student sees it, with the countdown timer running."},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-3.png?rev=3512081","caption":"The three countdown timer styles: text, flip-card, and circular."},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-4.png?rev=3512081","caption":"The global settings page under Tools \u2192 Content Time Lock."},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-5.png?rev=3512081","caption":"The All Time Locks admin list \u2014 every locked post with its unlock date and current locked or unlocked status."},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-6.png?rev=3512081","caption":""},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-7.png?rev=3512081","caption":""},{"src":"https:\/\/ps.w.org\/content-time-lock\/assets\/screenshot-8.png?rev=3512081","caption":""}],"raw_content":"<!--section=description-->\n<p>Students who can access your entire course on day one will binge it. By week three they are stuck, overwhelmed, or gone \u2014 and asking for refunds. You built the course as a week-by-week journey, but your delivery system does not enforce that pace.<\/p>\n\n<p>Content Time Lock fixes this without a $179-per-year membership plugin. You set an unlock date on any post or page. Until that date, students see a message you write instead of the content. When the date arrives, the content unlocks automatically \u2014 no manual steps, no developer help required.<\/p>\n\n<p><strong>What you can do with it:<\/strong><\/p>\n\n<ul>\n<li><strong>Lock any post, page, or custom post type until a date and time you pick.<\/strong> Set the unlock date right inside the post editor, one field, one click. Works with standard posts, pages, and any custom post type.<\/li>\n<li><strong>Show students a live countdown timer.<\/strong> While the content is locked, students see a ticking timer \u2014 \"Unlocks in 3 days, 4 hours, 12 minutes.\" Three display styles to choose from: simple text, flip-card, or circular. When the countdown hits zero, the page tells them the content just unlocked and prompts a refresh.<\/li>\n<li><strong>Restrict by user role.<\/strong> Choose whether to lock content for all logged-in users, specific roles only, or guest visitors. Administrators always see everything regardless of lock settings.<\/li>\n<li><strong>Write your own locked-state message.<\/strong> Replace the default placeholder text with whatever you want students to see \u2014 HTML supported. Set a global default and override it per post when you need different messages for different lessons.<\/li>\n<li><strong>Add a call-to-action button on the locked screen.<\/strong> Point students somewhere useful while they wait \u2014 a prerequisite lesson, a community forum, or a welcome page. Custom label and URL, toggled per post.<\/li>\n<\/ul>\n\n<p><strong>What this plugin does not do:<\/strong> Content Time Lock has no payment processing, no email opt-in gates, and no membership tiers \u2014 it locks and unlocks content by date and user role, nothing else.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>content-time-lock<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install through <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Tools \u2192 Content Time Lock<\/strong> to set your global defaults \u2014 lock message, countdown style, and custom CSS class.<\/li>\n<li>Open any post or page, find the <strong>Time Lock<\/strong> metabox, check <strong>Enable Time Lock<\/strong>, choose who to restrict, set your unlock date and time, and save.<\/li>\n<li>That is it. The content is now hidden until the date you set.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20my%20students%20need%20an%20account%3F\"><h3>Do my students need an account?<\/h3><\/dt>\n<dd><p>Yes, for most setups. The plugin restricts content by user role \u2014 so to keep lessons away from everyone except paying students, those students need a WordPress user account with the right role. You can create accounts manually, let students register themselves, or connect any plugin that assigns roles on signup or purchase (WooCommerce + User Role Editor, for example). Guest lockout is also available if you want to block unregistered visitors entirely.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20my%20theme%3F\"><h3>Will this work with my theme?<\/h3><\/dt>\n<dd><p>Almost certainly yes. The plugin hooks into <code>the_content<\/code> filter \u2014 the standard WordPress mechanism that every well-built theme uses to output post content. It also has specific compatibility handling for Elementor, Beaver Builder, and SiteOrigin Page Builder. If you hit an issue with a particular theme or builder, open a support thread with the theme name and we will take a look.<\/p><\/dd>\n<dt id=\"can%20i%20drip%20content%20based%20on%20when%20someone%20registers%3F\"><h3>Can I drip content based on when someone registers?<\/h3><\/dt>\n<dd><p>Not currently. Unlock dates are fixed calendar dates \u2014 one date applies to all users. If Lesson 2 should unlock on March 10th for your entire cohort, this plugin handles that cleanly. If you need Lesson 2 to unlock exactly seven days after each individual student signs up, you need a plugin that tracks per-user enrollment dates (LearnDash or LifterLMS, for example). Relative unlock dates based on registration are on our feature roadmap.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, indirectly. Content Time Lock does not connect to WooCommerce orders or subscriptions directly \u2014 it does not know when someone purchased. What it does do is restrict content by WordPress user role. If you use WooCommerce with a role-assigning plugin (like WooCommerce Memberships or the free User Role Editor), customers who buy get a specific role, and you can lock your lessons to that role with a fixed unlock schedule. WooCommerce decides who has access; this plugin decides when they get it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1 \u2013 21\/04\/2024<\/h4>\n\n<ul>\n<li>Fix   - Metabox design.<\/li>\n<\/ul>\n\n<h4>1.1.0 \u2013 21\/04\/2024<\/h4>\n\n<ul>\n<li>Lock any post, page, or custom post type until a specific date and time.<\/li>\n<li>Role-based restrictions: lock content for all logged-in users, specific roles, or guests.<\/li>\n<li>Live countdown timer in three display styles: text, flip-card, and circular SVG.<\/li>\n<li>Per-post settings override global defaults for lock message, countdown visibility, timer style, and CTA button.<\/li>\n<li>Call-to-action button with custom label and URL on the locked-content screen.<\/li>\n<li>Administrators always bypass all locks.<\/li>\n<li>Page builder compatibility for Elementor, Beaver Builder, and SiteOrigin.<\/li>\n<li>Global settings page under Content Time Lock admin menu.<\/li>\n<li>All Time Locks admin list with status badges and unlock-date sorting.<\/li>\n<\/ul>\n\n<h4>1.0.0 - 07\/14\/2025<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Lock WordPress posts until a scheduled date. Automatically drip course lessons week by week for logged-in students \u2014 no membership plugin needed.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/235850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=235850"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpmakedev"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=235850"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=235850"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=235850"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=235850"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=235850"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=235850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}