Jump to content
Sign in to follow this  

Why is the WHMCS developer documentation so... lacking?

Recommended Posts

This has bothered me for a long time. I love it when WHMCS introduces new features, but trying to implement some of it is often a challenge.

Why is there no built in support for multi-language support unless you're trying to build an "addon" module?
Basically any other type of module can output code to the client area, and it makes no sense that you have to write your own code to support multi-language. I mean, the code already exists in WHMCS 😅

The documentation is lacking a lot of information. Take this as an example: https://developers.whmcs.com/provisioning-modules/supported-functions/.  There are some functions (like _AdminArea) that just has no information at all.
How is it used? You can't echo or return anything. Is it just a typo and meant to say _AdminLink? I know how to use that function by looking at other modules, but there's still no documentation about it.

Why is there no documentation for Application Links? It's a really cool feature, but it makes no sense that the feature is basically reserved for cPanel.

Another nice feature that feels like it was only built for cPanel is Server Sync - mostly because of this: https://docs.whmcs.com/Servers#Sync_Report


Auto-imported services will be created under an existing client with a matching email address, or a newly created client where no existing match exists. Since most web server control panels do not track end customer details, we can usually import only an email address and other details must be populated manually. In cases where even an email address is not available, a placeholder email address of {domain}@example.com will be used for the client in WHMCS.

... But some control panels do. I know that cPanel doesn't. Some other control panels (not just limited to web hosting) do keep a record of the user's full name, address, phone number etc.
Importing a client into WHMCS using the Server Sync feature feels so akward. Who wants to send an email to their customer that starts with "Dear Name Placeholder"? That's very unprofessional.
I know that not all control panels track the client's details, but who thought it would be a good idea to not even implement importing the details in case the control panel actually did? It would make life so much easier for WHMCS admins wanting to import clients.

I hope someone can give me an explanation that isn't "Because WHMCS just doesn't care" 😅

Share this post

Link to post
Share on other sites
Posted (edited)

In very general terms, API documentation is something that even much larger companies struggle with, it's one of the most difficult areas to get right.  One example is Google - fantastic, powerful API but some parts of it can be just so very hard to work with and the doco can be absolutely inscrutable - if Google struggle to get this right, where does that leave the rest of us.  It's not just how things work, it's when they're relevant and how they tie in to other parts as well, that makes it hard.

Having said that, I do notice that there's no easy/quick Feedback provision on documentation pages.  Often it's just a missing sentence that would make all the difference (often a sense of context is omitted - eg: "you might use this here, to do this, after this happens" and being able to provide some of this feedback might help make the difference for overworked doco writers; it's very hard to be able to fully imagine what a developer might be thinking as they read your documentation, and a simple/quick feedback mechanism allows us to feed back those small missing things.

A Git PR isn't a feedback mechanism, unfortunate reality is that most of us won't be able to provide feedback if we can't do it within a few minutes or so, at the time we think of it.  I think this might help; just a though to toss in to the large pool of priorities that I'm sure WHMCS is juggling.  Good doco leads to good software leads to more investment in WHMCS, and in many cases WHMCS really does have good doco, just missing a few critical points ....

Edited by brianoz
translate from Aussie into US English :)

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Robert913
      Hi I am wanting to add a store onto my navbar on my website when logged in as at the moment the store is only seen when logged out but I want the store to be seen when logged in aswell so people can see what other services I offer.
      How do I go about doing that.
    • By Zahra
      I'm going to change the announcements page a bit and show the newest announcements (created on last 24 hours) in a different way. How should I create my reference time (now-24hours) in the code and compare $announcement.date with this reference date?
      I want to know how to change the below code in the announcements.tpl:
      {foreach from=$announcements item=announcement}     <div class="announcement-single">         <a href="{routePath('announcement-view', $announcement.id, $announcement.urlfriendlytitle)}" class="ttitle"> /* I want to check $announcement.date here*/             {$announcement.title}         </a>  
    • By Davor
      Is there a way to generate the TOC inside an article just like the Contents (TOC) in WHMCS documentation?

    • By JesusSuarz
      sometimes the client can have 2 emails.
      one for your account details and one for the account owner.
      I need to know if the account owner's email is verified.
      The var: 
      $client = Menu::context("client"); gets the email that the customer has in the account details, however this is not the email owner of the account.
      I hope to make myself understood correctly.
    • By aperture
      I've been unable to find other posts on the topic, should there be any I am sorry for posting.
      I am looking for a way to place orders that will be flagged as fraud. This is in order to test some post fraud check hooks.
      I have tried Maxmind/Fraudlabs with bogus zip codes, hotmail email, high risk countries. Orders just pass trough as OK.
      If anyone has any suggestions as to triggering fraud check with automatic listing as fraud-order please share.
      Setting a order to fraud manually is not an option, as certain hooks does not trigger with this behavior.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated