Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

The aim is for a proposed site to have customers be able to login and be able to view a private and customer specific ADMIN page NOT frontend page (although this would be much easier to achieve).

Said page would display user meta and content that the site Admin could add ad hoc.

I am confident in being able to create the menu item, page and populate with user meta, my understanding seems to fail when it comes to actually making said ADMIN page private on a customer by customer basis, and the bet way to add content to these pages by the admin.

Any pointers so I can get a better understanding, or indeed plugins that in part have these capabilities would be greatly appreciated.

Thanks

John

share|improve this question
add comment

2 Answers

You can add a new page using add_(sub)menu_page();. WordPress is pretty kind in this case and offers tons of hooks, filters and higher level API functions that help you going around this.

Let's just use add_users_page(); and hook into admin_menu.

Example plugin

It adds an admin page that has the user_login as slug.

Simply drop this into your plugins folder and give it a test to see if this is what you're looking for.

<?php
! defined( 'ABSPATH' ) AND exit;
/* Plugin Name: (#66004) »kaiser« Add private User admin page */

// Add the admin page
function wpse66004_add_users_page()
{
    global $current_user;

    add_users_page(
        // $page_title
         'Your data'
        // $menu_title
        ,'Private Page'
        // $capability
        ,'read'
        // $menu_slug
        ,$current_user->user_login
        ,'wpse66004_render_users_page'
    );
}
add_action( 'admin_menu', 'wpse66004_add_users_page' );

// Render the users private admin page
function wpse66004_render_users_page()
{
    global $current_user;

    if ( ! current_user_can( 'read', $current_user->ID ) )
        return;

    echo "<h1>Hello World!</h1><p>And, of course, hello {$current_user->display_name} too!</p>";
}
share|improve this answer
add comment

In my opinion your best bet is to meddle with Custom User Roles. By creating different user capabilities you have this option to control which user can see what and from that point it's just a matter of creating different options pages for each user role.

share|improve this answer
    
Please explain why the downvote? –  Hamed Momeni Sep 23 '12 at 11:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.