LH Private Uploads keeps private files private. WordPress normally leaves every upload in the public uploads directory, so the file behind a private post or attachment can still be fetched by anyone who has, or guesses, its URL. This plugin moves those files into a directory outside the web root and serves them through WordPress, checking who is asking before a single byte is sent.
lh_private_uploads_protected_statuses filter./protected-files/ URL. Each request is matched to its attachment and checked before the file is streamed, with X-Sendfile support for large files.lh_private_uploads_user_can_access filter.The private directory defaults to private-uploads one level above the WordPress root and can be set with the LH_PRIVATE_UPLOADS_DIR constant. There are no settings to configure.