Initial Setup

Step One: Install the Plugin

The easiest way to install Client Power Tools is from your WordPress dashboard. Log in to your WordPress dashboard, then go to Plugins / Add New. Enter “Client Power Tools” in the search field. To install Client Power Tools, click the Install Now button, then activate it by clicking the Activate button.

Step Two: Check the Settings

Once you have installed and activated Client Power Tools, check the settings page. Some things to check:

  1. Make sure you have a client dashboard page selected. (Client Power Tools should have created a page called Client Dashboard and selected it automatically.) You can change the page here, or go to the page itself to change its title.
  2. Select a default client manager if you intend to assign clients to client managers.
  3. Select the modules you want to use. As of this writing, optional modules are Projects & Stages, Knowledge Base, Messages, and the Status Update Request Button.
  4. If you enable the Knowledge Base, make sure you have a knowledge base page selected.
  5. If you enable Projects & Stages, customize your project labels and types.

Step Three: Edit Your Client Dashboard Page(s)

Then, visit your client dashboard page in the WordPress editor and add a welcome message to your clients. If you intend to use the knowledge base, start adding information for your clients. You can add sub-pages, as well, to expand the knowledge base.

Step Four: Add Your Client Dashboard To Your Website

The Client Dashboard is a regular page on your website, so you can link to it just as you would link to any other page, anywhere on your site, in emails, etc.

For starters, you will probably want to add the client dashboard page to one of your nav menus.

If you are using a “classic” WordPress theme, go to Appearance / Menus in the WordPress dashboard. Then, select the menu you want to add your client dashboard to. Under Pages, select your client dashboard page (use the search tab if you can’t find it), and then click the Add to Menu button. Now you can reorder your menu as you like.

If you are using a block theme, go to the Site Editor and click on the menu you want to edit. Use the + button and begin typing the name of your client dashboard page to add it to the menu.

Step Five: Add Your First Client!

Now you are ready to give your clients access to their dashboard! To do this, go to Clients in your WordPress dashboard, then click the Add a Client button. After you fill out the form, click Add Client. Client Power Tools will send an email to your client with the link to your client dashboard.

That’s it!

Adding Existing Users as Clients

If you have existing WordPress users that you want to add as a client, just add a new client as usual, under Clients / Add New. If Client Power Tools finds an existing user with the same email address, it will update that user rather than creating a new one.

Add to the Knowledge Base

The knowledge base is made up of normal WordPress pages, and Client Power Tools restricts them to clients. When you first activate Client Power Tools, it creates a page for the knowledge base. You can find it under the Pages menu in your WordPress dashboard.

Changing the page title will change the name of your knowledge base. You can expand your knowledge base by adding child pages. To do that, just create a new page and look for the Page Attributes widget in the sidebar. Under Parent Page, select your knowledge base page.

You can, of course, create child pages of child pages. Whatever you create will show up in the drop-down index on your client dashboard.

Also, the index respects the Order field. All the child pages of the same level will be displayed in the index starting with the lowest number.

Add Pages to the Dashboard

To add other pages from your website to your client dashboard, go to Clients / Settings in the WordPress dashboard and add page IDs separated by commas.

To find page IDs, open the page in the WordPress editor and look at your browser’s address bar. It should show something like Look for the post=174 section of the URL. That number is the page ID.

Customize the Appearance

Client Power Tools is designed to be as “transparent” as possible. For the most part it will inherit your theme styles and adds very little styling of its own. But if you do need to override Client Power Tools styles, you can use .customize-cpt before your CSS selectors.


[status-update-request-button] Use this shortcode anywhere on your website to show the Request Status Update button to logged-in clients.

Filter Hooks

For general information about using filters hooks, see the WordPress documentation. Client Power Tools supports one filter as of 1.5.5.


The cpt_custom_fields filter expects a returned array with the following key-value pairs:

  • id (string, required). A slug that will be used to identity the field in the form and the database.
  • label (string, required). The public label for the form field.
  • required (boolean, optional). True or false. Whether the field is required in the form.
  • type (string, required). The html input type (text, email, url, number, etc.).

Here is an example of how I use it to add a field for a client’s website login URL. (Both of the following code examples can go in your theme’s functions.php file.)

function add_custom_fields($fields) {
  $fields[] = [
    'id' => 'clients_login_url',
    'label' => __('Client\'s Login URL', 'client-power-tools'),
    'required' => false,
    'type' => 'url',
  return $fields;

add_filter('cpt_custom_fields', 'add_custom_fields');

This adds a Client’s Login URL field to the form for adding or editing a client:

If you enter a URL and add or update a client, it will be saved to the database. I also created a shortcode so I can add a Log in to Your Website button to the client dashboard. Here is my code for that:

function client_login_shortcode() {
  $clients_user_id = get_current_user_id();
  if (!$clients_user_id) return;

  $clients_login_url = get_user_meta($clients_user_id, 'cpt_clients_login_url', true);
  if (!$clients_login_url) return;

      <p><a href="<?php echo $clients_login_url; ?>" class="button" target="_blank"><?php _e('Log in to Your Website', 'cpt-theme-child'); ?></a></p>
  return ob_get_clean();

add_shortcode('client-login', 'client_login_shortcode');

I added the [client-login] shortcode to my client dashboard page, which results in this:

And now my clients can easily get to their websites.