{"id":232907,"date":"2025-05-24T20:01:18","date_gmt":"2025-05-24T20:01:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wptinykit-simple-post-expiration-auto-draft-delete-or-redirect\/"},"modified":"2025-05-24T20:16:59","modified_gmt":"2025-05-24T20:16:59","slug":"wptinykit-post-expiration","status":"closed","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/wptinykit-post-expiration\/","author":23294715,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.8.5","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"WPTinyKit \u2013 Simple Post Expiration (Auto Draft, Delete or Redirect)","header_author":"WebCrafter Agency","header_description":"Automatically expire posts with custom actions. Supports redirect after draft, post deletion, and cron-based cleanup.","assets_banners_color":"a1bfd5","last_updated":"2025-05-24 20:16:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/wptinykit-post-expiration","header_author_uri":"https:\/\/webcrafter.agency\/","rating":0,"author_block_rating":0,"active_installs":30,"downloads":380,"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":"webcrafteragency","date":"2025-05-24 20:16:59"}},"upgrade_notice":{"1.0.0":"<p>First public release<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3303452,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3303452,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3303452,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3303452,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3300012,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3303452,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3300012,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Expiration meta box in the post editor","2":"Settings screen with post type selection","3":"Instruction tab with usage guide","4":"Expiration column in admin post list"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[242796,3786,1946,6501,727],"plugin_category":[],"plugin_contributors":[242797],"plugin_business_model":[],"class_list":["post-232907","plugin","type-plugin","status-closed","hentry","plugin_tags-auto-draft","plugin_tags-cleanup","plugin_tags-expiration","plugin_tags-post-status","plugin_tags-redirect","plugin_contributors-webcrafteragency","plugin_committers-webcrafteragency"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/wptinykit-post-expiration_a1bfd5.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/wptinykit-post-expiration\/assets\/screenshot-1.png?rev=3303452","caption":"Expiration meta box in the post editor"},{"src":"https:\/\/ps.w.org\/wptinykit-post-expiration\/assets\/screenshot-2.png?rev=3300012","caption":"Settings screen with post type selection"},{"src":"https:\/\/ps.w.org\/wptinykit-post-expiration\/assets\/screenshot-3.png?rev=3303452","caption":"Instruction tab with usage guide"},{"src":"https:\/\/ps.w.org\/wptinykit-post-expiration\/assets\/screenshot-4.png?rev=3300012","caption":"Expiration column in admin post list"}],"raw_content":"<!--section=description-->\n<p><strong>WPTinyKit \u2013 Simple Post Expiration<\/strong> is a lightweight and flexible plugin for scheduling automatic content expiration in WordPress.<\/p>\n\n<p>Whether you're running a limited-time offer, publishing time-sensitive announcements, or managing event listings, this plugin gives you full control over what happens when your content expires.<\/p>\n\n<p>You can choose what happens to a post after it expires:\n- Change status to <strong>draft<\/strong>\n- <strong>Permanently delete<\/strong> the post\n- Set a <strong>301 redirect<\/strong> to any URL (if action is \u201cdraft\u201d)<\/p>\n\n<p>\ud83d\udd39 Ideal for time-sensitive content, campaigns, offers, landing pages, or temporary announcements.<\/p>\n\n<h3>\u2705 Key Features<\/h3>\n\n<ul>\n<li>Works with <strong>Posts and Pages by default<\/strong><\/li>\n<li>Enable for <strong>any custom post type<\/strong><\/li>\n<li>Add an <strong>optional redirect URL<\/strong> after expiration<\/li>\n<li>Clean and minimal UI integrated into post editor<\/li>\n<li><strong>Automatic cleanup<\/strong> with built-in WP-Cron (every 5 minutes)<\/li>\n<li>Manual expiration check <strong>when visiting the post<\/strong><\/li>\n<li>Admin column showing expiration status (Expired, Soon, Active)<\/li>\n<li>Full uninstall support \u2013 removes all data cleanly<\/li>\n<\/ul>\n\n<h3>\ud83d\udd27 Use Cases<\/h3>\n\n<ul>\n<li>Expire marketing landing pages after campaign ends<\/li>\n<li>Hide outdated product announcements<\/li>\n<li>Redirect expired posts to your main shop or category page<\/li>\n<li>Auto-delete obsolete CPT items (events, offers, ads, etc.)<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>This plugin is licensed under the GPLv2 or later.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the \u201cPlugins\u201d screen in WordPress<\/li>\n<li>The plugin works automatically with <strong>Posts and Pages<\/strong><\/li>\n<li>To enable expiration for custom post types, go to <strong>Settings \u2192 Post Expiration \u2192 Settings tab<\/strong><\/li>\n<li>Edit any post, set the expiration date\/time, choose an action, and optionally enter a redirect URL<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20it%20work%20with%20custom%20post%20types%3F'><h3>Does it work with custom post types?<\/h3><\/dt>\n<dd><p>Yes. Posts and Pages are enabled by default. You can enable any public custom post types via <strong>Settings \u2192 Post Expiration \u2192 Settings tab<\/strong>.<\/p><\/dd>\n<dt id='will%20the%20plugin%20delete%20posts%20automatically%3F'><h3>Will the plugin delete posts automatically?<\/h3><\/dt>\n<dd><p>Only if you explicitly choose the \u201cDelete\u201d action. Otherwise, it just changes status or redirects visitors.<\/p><\/dd>\n<dt id='what%20if%20a%20visitor%20accesses%20a%20post%20after%20expiration%3F'><h3>What if a visitor accesses a post after expiration?<\/h3><\/dt>\n<dd><p>If you selected the \u201cDraft\u201d action and provided a redirect URL, the plugin will instantly redirect the visitor using 301.<\/p><\/dd>\n<dt id='does%20it%20rely%20on%20wp%20cron%3F'><h3>Does it rely on WP Cron?<\/h3><\/dt>\n<dd><p>Yes. A check runs every 5 minutes in the background. Additionally, expiration is enforced in real-time when a post is accessed.<\/p><\/dd>\n<dt id='is%20this%20plugin%20gdpr-compliant%3F'><h3>Is this plugin GDPR-compliant?<\/h3><\/dt>\n<dd><p>Yes. The plugin does not collect or store any user data.<\/p><\/dd>\n<dt id='does%20it%20support%20gutenberg%20or%20classic%20editor%3F'><h3>Does it support Gutenberg or Classic Editor?<\/h3><\/dt>\n<dd><p>Yes. The plugin works with both Gutenberg and Classic Editor. The expiration meta box appears in the sidebar or below the editor, depending on the editor used.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Support for posts, pages and CPTs<\/li>\n<li>Expiration actions: draft, delete, redirect<\/li>\n<li>Admin UI and meta box<\/li>\n<li>Cron and real-time expiration logic<\/li>\n<li>Instruction tab, full uninstall, translation-ready<\/li>\n<\/ul>","raw_excerpt":"Schedule expiration for posts, pages, or CPTs. Change status, delete content, or redirect visitors after expiration \u2014 simple and lightweight.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/232907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=232907"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webcrafteragency"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=232907"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=232907"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=232907"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=232907"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=232907"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=232907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}