Tuesday, 07 September 2010 15:37
It seems to be more and more common for companies to have special areas of their websites specifically for their existing clients. There are a lot of reasons this approach can be a great business strategy. Not only are you able to reward your loyal customers with rewards, you are also encouraging additional interactions and client registrations. While you should always avoid using registration data for malicious reasons it can be a great way to develop a list, evaluate your marketing demographics or get feedback.
While Wordpress has a fairly fully functioning registration system out of the box it is really designed for subscribing to a blog and leaving comments. However with a few plug-ins and some tweaks it is pretty easy to develop a full featured client section through your Wordpress Installation.
Typically a client area works something like this:
Wordpress can do quite a bit of this for us, including user registration, private pages and the assignment of username and password. The areas in which we would like to get a bit more capabilities would be a more streamlined login page (one that matches the theme vs the Wordpress admin login), forwarding the user to the proper area and collecting more information about the customer than just username and password.
The first step is either creating a user for clients (if you want to be more selective and hand them out on a case by case bases) or allowing them to register for the client area. While the Wordpress user profile does allow the storing of some basic information it is not included in the normal registration process and leaves out some potentially important details. With the Register Plus plugin you can add common fields such as phone number, address, etc... but you can also manually create additional profile fields and include them in the registration form.

Worried that just anyone is going to sign up and access the special area? The appropriately titled New User Approval plugin has got you covered. Now you will be e-mailed when a user tries to register and can manually approve or disallow case by case.
Now when a user logins in you probably don't want them to go to the dashboard. This would be pretty confusing and disorienting and they likely would have little idea on how to get to the client section they were interested in. With Peters Login Redirect plugin you can choose exactly where logged in users will go. Typically this will be done based on userlevel, however if you are looking to have content and information specific to a given client then you can also redirect them to pages based on their username.

Now the whole point of all of this is that we want some content to only be available to some users. At the most basic level all you have to do is change the default visibility with in the publishing properties from "Public" to "Private." However this only works if you don't mind all registered users being able to see all of the private content. IE: It is an "all or nothing" system. If you need more granularity then it is time to install the User Access Manager plugin, which will give you the capability to setup groups which have access to specific pages and sections.
While the Register Plus plugin will let you change the default login logo from Wordpress to your own, it is highly unlikely that the login page will actually match the rest of your sites design. While you could figure it is close enough and be on your marry way it wouldn't be a bad idea to include a login form from one of your templates. This way the users experience is never put at jeopardy and there is no risk of confusion.
While you could simply hard code the form HTML from the login page it is much easier to use one of the many available plugins to facilitate the experience.
These plugins will help you integration the login and registration forms into your site rather than take them to the Wordpress styled administrative register / login pages.

Once you have these plugins put together you should be ready to build out the content like you would any other pages in Wordpress. This is a simple and easy way to go about making a Wordpress Client area. Depending on your creativity it wouldn't be hard to develop Calendars for specific groups, file upload sections, etc... Really the possibilities become endless.
In a later post we will cover how to build a more complex client area for Wordpress using current_user information and extra fields.