[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1I8vE_jaq9G7ehZCKzzGZ-o1uYiaCL8aJ3LrcwJ30EQ":3,"$fhS9gg2CVLw5aiQZLl-mwvlHcqqJ0ifAqZTg0Z6PBRbI":253,"$f1QYe0v8es1PtO3c5puI9ztmnPX8wWx7PBnECmy2kfQY":257},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":20,"download_link":21,"security_score":22,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24,"discovery_status":25,"vulnerabilities":26,"developer":27,"crawl_stats":23,"alternatives":34,"analysis":98,"fingerprints":222},"wen-post-expiry-notification","WEN Post Expiry Notification","1.2","Web Experts Nepal","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebexpertsnepal\u002F","\u003Cp>Set expiry date for posts, pages, and custom post types. Send notification about the expiry before specified number of days.\u003C\u002Fp>\n\u003Cp>Note: Select your appropriate timezone on Settings > General > Timezone.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n– Set expiry date for any posts and custom post types\u003Cbr \u002F>\n– Ability to change email option for individual posts\u003Cbr \u002F>\n– Send notification about expiry before allocated days\u003Cbr \u002F>\n– Ability to change time when notification should be sent\u003C\u002Fp>\n","Set expiry date for posts, pages, and custom post types. Send notification about the expiry before specified number of days.",0,1298,"2025-03-24T12:10:00.000Z","6.7.5","6.0","7.4",[18,19],"expiry-notification","post-expiry","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwen-post-expiry-notification.1.2.zip",92,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":22,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"webexpertsnepal",3,90,30,88,"2026-05-19T22:38:07.439Z",[35,58,79],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":20,"tags":50,"homepage":20,"download_link":56,"security_score":57,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24},"wp-post-expires","WP Post Expires","1.2.5","X-NicON","https:\u002F\u002Fprofiles.wordpress.org\u002Fx-nicon\u002F","\u003Cp>A simple plugin that allows to set the date for the posts, after which will be performed one of 3 actions: “Add prefix to title”, “Move to drafts”, “Move to trash”.\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Set post expire date and time\u003C\u002Fli>\n\u003Cli>Support custom post type (post and pages by default)\u003C\u002Fli>\n\u003Cli>Action for expired posts: move to drafts, move to trash or add custom prefix for title\u003C\u002Fli>\n\u003Cli>Adds class “post-expired” to post that expired on the site and in admin interface (for custom styles in theme)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Use in theme:\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>XNPostExpires::isExpired($post_id)\n\nXNPostExpires::dateExpiration($post_id, $date_format)\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Plugin adds post expires time after which will be performed actions: add prefix to title, move to drafts or trash.",2000,36228,66,14,"2020-11-02T17:13:00.000Z","5.5.18","5.0",[51,52,53,54,55],"expiration","expire","expired-post","posts-expiring","wordpress-post-expiry","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-post-expires.zip",85,{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":73,"tags":74,"homepage":77,"download_link":78,"security_score":57,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24},"expiring-posts","Expiring Posts","1.3","Ivan","https:\u002F\u002Fprofiles.wordpress.org\u002Fivankk\u002F","\u003Cp>This plugin adds functionality to expire a post on a given date.\u003C\u002Fp>\n\u003Cp>This plugin currently only works with the classical editor.\u003C\u002Fp>\n\u003Cp>It does this by adding a new “Expires” date field in the Publish box.\u003C\u002Fp>\n\u003Cp>By default posts don’t expire, but you can add a date instead.\u003C\u002Fp>\n\u003Cp>Once that date is reached, the post is marked as expired and is no longer visible to the end user.\u003C\u002Fp>\n\u003Ch3>Dev Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Dev occurs via https:\u002F\u002Fgithub.com\u002Fivankruchkoff\u002Fwp-expiring-posts\u003C\u002Fli>\n\u003Cli>the new post status is \u003Ccode>expired\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>a filter called \u003Ccode>exp_disable_expiration_for_this_post\u003C\u002Fcode> exists to disable this feature on a per-post basis.\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin adds functionality to expire a post on a given date.",900,5609,70,2,"2022-01-23T23:52:00.000Z","5.9.13","3.0.1","5.3",[52,75,76,59,19],"expire-posts","expiring","https:\u002F\u002Fgithub.com\u002Fivankruchkoff\u002Fwp-expiring-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexpiring-posts.1.3.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":11,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":49,"requires_php":16,"tags":92,"homepage":20,"download_link":97,"security_score":88,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24},"ait-easy-post-customization","AIT Easy Post Customization","2.1.0","kamranchannar","https:\u002F\u002Fprofiles.wordpress.org\u002Fkamranchannar\u002F","\u003Cp>AIT Easy Post Customization is a powerful yet easy-to-use plugin designed to give users control over the lifespan of their posts and custom post types by allowing you to set an expiry date. If you’re managing time-sensitive content, like event announcements, special promotions, or limited-time offers, this plugin automates the process of unpublishing or archiving content, making content management hassle-free.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What problem does this plugin solve?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Manually tracking and updating expired content can be tedious and prone to errors, especially if you have a large volume of posts. Without this plugin, expired content can remain live, leading to outdated or irrelevant information on your website. AIT Easy Post Customization solves this problem by allowing you to set expiry dates on posts, ensuring that content is automatically hidden or removed after the specified date. This keeps your site fresh and up-to-date without manual intervention.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How does it improve the user experience?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Automatic Expiry Handling\u003C\u002Fstrong>: Set an expiration date for any post or custom post type, and let the plugin automatically unpublish it when the time comes. This eliminates the need for manual updates and improves content accuracy.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Post Type Support\u003C\u002Fstrong>: Whether you’re using standard WordPress posts or custom post types (like events, job listings, products, etc.), you can easily add expiry functionality to all of them.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User-Friendly Interface\u003C\u002Fstrong>: The plugin integrates seamlessly with the WordPress editor, making it easy for users of all skill levels to manage expiry dates. The expiry date can be set directly from the post editing screen.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Fields Management\u003C\u002Fstrong>: Add custom fields (text, textarea, date) to posts for enhanced content customization.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern Admin Interface\u003C\u002Fstrong>: A sleek, responsive admin panel with sticky tabs, form validation, and intuitive navigation.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Key Features\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Post Expiration\u003C\u002Fstrong>: Set expiration dates for posts and custom post types, automatically moving them to draft status when expired.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Fields\u003C\u002Fstrong>: Add and manage custom fields (text, textarea, date) for selected post types.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Supports All Post Types\u003C\u002Fstrong>: Works with standard WordPress posts and custom post types, allowing flexible use across various content types.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Seamless Integration\u003C\u002Fstrong>: Integrated into the post editor with a modern, user-friendly interface.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scheduled Content Management\u003C\u002Fstrong>: Perfect for managing content like event updates, limited-time offers, and seasonal announcements.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Localization Ready\u003C\u002Fstrong>: Fully translation-ready for multilingual websites.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Notable Features\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Custom Widgets\u003C\u002Fstrong>: Optionally display a widget that shows upcoming or recently expired content to site admins for better tracking (coming soon).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer-Friendly Hooks and Filters\u003C\u002Fstrong>: Developers can customize the plugin’s behavior using built-in hooks and filters.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern Design\u003C\u002Fstrong>: Features a responsive admin interface with sticky tabs, Dashicons, and gradient effects for a premium experience.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>With AIT Easy Post Customization, you’ll never have to worry about outdated or irrelevant content cluttering your site again. Keep your content fresh, current, and timely with minimal effort.\u003C\u002Fp>\n\u003Ch3>1. What is AIT Easy Post Customization?\u003C\u002Fh3>\n\u003Cp>AIT Easy Post Customization is a WordPress plugin that allows users to set expiry dates for posts and custom post types and manage custom fields, ensuring content remains relevant and up-to-date.\u003C\u002Fp>\n\u003Ch3>2. How do I install the plugin?\u003C\u002Fh3>\n\u003Cp>You can install the plugin by uploading the plugin files to the \u003Ccode>\u002Fwp-content\u002Fplugins\u002Fait-easy-post-customization\u002F\u003C\u002Fcode> directory or by installing it directly through the WordPress plugins screen. After installation, activate the plugin through the ‘Plugins’ screen in WordPress.\u003C\u002Fp>\n\u003Ch3>3. Where can I configure the settings?\u003C\u002Fh3>\n\u003Cp>After activating the plugin, you can configure settings by navigating to the \u003Cstrong>Easy Post Customization\u003C\u002Fstrong> link in the WordPress sidebar. Here, you can manage expiry dates and custom fields for your posts and custom post types.\u003C\u002Fp>\n\u003Ch3>4. Can I set an expiry date for custom post types?\u003C\u002Fh3>\n\u003Cp>Yes! AIT Easy Post Customization allows you to set expiry dates for both standard posts and custom post types, giving you flexibility in managing your content.\u003C\u002Fp>\n\u003Ch3>5. What happens to a post when it expires?\u003C\u002Fh3>\n\u003Cp>You choose! Options include: Set to Draft, Move to Trash, Delete Permanently, or Redirect to a URL. The default can be set site-wide and overridden per post.\u003C\u002Fp>\n\u003Ch3>6. Is there any support available if I encounter issues?\u003C\u002Fh3>\n\u003Cp>Yes, for support and inquiries, you can contact me via email at \u003Ca href=\"mailto:kamran.channar99@gmail.com\" rel=\"nofollow ugc\">kamran.channar99@gmail.com\u003C\u002Fa> or connect with me on LinkedIn at \u003Ca href=\"https:\u002F\u002Flinkedin.com\u002Fin\u002Fmuhammad-kamran-64a33a166\" rel=\"nofollow ugc\">Muhammad Kamran\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>7. Is this plugin compatible with the latest version of WordPress?\u003C\u002Fh3>\n\u003Cp>Yes, AIT Easy Post Customization is tested up to WordPress version 6.6 and is designed to be compatible with the latest releases.\u003C\u002Fp>\n\u003Ch3>8. Is the plugin free to use?\u003C\u002Fh3>\n\u003Cp>Yes, AIT Easy Post Customization is completely free to use and is licensed under the GPLv2 or later.\u003C\u002Fp>\n\u003Ch3>License & Copyright\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003Cbr \u002F>\nYou can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation.\u003C\u002Fp>\n\u003Cp>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: https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\u003C\u002Fp>\n\u003Ch3>Contact\u003C\u002Fh3>\n\u003Cp>For inquiries, project discussions, or collaboration opportunities, feel free to reach out to me:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Email: \u003Ca href=\"mailto:kamran.channar99@gmail.com\" rel=\"nofollow ugc\">kamran.channar99@gmail.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>LinkedIn: \u003Ca href=\"https:\u002F\u002Flinkedin.com\u002Fin\u002Fmuhammad-kamran-64a33a166\" rel=\"nofollow ugc\">Muhammad Kamran\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>I look forward to connecting with you!\u003C\u002Fp>\n","Easily set expiry dates for posts and custom post types, automatically unpublishing content when it becomes outdated.",505,100,1,"2026-03-16T01:33:00.000Z","6.8.5",[93,94,95,19,96],"auto-expire","expiry-date","post-expiration","schedule-post","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fait-easy-post-customization.2.1.0.zip",{"attackSurface":99,"codeSignals":156,"taintFlows":193,"riskAssessment":213,"analyzedAt":221},{"hooks":100,"ajaxHandlers":148,"restRoutes":149,"shortcodes":150,"cronEvents":151,"entryPointCount":11,"unprotectedCount":11},[101,107,111,115,120,124,128,133,138,141,144],{"type":102,"name":103,"callback":104,"file":105,"line":106},"action","plugins_loaded","wpen_includes","inc\\class-wen-post-expiry-notification.php",16,{"type":102,"name":108,"callback":109,"file":105,"line":110},"wpen_check_daily_for_post_expiry","wpen_do_this_on_expiry",18,{"type":102,"name":112,"callback":113,"file":105,"line":114},"admin_enqueue_scripts","wpen_admin_scripts",19,{"type":102,"name":116,"callback":117,"file":118,"line":119},"admin_menu","wpen_admin_menu","inc\\class-wpen-admin-settings.php",9,{"type":102,"name":121,"callback":122,"file":118,"line":123},"admin_init","wpen_admin_page",10,{"type":102,"name":125,"callback":126,"priority":123,"file":118,"line":127},"update_option_wpen_email","wpen_update_cron_time",11,{"type":129,"name":130,"callback":131,"file":118,"line":132},"filter","plugin_action_links_wen-post-expiry-notification\u002Fwen-post-expiry-notification.php","wpen_action_setting_links",13,{"type":102,"name":134,"callback":135,"file":136,"line":137},"load-post.php","call_postExpiryMetaBoxes","inc\\post-expiry-meta-boxes.php",7,{"type":102,"name":139,"callback":135,"file":136,"line":140},"load-post-new.php",8,{"type":102,"name":142,"callback":143,"file":136,"line":46},"add_meta_boxes","wpen_add_post_meta_box",{"type":102,"name":145,"callback":146,"file":136,"line":147},"save_post","wpen_save_post_options",15,[],[],[],[152,153],{"hook":108,"callback":108,"file":118,"line":114},{"hook":108,"callback":108,"file":154,"line":155},"wen-post-expiry-notification.php",28,{"dangerousFunctions":157,"sqlUsage":158,"outputEscaping":163,"fileOperations":11,"externalRequests":11,"nonceChecks":89,"capabilityChecks":69,"bundledLibraries":192},[],{"prepared":11,"raw":89,"locations":159},[160],{"file":154,"line":161,"context":162},42,"$wpdb->get_results() with variable interpolation",{"escaped":155,"rawEcho":132,"locations":164},[165,168,170,172,174,176,178,180,182,184,186,188,190],{"file":118,"line":166,"context":167},192,"raw output",{"file":118,"line":169,"context":167},200,{"file":118,"line":171,"context":167},229,{"file":118,"line":173,"context":167},244,{"file":118,"line":175,"context":167},245,{"file":118,"line":177,"context":167},246,{"file":118,"line":179,"context":167},247,{"file":118,"line":181,"context":167},248,{"file":136,"line":183,"context":167},119,{"file":136,"line":185,"context":167},120,{"file":136,"line":187,"context":167},121,{"file":136,"line":189,"context":167},122,{"file":136,"line":191,"context":167},123,[],[194],{"entryPoint":195,"graph":196,"unsanitizedCount":11,"severity":212},"\u003Cpost-expiry-meta-boxes> (inc\\post-expiry-meta-boxes.php:0)",{"nodes":197,"edges":209},[198,203],{"id":199,"type":200,"label":201,"file":136,"line":202},"n0","source","$_POST (x2)",60,{"id":204,"type":205,"label":206,"file":136,"line":207,"wp_function":208},"n1","sink","echo() [XSS]",89,"echo",[210],{"from":199,"to":204,"sanitized":211},true,"low",{"summary":214,"deductions":215},"The \"wen-post-expiry-notification\" v1.2 plugin demonstrates a generally positive security posture. The static analysis reveals no critical vulnerabilities such as SQL injection, unsanitized paths in taint analysis, or dangerous function usage. The absence of external HTTP requests and file operations further reduces the attack surface. Furthermore, the plugin incorporates nonce and capability checks, which are fundamental security practices.\n\nHowever, a significant concern arises from the SQL queries. The analysis indicates that 100% of the identified SQL queries are not using prepared statements. This presents a substantial risk of SQL injection vulnerabilities, even if none have been historically documented. While the plugin has no recorded CVEs, this absence of vulnerabilities in its history doesn't negate the inherent risk posed by unparameterized SQL queries, especially if the plugin handles user-provided input that could be injected into these queries.\n\nIn conclusion, the plugin has strong foundational security elements like nonce and capability checks and a clean history. The lack of reported CVEs is a good sign, but the unescaped output (32%) and, more critically, the complete lack of prepared statements in SQL queries are notable weaknesses that require immediate attention to mitigate potential security risks.",[216,218],{"reason":217,"points":123},"100% of SQL queries not using prepared statements",{"reason":219,"points":220},"32% of outputs not properly escaped",5,"2026-03-17T06:40:16.935Z",{"wat":223,"direct":231},{"assetPaths":224,"generatorPatterns":228,"scriptPaths":229,"versionParams":230},[225,226,227],"\u002Fwp-content\u002Fplugins\u002Fwen-post-expiry-notification\u002Fassets\u002Fcss\u002Fjquery-ui.css","\u002Fwp-content\u002Fplugins\u002Fwen-post-expiry-notification\u002Fassets\u002Fcss\u002Fpost-expiry-custom.css","\u002Fwp-content\u002Fplugins\u002Fwen-post-expiry-notification\u002Fassets\u002Fjs\u002Fpost-expiry-custom.js",[],[227],[],{"cssClasses":232,"htmlComments":238,"htmlAttributes":239,"restEndpoints":250,"jsGlobals":251,"shortcodeOutput":252},[233,234,235,236,237],"post-expiry-settings","wen_date_picker","wen_email_recepient_to","wen_email_recepient_cc","wen_email_subject",[],[240,241,242,243,244,245,246,247,248,249],"name=\"date-picker\"","name=\"email-recepient-to\"","name=\"email-recepient-cc\"","name=\"email-subject\"","name=\"email-template\"","id=\"date-picker\"","id=\"email-recepient-to\"","id=\"email-recepient-cc\"","id=\"email-subject\"","id=\"email-template\"",[],[],[],{"error":211,"url":254,"statusCode":255,"statusMessage":256,"message":256},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwen-post-expiry-notification\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":29,"versions":258},[259,265,272],{"version":6,"download_url":21,"svn_tag_url":260,"released_at":23,"has_diff":261,"diff_files_changed":262,"diff_lines":23,"trac_diff_url":263,"vulnerabilities":264,"is_current":211},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwen-post-expiry-notification\u002Ftags\u002F1.2\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwen-post-expiry-notification%2Ftags%2F1.1&new_path=%2Fwen-post-expiry-notification%2Ftags%2F1.2",[],{"version":266,"download_url":267,"svn_tag_url":268,"released_at":23,"has_diff":261,"diff_files_changed":269,"diff_lines":23,"trac_diff_url":270,"vulnerabilities":271,"is_current":261},"1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwen-post-expiry-notification.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwen-post-expiry-notification\u002Ftags\u002F1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fwen-post-expiry-notification%2Ftags%2F1.0&new_path=%2Fwen-post-expiry-notification%2Ftags%2F1.1",[],{"version":273,"download_url":274,"svn_tag_url":275,"released_at":23,"has_diff":261,"diff_files_changed":276,"diff_lines":23,"trac_diff_url":23,"vulnerabilities":277,"is_current":261},"1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwen-post-expiry-notification.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwen-post-expiry-notification\u002Ftags\u002F1.0\u002F",[],[]]