WHMCS - Module Installation & Upgrade

Introduction

This guide explains how to install or upgrade the CentralNic Reseller WHMCS module to ensure smooth domain management functionality.

The built-in module shipped with WHMCS is maintained by the WHMCS Core team. For issues like bugs or feature requests with these native modules, you’ll need to contact WHMCS support via whmcs.com.

However, if you want more advanced features, we recommend switching to our custom WHMCS module, which offers enhanced functionality and more frequent updates.

Why Use Our Custom Modules?

Our custom WHMCS module is built to provide more extensive features, quicker updates and less errors than with the standard WHMCS modules as we know how our registrar system works the best. These include integrations tailored specifically to CentralNic Reseller (formerly known as RRPproxy), which has been a leader in WHMCS development and support for years. Furthermore, we can only offer direct customer support for our modules, but not for the ones directly integrated in WHMCS as we have no insights to their source code.

Preparation

Signup

Since August 2023, there are no new signups possible for HEXONET. Please signup at CentralNic Reseller and use this integration instead to get started.

Add Funds to Your Account

The CentralNic Reseller system operates on a pre-paid basis. Be sure to add funds to your account before ordering products or services. You can do this through the registrar's front-end

Registrar Account Settings

WHMCS has its own automatic renewal system. To avoid domains being renewed without your customers making payment in WHMCS, we recommend turning off the automatic domain renewal in our registrar system by default.

Make sure to set the Domain Renewal Mode in your CentralNic Reseller account to "Auto Expire" or "Expire Domain." If you make this change later, remember to update the settings for any existing domains as well. If you need assistance, feel free to contact us. You can find more details in the "Domain Renewal Mode" section of our WHMCS - Registrar Module guide.

This step must be done outside of WHMCS through the registrar’s frontend.

PHP Settings

To ensure WHMCS works properly, set max_input_vars to 10,000 or higher and post_max_size to 10M or higher in your php.ini. This helps WHMCS’ Registrar TLD Sync function, which imports TLDs and pricing. These settings are not specific to our integration but required for WHMCS. Refer to PHP docs for more details.

System Requirements

Avoid using PHP versions that have reached their end of life (EOL). 

To ensure compatibility with WHMCS, please follow these steps:

Make sure you install the following on your WHMCS server:

  • curl
  • php-curl
  • ISPAPI or CentralNic Reseller registrar module (installed and enabled)

We support the latest WHMCS version and maximum software versions. Older PHP versions (e.g., PHP 7.4) may still work but are not supported and we cannot guarantee their continued compatibility.

Downloads

Please download our Software Bundle here.

Extract the package into the root folder of your WHMCS installation (where the configuration.php file is located).

For upgrades, we recommend backing up and cleaning up the previous module version. It’s also a good idea to test the upgrade in a staging environment before applying it 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

Language Override Files

NOTE: As of v24 of our Software Bundle, these include statements are no longer required and must be cleaned up as the path changed. We're loading them now differently and by that the below procedure is considered as deprecated and breaking. Custom translation can still be covered by using language override files to override our default translations. Find our translation files under folder /resources/cnic/lang. Use them as boilerplate for your custom translations.

Ensure to create language override files initially for our translation files or just add include statements at the end of your existing language override files. You may skip some language files, but the english one is mandatory as it is used as fallback language in case the current active language is not available.

Location: /lang/overrides/arabic.php

<?php include(implode(DIRECTORY_SEPARATOR, [ ROOTDIR, "modules", "registrars", "ispapi", "lang", "overrides", "arabic.php"]));

Location: /lang/overrides/english.php

<?php include(implode(DIRECTORY_SEPARATOR, [ ROOTDIR, "modules", "registrars", "ispapi", "lang", "overrides", "english.php"]));

Location: /lang/overrides/french.php

<?php include(implode(DIRECTORY_SEPARATOR, [ ROOTDIR, "modules", "registrars", "ispapi", "lang", "overrides", "french.php"]));

Location: /lang/overrides/german.php

<?php include(implode(DIRECTORY_SEPARATOR, [ ROOTDIR, "modules", "registrars", "ispapi", "lang", "overrides", "german.php"]));

Note: If you want to translate into a language that is not yet listed here, we suggest to copy the /modules/registrars/ispapi/lang/overrides/english.php to /lang/overrides/<language>.php of your WHMCS System, where <language> corresponds to the language identifier e.g. danish or dutch etc. Then translate the contents of that file into the desired language. Feel free to share that file with us which would be supporting our work.

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 configured to one of our registrar brands, yields high-performance availability checks of the domains using the respective fast API. For the domains that are not supported by the registrar system, the lookup in WHMCS Core does an automatic fallback to public WHOIS Data. In order to utilize this feature, you just have to choose the Registrar Module of choice in the lookup provider suggestions. The Registrar Module needs to be configured and activated first. This is usually the Domain Provider of trust over whom you cover the most TLDs.

Configure the lookup provider by activating the suggestion engine for accurate and efficient search results. You can customize our suggestion 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 or just configure the ones of interest.

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.

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

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