Don’t forget you will need a copy of WHMCS installed and ready to go before getting started here.
Installation of this plugin is a little different from most, it requires you upload to both WordPress and WHMCS but don’t worry we will walk you through it.
So to get started you need to unpack your files and then upload the contents:
Upload your /whmcs-multisite-remote-provisioning/ to your WordPress plugin directory:
So it will be:
Inside the /whmcs-multisite-remote-provisioning/ folder there is another folder called /whmcs/ this needs to be uploaded to your WHMCS install (as you see in the image above):
There are files for both the addons and servers folder, like:
Getting WordPress set up
There is not much to do on the WordPress side just yet, so we will cover that aspect of the install first. Pop on over to your Network Adminarea, and then into the plugins section:
Admin –> Network Admin –> Plugins
And of course Network Activate it
In your Network Admin area you will now have a new menu item titled “WHMCS Remote Provisioning” so click on there and lets set up the admin options.
Remote WHMCS Host: This is the URL of your WHMCS installation.
Authorised IP Addresses: When this is left blank nothing is restricted, if you wish to ensure that only specific WHMCS installs can set up websites in your WordPress Multisite install then you can filter by IP address.
Getting WHMCS set up
Now we need to get a server set up on WHMCS and then add some products as well before we can start making some cash!
Log into your WHMCS installation, and go to the addons section.
You’ll see the WHMCS Provisioning plugin, which should already be activated.
We also need to set permissions, once activated you can then manage those permissions:
Whilst managing the addon you can then set which staff has access to control the addon:
We can now get the servers setup. Pop over to your Servers administration page:
Setup –> Products/Services –> Servers
So lets create a group first:
Name: You can enter anything you wish here, its just the name for your Multisite Group. For example, you might have a group of cPanel servers where you will share signups over, or a group of WordPress Multisite installs.
Fill Type: This is not something you will use much for WordPress, you’ll most likely only have one server specified so its up to you what you want set here.
Selected Servers: You most likely won’t have your WordPress install here yet, so nothing would be selected. However if you jumped ahead then you will, so select the appropriate option and add it. Once you are happy just click on the Save Changes button.
We will now be back at the servers page, so click on the Add New Server option.
Names: Name it anything you wish, you will probably want it to be something memorable, perhaps the domain name so you know which WordPress install this server relates to.
Hostname: This is your domain name where your WordPress is installed.
IP: The IP address of your WordPress installation.
Assigned IP: You need not enter anything here.
Monthly Cost: You can enter the cost of your WordPress install here, so if your hosting cost $20 per month, then enter that. Nothing needs to be entered here.
Datacenter/NOC: The datacenter where this installation is kept. Nothing needs to be entered here.
Maximum No. of Accounts: How many websites you will have in your WordPress Multisite installation – If you ever get thousands upon thousands then checkout our Multi DB plugin for database scaling – http://premium.wpmudev.org/project/multi-db
Server Status Address: If you uploaded the WHMCS status folder to your server, then enter the address to that server here including path. This will show users from your WHMCS website if your website is up or down. Your status notifications will keep admins informed.
Enable/Disable: Do you want this server available or not. Of course you will want it enabled in order to use it.
You don’t need to set any name servers unless you are pointing registered domains to a specific DNS server when hosting on your WordPress Multisite. It maybe best to use the domain registrars DNS and add or change the A Record there. Thats up to you handle :-)
Type: You will need to select Whmcs_multisite.
Username: Your WordPress admin username
Password: Your WordPress admin password.
Access Hash: You don’t enter anything here.
Secure: If your WordPress installation uses SSL then you can enable SSL connections here.
When all that is done, just click on the Save Changes button.
The next step is to get some products set up, head on over to your products section.
First we will need to Create A New Group so click on that option
The first field is the group name, I’ve put it as WPMU for now, but you can set it to what ever you wish.
Available Payment Gateways: WHMCS supports many gateways, I only have Paypal on this current setup, but you might have Authorize.net, 2Checkout, Google Checkout or any of the many which WHMCS support. Select the gateways you wish to use with this group.
Hidden: Will this group be hidden on the front end order forms or will it be visible for all to purchase, you decide. Remember you can send your prospective new clients a direct link.
Direct Cart Link: You cannot edit this, but you can use it to give your clients so they go directory to this product group for ordering WordPress sites in your multisite install.
Then just click on the Save Changes button and thats it here.
We now need to click on the Create A New Product option.
We then get the product setup page:
Product Type: You need to select Hosting Account here.
Product Group: That will be the product group you just created, in my example that is WPMU.
Product Description: You can enter anything in there you wish, it obviously describes the service you offer.
Welcome Email: If you create a custom email you can set that here, or you can leave it as none. Leaving it as none will mean that WHMCS does not mail your customer about their new purchase welcoming them aboard.
Required Domain: We don’t require a domain in this instance, so we can leave that unchecked.
The rest of the options there are at your discretion on this tab. Once your done then move Module Settings tab
Module Name: You set this to Whmcs_multisite.
Server Group: Set this to the server group you created earlier.
Default Blog Title: Enter the title you wish to be assigned to your new blogs by default. The site owner can edit their blog title from WordPress once created
Default Role: What role your new website owners should be assigned within your WordPress install. That would most likely be administrator
Default Blog Domain: If the user does not enter a domain, this will be used by default. If you’re not using Custom fields (see below) this is the default domain name that will be used with numbers appended (to keep it unique). This cannot be changed later without you editing your database directly
Web Space Quota: This is how much space you want to give them on this product. Its measured in MB.
The custom fields must not be checked if you are going to allow domain mapping with our plugin (also called domain mapping and mentioned within this tutorial). You do not create any custom fields.
Tick the two custom field names if you are using custom fields to define the Title and Domain.
On the Custom fields Tab, create two custom fields.
First custom field must be named “Domain”, as a Textbox Validation “|^([a-zA-Z0-9-])+$|i” (without quotes), Required field, Show on Order Form.
Second custom field must be named “Title”, as a Textbox Validation “|^([a-zA-Z0-9- ])+$|i” (without quotes), Required field, Show on Order Form.
Just click on the Save Changes button when you are done.
Sub Domains – If you are using the subdomain version of WordPress multisite then you could allow your users to select that from the domain name form whilst signing up. To do that click on the Other tab
Subdomain Options: You simply enter your domain(s) here in a comma seperated list. Note the period before the domain names.
You will most likely want to edit your pricing and other settings here, but everything which is required for this to function has been completed, so the rest is up to you. :-)
How It All Looks
Or in Dollars (WHMCS can take many currencies!):
So once they have checked out, made their payment then they are set, the website is provisioned within your WordPress install for you automatically.
If you use our Domain Name mapping plugin and your customer purchases a domain, it will also be added to your WordPress website when our plugin is activated. Cool eh!
Don’t forget the A Record though, you need to get that pointing in. (See the Domain Mapping plugin for more information)
To use domain mapping and offer multiple domains you need to use two of our additional plugins:
Domain Name Mapping:
Offer multiple domains on your install with our Multi-Domains plugin:
== Known Issues ==
1. If a user does not already exist on WordPress as determined by matching the WHMCS Clients email with the WordPress users email, a new user will be created using the WHMCS Client’s email address and the portion before the ‘@’ as the users name. If you are Accepting Orders in Admin before creation you can change the default username there. Once the username is created it cannot be changed.
2. If the WHMCS clients email address already exists as a user in WordPress, the WordPress user account
will override what you may put in WHMCS. WordPress user names can not be changed and this is enforced in WHMCS.
3. WHMCS generates random passwords when creating a service. If a new WordPress user is
created as a result this random password is the password for the new user. If the user already exists
in WordPress WHMCS still generates a random password but it does NOT change the WordPress password.
WHMCS can change the password on WordPress but WordPress password changes will not be feed back to WHMCS.
4. Each WHMCS service creates different random passwords so they will not match if a Client has more than one
service at the same WordPress site.
5. The current version is from WHMCS to WordPress only. Some fields will sync to WHMCS automatically such as username, domain, path. Changes to these are locked out at WHMCS admin.
6. Passwords may be changed from WHMCS Admin but they DO NOT feed back from WordPress to WHMCS. WordPress passwords are hashed and can’t be read.