Client Access Plugin

This plugin was built for a very specific use-case where my client had a large multisite network, and needed to allow limited admin access and capabilities to their sub-clients, and sub-sub-clients.

View on GitHub

A code sample from the plugin.

The plugin does the following things:

  • Adds two new user roles (‘Client’ and ‘Site Manager’).
  • Greatly restricts admin functionality for these roles, eliminating things like the Dashboard, page metaboxes, user profile options, list table columns, TinyMCE defaults, and more.
  • Adds a ‘Documents’ custom field to Pages, where a user with these roles can upload specific documents to that page.
  • Adds the optional ability to allow ‘Site Managers’ to add and manage Subscriber users (and a settings page to enable/disable this feature).
  • Adds custom handling of other plugins, including Tablepress, AppPresser, and MonsterInsights.