How can we improve WHMCS?

Share, discuss and vote for what you would like to see added to WHMCS

Display long term or annual-biennially pricing before monthly on products in cart templates/sliders

You should be able to choose what price option you want to display on product template pages (eg. comparison pages and sliders) instead of the default order in which prices get displayed!
(Which is: Starts at one-time or monthly then go's up if monthly does not exist display quarterly if quarterly does not exist display semi-annually if semi-annually does not exist display annually, etc, etc.)

I want to be able to say if a product has monthly, annually and biennial billing cycles display the biennial monthly cycle on product display pages.

Example: I have a web hosting product that has three options for billing monthly, annual and biannual

Monthly is set to $11.95, Annual is set to $95.40 (7.95/mo.) and biennially is set to $118.80 (4.95/mo.)

By default when you view the product in either premium comparison or a slider (or any other cart it doesn't matter) $11.95/mo. is always displayed because it is the monthly billing cycle - doesn't matter that it has annual and biennial billing options on the product they are ignored because it has a monthly for the display of the price on product comparison pages.

Here is what is needed the option to say list the longest term available instead of the shortest in this example case biennially at 118.80 so the price displays as starting at $4.95 /mo. (ideally with an * or something pointing out 2 year term - really not necessary, but would be nice on top of the requested option.)
Then on the order page they can choose there term length 2 years 1 year or monthly

Ideally if you could set this option on a per product basis that would be great - but I would be more than happy with the option available on a product group.

Currently this is not possible and is driving me nuts. From a marketing and search result standpoint this is a must have!
The only way to get the product to display as I want would be to eliminate the monthly and annual payment option, but then to get those back I would need to create a separate product for each which defeats the purpose of using multiple cycles to offer a better discount.

Yes I can and have included the price options in the product description but really who sees the small print before the giant price in say pure comparison template product display when glancing at pricing!?!

Please consider this!
Mike | DevFX, Inc.


Login to post a comment.

+1 for this.
Long overdue feature. Please implement.
This should be standard option available. Not everyone wants the monthly display available and having the annual available as the default option has allowed us to ahev 85% of all clients pay annually.
Look at this post
I can't believe this feature is not already implemented. If you look at every other hosting site, they always show the longest term price (which is the cheapest usually), and thats how they make the price look more appealing. It's hard to compete with a price conscious buyer who is comparing various hosting companies when we can't list our cheapest terms first.

This is a must.
FYI in "standard_cart" and "default", this can be accomplished this way:

  1. Re-assing the $billingcycle variable in configureproduct.tpl
  2. Re-order the options in the "billingcycle" SELECT from longest term to shortest in configureproduct.tpl (lines 56-85 in standard_cart)

That's it. I'm sure it, or something similar, would work in other cart templates.

When a new product is added to the cart, a new element is assigned to the session array $_SESSION['cart']['products'], containing a sub-element 'billingcycle' that is initialized as NULL. Re-ordering the options "top-down" defaults to the longest available cycle when $_SESSION['cart']['products'][$i]['billingcyle'] is NULL.

Example (@line 51 of standard_cart/configureproduct.tpl):

  • {assign var="billingcycle" value=$smarty.session.cart.products.$i.billingcycle}
    <div class="field-container">
    <div class="sub-heading">
    <div class="form-group">
    <select name="billingcycle" id="inputBillingcycle" class="form-control select-inline" onchange="{if $configurableoptions}updateConfigurableOptions({$i}, this.value);{else}recalctotals();{/if}">
    {if $pricing.triennially}
    <option value="triennially"{if $billingcycle eq "triennially"} selected{/if}>
    {if $pricing.biennially}
    <option value="biennially"{if $billingcycle eq "biennially"} selected{/if}>
    {if $pricing.annually}
    <option value="annually"{if $billingcycle eq "annually"} selected{/if}>
    {if $pricing.semiannually}
    <option value="semiannually"{if $billingcycle eq "semiannually"} selected{/if}>
    {if $pricing.quarterly}
    <option value="quarterly"{if $billingcycle eq "quarterly"} selected{/if}>
    {if $pricing.monthly}
    <option value="monthly"{if $billingcycle eq "monthly"} selected{/if}>
  • [/co]
    hi there, i dont know why but i dont receive notifications so i just see your reply now.

    this idea works only for the checkout right? i wanted to do it in the "cart.php" page where the products are listed.

    this realy is a must have feature! On my web hosting packages I have month cycle available but i want to show the price for the anual cycle.

    thank you

    this realy is a must have!
    having a option to chose the default billing cycle to display in the products/services. myself i what to have by default the annual cycle instead of the month cycle by default.