{"id":261536,"date":"2025-12-07T10:36:58","date_gmt":"2025-12-07T10:36:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fresh-reminder\/"},"modified":"2025-12-07T10:36:30","modified_gmt":"2025-12-07T10:36:30","slug":"fresh-reminder","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/fresh-reminder\/","author":23381624,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"6.9.4","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Fresh Reminder","header_author":"Hasun Akash Bandara","header_description":"Flags posts older than a configurable threshold and reminds editors to update them.","assets_banners_color":"a775e7","last_updated":"2025-12-07 10:36:30","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.buymeacoffee.com\/hasunbandara","header_plugin_uri":"https:\/\/github.com\/hasunB\/fresh-reminder","header_author_uri":"https:\/\/github.com\/hasunB","rating":0,"author_block_rating":0,"active_installs":0,"downloads":122,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"hasunbandara","date":"2025-12-07 10:36:30"}},"upgrade_notice":{"1.2.0":"<p>Introduces cron jobs for email notifications, admin alerts, translation support, and Gutenberg block integration.\nAdds filters, search, CheckBucket, and customizable thresholds for easier content management.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3413449,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3413449,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3413449,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500-rtl.png":{"filename":"banner-1544x500-rtl.png","revision":3413449,"resolution":"1544x500","location":"assets","locale":""},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3413449,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250-rtl.png":{"filename":"banner-772x250-rtl.png","revision":3413449,"resolution":"772x250","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3413449,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3413449,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3413449,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3413449,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Home page","2":"Check bucket page","3":"Settings page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[4917,251829,251830,186,251831],"plugin_category":[55],"plugin_contributors":[251832],"plugin_business_model":[],"class_list":["post-261536","plugin","type-plugin","status-publish","hentry","plugin_tags-content-management","plugin_tags-post-updates","plugin_tags-posts-reminder","plugin_tags-seo","plugin_tags-stale-posts","plugin_category-seo-and-marketing","plugin_contributors-hasunbandara","plugin_committers-hasunbandara"],"banners":{"banner":"https:\/\/ps.w.org\/fresh-reminder\/assets\/banner-772x250.png?rev=3413449","banner_2x":"https:\/\/ps.w.org\/fresh-reminder\/assets\/banner-1544x500.png?rev=3413449","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/fresh-reminder\/assets\/icon.svg?rev=3413449","icon":"https:\/\/ps.w.org\/fresh-reminder\/assets\/icon.svg?rev=3413449","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fresh-reminder\/assets\/screenshot-1.png?rev=3413449","caption":"Home page"},{"src":"https:\/\/ps.w.org\/fresh-reminder\/assets\/screenshot-2.png?rev=3413449","caption":"Check bucket page"},{"src":"https:\/\/ps.w.org\/fresh-reminder\/assets\/screenshot-3.png?rev=3413449","caption":"Settings page"}],"raw_content":"<!--section=description-->\n<p><strong>Fresh Reminder<\/strong> helps you monitor how fresh your posts are and when they need updating.<br \/>\nIt automatically calculates the age of your posts based on the last modified date and marks them as:<\/p>\n\n<p>\u2013 \u2705 <strong>Reviewed<\/strong> \u2013 Manually confirmed as up to date.<br \/>\n\u2013 \u26a0\ufe0f <strong>Unreviewed<\/strong> \u2013 Not updated for a long time and requires attention.<\/p>\n\n<p>The plugin adds a dashboard page showing all your posts sorted by freshness, so you can easily identify which content needs updates.<\/p>\n\n<p>Ideal for <strong>bloggers, SEO specialists, and content managers<\/strong> who want to maintain up-to-date content and improve their website\u2019s search performance.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Automatic content freshness indicator on posts.<\/li>\n<li>Custom admin dashboard listing all posts with freshness status.<\/li>\n<li>Filter posts by category, status, or keyword.<\/li>\n<li>Built-in search for quick access to specific posts.<\/li>\n<li>\u201cPin to CheckBucket\u201d \u2014 temporarily save posts that need manual review.<\/li>\n<li>CheckBucket section to manage pinned posts.<\/li>\n<li>Plugin Settings Page to customize freshness thresholds (e.g., 15\/60\/120 days).<\/li>\n<li>AJAX-powered dashboard for smooth interactions without page reloads.<\/li>\n<li>Optimized caching for improved performance.<\/li>\n<li>Lightweight and secure \u2014 no external API calls.<\/li>\n<li>Works immediately after activation.<\/li>\n<\/ul>\n\n<h3>Roadmap<\/h3>\n\n<ul>\n<li>Integration with OpenAI API to suggest automatic post updates.<\/li>\n<li>REST API endpoints for freshness data.<\/li>\n<li>Admin analytics chart to visualize content freshness over time.<\/li>\n<\/ul>\n\n<h3>License<\/h3>\n\n<p>This plugin is free software; you can redistribute it and\/or modify it under the terms of the <strong>GNU General Public License version 3 or later<\/strong>.<\/p>\n\n<h3>Author<\/h3>\n\n<p>Developed by <strong>Hasun Akash Bandara<\/strong><br \/>\nGitHub: https:\/\/github.com\/hasunB<br \/>\nEmail: hasunbandara17@gmail.com<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<p>Automatic installation is the easiest option \u2014 WordPress will handle the file transfer and you won\u2019t need to leave your browser.<br \/>\nTo install <strong>Fresh Reminder<\/strong> automatically:<\/p>\n\n<ol>\n<li>Log in to your WordPress Admin dashboard.<\/li>\n<li>Navigate to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>In the search bar, type <strong>\u201cFresh Reminder\u201d<\/strong>.<\/li>\n<li>Locate the plugin in the search results and click <strong>Install Now<\/strong>.<\/li>\n<li>After installation, click <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<p>WordPress will take care of the rest.<\/p>\n\n<h4>Manual Installation<\/h4>\n\n<p>If you prefer to install the plugin manually:<\/p>\n\n<ol>\n<li>Download the plugin ZIP file or clone from GitHub:<br \/>\n   git clone https:\/\/github.com\/hasunB\/fresh-reminder.git<\/li>\n<li>Upload the folder <code>fresh-reminder<\/code> to your WordPress <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate <strong>Fresh Reminder<\/strong> from your WordPress Admin.<\/li>\n<li>Go to <strong>Fresh Reminder<\/strong> in the WordPress Admin sidebar to view all post freshness data.<\/li>\n<\/ol>\n\n<p>For detailed instructions, refer to the WordPress Plugin Handbook or the WordPress Codex on manual plugin installation.<\/p>\n\n<h4>Updating<\/h4>\n\n<p>Automatic updates should work without any issues.<br \/>\nHowever, it is always recommended to <strong>back up your website<\/strong> before performing any plugin update\u2014especially on production sites.<\/p>\n\n<p>Fresh Reminder follows WordPress coding standards and versioning, so updates are safe and tested with the latest WordPress releases.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='can%20i%20change%20the%20freshness%20thresholds%3F'><h3>Can I change the freshness thresholds?<\/h3><\/dt>\n<dd><p>Yes! Starting from version <strong>1.1.0<\/strong>, you can customize thresholds from the plugin settings page.<\/p><\/dd>\n<dt id='does%20it%20affect%20website%20speed%3F'><h3>Does it affect website speed?<\/h3><\/dt>\n<dd><p>No. It\u2019s extremely lightweight and optimized with internal caching and AJAX for smooth performance.<\/p><\/dd>\n<dt id='will%20it%20work%20with%20custom%20post%20types%3F'><h3>Will it work with custom post types?<\/h3><\/dt>\n<dd><p>Currently supports <code>post<\/code>. Support for custom post types is planned for a future update.<\/p><\/dd>\n<dt id='is%20this%20plugin%20seo-friendly%3F'><h3>Is this plugin SEO-friendly?<\/h3><\/dt>\n<dd><p>Yes! Keeping your content fresh can improve SEO and user engagement.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0 \u2013 Upcoming<\/h4>\n\n<ul>\n<li>Add daily cron job to email admin about stale posts.<\/li>\n<li>Add admin notifications for posts nearing \u201cstale\u201d threshold.<\/li>\n<li>Add translation support (<code>.pot<\/code> file).<\/li>\n<li>Add Gutenberg sidebar block for real-time freshness info.<\/li>\n<li>Add dropdown in search to filter by posts\/products\/author\/keyword.<\/li>\n<\/ul>\n\n<h4>1.1.4 - 2025-12-06<\/h4>\n\n<ul>\n<li>Added proper plugin prefix to all functions, classes, options, scripts, and AJAX actions.<\/li>\n<li>Added <code>ABSPATH<\/code> protection to all PHP files for improved security.<\/li>\n<li>Updated outdated Bootstrap JavaScript file to the latest stable version.<\/li>\n<li>Fixed license mismatch \u2014 readme.txt and LICENSE now both correctly declare GPLv2 or later.<\/li>\n<li>Added plugin author to the Contributors list in readme.txt.<\/li>\n<li>Replaced inline <code>&lt;script&gt;<\/code> and <code>&lt;style&gt;<\/code> tags in admin pages with properly enqueued files following WordPress standards.<\/li>\n<li>Updated logger system \u2014 logs are now stored safely inside the uploads directory instead of the root\/content folder.<\/li>\n<\/ul>\n\n<h4>1.1.2 \u2013 2025-11-09<\/h4>\n\n<ul>\n<li><strong>WordPress Standard Code Update<\/strong><\/li>\n<li>Added manual library integration for plugin standards compliance.<\/li>\n<li>Introduced <code>FR_Logger<\/code> class for structured logging (active only when <code>WP_DEBUG<\/code> is enabled).<\/li>\n<li>Added Font Awesome v4 compatibility with local WOFF2 font file.<\/li>\n<\/ul>\n\n<h4>1.1.1 \u2013 2025-11-07<\/h4>\n\n<ul>\n<li>Fixed responsive layout issues on dashboard and widget interfaces.<\/li>\n<li>Resolved core function errors affecting freshness status calculations.<\/li>\n<li>Added a custom admin menu icon for better WordPress integration.<\/li>\n<li>Improved admin navbar display with modern styling and adaptive design.<\/li>\n<li>Fixed misaligned dashboard elements on smaller viewports.<\/li>\n<li>Fixed caching issue causing delayed freshness updates.<\/li>\n<li>Fixed admin icon not showing in some themes.<\/li>\n<li>Minor CSS and JS refactoring to ensure consistent UI behavior.<\/li>\n<\/ul>\n\n<h4>1.1.0 \u2013 2025-10-31<\/h4>\n\n<ul>\n<li><strong>Major Feature Update<\/strong><\/li>\n<li>Enhanced content freshness tracking accuracy.<\/li>\n<li>Added status-based and category-based filtering.<\/li>\n<li>Implemented search for posts by title or tag.<\/li>\n<li>Introduced \u201cPin to CheckBucket\u201d for manual review management.<\/li>\n<li>Added CheckBucket dashboard for pinned posts.<\/li>\n<li>Introduced settings page to customize freshness thresholds.<\/li>\n<li>Improved dashboard with AJAX (no reloads).<\/li>\n<li>Optimized caching for faster freshness calculations.<\/li>\n<li>UI\/UX and security improvements.<\/li>\n<\/ul>\n\n<h4>1.0.0 \u2013 2025-10-05<\/h4>\n\n<ul>\n<li><strong>Initial Release<\/strong><\/li>\n<li>Added automatic freshness indicator (Reviewed, Stale) on each post.<\/li>\n<li>Introduced admin dashboard listing all posts with freshness status and last updated date.<\/li>\n<li>Added plugin initialization, constants, and <code>ABSPATH<\/code> protection.<\/li>\n<\/ul>","raw_excerpt":"Tracks how fresh your WordPress posts are and highlights stale content in both frontend and admin dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261536","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=261536"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hasunbandara"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261536"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261536"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261536"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261536"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261536"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261536"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}