Hosting Renewals For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search


About Hosting Renewals For WHMCS

Hosting Renewals For WHMCS is a module which offers your customers a possibility to manage their billing cycles, recurring payments and services' renewals.

The module will let your clients turn on/off automatic renewals, decide whether and when to renew their web hosting services and even change billing cycles on the fly.
With our product you will be able to configure billing cycle changing rules, prepare various discounts and send personalized email notifications to your customers.

  • Client Area Features:
✔ Renew Services Before Due Date
✔ Turn On/Off Auto Renewals
✔ Change Billing Cycle & View Price Difference
  • Admin Area Features:
✔ Configure Billing Cycle Switching Rules
✔ Configure Client Area Features Per Product Or Product Group
✔ Disable Auto Renewal For New Products
✔ Enable/Disable Auto Renewal For All Instances Of Product
✔ Define Application Of Discount Upon Meeting Defined Rules
✔ Choose Between Two Types Of Discounts - One Time And Recurring
✔ Enable/Disable Domain Renewal Along With Product
✔ Send Email Notifications About Upcoming Renewals
✔ Multiple Email Templates For Email Notification
✔ Decide Whether Client Should Be Moved To Invoice Immediately After Renewal
✔ Define Format Of Displayed Billing Cycle Price Difference
✔ View Logs
  • General Info:
✔ Support For Default WHMCS Options:
✔ 'Only Auto Provision for Existing'
✔ 'No Invoice Email on Order'
✔ Multi-Language Support
✔ Supports PHP 5.4 Up To PHP 7
✔ Supports WHMCS Template Five and Six
✔ Supports WHMCS V6 and V7


This tutorial will show you how to successfully install and configure Hosting Renewals For WHMCS.

We will guide you step by step through the whole installation and configuration process.

1. Log in to your client area and download the module.
2. In the downloaded file you will find two packages that support different PHP versions.
As presented on the screen below, the first one is dedicated to PHP 7, while the second one is aimed at PHP 5.4 up to PHP 5.6.
It does not apply to open source versions.

Note: You can check current PHP version in your WHMCS. To do so proceed to 'Utilities' → 'System' → 'PHP Info'.

3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.

The content of PHP version files should look like this.

4. When you install Hosting Renewals For WHMCS for the first time you have to rename 'license_RENAME.php' file.

File is located in 'modules/addons/hosting_renewals/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

5. In order to configure your license key, you have to edit a previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area → 'My Products'.

6. Now, you have to set up chmod for the 'logs' folder located in 'your_whmcs/modules/addons/hosting_renewals'.

You will be now allowed to read activity logs in the module.

HR4 1.png
7. Next, you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area. Go to 'Setup' 'Addon Modules'. Afterwards, find 'Hosting Renewals' and press 'Activate' button.

8. In the next step you need to permit access to this module.

To do so, click on 'Configure' button, tick 'Full Administrator' and press 'Save Changes'.

9. You have just successfully installed Hosting Renewals!

Access your module now at 'Addons' 'Hosting Renewals'.


Configuration and Management

Hosting Renewals For WHMCS module allows your customers to fully manage their billing cycles and recurring payments.

Read through the below instructions to learn how to turn on/off auto-renewals, alter billing cycles and manage customized email notifications.


You can enable Hosting Renewals For WHMCS only for the products that have recurring payments configured.

Proceed to 'Addons' 'Hosting Renewals' 'Configuration' and choose product you wish to enable for renewals from a dropdown menu.

Press the name of a product with renewals enabled (previous step) and configure its rules.

Available options:
1. Option checked automatically, you may disable renewals for the product.
2. If selected, clients are allowed to enable/disable auto-renewal in the client area.
3. If selected, clients are allowed to renew hosting before its due date.
4. Check to let clients manage billing cycles.
Note that available billing cycles can be set up in 'Change Billing Cycle Rules' table.
5. Disable auto renewal for a new hosting.
6. Renew domain assigned to service.
7. If auto renewal option is enabled, email notifications are not delivered.
Once you have enabled desired options, press 'Save Changes'!

HR8 1.png
If you have enabled the option allow changing billing cycle in the client area, you must also define between which billing cycles the switch can be made.

On the screen below you can see 'Change Billing Cycle Rules' table with available billing cycles. Clients will be able to choose between billing cycles
from the column of their current billing cycle. For example, settings on the following screen will enable clients to switch any billing cycle only to a longer one.
In our case, if a client currently uses 'Quarterly' billing cycle, then it can be changed to 'Semi-Annual' or 'Annually'.

HR8 2.png
Additionally, you can enable/disable auto renewal for all products from a selected configuration.

To do so, press 'Enable Auto Renewal'/'Disable Auto Renewal' button as shown on the following screen.

HR8 3.png
It is wise to inform your clients about incoming due date, you can do it by setting up notification emails.

You can configure up to five notification emails and specify the time when they shall be sent to the clients depending on a billing cycle the clients use.
Additionally, you can set up different email templates for each email notification.
On the screen below you can see settings for a product with monthly, quarterly, semi-annually and annually pricing types.
For each one of them a client receives only 2 notification emails.
The first notification will be sent a week before the due date for monthly and quarterly billing cycles and 2 weeks before the due date for semi-annually and annually billing cycles.
The second notification will be sent for each of the billing cycles a day before the due date.
Save settings through pressing 'Save Changes' button.

Once you have configured the hosting renewals, new buttons in your admin area product's page should be available.
HR9 1.png


When Hosting Renewals For WHMCS is activated, only one email template is created for email notifications.

You can create additional email templates for notifications easily. Move to 'Templates' section and press 'Add Template'.

If you already have some email templates prepared for notification, select it from a dropdown menu and press 'Add' button.

As soon as you do that, it will be visible next to 'Upcoming Renewal Notice' email template and you will be able to assign it to a notification.

HR10 1.png
If you want to prepare a new email template, press 'Create New Template' button.
HR10 2.png
Afterwards, choose 'Product/Service' as an email template type and type in the name under which email template will be visible in your WHMCS.

Press 'Create'.

HR10 3.png
You will be moved to email template edition page. Start by filling in your company name, email address and email subject.

Afterwards, create your email template content in a textbox marked on the following screen.
Press 'Save Changes' button.

You can also use 'Merge Fields' in your email template.

To view a full list of fields, scroll down. These codes are replaced with actual data during sending email.


Assign Email Template

You can assign any of email templates added at 'Templates' tab to a desired notification.

To do so, enter product configuration at 'Hosting Renewal' 'Configuration' and select email templates from a dropdown menu next to a desired notification.
Confirm changes through pressing 'Save Changes' button.
On the screen below you can see a previously created 'Last Day Notification' email template assigned to a notification sent a day before due date.

HR12 1.png


All module activities are recorded in log files. To enable this feature, mark 'Enable File Logging' checkbox.
HR12 2.png
You can view any of the logs. Simply, choose it from 'File' dropdown menu and press 'Show' button.

Note: You will not be able to choose a log file if there are no logged actions yet.

HR12 3.png
Exemplary info log is shown on the following screen.
HR12 4.png


In 'Discounts' section you may set up various discounts for a changing billing cycle.

You can select two types of items:
1. Products - applies to products selected in 'Items' field.
2. Product Groups - applies to all products in a product group which is selected in the 'Items' field.

You can set up two types of discounts:
1. One time discount - it applies to one billing cycle only.
2. Recurring discount - it will be applied to all billing cycle payments, until your client again changes the billing cycle.
Now, we will set up one time discount for 'Premium Product XL' and 'testProduct'.
If a client switches to a quarterly billing cycle from any other billing cycle, they will receive a 50% discount for payment in the first billing period.

HR12 5.png
As you can see on the following screen, all discounts are listed below.

Each of them can be easily removed by pressing 'Delete' button.

HR12 6.png

Integration Code

In this section you have to do two things. First of all, choose a method the prices will be displayed in your client area to your clients.
You can choose between four options. Simply select the one that seems perfect to you.
Integration described below allows your customers to manually renew product, turn on/off auto renewal and change billing cycle from their client area.

These options are available for clients only if you have enabled them in the product's configuration!

Once the integration has been done correctly, your clients should see buttons in the client area as marked on the screen:

Client Area

Depending on the configuration per product your clients will be allowed to manage their renewals in your client area.
They can see the current status and use available buttons to perform allowed actions:
  • Renew service
  • Turn on/off the auto renewal
  • Select billing cycle

Additional Information

1. If option 'Auto Renewal' was enabled, an adequate renewal invoice was generated, but then, due to some reasons, 'Auto Renewal' option is disabled.
In such a situation NO actions are triggered on the already generated invoice. It will not be either canceled or changed.

Additionally, if credit card payment is enabled in your WHMCS, then your system will attempt to charge the credit card. With every failed attempt to charge the credit card,
an email notification will be sent.

Please be aware that this is due to the WHMCS functionality, not the module itself.


1. If your client turns off auto renewal and does not run the renewal manually, then the service status will change to suspended/terminated after a certain time period.

Time period depends on WHMCS settings at 'Setup' 'Automation Settings' 'Automatic Module Functions. '

2. Hosting Renewals For WHMCS supports all billing cycles, from monthly to triennially.

Depending on the chosen billing cycle, displayed value of a renew button is changing according to the following code which is located in 'language' directory in your language file:

$LANG['cyclemonthly']='1 Month';
$LANG['cyclequarterly']='3 Months';
$LANG['cyclesemiannually']='6 Months';
$LANG['cycleannually']='1 Year';
$LANG['cyclebiennially']='2 Years';
$LANG['cycletriennially']='3 Years';
3. You can forward a client directly to invoice page after a successful renew.

To enable this, go to the 'Configuration' tab in our module and expand 'Additional Options'.
Afterwards, mark 'Automatically relocate to the invoice ' checkbox and press 'Save Changes'.

4. If you want to use a template message to send to users with auto-renewal option either 'on' or 'off', you may use the below example:
{if $hosting_auto_renew eq "on"} Service will be automatically renewed in {$service_next_due_date} days. 
{else} Service will expire in {$service_next_due_date} days.  {/if}

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
Personal tools

WHMCS Modules
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
Hosting Renewals For WHMCS