How to Force the Default Currency in WHMCS and Disable Currency Selection
WHMCS supports multiple currencies, which is useful if you need to maintain different currencies in your billing system. However, there are situations where you may need to configure multiple currencies in WHMCS while allowing customers to use only the default currency.
For example, you may need an additional currency for administrative or accounting purposes but want all new customers to register and place orders exclusively in EUR, USD, or whichever currency you have configured as the default.
In this guide, we’ll see how to remove the currency selector from the WHMCS registration form and force new customers to use the default WHMCS currency.
Why Disable Currency Selection in WHMCS?
When multiple currencies are configured, WHMCS may allow customers to select their preferred currency during registration.
In some configurations, however, you may want to:
- keep multiple currencies configured in WHMCS;
- use secondary currencies only for internal or administrative purposes;
- prevent customers from selecting an alternative currency;
- ensure that all new customers are registered using the default currency.
One simple solution is to remove the currency selector from the WHMCS registration template.
Remove the Currency Selector from the WHMCS Registration Form
The currency selection field is generated by the clientregister.tpl template file.
Locate the clientregister.tpl file inside your active WHMCS client-area template.
Before making any changes, create a backup of the original template file.
Then locate the following Smarty code:
{if $currencies}
<div class="form-group">
<label for="currency" class="col-sm-3 control-label">
{$LANG.choosecurrency}
</label>
<div class="col-sm-9">
<select id="currency" name="currency" class="col-xs-12 col-sm-3">
{foreach from=$currencies item=curr}
<option value="{$curr.id}"
{if !$smarty.post.currency && $curr.default || $smarty.post.currency eq $curr.id} selected{/if}>
{$curr.code}
</option>
{/foreach}
</select>
</div>
</div>
{/if}
Remove this block from the template, or comment it out if you prefer to keep the original code available for future use.
The currency selector will no longer be displayed on the WHMCS client registration form.
New users will therefore no longer be able to select an alternative currency during registration and will use the default currency configured in WHMCS.
Where Is the WHMCS Default Currency Configured?
You can check which currency is configured as the default from the WHMCS administration area.
Before implementing this modification, make sure that the currency you want your customers to use is actually configured as the default.
This is particularly important on an existing WHMCS installation, as changing currency settings can have consequences for existing clients, products, invoices, and pricing.
Important: Hiding the Selector Is Not the Same as Enforcing the Currency
There is one important limitation to this approach.
Removing the currency selector from clientregister.tpl prevents normal users from selecting another currency through the registration interface, but it should not be considered a complete server-side enforcement mechanism.
A technically knowledgeable user may still attempt to submit a different currency value manually or reach another part of WHMCS where currency selection is available.
If your requirement is simply:
“I don’t want customers to see or normally select another currency during registration.”
then modifying clientregister.tpl may be sufficient.
If your requirement is instead:
“Customers must never be able to use anything except the default currency.”
then a WHMCS hook that enforces the desired currency server-side is a more robust solution.
Template Changes and WHMCS Updates
As with any direct WHMCS template customisation, remember that future WHMCS or template updates may overwrite your changes.
For this reason:
- keep a copy of your customized template;
- document the modification;
- check
clientregister.tplafter major WHMCS or theme updates.
For more complex installations, implementing the restriction through a custom WHMCS hook may be preferable because it separates your business logic from the presentation layer.
Conclusion
WHMCS can support multiple currencies even when you want customers to use only one of them.
For a simple configuration, removing the currency selector from clientregister.tpl prevents customers from choosing another currency during registration while leaving the additional currencies configured in WHMCS.
For stricter control, however, don’t rely exclusively on the user interface: enforce the required currency with a WHMCS hook as well.
As usual with WHMCS, hiding a button and preventing the underlying action are two very different things.