{"id":226956,"date":"2025-04-10T15:28:02","date_gmt":"2025-04-10T15:28:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/public-post-preview-expiration\/"},"modified":"2026-01-08T09:02:40","modified_gmt":"2026-01-08T09:02:40","slug":"ppp-extension","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/ppp-extension\/","author":13625583,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.4","stable_tag":"1.0.4","tested":"6.9.4","requires":"5.0","requires_php":"8.0","requires_plugins":null,"header_name":"PPP Extension","header_author":"Louie Sonugan","header_description":"Extends the Public Post Preview plugin with custom functionality.","assets_banners_color":"151d26","last_updated":"2026-01-08 09:02:40","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/louiesonugan.com\/donate\/","header_plugin_uri":"","header_author_uri":"https:\/\/louiesonugan.com\/","rating":5,"author_block_rating":0,"active_installs":40,"downloads":676,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["installation","faq","changelog","description"],"tags":{"1.0.2":{"tag":"1.0.2","author":"wing.louie","date":"2025-04-10 15:27:33"},"1.0.3":{"tag":"1.0.3","author":"wing.louie","date":"2025-04-27 08:59:08"},"1.0.4":{"tag":"1.0.4","author":"wing.louie","date":"2026-01-08 09:02:40"}},"upgrade_notice":{"1.0.4":"<p>Tested for WordPress v6.9. Enhanced security with improved code structure and better internationalization support.<\/p>","1.0.3":"<ul>\n<li>Tested for WordPress v6.8.<\/li>\n<li>Added Settings link before Deactivate in the Plugins page.<\/li>\n<\/ul>","1.0.2":"<p>Improved security and extended expiration limit to 30 days.<\/p>","1.0.1":"<p>Added input sanitization and minute-based expiration setting.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3270567,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3270567,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3270567,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3","1.0.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3273579,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"Admin settings page for setting expiration time in minutes."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1946,240633],"plugin_category":[],"plugin_contributors":[240634],"plugin_business_model":[],"class_list":["post-226956","plugin","type-plugin","status-publish","hentry","plugin_tags-expiration","plugin_tags-public-post-preview","plugin_contributors-winglouie","plugin_committers-winglouie"],"banners":{"banner":"https:\/\/ps.w.org\/ppp-extension\/assets\/banner-772x250.png?rev=3270567","banner_2x":"https:\/\/ps.w.org\/ppp-extension\/assets\/banner-1544x500.png?rev=3270567","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ppp-extension\/assets\/icon-256x256.png?rev=3270567","icon_2x":"https:\/\/ps.w.org\/ppp-extension\/assets\/icon-256x256.png?rev=3270567","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ppp-extension\/assets\/screenshot-1.png?rev=3273579","caption":"Admin settings page for setting expiration time in minutes."}],"raw_content":"<!--section=installation-->\n<ol>\n<li>Download the plugin.<\/li>\n<li>Upload the extracted <code>ppp-extension<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in WordPress Admin &gt; Plugins.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20is%20the%20allowed%20expiration%20time%20range%3F'><h3>What is the allowed expiration time range?<\/h3><\/dt>\n<dd><p>You can set the expiration time between <strong>1 minute (minimum) and 43200 minutes (30 days maximum)<\/strong>.<\/p><\/dd>\n<dt id='does%20this%20work%20without%20public%20post%20preview%20installed%3F'><h3>Does this work without Public Post Preview installed?<\/h3><\/dt>\n<dd><p>No, this plugin extends the <a href=\"https:\/\/wordpress.org\/plugins\/public-post-preview\/\">Public Post Preview<\/a> plugin, so it must be installed and activated first.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.9.<\/li>\n<li>Enhanced code structure and improved escaping for better security.<\/li>\n<li>Added proper internationalization support throughout the plugin.<\/li>\n<li>Added capability checks for enhanced security.<\/li>\n<li>Improved function documentation and code organization.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.8.<\/li>\n<li>Added a Settings link next to Deactivate on the Plugins page.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Security enhancements for user input.<\/li>\n<li>Set expiration time in minutes instead of seconds.<\/li>\n<li>Capped expiration limit to <strong>30 days (43200 minutes)<\/strong>.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security enhancements for user input.<\/li>\n<li>Set expiration time in minutes instead of seconds.<\/li>\n<li>Capped expiration limit to <strong>3 days (4320 minutes)<\/strong>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial implementation of dynamic expiration settings.<\/li>\n<\/ul>\n\n<!--section=description-->\n<p>Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.<\/p>\n\n<h3>Features<\/h3>\n\n<ul>\n<li>Set the expiration time for Public Post Preview links.<\/li>\n<li>Customize the expiration time in <strong>minutes<\/strong> (from 1 minute to 30 days).<\/li>\n<li>Secure input validation to prevent invalid values.<\/li>\n<li>Fully integrated into the <strong>WordPress Settings panel<\/strong>.<\/li>\n<li>Safe and lightweight implementation.<\/li>\n<\/ul>\n\n<h3>How to Use<\/h3>\n\n<ol>\n<li>Navigate to <strong>Settings &gt; PPP Extension<\/strong> in your WordPress admin panel.<\/li>\n<li>Enter the expiration time in <strong>minutes<\/strong> (minimum: 1, maximum: 43200 minutes \/ 30 days).<\/li>\n<li>Click Save Changes.<\/li>\n<li>Public Post Preview links will now expire based on your selected time.<\/li>\n<\/ol>\n\n<h3>Security<\/h3>\n\n<p>\u2013 User input is <strong>sanitized<\/strong> and validated to prevent unauthorized values.\n\u2013 The input is limited between <strong>1 minute and 30 days<\/strong> to avoid extreme values.\n\u2013 Escaped output prevents XSS attacks.<\/p>\n\n<h3>License<\/h3>\n\n<p>This plugin is released under the GPLv2 or later license.<\/p>","raw_excerpt":"Extends the Public Post Preview plugin by allowing users to customize the expiration time dynamically through the WordPress admin panel.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/226956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=226956"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/winglouie"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=226956"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=226956"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=226956"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=226956"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=226956"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=226956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}