Why “feature request” sites suck

I use some software that mostly does the job but has some really clunky flaws. In an effort to contribute something and also help others, I often make suggestions and invariably I am referred to a feature request site where you list your request and other users vote on it to determine the popularity of an idea. The company claims this is used to determine whether or not to implement the feature.

Any company that uses a features request site and regards popularity as a measure of whether to implement a feature has a flawed business model using a flawed process.

For a start, this site is likely used by a tiny number of users of the software, so any “popularity” is based on those who likely already want a feature (why else would you visit?), care enough to request it and even know that you can.

Further, since when has popularity had any bearing on whether or not a feature is worth implementing? This is a trap for developers where they are stuck in their thinking and won’t consider a novel idea that might be a game-changer. I am not suggesting that my ideas are.

Let’s look at an example from a company that I will call WHMCS, the worst offender, in my experience. There is no surprise that there is exactly the same issue at cPanel, who just happens to have a financial stake in WHMCS…go ahead, tell me this isn’t organisational culture gone bad.

WHMCS revamped their request site. It must have been a bit embarrassing to have 7 year old ideas not being acted on despite a large number of up-votes. Someone came up with a political style solution; they hid the date :o)

Also, if they decline an idea (despite it being popular) they then hide all the comments and shut down any further comments. It is the equivalent of sticking their fingers in their ears and saying “ummm ummm ummm”.

So, two of the top 3 highly requested features have been declined i.e. popularity doesn’t really have anything to do with it at all.

[UPDATE]

Three years later (July 2023) and they still refer me to the feature request site and I still respond with a link here.  But out of curiosity I wondered if anything had changed (LOL)
Short answer?  No.  And it has actually gotten worse. Four of those items (including the most popular, which is still being investigated) are 10 years old and the fifth is 5 years old.  They also close them when declined, so there is no interest at all, no matter how popular and item is.

[/UPDATE]

[ANOTHER UPDATE]

Look how well things have progressed in February 2024

[/ANOTHER UPDATE]

The entire process is disrespectful to the very people who have kept your business alive. If your tech support people aren’t switched on enough to say “Hey, thanks for the idea, I will forward it to our developers” instead of “Add this to the feature request site and let’s see how popular it is” your tech support sucks along with your company’s culture.

The process is inherently flawed and I won’t participate.

The purpose of this post is so I have a link instead of having to type out a rant every time I want to explain how I feel about their suggestion

WHMCS knowledgebase icon mod

Maybe, one day WHMCS will be complete. In the meantime users have to do their own modifications to make it work to suit.

In this case, the 123host knowledgebase category icons looked boring and unintuitive

I understand that these are categories that contain articles and pedantically the folder icons are correct. But the labels already tell us there is more than one article, so we can get creative without compromising the UI.

Isn’t this prettier and more intuitive?

Modifying your template is easy-peasy. Of course the file to edit depends on which template you are using. I am going to assume twenty-one and that you have a child template twenty-one23host

First thing, make a backup if you are worried, but these are template files so it is easy to roll back to the parent version.

If it doesn’t already exist in your child theme, copy /templates/twenty-one/includes/knowledgebase.tpl to your child theme /templates/twenty-one23host/includes/knowledgebase.tpl and then open that file to edit.

At about line 18 you will find

                    <span class="h5 m-0">
                        <i class="fal fa-folder fa-fw"></i>

replace it with

                   <span class="h5 m-0">
                            {if $category.name eq 'Domains'}
                                {$caticon='fa fa-globe'}
                            {elseif $category.name eq 'Email'} 
                                {$caticon='fa fa-envelope'}
                            {elseif $category.name eq 'Hosting'} 
                                {$caticon='fa fa-server'}
                            {elseif $category.name eq 'Security'} 
                                {$caticon='fa fa-lock'}
                            {elseif $category.name eq 'Setup'}
                                {$caticon='fa fa-cog'}
                            {elseif $category.name eq 'WordPress'} 
                                {$caticon='fab fa-wordpress'}
                            {/if}
                              
                            <i class="{$caticon}" aria-hidden="true"></i>

We have used Smarty to do some string comparisons and set the fontawesome icon based on the result. Notice that the WordPress icon needs fab, the others don’t. Also notice that we have improved accessibility by adding aria-hidden="true" to hide the icon from machine readers – there’s no need to bog them down with decorative stuff – take note WHMCS (they won’t).

You may have more or less categories and will need to tweak it accordingly. This works and isn’t hard to maintain when a new category is added.

Grab the fontawesome icon code from https://fontawesome.com/v5.9/icons

Change the sort order of domains in WHMCS

WHMCS is popular software used to manage a web hosting business. It works, but it can be clunky and the company frustrates me with what appears to be a culture of denial about problems. I am posting this so that hopefully other WHMCS users can find a solution to a hair-tearing problem that the company hasn’t fixed despite it being brought to their attention.

The problem:

Now that there is about 500 domains available managing them and keeping them in any sort of meaningful order is close to impossible. Wholesale prices are regularly changing and maintaining just that can be tricky. The issue is that the domains are in some sort of random order, it seems to be based on the order in which they are added to the system. That is fair enough, there has to be some sort of default, but then re-ordering them should be easy, but it is a nightmare.

See the circled handle below? The way they have it set is that you have to grab that, one at a time, and drag it to the position you want the domain.

Imagine trying to do that for 500 domains that are not in alphabetical order but you want them to be. It would be hard enough if it was simply a long list, but in a browser where you have to drag and scroll at the same time…forget it.

A solution:

This solution is a bit complex and not for the faint of heart, but if you are running a server you should have the skills to be able to follow quite easily.

Firstly, and do I even need to say this, back up your data. We are going to do that anyway, but is it possible to have too many backups?

Jump into PHPmyAdmin open the table tbldomainpricing and export it as a CSV file. This is a backup, but we are also going to manipulate it, so make a copy if you want.

Open the table in a spreadsheet, I used Google Sheets because it is so easy. Once opened you will see that column A is the domain ID, Column B is the domain name and column H is the sort order.

The first thing I did was to order the sheet by Column B, A->Z as that is what I am after, an alphabetical list.

We can immediately see the scale of the problem, ideally, Column H should be sequential numbers, it is way off.

Fortunately with spreadsheets, filling a column with sequential values is trivially easy. Firstly put the number 1 in row 1 and 2 in row 2 like this. (They yellow is just highlighting).

Next select both row 1 and row 2. The easiest way is to hold the shift key and click H1 then H2 it will look like this

The important thing to note is the handle on the bottom right of the blue square. Grab it and drag it down, all the way to the bottom of the column…yeah it is tedious, but it is easy.

If you want to test, you can always drag it a little way and let it go to see the outcome.

Once you have dragged all the way to the bottom and released the handle your domains will be have the database order column (Column H) in sequential order, assuming the domain name column (Column A) was ordered alphabetically as well.

Now is your opportunity to bump any popular or featured domains to the top of the WHMCS list. Simply change the value in Column H to 0. You can have multiple identical valued domains, they will be kept in numerical order then ordered alphabetically. I am not going to elaborate on the logic here…if you aren’t following, you really shouldn’t be messing with databases.

We are ready to save the sheet or if you are in Google Sheets, you need to download it as a CSV – click file > download and in your browser you may have to click save file.

Now we are going back to PHPmyAdmin and the database. Most importantly, make sure you have that original CSV file as a backup or another way to restore your database.

Empty the tbldomainpricing table and import your CSV file, that should get your WHMCS domains in alphabetical order on your site.

Of course, it would be easier if WHMCS came up with a way to do this painlessly, and they might, but I won’t hold my breath when despite conceding the current process is difficult, their attitude is “If we receive feedback from other users in this vein then it will only help informing our prioritisation of such work.”