Skip to content
Shahid Malla

Case study · Web Hosting

DomainsOnline

WHMCS rebuild for a South African domain and hosting company

A WHMCS rebuild for DomainsOnline in South Africa: an upgrade to WHMCS 9.1, a new website and client area, .co.za and .africa automation, and Vultr VPS.

Client
DomainsOnline
Location
ZA
domainsonline.co.za
DomainsOnline screenshot: WHMCS rebuild for a South African domain and hosting company

What I built

DomainsOnline registers .co.za and .africa domains and sells web hosting, WordPress hosting and VPS servers to South African businesses. WHMCS runs the whole site, including the home page. I took over an older WHMCS install whose theme no longer worked on current PHP, and rebuilt it from the platform up.

First I upgraded WHMCS from 8.7 to 9.1 and PHP from 8.1 to 8.3 in a maintenance window, with a full backup and a rollback script I had tested. Then I built the new website and client area as a custom child theme of Nexus. The home page has a one-line menu, a domain search with price tiles and a 1-2-3 path to getting online. Other pages cover domain registration, transfer, WHOIS lookup, bulk search, web hosting, WordPress hosting and VPS. Old addresses forward to the new pages with 301 redirects. The checkout has two steps, and the client area shows hosting, domains and unpaid invoices at a glance. The owner changes homepage texts, menus and product lines from an admin addon, without code.

Domains needed the most work. The .co.za registrar's API had started refusing requests from the server's country, so registrations and nameserver changes failed. I routed the registrar module through a small relay server in Johannesburg and fixed its admin page and dashboard widget for WHMCS 9. A new hook creates the DNS zone on the cPanel server before a .za domain is registered, so the registry does not hold the new domain for missing DNS, and checks the registry again afterwards. I added .africa through the same registrar, with a WHOIS server so the domain search can find .africa names, and rebuilt bulk search for up to 20 names at once.

For the VPS plans I wrote a WHMCS addon and server module for Vultr. A server is created in Johannesburg on payment, with the operating system the customer picked. In the client area the customer can restart it, see the root password, open a console, watch traffic and manage a firewall. I also fixed the PayFast payment notification for WHMCS 9 and corrected domains that renewed at no charge. I removed add-on products that could not be delivered, closed the security gaps found in the audit, and added captcha to the sign-up, contact, ticket and domain search forms. The handover included an admin guide, a narrated admin video and a customer help center with step-by-step articles, screenshots and narrated videos.

What a domain and hosting company needs, from building this one: upgrade WHMCS before you redesign it, with a backup and a rollback you have tested; read the registrar sync errors every day, because a blocked API looks like a nameserver problem to customers; create the DNS zone before you register a .za domain; check every domain that renews for free; and give the owner an admin screen for texts and products, so small changes do not wait for a developer.

Related service: WHMCS development services.

The challenge

Upgrade an older WHMCS install, rebuild its website and client area, and get .co.za registrations working again, without losing live domains or invoices.

How I solved it

WHMCS 8.7 to 9.1 and PHP 8.3, with a full backup and a tested rollback.
A custom Nexus child theme for the website, client area and a two-step checkout, editable from an admin addon.
A registrar relay, a DNS zone hook for .za domains, .africa sales and a Vultr VPS provisioning module.

The outcome

The site is live at domainsonline.co.za, running on WHMCS 9.1.

Tech stack

WHMCS PHP Smarty cPanel and WHM Vultr API PayFast

Have something similar in mind?

Tell me what you're working on. Same approach, your project.

Start a project