Title: PortalPilot &#8211; Client Portal, File Sharing and Client Management
Author: cartpauj
Published: <strong>September 2, 2026</strong>
Last modified: September 2, 2026

---

Search plugins

![](https://ps.w.org/portalpilot/assets/banner-772x250.png?rev=3678522)

![](https://ps.w.org/portalpilot/assets/icon-256x256.png?rev=3678522)

# PortalPilot – Client Portal, File Sharing and Client Management

 By [cartpauj](https://profiles.wordpress.org/cartpauj/)

[Download](https://downloads.wordpress.org/plugin/portalpilot.1.0.4.zip)

 * [Details](https://wordpress.org/plugins/portalpilot/#description)
 * [Reviews](https://wordpress.org/plugins/portalpilot/#reviews)
 *  [Installation](https://wordpress.org/plugins/portalpilot/#installation)
 * [Development](https://wordpress.org/plugins/portalpilot/#developers)

 [Support](https://wordpress.org/support/plugin/portalpilot/)

## Description

PortalPilot turns your WordPress site into a client portal. Clients sign in on your
own front end, open their files, write notes back to you and keep their profile 
up to date — without ever seeing the WordPress admin.

You work from a portal page inside the admin: one screen per client with their files,
their notes, their profile and their permissions.

**Managing clients**

 * Mark any WordPress user as a client from their profile screen, or while creating
   them
 * A Clients view in the admin, filtered to just your clients
 * A dashboard showing client, file, folder and note counts, plus recent registrations,
   file activity and notes from clients
 * One portal page per client with Overview, Profile, Files, Notes and Permissions
   tabs
 * Block a client’s portal access without touching their WordPress account
 * Optional welcome email when you create a new client

**File manager**

 * Upload files and build folders for each client, or let clients do it themselves
 * Rename, move, trash, restore and permanently delete
 * A trash view with restore and empty-trash
 * Folder nesting up to five levels deep, or turn folders off entirely
 * Mark any file or folder admin-only so the client never sees it
 * Uploads up to 2 MB, capped by whatever your server allows
 * Choose which file types are accepted: documents, images, spreadsheets, presentations,
   archives, audio
 * Downloads are streamed by PHP, so real file paths are never exposed
 * Optional email to the client when you add a file, asked each time or set once

**Notes**

 * Write notes for yourself, or share them with the client
 * Clients reply from their portal; their notes arrive on the client’s Notes tab
 * Star notes you want to keep at hand, and filter by admin-only, shared, received,
   starred or trashed
 * Trash and restore, with a per-client option to let clients delete their own notes

**Client profiles and custom fields**

 * Clients edit their name, email, password and avatar themselves
 * Built-in address fields with country and state or province lists
 * Add your own fields: text, textarea, checkbox, checkboxes, radio, email and phone
 * Phone fields include international formatting and country selection
 * Decide per field whether it appears on registration, on the profile, or admin-
   only
 * Mark fields required, and drag to reorder them

**Permissions**

 * Global defaults for what clients may do: upload, create folders, rename files,
   rename folders, move files, move folders, trash files, trash folders, view trash,
   restore from trash, delete their own notes
 * Override any of them for an individual client on their portal page

**Sign-in, registration and passwords**

 * Front-end login, registration and password reset pages, built from your own pages
 * Self-registration can be switched off, leaving account creation to you
 * Custom messages for the portal welcome, access denied and registration disabled
   screens
 * Choose where clients land after logging out

**Email notifications**

 * Eight notifications, each one switchable: new client registered, file uploaded,
   client note received, client profile updated, welcome, admin added a file, admin
   shared a note, password reset
 * Edit every subject and body in a visual editor
 * Merge tags for `{{first_name}}`, `{{last_name}}`, `{{email}}`, `{{site_name}}`,`{{
   portal_url}}`, `{{login_url}}`, `{{file_name}}`, `{{file_count}}` and `{{reset_url}}`
 * Set the From name and address, and send admin notices to more than one recipient
 * Sent with WordPress’s own `wp_mail()`, so any SMTP plugin works alongside it

**Security**

 * Nonce checks and capability checks on every form and AJAX endpoint
 * Ownership checks so one client’s files and notes can never be reached by another
 * Prepared statements for every database query
 * Uploads validated three ways: an allowed-types list, a blocked list of executable
   types, and magic-byte inspection of the file itself
 * Double-extension uploads rejected
 * Files stored flat under UUID names in a protected directory, served only through
   PHP with no-store headers

**For developers**

 * Actions and filters throughout for extending the plugin
 * Custom tables rather than post types, and no REST API dependency
 * Scripts and styles load only on PortalPilot screens
 * Fully translatable through the `portalpilot` text domain

## Screenshots

[⌊Dashboard — client count, file and note totals, recent registrations and file 
activity at a glance.⌉⌊Dashboard — client count, file and note totals, recent registrations
and file activity at a glance.⌉[

Dashboard — client count, file and note totals, recent registrations and file activity
at a glance.

[⌊Clients appear as a filtered view on the WordPress Users screen, with a Manage
Portal link on every row.⌉⌊Clients appear as a filtered view on the WordPress Users
screen, with a Manage Portal link on every row.⌉[

Clients appear as a filtered view on the WordPress Users screen, with a Manage Portal
link on every row.

[⌊One screen per client: summary counts, starred notes, recent files and recent 
notes.⌉⌊One screen per client: summary counts, starred notes, recent files and recent
notes.⌉[

One screen per client: summary counts, starred notes, recent files and recent notes.

[⌊The client's files, in folders you control, managed from the admin side.⌉⌊The 
client's files, in folders you control, managed from the admin side.⌉[

The client’s files, in folders you control, managed from the admin side.

[⌊Notes read as a conversation. Mark a note admin-only, share it with the client,
or star it.⌉⌊Notes read as a conversation. Mark a note admin-only, share it with
the client, or star it.⌉[

Notes read as a conversation. Mark a note admin-only, share it with the client, 
or star it.

[⌊Per-client permission overrides — each one inherits the global default until you
change it.⌉⌊Per-client permission overrides — each one inherits the global default
until you change it.⌉[

Per-client permission overrides — each one inherits the global default until you
change it.

[⌊Settings: choose the portal, login and register pages, and edit the messages clients
see.⌉⌊Settings: choose the portal, login and register pages, and edit the messages
clients see.⌉[

Settings: choose the portal, login and register pages, and edit the messages clients
see.

[⌊Add custom fields for client profiles and the registration form, and drag to reorder
them.⌉⌊Add custom fields for client profiles and the registration form, and drag
to reorder them.⌉[

Add custom fields for client profiles and the registration form, and drag to reorder
them.

[⌊What the client sees when they sign in: their stats, files and notes on your own
front end.⌉⌊What the client sees when they sign in: their stats, files and notes
on your own front end.⌉[

What the client sees when they sign in: their stats, files and notes on your own
front end.

[⌊Clients browse and download their own files without ever entering the WordPress
admin.⌉⌊Clients browse and download their own files without ever entering the WordPress
admin.⌉[

Clients browse and download their own files without ever entering the WordPress 
admin.

[⌊Clients write back from the portal, and their replies land in the same thread 
you see.⌉⌊Clients write back from the portal, and their replies land in the same
thread you see.⌉[

Clients write back from the portal, and their replies land in the same thread you
see.

[⌊The front-end login form, on a page of your choosing.⌉⌊The front-end login form,
on a page of your choosing.⌉[

The front-end login form, on a page of your choosing.

## Installation

 1. Install through **Plugins  Add New**, or upload the `portalpilot` folder to `/wp-
    content/plugins/`.
 2. Activate PortalPilot on the **Plugins** screen.
 3. Open **PortalPilot  Settings** and pick or create your portal, login and registration
    pages.
 4. Create a client from **Users  Add New**, or edit an existing user and tick **This
    user is a client**.
 5. Set your permissions, email notifications and custom fields under **PortalPilot
    Settings**.

## FAQ

### Do clients need a WordPress account?

Yes. PortalPilot uses WordPress accounts for sign-in, but clients only ever see 
your front-end portal, never the admin.

### Does it add a new user role?

No. Being a client is a flag on the user, so their WordPress role stays exactly 
as you set it.

### Can I control what clients are allowed to do?

Yes. Every file and folder action has a global default, and you can override any
of them for one client on their portal page.

### Are uploaded files publicly accessible?

No. Files are stored under generated UUID names in a protected directory, and downloads
are streamed by PHP after an ownership check. Real paths are never exposed.

### Can I keep some files hidden from a client?

Yes. Mark any file or folder admin-only and it disappears from the client’s portal
while staying in yours.

### How large can uploads be?

Up to 2 MB, or less if your server’s own upload limit is lower. PortalPilot only
offers sizes your server can actually accept.

### Can I stop people registering on their own?

Yes. Turn off self-registration under **PortalPilot  Settings  Registration** and
only you can create client accounts.

### What happens when I block a client’s access?

They can no longer open the portal, upload, download or write notes. Their WordPress
account and any other access it has are untouched.

### Does PortalPilot create custom post types?

No. It uses its own tables: `portalpilot_files`, `portalpilot_folders`, `portalpilot_notes`
and `portalpilot_custom_fields`.

### How are emails sent?

Through WordPress’s `wp_mail()`. No external service is needed, and any SMTP plugin
works alongside it.

### Is it multisite compatible?

Not at this time. PortalPilot is built for single-site installs.

### What are the requirements?

WordPress 6.9 or newer and PHP 8.2 or newer.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PortalPilot – Client Portal, File Sharing and Client Management” is open source
software. The following people have contributed to this plugin.

Contributors

 *   [ cartpauj ](https://profiles.wordpress.org/cartpauj/)

[Translate “PortalPilot – Client Portal, File Sharing and Client Management” into your language.](https://translate.wordpress.org/projects/wp-plugins/portalpilot)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/portalpilot/), check
out the [SVN repository](https://plugins.svn.wordpress.org/portalpilot/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/portalpilot/) by
[RSS](https://plugins.trac.wordpress.org/log/portalpilot/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.4

 * The file upload panel is now a distinct section that reports each upload’s result
   and stays until dismissed.

#### 1.0.3

 * Fixed the logo and icon artwork being cropped at the top, which flattened the
   crown of the portal arch. Affects the admin menu icon, the admin header logo 
   and the directory assets.

#### 1.0.2

 * Fixed a fatal error when rendering a radio or checkbox custom field whose stored
   options were malformed.
 * The clients list header now renders through `in_admin_header` instead of `admin_notices`.
 * Removed the version-check admin notices; WordPress enforces the plugin header
   requirements itself.
 * The plugin name now describes what it does.

#### 1.0.1

 * First public release.

## Meta

 *  Version **1.0.4**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.9 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.2 or higher **
 * Tags
 * [client management](https://wordpress.org/plugins/tags/client-management/)[client portal](https://wordpress.org/plugins/tags/client-portal/)
   [file manager](https://wordpress.org/plugins/tags/file-manager/)[notes](https://wordpress.org/plugins/tags/notes/)
   [portal](https://wordpress.org/plugins/tags/portal/)
 *  [Advanced View](https://wordpress.org/plugins/portalpilot/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/portalpilot/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/portalpilot/reviews/)

## Contributors

 *   [ cartpauj ](https://profiles.wordpress.org/cartpauj/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/portalpilot/)