WHMCS MU Provisioning for running, expanding and automating your hosting business using WHMCS with WordPress.
WHMCS and Pro Sites
Not sure what WHMCS is, but you still want to host websites?
If you are not familiar with WHMCS but still want to sell websites then you might want to consider our Pro Sites plugin. Pro Sites is designed to let you sell premium sites with themes, plugins, space upgrades and other cool feature enhancements. You bill your clients monthly, quarterly or yearly, and its all automated!
Want to learn more about WHMCS?
WHMCS is an all-in-one client management, billing & support solution for online businesses. Handling everything from signup to termination, WHMCS is a powerful business automation tool that puts you firmly in control – WHMCS.com
With our latest release you can now provision websites direct from your WHMCS installation.
Yup you read that right – you can sell WordPress websites in your WordPress Multisite installation direct from WHMCS. How awesome is that?
It just oozes with goodness, doesn’t it?
Setup your products, how much space your want your customers to have and let our WHMCS Multisite Provisioning do the rest.
Bring WHMCS to Your Dashboard
Do you want to have your WHMCS install show within your WordPress website as if it was designed to fit like a glove?
Pop over to WHMCS WordPress Integration project page for more information!
With the WHMCS WordPress Integration plugin you are essentially embedding your WHMCS installation right into your WordPress site. The style, the design… it’s beautiful.
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:
You then have a structure for both like:
Installing the plugin in WordPress
Once the plugin is installed and network activated, you will see a new menu item in your network admin dashboard: WHMCS Remote Provisioning
Click on the WHMCS Provisioning menu and you’ll see a page with several options.
Enter the URL of your WHMCS installation in the Remote WHMCS Host field.
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.
Tick the Debug option to turn on the debugging feature in the plugin. This will allow messages to get posted to the WHMCS Modules Log, to help with debugging should any issues arise.
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 Setup > Addon Modules.
You’ll see the WHMCS Provisioning addon in the list, which should already be activated.
If it’s not Activated, go ahead and press the Activate button.
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 – https://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)
Integration with Pro Sites is an incredibly powerful feature that allows you to create separate products in WHMCS and associate them with Levels you create using Pro Sites. This lets you offer various plans through your WHMCS service, allowing clients to purchase additional features like Premium Plugins and Premium Themes.
Simply install and configure Pro Sites, setting up various Levels as you want them, as per our Usage page.
Then within the admin area of WHMCS, create a product for each Pro Sites Level (as detailed above). In each product, the ProSites ﬁeld should match the Level name in Pro Sites.
Once that is done, clients will be able to purchase Pro Sites plans as products through WHMCS, upgrading, downgrading and canceling plans as they like.
Domain Mapping – allow mapping of domain names to sub-sites on your network.
Multi-Domains – offer creation of sub-sites with sub-domains from other domain names.
== 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.
Jammed With Features
Everything you need to host your own network
- WHMCS Modules - Both WHMCS add-ons and WordPress plugin included
- Hosting Space - Set how much space each product should have in your WordPress Multisite
- Sub Domains - Offer sub domains direct from your WHMCS site
- Sub Directory - We also support sub directory installs as well
- Sell Web Hosting - Sell hosting within your WordPress Multisite install
- Bill As You Like - Bill as you like through WHMCS, when they don't pay, their website will be closed down and archived until payment is made
- Terminate A Service - When you terminate a service in WHMCS, the website is also deleted in WordPress for you
- Domain Mapping - Sell domain names and have them mapped in for you with our Domain Mapping plugin
- No Restrictions On Sites - You can sell sites on as many WordPress installs as you wish, you might have hundreds of them, or you might let our Multi-Domain plugin handle all those extra domains for you on one install