Personal tools
Namespaces

Variants
Actions

Hosting Renewals For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search

Contents

About Hosting Renewals For WHMCS

Hosting Renewals For WHMCS is a module which enables you to handle the billing cycles, recurring payments and renewals of services belonging to your customers in a unique and user-friendly way.

The module will grant your clients the ability to control the activation of their automatic renewals, they will also be able to decide on the renewals of their web hosting services, not to mention it will take less time to change the billing cycle.
Thanks to Hosting Renewals, you will possess the faculty of configuring billing cycle, changing rules, preparing various discounts and your customers will start receiving fit for purpose email notifications.

  • Client Area Features:
✔ Renew Services Before Due Date
✔ Renew Domain And Addons Along With Service
✔ Toggle Auto Renewals
✔ Change Billing Cycle & View Discounted Price Difference
✔ Apply Early Payment Discounts To Renewal Invoices
  • Admin Area Features:
✔ Renew Services Before Due Date
✔ Renew Domain And Addons Along With Service
✔ Toggle Auto Renewals For Service
✔ Choose Available Billing Cycles
✔ Configure Client Area Features
✔ Define Discounts Applied Upon:
✔ Change Of Billing Cycle
✔ Renewal Invoice Early Payment
✔ Choose Between Two Types Of Discounts - One Time And Recurring
✔ Define Validity Time Of Early Payment Discount
✔ Show Discount Details As Separate Invoice Items
✔ Toggle Renewal On/Off Status Notifications
✔ Toggle And Force Domain Renewal Along With Service
✔ Toggle And Force Addons Renewal Along With Service
✔ Toggle Upfront Renewal
✔ Toggle Application Of Recurring Amount From Service Settings
✔ Disable Auto Renewal For New Services
✔ Define Maximum Renewal Time Limit
✔ Automatically Switch Billing Cycle Before Defined Number Of Days To Due Date
✔ Send Email Reminders About Upcoming Or Missed Renewals
✔ Define Multiple Templates For Email Reminders
✔ Perform Bulk Changes On Multiple Services
✔ Change Settings
✔ Add Payment Reminders
✔ Toggle Auto Renewal
✔ Toggle Discounts Status
✔ Delete Discounts
✔ Customize Module Language Files With "Translations" Tool
✔ Control Staff Access Level To Specific Resources With ACL
✔ View And Manage Logs
  • General Info:
✔ Multi-Language Support With Custom Translations Tool
✔ Supports PHP 8.2 Back To PHP 8.1
✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
✔ Supports WHMCS V8.11 Back To WHMCS V8.8
✔ Requires ionCube Loader V13 Or Later
✔ Easy Module Upgrade To Open Source Version

Installation

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.

Note: If you are still using any of the module's previous versions prior to v3.x, follow these instructions.

1. Log in to our client area and download the module.
HR3 1.png
2. In the downloaded file you might find one or two packages that support different PHP versions.

In the most recent versions of the module, you will find only one package that supports PHP 7.4 and later.

PHP74 81.png
Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' → 'System' → 'PHP Info'.
3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

Xdfs.png
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/HostingRenewals/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

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

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

HR3 4.png
6. Now, you have to set up chmod for the 'storage' folder located in 'your_whmcs/modules/addons/HostingRenewals'.

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

HR3 4 1.png
7. The next step concerns setting up a cron job (every hour suggested).

Cron will be used for the reminders which you will set later on.
Use cron job below but switch 'your_whmcs' with your root WHMCS path.

php -q /your_whmcs/modules/addons/HostingRenewals/cron/cron.php EmailReminders
8. Next, you have to activate the module in your WHMCS system.

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

HR3 5.png
9. In the next step you need to permit access to this module.

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

HR3 6.png
10. You have just successfully installed Hosting Renewals!

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

HR3 7.png

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.

Configuration

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

Proceed to 'Addons' 'Hosting Renewals' 'Products' and choose from the list the product you wish to enable for renewals.

HR3 8.png
Press the symbol marked on the screen to configure the rules of your product.
HR3 8 11.png
Available options:
  • Enable Renewal Configuration - Simply enable/disable renewals for the product.
  • Allow Auto Renewal Change - If selected, clients are allowed to enable/disable automatic renewals.
  • Allow Billing Cycle Change - If selected, clients are allowed to change the billing cycle.
  • Disable Auto Renewal By Default - Once enabled, automatic renewals will be consequently disabled for all new services.
  • Force Domain Renewal - Renew a domain along with the renewal of the service it belongs to.
  • Force Addons Renewal - Allows your clients to renew an addon while setting the renewal of the related service.
  • Change Billing Cycle - You can enable the billing cycle by choosing a preferred option from the dropdown menu.
  • Allow Domain Renewal - Enable the renewal of a new domain.
  • Allow Addons Renewal - If this option is enabled, the renewals of addons can be arranged.
  • Allow Upfront Renewal - Allow clients to renew the service before its renewal date.
  • Disable Auto Renewal Reminders - If selected, renewal reminders are not delivered when automatic renewal is on.
  • Apply Recurring Amount From Service Settings - When selected, the custom recurring amount from the service's settings will be used, see this picture.
    Any other way, the default one configured along with the product's arrangements will be applied.(check it here)
    However, it does not apply to the setup of addons and domains.
  • Allow Billing Cycle Change When Unpaid Invoice Exists - Enable your clients to change the billing cycle in case of an existing unpaid invoice.
  • Allow Immediate Cancellation Requests - If enabled, the 'Immediate' cancellation requests are no longer blocked, causing the service to be canceled after the cron execution.
    By default, this sort of an action is not available due to the fact that the module uses the 'Override Auto Suspend' feature disabling the immediate cancellations.
    Note that the 'End Of Billing Period' cancellation type will work normally regardless of the current status of this setting.
  • Set Product Renewal Time Limit (Months) - Enter a number that will indicate the time limit in months for how long a product can be renewed.
    A product renewal date cannot be further than the current date plus the number of months set here. Type in 0 to set NO limits.
  • Set Time To Change Billing Cycle (Days) - You can enable the automatic billing cycle change a specified number of days before or after the due date of the service's current billing cycle.
    Enter a positive value (e.g. 5) to change the cycle 5 days BEFORE the due date. Enter a negative number (e.g. -5) to switch the billing cycle 5 days AFTER the due date.
HR3 8 1.png
If you enabled the option allowing to change the billing cycle in the client area, you must also decide between which billing cycles the switch can be made.

On the screen below you can see the 'Choose Available Billing Cycles' 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 they like.

HR3 8 2.png
Thanks to the 'Mass Action' feature you are allowed to simultaneously control the settings of multiple products.

Take a look at the screenshot below.

HR3 18 2.png

Reminders

It is wise to inform your clients about an incoming due date, you can do it by setting up 'Reminders'.

Before you do that, you should prepare the email template message that will be used as a reminder and sent to your clients.
Move to your WHMCS admin area 'System Settings' 'Email Templates'.

Together with the module activation, there is one custom email template provided. You can find it named: 'ModulesGarden Hosting Renewals - Last Day Notification' in "Product/Service Messages".
Click on the 'Edit' button to see its details. You will be moved to email template edition page. Edit your company name, email address and email subject.
Next, edit your email template content in the textbox marked on the following screen.
Press the 'Save Changes' button.

HR3 11.png
Use 'Merge Fields' to edit the email template.

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

HR3 12.png
There is an additional, not listed merge field that you can use, which stands for the status of the auto-renew option (true/false):
{$auto_renew}

It returns value: On or Off which can be translated in the language file to any value needed.
Take a look at the Tips section, Tip 3 to see an exemplary usage.

Once you have the template and picked its billing cycle, we can move to adding a reminder itself.

Simply click the Add Reminder button to do so.

HR3 112.png
The Status field should be automatically set to active, please note, however, that you can disable the reminder any time you want.

Next, choose the desired template from the dropdown menu of custom templates including the previously created 'Last Day Notification' .
The section named Period refers to the number of days before the end of the cycle intended for sending a reminder.
Note: You may enter a negative value (e.g. -5) and the remainder will be sent that number of days after the product expiration, still the date cannot exceed the product termination date.
Finally, press the 'Add' button.

HR3 9.png

Discounts

In the 'Discounts' section you may set up various discounts for any alterations of renewals of services.

To start creating and modifying your discount click on Add Discount.

HR3 12 5.png
Start with selecting primary attributes including:
  • Discount friendly name
  • Products eligible for the discount
  • Decide whether the discount will be applied:
    • on the product billing cycle change action
    • set it as the Early Payment Discount

For Billing Cycle Change:

  • Choose whether the discount is supposed to be a Percentage or a Fixed one ad provide adequate value
  • Define the billing cycle types that shall be changed 'From' → 'To'
  • Select between two types of discounts:
    • One Time discount - applied to a single billing cycle only
    • Recurring discount - it will be applied to all billing cycle payments, until your client again changes the billing cycle.
      For example, if a client switches to a quarterly billing cycle from any other cycle, they will receive a $35 discount for a payment in the first billing period.

For Renew Product (Early Payment Discount):

  • Choose whether the discount is supposed to be a Percentage or a Fixed one ad provide adequate value
  • Define the early payment discount period dates: 'Available since (days)' → 'Available to (days)' (before the invoice due date)

Note: Discount applies only to the price of the service, both addons and domains even whilst being renewed accordingly, are not qualified for the discount.

HR3 12 6.png
As you can see on the following screen, all discounts are listed below.

Each of them can be either removed or edited by pressing the appropriate button.

HR3 126.png
Select numerous discounts and use action buttons to Enable/Disable or Delete these discounts.
HR3 12.7.png

Settings

Define the module settings:
  • Discount Details on Invoice - enable this option to show discounts as separate items on the invoice.
    The option to add Early Payment Discounts during service renewal will be unlocked as well.
HR3 12.8.png
HR3 12.9.png
  • Auto Renewal ON Notification - if activated, details regarding the activation of Auto Renewal will be visible in the client area.
HR3 13 0.png
  • Auto Renewal OFF Notification - When activated, notifications about turning Auto Renewal OFF will be shown in the client area.
HR3 13 1.png

Translations

Customizing language files is now extremely easy with the "Translations" tool that is now available directly in the addon.
Its user-friendly design makes managing various language file tweaks a smooth and efficient process.

Prepare translations for the original English files with this handy built-in tool. For specific instructions on how to use this tool please refer to its dedicated article, you will find it here.

HR3 12 0.png

Access Control

'Access Control' allows you to specify and control exactly which sections of the module can be accessed by your administrators.

The way it works is that you create access control rules in which you decide if a specific admin, or admin role has full access, or is restricted to only specific sections.

Rules

Start with creating a new rule, click on the 'Create Rule' button and a dedicated form will appear. Below you will find a description of every field required in the form.

HR3 12 1 1.png
Fill out the following fields to create resources access rule:
  • Rule Name - Pick a name for your rule.
  • Grant Full Access - Enable to grant full access to all sections of the module to the specified personnel. Disable to specify in two additional fields below, to which resources access will be granted, and to which it will be denied.
  • Allow Access To - Designate the resources that the specified personnel will have access to.
  • Restrict Access To - Specify the resources that the specified personnel will not have access to.
  • Administrators - Specify which singular administrators will be subject to the new rule. If the specific administrator is already included in the group you have picked, you do not need to add him separately.
    Note: All restrictions for specific administrators are summed with the restrictions on their role groups, across all rules.
  • Administrator Roles - Specify which administrator role groups will be subject to the new rule.

Important: When picking specific sections, keep in mind that allowing a parent section will also allow all of its children.
For example by allowing 'Discounts' you allow 'Discounts → Create,' 'Discounts → Edit' and 'Discounts → Delete.'
If you would like to give access to everything about discounts, but the ability to delete them, you can pick 'Discounts' in 'Allow Access To' and then 'Discounts → Delete' in 'Restrict Access To.'
Restrict takes precedence over Allow, so if a specific section is included in both, it will be restricted.

HR3 12 1 2.png
To edit or delete existing rules, use the icons to the right.
HR3 12 1 3.png

Resources

Use the toggles in the 'Resources' section to specify which of them should be subject to logging, found in the 'Logs' section.
Every time an administrator requests a toggled resource, it will be recorded.
HR3 12 1 4.png

Access Control Logs

The logs section includes:
  • Log ID
  • Name of the administrator
  • Requested resource
  • Applied Resource
  • Rule Name
  • Date

Use the trash bin icons to delete specific logs, or utilize the mass action function to delete multiple logs at once.

HR3 12 1 5.png

Logs

All module activities can be recorded in the 'Logs' section.

Note: You will have no visible logs here if there are no logged actions yet.

HR3 12 2.png
In the logs settings section, you can specify the types of logs to be stored. If you leave this field empty, all available types will be stored.
Additionally, you can enable the option to automatically clear the logs. Simply turn on this option and define the number – logs older than the provided number of days will be automatically deleted.
HR3 12 3.png
There are several ways to manually delete single or multiple logs at any time, regardless of the settings configured above.
Navigate to 'Additional Actions' → 'Delete', and choose the log types to be deleted (leave empty to select all types). Specify the number of days; only logs meeting these criteria will be deleted upon confirmation.

Alternatively, you can use the standard mass action option to delete selected logs or individual entries.

HR3 12 4.png

Client Area

Depending on the configuration per product your clients will be allowed to manage their renewals in their client area.
HR3 13 1.png
They can see the current status and use available buttons to perform allowed actions:
  • Renew service
  • Turn on/off the auto renewal
  • Change a billing cycle
HR3 18.png
Press the Choose Billing Cycle button in order to change a current billing cycle to a new one.
HR3 19.png
In the next place, choose a new billing cycle from the dropdown menu.

Clients will also have their domains and addons renewed, undesired items can be simply unchecked, unless you have chosen either the 'Force Domain Renewal'
or 'Force Addons Renewal' during customizing your 'Product Settings' at the previous stage of the configuration.

Once you do that, check the total amount and click Confirm.
As you can see, the chosen option includes the previously configured discount.

HR3 26.png
A new invoice has been created.

Therefore, the billing cycle is now set to 'Annually'.
Note, however, that only the cycle related to the service itself has been modified, unlike the cycle of either the addons or domains.
These will be separately billed, according to the introduced cycle's alteration:
'Monthly' → 'Annually' results in new 12 cycles visible on the invoice.

HR3 28.png

Tips

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['addonCA']['hostingActions']['Monthly']       = '1 Month';
$_LANG['addonCA']['hostingActions']['Quarterly']     = '3 Months';
$_LANG['addonCA']['hostingActions']['Semi-Annually'] = '6 Months';
$_LANG['addonCA']['hostingActions']['Annually']      = '1 Year';
$_LANG['addonCA']['hostingActions']['Biennially']    = '2 Years';
$_LANG['addonCA']['hostingActions']['Triennially']   = '3 Years';
3. If you want a template message to be sent to users with the auto-renewal 'On' or 'Off' option, you may use the below example:
{if $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}
4. If your system discounts are not applied to recurring payment for a product, make sure you have enabled the Apply Recurring Amount From Service Settings option in the Hosting Renewals addon product settings.

How To Use Language Overrides

Incorporating language customizations - the module readily accommodates language overrides, allowing you to tailor the language files to your preferences.
The language file english.php remains unencoded and can be modified to suit your needs. However, it's recommended to avoid altering the core file itself, and instead, leverage the capability of using overrides.
Here's how to apply language overrides:
  • Navigate to the ~/langs/ directory located within the following yourWHMCS/modules/servers/moduleName/langs/ path.
  • Within this directory, create a new file or duplicate the language file you intend to modify. For instance, if you wish to create an override for the English language, establish the following directory structure:
 ~/langs/overrides/english.php.
  • Open the newly created override file to edit its contents.
  • At the beginning of the file, indicate the used code, for instance, you can use: <?php for PHP code.
  • Adapt the file content according to your requirements. You can either selectively modify specific variables or opt to revise the entire content of the language file.

For example:

Original yourWHMCS/modules/servers/moduleName/langs/english.php:

 $_LANG['Search'] = 'Search';

Override yourWHMCS/modules/servers/moduleName/langs/overrides/english.php:

 $_LANG['Search'] = 'Look for';
By following these steps, you can seamlessly implement language customizations without altering the core language file, ensuring your changes will not be lost after every module update.

Remember that some of the modules have more than one language file, located under /addons and /servers paths. You may create the override files for both of them.
Note that you do not need to paste all the original content of the lang file into the override file. Enter there only the lines that you wish to change, every other line will be fetched from the original module lang file.
Consequently, the override lang file might include only one or just a few lines.

Update Instructions

An essential guidance through the process of updating the module is offered here.

Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.
Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.

Migration

While using the 2.X version of our module, note that no data can be migrated due to the fact that we did not implement the migration from any of the previous versions of Hosting Renewals, so the module needs to be configured from scratch.

Note: Remember that in case you wish to switch to the latest version, you need to reissue your license first.

Upgrade Guide

Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?
There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.

Opt for the Open Source version of your Hosting Renewals For WHMCS module to unlock these benefits.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community
Hosting Renewals For WHMCS