Jump to content

Combined seperate client area hosting account/product lists


dexus

Recommended Posts

I just found this in v3.7.1... issue 473 : http://dev.whmcs.com/index.php?version=18

 

Why are hosting account/product lists now combined?

 

It was much better to be separated so we can also use WHMCS to sell some other services and products like design, programming, software etc. Why would that be combined now with hosting packages...? I really loved that WHMCS have that separated client page for other services.

 

I really don't see any reason for this to be combined.

 

What do you think about this?

Link to comment
Share on other sites

How can it be more organised when you mix two different service types.

 

How is more organised when client have 10 web hosting packages, 5 web design projects and 2 software licenses and all that is on one page instead to be separated as hosting and other product/services like before...?

Link to comment
Share on other sites

The very fact that the information is centralized on one page improves the client areas overall organization. It's not that I don't agree with you; to a point I do. I would like to keep all items on the product & services page, but have the items grouped by product group displayed in separate tables.

 

i.e.

 

Shared Hosting

- Plan1 domain.com ...

 

Software Licenses

- Product 1 somescriptisell ...

- Product 2 another software license ...

Link to comment
Share on other sites

I have to agree with you, if they will be on one page "product & services" than products should be at least somehow separated on that page or maybe some sub-pages.

 

Also I have to add that separate tables would not really be a solution because for example we have clients with more than 50 hosting/services so those services must be split on multiple pages, and in that case it would not be possible to have them grouped in separate tables only, so that would again require separate pages (sub-pages) for different product groups.

Link to comment
Share on other sites

I also agree that thigs should be separated.

At a minimum display links(something like sub-categories: Hosting packages, Services, Products, etc...) where a customer can click to view just the items under that sub-category.

 

On another note another thing I would love to see separated are VPS and dedicated servers.

A VPS is really a mix of shared and dedicated and as such should have it's own category. It woul make it much easier to keep track as well as improve revenue reporting.

Link to comment
Share on other sites

  • 3 weeks later...

AFAIK, you can go back and hack the templates and menus if you want.

 

I've left some of the pages & menu items from v3.7.1 with "my hosting" separated from other services, as well as the new 3.7.2 combined details on "my products & services".

 

I'm confident you could also remove the hosting info from the other services if you wanted.

 

It would just require you to compare menus before & after to see what you want to keep.

Link to comment
Share on other sites

Here's a quick little mod to display the products into separate groups.

It also displays the same sort order that your groups are in.

 

Replace the code in clientareaproducts.tpl in your template folder with the below code.

<p class="heading2">{$LANG.clientareaproducts}</p>

<table width="100%" cellspacing="0" cellpadding="0"><tr><td>{$numproducts} {$LANG.recordsfound}, {$LANG.page} {$pagenumber} {$LANG.pageof} {$totalpages}</td><td align="right">{if $prevpage}<a href="clientarea.php?action=products&page={$prevpage}">{/if}« {$LANG.previouspage}{if $prevpage}</a>{/if}   {if $nextpage}<a href="clientarea.php?action=products&page={$nextpage}">{/if}{$LANG.nextpage} »{if $nextpage}</a>{/if}</td></tr></table>

<br />

{if $services}

{php}$result = mysql_query("SELECT tblproductgroups.name FROM tblproductgroups ORDER BY `order` ASC");while ($data = @mysql_fetch_array ($result)) { $this->assign('groupheader',$data['name']);{/php}

{assign var=disphead value=1}

{foreach name=displaylist key=num item=service from=$services}

{if $service.group eq $groupheader}

{if $disphead}

<table class="clientareatable" cellspacing="1"><tr class="clientareatableheading" style="text-align:left;"><td colspan="6">   {$groupheader}</td></tr><tr class="clientareatableheading"><td>{$LANG.orderproduct}</td><td>{$LANG.orderprice}</td><td>{$LANG.orderbillingcycle}</td><td>{$LANG.clientareahostingnextduedate}</td><td width="20"></td></tr>{assign var=disphead value=0}

{/if}

<tr class="clientareatable{$service.class}"><td>{$service.product}{if $service.domain}<br /><a href="http://{$service.domain}" target="_blank">{$service.domain}</a>{/if}</td><td>{$currencysymbol}{if $service.recurringamount neq "0.00"}{$service.recurringamount}{else}{$service.firstpaymentamount}{/if} {$currency}</td><td>{$service.billingcycle}</td><td>{$service.nextduedate}</td><td><form method="post" action="{$SERVER.PHP_SELF}?action=productdetails"><input type="hidden" name="id" value="{$service.id}" /><input type="image" src="images/viewdetails.gif" alt="{$LANG.clientareaviewdetails}" /></form></td></tr>

{/if}

{if $smarty.foreach.displaylist.last}

{if !$disphead}</table><br />{/if}

{assign var=disphead value=1}

{/if}

{/foreach}

{php} } {/php}

{else}

<table class="clientareatable" cellspacing="1"><tr class="clientareatableheading" style="text-align:left;"><td colspan="6"> </td></tr><tr class="clientareatableheading"><td>{$LANG.orderproduct}</td><td>{$LANG.orderprice}</td><td>{$LANG.orderbillingcycle}</td><td>{$LANG.clientareahostingnextduedate}</td><td width="20"></td></tr><tr class="clientareatableactive"><td colspan="6">{$LANG.norecordsfound}</td></tr></table>

{/if}

<table width="100%" cellspacing="0" cellpadding="0"><tr><td>{$LANG.show}: <a href="clientarea.php?action=products&itemlimit=10">10</a> <a href="clientarea.php?action=products&itemlimit=25">25</a> <a href="clientarea.php?action=products&itemlimit=50">50</a> <a href="clientarea.php?action=products&itemlimit=100">100</a> <a href="clientarea.php?action=products&itemlimit=all">{$LANG.all}</a></td><td align="right">{if $prevpage}<a href="clientarea.php?action=products&page={$prevpage}">{/if}« {$LANG.previouspage}{if $prevpage}</a>{/if}   {if $nextpage}<a href="clientarea.php?action=products&page={$nextpage}">{/if}{$LANG.nextpage} »{if $nextpage}</a>{/if}</td></tr></table>

<table align="center"><tr><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatableactive"><td></td></tr></table></td><td>{$LANG.clientareaactive}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatablepending"><td></td></tr></table></td><td>{$LANG.clientareapending}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatablesuspended"><td></td></tr></table></td><td>{$LANG.clientareasuspended}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatableterminated"><td></td></tr></table></td><td>{$LANG.clientareaterminated}</td></tr></table>

 

EDIT:

@Bear/Matt - Could you please move this post to User Contributions

 

Edited by sparky
Link to comment
Share on other sites

Here's a quick little mod to display the products into separate groups.

It also displays the same sort order that your groups are in.

 

Replace the code in clientareaproducts.tpl in your template folder with the below code.

 

 

EDIT:

@Bear/Matt - Could you please move this post to User Contributions

 

 

Brilliant....just brilliant. thank you for this sparky.

 

This should definitely be a standardised part of WHMCS templates. I really needed this for some of my clients. :lol:

 

Si

Link to comment
Share on other sites

FIXED: There were just a few spaces etc that were missing in the code above ie $prevpage was showing as $prev page when it was copied and pasted from sparky's post above, so I've cleaned it up and here it is in code box for anyone who wants a clean copy.

 

Hope you don't mind sparky. 8)

 

Si

 

<p class="heading2">{$LANG.clientareaproducts}</p>
<table width="100%" cellspacing="0" cellpadding="0"><tr><td>{$numproducts} {$LANG.recordsfound}, {$LANG.page} {$pagenumber} {$LANG.pageof} {$totalpages}</td><td align="right">{if $prevpage}<a href="clientarea.php?action=products&page={$prevpage}">{/if}« {$LANG.previouspage}{if $prevpage}</a>{/if}   {if $nextpage}<a href="clientarea.php?action=products&page={$nextpage}">{/if}{$LANG.nextpage} »{if $nextpage}</a>{/if}</td></tr></table>
<br />
{if $services}
{php}$result = mysql_query("SELECT tblproductgroups.name FROM tblproductgroups ORDER BY `order` ASC");while ($data = @mysql_fetch_array ($result)) { $this->assign('groupheader',$data['name']);{/php}
{assign var=disphead value=1}
{foreach name=displaylist key=num item=service from=$services}
{if $service.group eq $groupheader}
{if $disphead}
<table class="clientareatable" cellspacing="1"><tr class="clientareatableheading" style="text-align:left;"><td colspan="6">   {$groupheader}</td></tr><tr class="clientareatableheading"><td>{$LANG.orderpro duct}</td><td>{$LANG.orderprice}</td><td>{$LANG.orderbillingcycle}</td><td>{$LANG.clientareahostingnextduedate}</td><td width="20"></td></tr>{assign var=disphead value=0}
{/if}
<tr class="clientareatable{$service.class}"><td>{$serv ice.product}{if $service.domain}<br /><a href="http://{$service.domain}" target="_blank">{$service.domain}</a>{/if}</td><td>{$currencysymbol}{if $service.recurringamount neq "0.00"}{$service.recurringamount}{else}{$service.f irstpaymentamount}{/if} {$currency}</td><td>{$service.billingcycle}</td><td>{$service.nextduedate}</td><td><form method="post" action="{$SERVER.PHP_SELF}?action=productdetails"> <input type="hidden" name="id" value="{$service.id}" /><input type="image" src="images/viewdetails.gif" alt="{$LANG.clientareaviewdetails}" /></form></td></tr>
{/if}
{if $smarty.foreach.displaylist.last}
{if !$disphead}</table><br />{/if}
{assign var=disphead value=1}
{/if}
{/foreach}
{php} } {/php}
{else}
<table class="clientareatable" cellspacing="1"><tr class="clientareatableheading" style="text-align:left;"><td colspan="6"> </td></tr><tr class="clientareatableheading"><td>{$LANG.orderpro duct}</td><td>{$LANG.orderprice}</td><td>{$LANG.orderbillingcycle}</td><td>{$LANG.clientareahostingnextduedate}</td><td width="20"></td></tr><tr class="clientareatableactive"><td colspan="6">{$LANG.norecordsfound}</td></tr></table>
{/if}
<table width="100%" cellspacing="0" cellpadding="0"><tr><td>{$LANG.show}: <a href="clientarea.php?action=products&itemlimit=10">10</a> <a href="clientarea.php?action=products&itemlimit=25">25</a> <a href="clientarea.php?action=products&itemlimit=50">50</a> <a href="clientarea.php?action=products&itemlimit=100">100</a> <a href="clientarea.php?action=products&itemlimit=all">{$LANG.all}</a></td><td align="right">{if $prevpage}<a href="clientarea.php?action=products&page={$prevpage}">{/if}« {$LANG.previouspage}{if $prevpage}</a>{/if}   {if $nextpage}<a href="clientarea.php?action=products&page={$nextpage}">{/if}{$LANG.nextpage} »{if $nextpage}</a>{/if}</td></tr></table>

<table align="center"><tr><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatableactive"><td></td></tr></table></td><td>{$LANG.clientareaactive}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatablepending"><td></td></tr></table></td><td>{$LANG.clientareapending}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatablesuspended"><td></td></tr></table></td><td>{$LANG.clientareasuspended}</td><td width="10" align="right"><table style="width:10px;height:10px;" cellspacing="1" class="clientareatable"><tr class="clientareatableterminated"><td></td></tr></table></td><td>{$LANG.clientareaterminated}</td></tr></table>

Link to comment
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.

Guest
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.

  • 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