Version 4.0 Release Notes

From WHMCS Documentation

Release Information

Version 4.0.0

  • Release Date: 6th May 2009
  • Release Type: File & DB Update

Version 4.0.1

  • Release Date: 29th May 2009
  • Release Type: Incremental Files Only

Version 4.0.2

  • Release Date: 21st June 2009
  • Release Type: Incremental Files Only


You can view a full list of features, changes, tweaks and enhancements in the forum announcement @

Upgrade Steps

To upgrade your WHMCS System, simply follow the instructions below.

  1. Begin by taking a backup of your database through a tool such as phpMyAdmin
  2. Unzip the contents of the zip file download to a folder on your computer
  3. Remove the images/logo.jpg file to avoid overwriting your customised logo
  4. Upload the files to your existing installation folder overwriting any existing files
  5. Visit the admin area to access the upgrade script
  6. Accept the license agreement
  7. Confirm you have backed up your database and click the upgrade button
  8. Once the script finishes loading, delete the install folder
  9. Before the upgrade is completed, you must update your custom template with any new or changed template files

Template Changes

The following template files have changed from the previous release V3.8

  • bulkdomainchecker.tpl
  • bulkdomaintransfer.tpl
  • clientareaaddcontact.tpl
  • clientareachangepw.tpl
  • clientareachangesq.tpl
  • clientareacontacts.tpl
  • clientareacreditcard.tpl
  • clientareadetails.tpl
  • clientareadomaindetails.tpl
  • clientareadomainrenew.tpl
  • clientareadomains.tpl
  • clientareahome.tpl
  • clientareainvoices.tpl
  • clientareaproducts.tpl
  • clientareaproductdetails.tpl
  • clientregister.tpl
  • domainchecker.tpl
  • downloads.tpl
  • knowledgebase.tpl
  • passwordreminder.tpl
  • supportticketsubmit-steptwo.tpl
  • upgrade.tpl
  • upgradesummary.tpl
  • viewinvoice.tpl
  • viewticket.tpl
  • All Order Form Templates

Points Affecting All Users

Client Area Header Addition

The new client side javascript functionality requires the Jquery class is included within the <head> section of your header.tpl template. The required line that needs adding is:

<script type="text/javascript" src="includes/jscript/jquery.js"></script>

Move of Invoice PDF Template

As of version 4, the PDF template file used for invoices has been moved to the templates folder to make upgrading easier and prevent overwriting customisations in future. Therefore you need to move the file includes/pdfconfig.php to your active custom template folder and rename to invoicepdf.tpl

New Admin Area Design

By default after the upgrade your admin account will be set to the new admin area design. You can revert to the old design by going to My Account > Template > Original.

Points Affecting Only Specific Users


As most Plesk users will be aware, the way Plesk handles their API is to make it not backwards compatable with updates. Therefore, you should only update to the Plesk module in V4 if you are running Plesk 9 for all your servers. If you are not, you will need to continue using the current module where creation of clients and domains should still work.

Quantum Gateway

In V4 we have implemented the MD5 hash verification in the Quantum Gateway callback file to prevent forged callback requests. Therefore, if you are a user of Quantum, you need to setup an MD5 hash in your Quantum Gateway account and enter this into your WHMCS install in Config > Payment Gateways > MD5 Hash.

Configurable Package Addon

If you have purchased the configurable package addon, from now on you need to set the WHM Package Name to "Custom" rather than the license key you were given in order to define it as a package using the addon.

Licensing Addon

If you use the licensing addon, you will need to download the latest version of the files using the same link as originally provided and update them in your install for V4 compatability.

Action Hooks

A new and more flexible hooks system has been introduced in Version 4 which now supports many more hook points and easier implementation of multiple hook addons via their own files. This does however mean existing hooks need modifying to work with the new version. If you use hooks then you need to copy the actionhooks.php file from includes/ to includes/hooks and add the following lines at the bottom of the file:


You need only add the ones you use.

New Language File Lines

The new language file lines of V4 are:

$_LANG["accountinfo"] = "Account Information";
$_LANG["choosecurrency"] = "Choose Currency";
$_LANG["clientareacurrentsecurityanswer"] = "Please enter your current answer";
$_LANG["clientareacurrentsecurityquestion"] = "Please choose your current security
$_LANG["clientareanavsecurityquestions"] = "Change Security Question";
$_LANG["clientareanavservices"] = "My Services";
$_LANG["clientareasecurityanswer"] = "Please enter an answer";
$_LANG["clientareasecurityconfanswer"] = "Please confirm your answer";
$_LANG["clientareasecurityquestion"] = "Please choose a security question";
$_LANG["creditcardenternumber"] = "You did not enter your card number";
$_LANG["creditcardnumberinvalid"] = "The credit card number you entered is invalid";
$_LANG["customfieldvalidationerror"] = "value is not valid";
$_LANG["downloaddescription"] = "Description";
$_LANG["downloadname"] = "Download";
$_LANG["invoicescollections"] = "Collections";
$_LANG["invoicesrefunded"] = "Refunded";
$_LANG["latestannouncements"] = "Latest Announcements";
$_LANG["or"] = "or";
$_LANG["passwordremindercontactsupport"] = "You have no validation questions - please
contact support";
$_LANG["passwordremindervalidate"] = "Validate";
$_LANG["passwordremindervalidationerror"] = "Your answer could not be validated - please
try again or contact support";
$_LANG["promoexistingclient"] = "You must have an active product/service to use this
$_LANG["promoonceperclient"] = "This code can only be used once per client";
$_LANG["pwstrengthfail"] = "The password you entered is not strong enough - please enter
a more complex password";
$_LANG["quicknav"] = "Quick Navigation";
$_LANG["rssfeed"] = "Feed";
$_LANG["securityanswerrequired"] = "You are required to enter a security answer";
$_LANG["securitybothnotmatch"] = "Your answer and confirm answer do not match";
$_LANG["securitycurrentincorrect"] = "Your current question and answer is incorrect";
$_LANG["step"] = "Step";
$_LANG["supportticketsticketattachments"] = "Attachments";
$_LANG["whoisresults"] = "WHOIS Results for";