Overview
Nelx Secure Document Storage is a WordPress plugin that securely manages sensitive document uploads from JetFormBuilder forms. It protects files by hiding their locations, adding access restrictions, and ensuring only authorized users can view or download them. The plugin works smoothly with JetEngine to show secure links in dynamic listings via a custom callback.
Key benefits:
- Enhanced Security: Files are stored in hidden, protected areas that block direct access.
- User Permissions: Control who can see or download files based on roles, ownership, or custom rules.
- Easy Integration: Handles uploads from JetFormBuilder and displays links in JetEngine listings.
- File Protection: Original names and paths are concealed; only temporary, secure links are created.
- Automatic Cleanup: Manages temporary files and updates file details without manual effort.
Requirements:
- WordPress 6.0 or higher - tested up to WordPress 6.8.3
- JetFormBuilder (free version)
- JetEngine (latest version recommended)
- Elementor page builder (free version is okay)
- PHP 7.4 or higher (8.2 recommended)
Only download the plugin via the button in the header. Do not get it from elsewhere.
Installation
- Download the plugin ZIP file. Use the Download Plugin button above
- In your WordPress dashboard, navigate to Plugins > Add New > Upload Plugin.
- Upload the ZIP and activate the plugin.
- On activation:
- A protected storage area is set up in your uploads folder.
- Access blocks are added to prevent direct file viewing.
- A unique subfolder is created for added security.
Updates: The plugin checks for updates automatically through the built-in server. You can also use the Check for updates button on your dasboard to do manual checks.

After Installation:
- Visit Settings > Secure Docs (or click the settings link on the Plugins page).
- Adjust the options as needed.
- Test by uploading a file through a JetFormBuilder form.

Configuration
Settings Page:
Found under Settings > Secure Docs (or via the plugin's settings link).
Key options include:
Access Control
- Allowed User Roles: Select which user roles can access secured files (Administrators and file owners always have access)
- Frontend Button Visibility: Hide buttons for unauthorized users

Form Configuration
- Secure All Forms Automatically: If enabled, all your JetFormBuilder forms files will be secured
- Specific Forms to Secure (recommended): All your JetFormsBuilder forms will be listed here. Select specific forms you'd like their file uploads secured.

Debugging (optional)
Logs will be written to the WordPress debug log.
Note: Keep this setting disabled unless you run into issues and want to check the logs.
Usage
Uploading Documents Securely with JetFormBuilder:
- Build or edit a JetFormBuilder form that includes file upload fields. Please check JetFormBuilder section on how to correctly set your media fields.
- Pick the form from the list if or you're set if you have turned on auto-protection.
- Users fill and submit the form.
- Uploaded files are automatically protected and replaced with safe references.
Showing Secure Files in JetEngine Listings:
Add a Dynamic Field widget to your listing template.
For normal fields:

Source - Meta Data
Meta Field - Select your media field from the dropdown.
Scroll down and toggle filter field output switcher on. Select Secure File Links in the callback dropdown. That's it!
For repeater fields:
The steps are almost similar to those of normal fields, but with a slight difference.
Source - Meta Data
Meta Field - Leave empty and instead, add your repeater field name in the object field/meta field/repeater key/component prop input field. See screenshot below.

Scroll down and toggle filter field output switcher on. Select Secure File Links in the callback dropdown. Toggle this is a repeater field switcher and choose your repeater layout (table/cards).
Styling Buttons, Tables, and Cards
Buttons:
Button style controls are available for both normal and repeater fields the moment you choose Secure File Links callback.

Table:
Table styling controls are available conditionally, that is, if you choose your repeater layout as table.

Cards:
Cards styling controls are also available if you set your repeater layout to cards.

Adjust styles for buttons, cards, or tables as desired.
You can make other button adjustments from here such as hidding view/download buttons, change button text, etc.

This usage documentation assumes you're using Elementor, and have your meta fields build using JetEngine Meta Boxes
Jet Form Builder
Below is how you should configure your JetFormBuilder (JFB) form media field. Follow the same for forms with presets.

User Access: set this based on your use case. Setting it to any registered user should work in many cases.
Enable insert attachment and note that it only works for logged-in users.
Configure the rest based on your preferences.
Please do not leave user access empty. Your forms will fail to submit. This is a common area we tend to forget and wonder why our forms are not going through.
Frontend Examples
Troubleshooting
Common Issues and Fixes:
- Files Aren't Getting Protected: Check form ID or auto-secure setting.
- Links Don't Work: Ensure correct user access or clear cache.
- Files Visible in Media Library: Check for custom query overrides.
- Repeater Displays Wrong Labels: Confirm JetEngine meta fields.
- Permission Denied on Downloads: Verify folder permissions.
- Slow Uploads or Timeouts: Increase PHP upload limits.
- Plugin Conflicts: Update JetFormBuilder and JetEngine.
If none of the above solves your issues, please enable debug logging, submit a form, check the logs for lines with [NS_SECURE_UPLOADS] and share it with us for further investigations.
Changelog
1.0.4 (November 15, 2025)
- Structured Log Levels: Added info, debug, warning, and error levels for better log management
- Context-Aware Tracking: Implemented request/form/attachment ID tracking throughout processing
- Comprehensive Error Handling: Added detailed failure logging for file operations and form submissions
- Performance Optimized Logging: Reduced log spam with smart deduplication and memory management
- Improved Troubleshooting: Added detailed debug information for security operations and attachment processing
1.0.3 (November 13, 2025)
- Improved file handling and repeater styling
- Enhanced: Get the real label from JetEngine meta-box configuration
- Fixed JFB preset where editing forms lost files
- Enhanced button styling options
- Improved security features
1.0.2
- Added repeater support with styling options
1.0.1
- Introduced secure upload processing and button callbacks
1.0.0
- Launched core protection features
Support
For any issues, please reachout through info@nelxdesigns.com. Your email subject should start with [Nelx Secure Docs]
You can also send us your feedback or review.