WHMCS - Module Installation & Upgrade

Introduction

Modules directly shipped with WHMCS are maintained by the WHMCS Core Team. Bugs and Feature Requests have to be addressed via https://whmcs.com. It is possible to migrate to our Module Variant.

We are offering our custom modules for WHMCS which cover more features than a natively integrated module would ever receive. In addition, this enables us to release more frequently. Therefore, we recommend using our custom variants instead.

Preparation

Signup

In case you haven't signed up yet, you can do that here.

CentralNic Reseller (fka. RRPproxy) is an established Reseller Brand and covers WHMCS development and support since years. We offer the most advanced WHMCS Integration and available product addons.

Charge your Account

A Registrar System is a pre-paid system, you have to add funds to your account to be able to order products and services. For doing this login over the registrar's frontend.

Registrar Account Settings

WHMCS' has its own automatic renewal logic. That's why we highly recommend deactivating the automatic Domain Renewal happening in our Registrar Systems by default. Otherwise, it will lead to undesired Renewals of Domains while your customers haven't paid for it in WHMCS.

Ensure to set the global Domain Renewal Mode Setting in your account to "Auto Expire" or "Expire Domain". If you did this at later point of time, please update already existing Domains accordingly as well. If you need help with this, feel free to reach out.

This action needs to be covered outside of WHMCS using the respective registrar's frontend.

PHP Settings

Ensure to set max_input_vars to 10000 or higher via php.ini (or WHMCS' configuration.php). This setting is mandatory to get WHMCS’ Registrar TLD Sync working which is their integrated TLD and Pricing Importer.

This is not something special related to our integration but required for WHMCS itself. Let me point to the PHP Docs and this feature request addressed to WHMCS as well.

System Requirements

In our system requirements, we recommend avoiding PHP versions that have reached their End of Life (EOL), as indicated in red on the PHP Supported Versions page.

To ensure compatibility with WHMCS, please follow these steps:

Ensure to have the below packages installed on your WHMCS Server:

  • curl
  • php-curl
  • One of the following registrar modules installed and enabled:
    • ISPAPI
    • CentralNic Reseller

Please note: We ensure compatibility with the latest WHMCS version and the maximum versions of the listed software dependencies. While our modules may still function with older PHP versions like PHP 7.4, we don’t provide support for them and cannot guarantee their continued compatibility. If you have questions or need assistance, please reach out to us.

Downloads

Please download our Software Bundle here.

Extract the downloaded package into the root folder of your WHMCS Installation (where your WHMCS System's configuration.php can be found).

In case of upgrading, we recommend backing and cleaning up folders and files of a previous module version first. Skipping this step is possible, but can break in rare cases. In addition, we suggest having an internal WHMCS QA System for testing upgrades before the roll-out to production. You can get a free developer license at whmcs.com.

Release Notifications

Feel free to add yourself as Watcher to our Github Repository by clicking on the Watch button at the top of the page and then choose Releases Only.

Feel free to Star us as well to support our work. Thanks so much!

 

Installation

Child Themes

Since v19 of our Software Bundle and WHMCS 8, we started shipping with Child Themes. So, custom template changes that help us making an impact to the World of WHMCS. Find here a list of template files and why we touched them:

  • clientareadomaindns.tpl: We made plenty of more resource records available. In addition, we added the output for the real error message if a DNS Update fails which WHMCS Core wouldn’t be showing. Also, you’ll see a success message in case the update succeeded which WHMCS isn’t doing natively as well.
  • clientareadomaindetails.tpl: We are extending the default error message by a provider-specific one in case the nameserver updates fails.
  • clientareadomainregisterns.tpl: We added the output of the existing private nameservers and moved the deletion part to that list for a better user experience. Not natively available in WHMCS.
  • clientaredomaincontactinfo.tpl: Added the output of additional domain fields at the bottom of the page. This allows sending additional domain fields together with the contact data update which is necessary for some TLDs if it comes to an owner change or an update of these additional fields is necessary. This isn’t available in WHMCS natively at all which makes contact updates often to a support matter otherwise. The reason why we were looking for a stable way for improving this.
  • includes/alert.tpl: Extended for the registrar specific error message output in DNS Management.

The template files can be found either under /templates/cnic-six or /templates/cnic-twenty-one. Custom changes are wrapped with comments and can therefore be easily taken over to your theme. Please ensure having this step done. Otherwise, especially in the DNS Management Section, it comes to undesired issues (WHMCS will map natively unsupported record types to record type A in the view and will submit them as such).

If you're using a standard WHMCS Themes, feel free to switch to one of our Themes directly.

Upgrade

Release Notes

Ensure to read the Release Notes in case you're upgrading to a new major version (-> semantic versioning) like from v8.x.x to v21.x.x. Here, please check the initial major version's notes - v9.0.0, v10.0.0, ..., v21.0.0 in this case. Major Versions usually come with breaking changes which sometimes makes manual steps mandatory. You can always safely upgrade in context of a patch or feature release.

Find some direct links here:

Feel free to reach out if you're going to upgrade from an earlier version. We recommend upgrading at least whenever there's a new major version available.

WHMCS Settings

Domain Renewal Restrictions

NOTE: This step is mandatory! Add the below code snippet to your configuration.php:

$DomainRenewalMinimums[".amsterdam"] = "61";
$DomainRenewalMinimums[".at"] = "61";
$DomainRenewalMinimums[".be"] = "61";
$DomainRenewalMinimums[".ch"] = "61";
$DomainRenewalMinimums[".co.at"] = "61";
$DomainRenewalMinimums[".com.ar"] = "61";
$DomainRenewalMinimums[".com.lv"] = "61";
$DomainRenewalMinimums[".com.ve"] = "61";
$DomainRenewalMinimums[".co.ve"] = "61";
$DomainRenewalMinimums[".de"] = "61";
$DomainRenewalMinimums[".info.ve"] = "61";
$DomainRenewalMinimums[".it"] = "61";
$DomainRenewalMinimums[".jp"] = "61";
$DomainRenewalMinimums[".li"] = "61";
$DomainRenewalMinimums[".lu"] = "61";
$DomainRenewalMinimums[".lv"] = "61";
$DomainRenewalMinimums[".net.lv"] = "61";
$DomainRenewalMinimums[".net.ve"] = "61";
$DomainRenewalMinimums[".nl"] = "61";
$DomainRenewalMinimums[".no"] = "61";
$DomainRenewalMinimums[".or.at"] = "61";
$DomainRenewalMinimums[".org.lv"] = "61";
$DomainRenewalMinimums[".org.ve"] = "61";
$DomainRenewalMinimums[".web.ve"] = "61";

The registries behind these TLDs do not support explicit renewals. We start accepting their renewal orders 61 days prior to expiration and we will forward the renewal to their systems as soon as they allow for it.

Related: Domains Management - WHMCS Documentation

WHOIS Contact Data

In WHMCS navigate to Setup > General Settings > Domains and activate the checkbox Use Clients Details or alternatively configure the input fields directly after that checkbox accordingly. This configures WHMCS to provide the appropriate contact data in the Domain Registration Process. If not configured, a registration attempt may fail as some of the Registries defined one or more such contacts as mandatory.

Custom Fields

Create a new custom fields through Setup > Client Custom Fields specific to the below fields in case you want to introduce this as additional WHMCS' client data field.

DK Hostmaster User ID

Availability: HEXONET, CentralNic Reseller

Field Name: DK-Hostmaster User ID

Field Type: Text Box

No further configuration settings necessary.

In case your clients provide their data, it will be used for pre-filling related additional domain fields.

Lookup Provider

The lookup provider. when configure to one of our registrar brands, yields high-performance availability checks of the domains using our respective fast API. For the domains that are not supported by the registrar system, the lookup in WHMCS Core does an automatic fallback to WHOIS. In order to utilize this feature, you just have to choose the Registar Module of choice (HEXONET just used as exemple) in the lookup provider suggestions. The Registrar Module needs to be configured and activated first.

hexonet as lookup provider

Configure the lookup provider by activating the suggestion engine for accurate and efficient search results. You can customize our sugestion engine’s default settings by using the additional configuration options provided. Since WHMCS 7.10, there's  a TLD List selection field added by WHMCS Core and can’t be influenced/skipped by our integration. Use CTRL+A to select all TLDs.

lookup

The Suggestion Engine, if available to the registrar integration, provides fast domain suggestions based on the searched domain or keyword.

Premium Domains

In order to see premium domain names in the search results, configure the “Premium Domains” section in WHMCS. This setting is optional.

premium_domains

In order to configure your price markups for premium domains, you can use the “Configure” button.

premium_conf

WHOIS Servers

NOTE: This section is only of interest in case you notice issues with availability checks of a single TLD. Skip otherwise.

Whenever WHMCS is doing a fallback to WHOIS Lookup, which applies in case a TLD is returned as unsupported by the availability check fo the lookup provider, it might be ending in wrong results as the WHOIS Lookup for some exotic TLDs might require a sepcial technical configuration.

WHMCS comes with a default configuration that is not covering all TLDs. Read the link below to learn about how to override this with a custom configuration. Ensure the final json format is valid using jsonlint.com! If you need help with a TLD, let us know.

Related: WHOIS Servers - WHMCS Documentation

Finally

Well done! Now, activate and configure the Addons / Product Addons of choice in your WHMCS if you haven't done this yet.

Was this article helpful?
0 out of 0 found this helpful