{"id":271238,"date":"2026-01-23T12:23:59","date_gmt":"2026-01-23T12:23:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/private-files-manager-advanced\/"},"modified":"2026-02-11T16:17:42","modified_gmt":"2026-02-11T16:17:42","slug":"ankit-secure-private-files","status":"publish","type":"plugin","link":"https:\/\/th.wordpress.org\/plugins\/ankit-secure-private-files\/","author":20931157,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.3","stable_tag":"1.0.3","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Secure Private Files","header_author":"Ankit Patel","header_description":"Secure private file access with expiry, role-based access, and download logs.","assets_banners_color":"1f71bf","last_updated":"2026-02-11 16:17:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ankitpatel.co.in\/ankit-secure-private-files\/","header_author_uri":"https:\/\/ankitpatel.co.in\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":416,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"ankitpatel1578","date":"2026-01-23 12:23:49"},"1.0.3":{"tag":"1.0.3","author":"ankitpatel1578","date":"2026-02-11 16:17:42"}},"upgrade_notice":{"1.0":"<p>Initial stable release of Secure Private Files<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3445564,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3445564,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3459085,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3459085,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3445564,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"Private Files custom post type in admin","2":"File access settings meta box","3":"User selection with AJAX search","4":"Download logs meta box","5":"Frontend list of private files1. Add Files"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1912,4721,8848,1932,600],"plugin_category":[54,58],"plugin_contributors":[239022,145584],"plugin_business_model":[],"class_list":["post-271238","plugin","type-plugin","status-publish","hentry","plugin_tags-access-control","plugin_tags-download-manager","plugin_tags-file-manager","plugin_tags-membership","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_category-user-management","plugin_contributors-ankitpatel1578","plugin_contributors-hardik2221","plugin_committers-ankitpatel1578"],"banners":{"banner":"https:\/\/ps.w.org\/ankit-secure-private-files\/assets\/banner-772x250.png?rev=3459085","banner_2x":"https:\/\/ps.w.org\/ankit-secure-private-files\/assets\/banner-1544x500.png?rev=3459085","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ankit-secure-private-files\/assets\/icon-128x128.png?rev=3445564","icon_2x":"https:\/\/ps.w.org\/ankit-secure-private-files\/assets\/icon-256x256.png?rev=3445564","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ankit-secure-private-files\/assets\/screenshot-1.jpg?rev=3445564","caption":"Private Files custom post type in admin"}],"raw_content":"<!--section=description-->\n<p><strong>Secure Private Files<\/strong> allows you to securely manage and share private files with selected users or user roles in WordPress.<\/p>\n\n<p>Files are protected using <strong>unique token-based URLs<\/strong>, ensuring they cannot be accessed without proper permission. You can define <strong>who can download each file<\/strong>, set an <strong>expiry date<\/strong>, and track <strong>download activity<\/strong>.<\/p>\n\n<p>This plugin is ideal for:\n- Membership sites\n- Client portals\n- Secure document sharing\n- Restricted downloads\n- Private resources for logged-in users<\/p>\n\n<h3>Key Features<\/h3>\n\n<ul>\n<li>Secure token-based file access (no public URLs)<\/li>\n<li>Assign files to <strong>specific users<\/strong><\/li>\n<li>Allow access by <strong>user roles<\/strong><\/li>\n<li>Optional <strong>expiry date<\/strong> for each file<\/li>\n<li>Logged-in user verification<\/li>\n<li>Download activity logging (user, IP, date)<\/li>\n<li>Dedicated <strong>Private Files<\/strong> custom post type<\/li>\n<li>Media library integration for file selection<\/li>\n<li>AJAX-powered user search (Select2)<\/li>\n<li>Frontend shortcode to list accessible files<\/li>\n<li>Works with any WordPress theme<\/li>\n<li>No third-party dependency required<\/li>\n<\/ul>\n\n<h3>How It Works<\/h3>\n\n<ol>\n<li>Admin creates a <strong>Private File<\/strong> post<\/li>\n<li>Uploads or selects a file from Media Library<\/li>\n<li>Assigns allowed users and\/or roles<\/li>\n<li>(Optional) Sets an expiry date<\/li>\n<li>Plugin generates a secure download token<\/li>\n<li>Authorized users can download the file using the secure link<\/li>\n<\/ol>\n\n<h3>Shortcodes<\/h3>\n\n<p><strong>List logged-in user\u2019s available private files<\/strong>\n[secure_files]<\/p>\n\n<p>Displays only files the current user is allowed to access.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate <strong>Secure Private Files<\/strong><\/li>\n<li>Go to <strong>Private Files<\/strong> in the admin menu<\/li>\n<li>Add a new Private File<\/li>\n<li>Select file, users, roles, and expiry<\/li>\n<li>Use the shortcode on any page if needed<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20login%20required%20to%20download%20files%3F\"><h3>Is login required to download files?<\/h3><\/dt>\n<dd><p>Yes. Only logged-in users with permission can access files.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20files%20by%20user%20role%3F\"><h3>Can I restrict files by user role?<\/h3><\/dt>\n<dd><p>Yes. You can allow access by user roles and\/or specific users.<\/p><\/dd>\n<dt id=\"are%20files%20accessible%20via%20direct%20url%3F\"><h3>Are files accessible via direct URL?<\/h3><\/dt>\n<dd><p>No. Files are protected using secure token-based URLs.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20log%20downloads%3F\"><h3>Does the plugin log downloads?<\/h3><\/dt>\n<dd><p>Yes. Each download logs the user, IP address, and date.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20any%20theme%3F\"><h3>Will this work with any theme?<\/h3><\/dt>\n<dd><p>Yes. It works independently of themes and page builders.<\/p><\/dd>\n<dt id=\"is%20woocommerce%20required%3F\"><h3>Is WooCommerce required?<\/h3><\/dt>\n<dd><p>No. WooCommerce is NOT required.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Short Code Impovements<\/li>\n<li>Few minor bugfix and improvements<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Code Impovements<\/li>\n<li>Language POT<\/li>\n<li>Few minor bugfix and improvements<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>slug update<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Secure token-based downloads<\/li>\n<li>User and role-based access control<\/li>\n<li>Expiry date support<\/li>\n<li>Download logs<\/li>\n<li>Frontend shortcode support<\/li>\n<\/ul>","raw_excerpt":"Secure private file access with expiry, role-based permissions, token-based URLs, and detailed download logs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/271238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=271238"}],"author":[{"embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ankitpatel1578"}],"wp:attachment":[{"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=271238"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=271238"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=271238"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=271238"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=271238"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/th.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=271238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}