{"id":326385,"date":"2026-07-17T15:35:48","date_gmt":"2026-07-17T15:35:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pairdrop\/"},"modified":"2026-07-17T21:58:00","modified_gmt":"2026-07-17T21:58:00","slug":"bsx-file-exchange","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/bsx-file-exchange\/","author":23516592,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.0.2","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"BSX File Exchange","header_author":"Abyssal279 \u00b7 BlackShark Solutions","header_description":"Secure bidirectional file exchange between Host and Guest users. Perfect for medical practices, law firms, coaches, and any service requiring private document sharing.","assets_banners_color":"99d0e5","last_updated":"2026-07-17 21:58:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/blackshark279.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"bs279","date":"2026-07-17 21:58:00"}},"upgrade_notice":{"1.0.3":"<p>Fixes admin stylesheet not loading for Administrator-role users. Update recommended.<\/p>","1.0.2":"<p>Fixes stylesheet caching issue after updates. Update recommended.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3611751,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3611751,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3611751,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3611751,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3611771,"resolution":"1","location":"assets","locale":"","width":3392,"height":1397},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3611771,"resolution":"10","location":"assets","locale":"","width":1910,"height":1855},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3611771,"resolution":"11","location":"assets","locale":"","width":1872,"height":1237},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3611771,"resolution":"12","location":"assets","locale":"","width":3440,"height":1950},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3611771,"resolution":"2","location":"assets","locale":"","width":3385,"height":820},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3611771,"resolution":"3","location":"assets","locale":"","width":3377,"height":942},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3611771,"resolution":"4","location":"assets","locale":"","width":3387,"height":1387},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3611771,"resolution":"5","location":"assets","locale":"","width":3480,"height":1960},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3611771,"resolution":"6","location":"assets","locale":"","width":3480,"height":1960},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3611771,"resolution":"7","location":"assets","locale":"","width":3472,"height":857},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3611771,"resolution":"8","location":"assets","locale":"","width":3460,"height":715},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3611771,"resolution":"9","location":"assets","locale":"","width":1925,"height":1230}},"screenshots":{"1":"wp-admin Pairs panel \u2014 stat cards (active pairs, total files, uploads, downloads) and pair list with Host\/Guest connections","2":"wp-admin Hosts panel \u2014 list of all users acting as Host with their active guest connections and activity","3":"wp-admin Guests panel \u2014 list of all users acting as Guest with their host connections and file totals","4":"wp-admin Activity Log \u2014 full audit trail of uploads, downloads and deletions with user, date, and IP tracking; CSV export available","5":"wp-admin Settings \u2014 dashboard page selector, file size limit, allowed file types, and privacy mode configuration","6":"wp-admin Settings \u2014 email notification templates with custom variables, and Ultimate Member integration settings","7":"wp-admin Settings \u2014 frontend color palette customization (primary and secondary colors) and uninstall data options","8":"wp-admin Pair detail view \u2014 file list for a specific Host\/Guest pair with size, date, download and delete actions","9":"Frontend dashboard \u2014 Received files tab showing files shared by the Host, with pair selector and unread badge","10":"Frontend dashboard \u2014 Send file tab with drag-and-drop upload zone, optional message field, and file type\/size info","11":"Frontend dashboard \u2014 Sent files tab showing files uploaded by the user with open\/download\/delete actions","12":"wp-admin Host detail view \u2014 full stats per host including active guests, storage used, sent\/received files, and recent activity log"}},"plugin_section":[],"plugin_tags":[17989,12813,12683,18068,58819],"plugin_category":[],"plugin_contributors":[272055],"plugin_business_model":[],"class_list":["post-326385","plugin","type-plugin","status-publish","hentry","plugin_tags-client-portal","plugin_tags-document-management","plugin_tags-file-sharing","plugin_tags-file-transfer","plugin_tags-secure-files","plugin_contributors-bs279","plugin_committers-bs279"],"banners":{"banner":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/banner-772x250.png?rev=3611751","banner_2x":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/banner-1544x500.png?rev=3611751","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/icon-128x128.png?rev=3611751","icon_2x":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/icon-256x256.png?rev=3611751","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-1.png?rev=3611771","caption":"wp-admin Pairs panel \u2014 stat cards (active pairs, total files, uploads, downloads) and pair list with Host\/Guest connections"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-2.png?rev=3611771","caption":"wp-admin Hosts panel \u2014 list of all users acting as Host with their active guest connections and activity"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-3.png?rev=3611771","caption":"wp-admin Guests panel \u2014 list of all users acting as Guest with their host connections and file totals"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-4.png?rev=3611771","caption":"wp-admin Activity Log \u2014 full audit trail of uploads, downloads and deletions with user, date, and IP tracking; CSV export available"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-5.png?rev=3611771","caption":"wp-admin Settings \u2014 dashboard page selector, file size limit, allowed file types, and privacy mode configuration"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-6.png?rev=3611771","caption":"wp-admin Settings \u2014 email notification templates with custom variables, and Ultimate Member integration settings"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-7.png?rev=3611771","caption":"wp-admin Settings \u2014 frontend color palette customization (primary and secondary colors) and uninstall data options"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-8.png?rev=3611771","caption":"wp-admin Pair detail view \u2014 file list for a specific Host\/Guest pair with size, date, download and delete actions"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-9.png?rev=3611771","caption":"Frontend dashboard \u2014 Received files tab showing files shared by the Host, with pair selector and unread badge"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-10.png?rev=3611771","caption":"Frontend dashboard \u2014 Send file tab with drag-and-drop upload zone, optional message field, and file type\/size info"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-11.png?rev=3611771","caption":"Frontend dashboard \u2014 Sent files tab showing files uploaded by the user with open\/download\/delete actions"},{"src":"https:\/\/ps.w.org\/bsx-file-exchange\/assets\/screenshot-12.png?rev=3611771","caption":"wp-admin Host detail view \u2014 full stats per host including active guests, storage used, sent\/received files, and recent activity log"}],"raw_content":"<!--section=description-->\n<p><strong>BSX File Exchange<\/strong> turns your WordPress site into a private file-sharing portal between you and your clients \u2014 no third-party services, no public links, no extra accounts.<\/p>\n\n<p>You create Host\/Guest pairs. Both sides can upload and download files. Every transfer is logged, every download is authenticated, and nothing is ever accessible by direct URL.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Create a <strong>Host\/Guest pair<\/strong> in the admin panel \u2014 linking any two registered users<\/li>\n<li>Both users log into your site and see their <strong>private dashboard<\/strong> via the <code>[bsxfe_dashboard]<\/code> shortcode<\/li>\n<li>Either side uploads a file \u2014 the other receives an <strong>email notification<\/strong> instantly<\/li>\n<li>Downloads go through a secure PHP endpoint with <strong>token-based authentication<\/strong> \u2014 no public file URLs ever exist<\/li>\n<\/ol>\n\n<h4>Who is it for<\/h4>\n\n<ul>\n<li><strong>Medical practices<\/strong> \u2014 share test results, prescriptions, and referrals with patients<\/li>\n<li><strong>Law firms<\/strong> \u2014 exchange contracts, briefs, and case documents with clients<\/li>\n<li><strong>Coaches and consultants<\/strong> \u2014 share materials, homework, and session notes with coachees<\/li>\n<li><strong>Accountants<\/strong> \u2014 deliver reports, invoices, and tax documents to businesses<\/li>\n<li><strong>Any service<\/strong> requiring private, tracked, bilateral document exchange with clients<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Bidirectional exchange<\/strong> \u2014 both Host and Guest can upload and download files<\/li>\n<li><strong>Secure storage<\/strong> \u2014 files live in <code>\/wp-content\/uploads\/bsx-file-exchange\/<\/code> behind an <code>.htaccess<\/code> that blocks all direct access<\/li>\n<li><strong>Token-based downloads<\/strong> \u2014 every download link is unique and authenticated; sharing the URL with someone else does nothing<\/li>\n<li><strong>Email notifications<\/strong> \u2014 automatic alerts when a new file is uploaded<\/li>\n<li><strong>Multi-pair support<\/strong> \u2014 one user can belong to multiple pairs; the dashboard lets them switch between pairs without page reload<\/li>\n<li><strong>Read\/unread tracking<\/strong> \u2014 recipients see which files are new<\/li>\n<li><strong>Activity log<\/strong> \u2014 every upload, download, and deletion is logged with timestamp, IP address, and user agent; exportable as CSV<\/li>\n<li><strong>Privacy modes<\/strong> \u2014 choose between pair-only visibility, admin read-only, or admin full access<\/li>\n<li><strong>Frontend shortcode<\/strong> \u2014 embed the dashboard anywhere with <code>[bsxfe_dashboard]<\/code><\/li>\n<li><strong>Full wp-admin panel<\/strong> \u2014 manage pairs, view files per pair, browse activity, configure settings, and run system diagnostics from a dedicated Debug page<\/li>\n<li><strong>Customizable color palette<\/strong> \u2014 set primary and secondary colors from Settings to match your brand<\/li>\n<li><strong>Ultimate Member integration<\/strong> \u2014 adds a tab to UM account and profile pages automatically when Ultimate Member is active<\/li>\n<li><strong>i18n ready<\/strong> \u2014 fully translatable, Spanish included<\/li>\n<\/ul>\n\n<h4>What's included<\/h4>\n\n<ul>\n<li>Unlimited Host\/Guest pairs<\/li>\n<li>Bidirectional upload and download for all pairs<\/li>\n<li>Email notifications (sender name and address configurable)<\/li>\n<li>Frontend shortcode dashboard with drag-and-drop upload<\/li>\n<li>wp-admin panel with Pairs, Hosts, Guests, Activity, Settings, and Debug pages<\/li>\n<li>Activity log with CSV export<\/li>\n<li>File size limit configurable up to server maximum<\/li>\n<li>Configurable allowed file types (PDF, DOCX, XLSX, JPG, PNG, ZIP, and more)<\/li>\n<li>Optional data deletion on uninstall<\/li>\n<\/ul>\n\n<h3>Privacy Policy<\/h3>\n\n<p>BSX File Exchange stores the following data in your WordPress database:<\/p>\n\n<ul>\n<li>File metadata (filename, size, MIME type, upload date) linked to registered WordPress users<\/li>\n<li>Download and upload events with IP address and user agent string for audit purposes<\/li>\n<li>Email notification records (recipient, timestamp)<\/li>\n<\/ul>\n\n<p>No data is transmitted to external servers. All files are stored locally within your WordPress installation under the standard uploads directory. Administrators can permanently remove all plugin data \u2014 including database tables, options, and uploaded files \u2014 by enabling the <strong>Delete all data on uninstall<\/strong> option in Settings before deactivating and deleting the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bsx-file-exchange<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install directly from the WordPress plugin directory<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> menu in WordPress<\/li>\n<li>Go to <strong>BSX File Exchange \u2192 Settings<\/strong> and configure your preferences (allowed file types, size limit, colors, notification email)<\/li>\n<li>Create a WordPress page and add the shortcode <code>[bsxfe_dashboard]<\/code> to it<\/li>\n<li>In Settings, set that page as the Dashboard page<\/li>\n<li>Go to <strong>BSX File Exchange \u2192 Pairs<\/strong> and click <strong>+ New pair<\/strong> to create your first Host\/Guest connection<\/li>\n<li>Both users will see the dashboard automatically when they log in and visit the shortcode page<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"are%20files%20publicly%20accessible%3F\"><h3>Are files publicly accessible?<\/h3><\/dt>\n<dd><p>No. Files are stored in <code>\/wp-content\/uploads\/bsx-file-exchange\/<\/code> with an <code>.htaccess<\/code> file that denies all direct HTTP access. Every download goes through a PHP authentication endpoint that verifies the requesting user has an active pair linked to that specific file before serving it.<\/p><\/dd>\n<dt id=\"can%20one%20user%20be%20in%20multiple%20pairs%3F\"><h3>Can one user be in multiple pairs?<\/h3><\/dt>\n<dd><p>Yes. A Host can be paired with multiple Guests, and a Guest can be linked to multiple Hosts. The dashboard shows all active pairs and lets the user switch between them with a single click and no page reload.<\/p><\/dd>\n<dt id=\"what%20file%20types%20are%20supported%3F\"><h3>What file types are supported?<\/h3><\/dt>\n<dd><p>By default: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, CSV, JPG, JPEG, PNG, GIF, WebP, ZIP, and RAR. You can enable or disable any type from <strong>BSX File Exchange \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20files%20when%20i%20delete%20a%20pair%3F\"><h3>What happens to files when I delete a pair?<\/h3><\/dt>\n<dd><p>All files belonging to that pair \u2014 along with their database records, notifications, activity logs, and the physical files on disk \u2014 are permanently and irreversibly deleted.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20file%20size%3F\"><h3>Can I limit file size?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Settings<\/strong> and set the maximum file size. The effective limit is automatically capped to your server's <code>upload_max_filesize<\/code> and <code>post_max_size<\/code> PHP settings \u2014 you can verify this in the <strong>Debug<\/strong> page.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20ultimate%20member%3F\"><h3>Does it work with Ultimate Member?<\/h3><\/dt>\n<dd><p>Yes. When Ultimate Member is active, BSX File Exchange automatically adds a tab to both the account and profile pages, so users can access their file exchange dashboard directly from their UM profile without needing a separate shortcode page.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20multisite%3F\"><h3>Does it work with multisite?<\/h3><\/dt>\n<dd><p>The plugin works on individual sites within a multisite network. Network-wide activation is not currently supported.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>A Pro version is planned for a future release with features including: no file size limit, file expiry dates, password-protected download links, inline preview for images and PDFs, and per-pair notification customization. It is not available yet \u2014 follow the plugin page for updates when it launches.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed admin stylesheet not loading for users with the Administrator role due to an inverted logic condition in the asset enqueue function<\/li>\n<li>Redesigned admin page header \u2014 cleaner two-level layout with brand row (logo + version) separated from the page title and subtitle<\/li>\n<li>Improved spacing and visual hierarchy throughout the admin panel<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed admin and frontend CSS\/JS asset versioning \u2014 inconsistent version suffixes were causing browser cache conflicts that prevented stylesheets from loading after updates<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Normalized asset version strings across all enqueue calls<\/li>\n<li>Bumped stable tag<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Bidirectional file exchange between Host and Guest users<\/li>\n<li>Secure file storage with <code>.htaccess<\/code> protection and token-based download authentication<\/li>\n<li>Email notifications on file upload<\/li>\n<li>Activity log with IP tracking and CSV export<\/li>\n<li>Frontend shortcode <code>[bsxfe_dashboard]<\/code> with drag-and-drop upload and AJAX pair switching<\/li>\n<li>Full wp-admin panel: Pairs, Hosts, Guests, Activity, Settings, Debug<\/li>\n<li>Ultimate Member 2.x integration \u2014 account and profile tabs<\/li>\n<li>Customizable color palette for the frontend dashboard<\/li>\n<li>Multi-pair support with no-reload pair switching<\/li>\n<li>i18n ready \u2014 Spanish (es_ES) translation included<\/li>\n<li>Configurable allowed file types and file size limit<\/li>\n<li>Privacy modes: pair-only, admin read-only, admin full access<\/li>\n<li>Optional full data deletion on uninstall<\/li>\n<\/ul>","raw_excerpt":"Private, bidirectional file exchange between paired users. Built for clinics, law firms, coaches, and any service needing secure client file sharing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=326385"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bs279"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326385"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326385"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326385"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326385"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326385"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}