Sounds to me like you are making it more complicated than it needs to be. You already have the author/user as the client – no need to create another concept to represent that.
Requirements:
wp network where each subsite has many users (clients)
Each client wants to have a single page which they can edit and control. (One page only? no posts?)
so their url is something like:
network.com/minisite/clients/clientx (subfolder)
or
minisite.network.com/clients/clientx (subdomain)
How to do:
Use a member/role plugin like Justin Tadlocks free member plugin to create a tailored client role
with capability to edit page, but not create posts etc (or with php)
On client registration, add action on ‘user_register’ :
- create a client subpage ‘clientx’ under ‘clients’ with client x as
author name could be based on their details entered or use a
registration custom field to ask them what they want the name to be.
Add actions/filters (maybe to look in wp code to find best hooks)
- remove add_new from the menu (google wordpress remove menu – I’ve done, just cannot remember now which action)
- check if 1 page already created, do not allow more (in case they
find a way even with menu (WP I don’t think has a create-page
capability distinct from edit-page, but it may be coming see
http://core.trac.wordpress.org/ticket/16714 - ensure everyone can only see their own pages from the edit-pages list
Possibily (if there is to be a standard template for client pages):
- make the auto created pages have a client template that maybe adds
in their details from their profile etc. You could even have a
variety of templates that they could use from the edit page dropdown
to offer them a choice of layout of details wrt content they type in
My interest:
I’m thinking of doing something like this myself and could make it a plugin, so interesting to hear the diffferent requiremenbts that people may have.
I think the approach above would keep it fairly clean and simple (always a good idea).