Personal tools
Namespaces

Variants
Actions

Hosting Renewals For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(Installation)
(About Hosting Renewals For WHMCS)
 
(48 intermediate revisions by 4 users not shown)
Line 20: Line 20:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Change Billing Cycle & View Discounted Price Difference
+
|style="padding: 0px 0px 0px 30px;"|✔ Change Billing Cycle & View Discounted Price Difference
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ Apply Early Payment Discounts To Renewal Invoices
 
|}
 
|}
  
Line 40: Line 43:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Application Of Discount For The Change Of Billing Cycle
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Discounts Applied Upon:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Change Of Billing Cycle
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Renewal Invoice Early Payment
 
|}
 
|}
 
{|
 
{|
Line 46: Line 55:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Or Force Domain Renewal Along With Service
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Validity Time Of Early Payment Discount
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Or Force Addons Renewal Along With Service
+
|style="padding: 0px 0px 0px 30px;"|✔ Show Discount Details As Separate Invoice Items
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Renewal On/Off Status Notifications
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Toggle And Force Domain Renewal Along With Service
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Toggle And Force Addons Renewal Along With Service
 
|}
 
|}
 
{|
 
{|
Line 55: Line 73:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Recurring Amount From Service Setting
+
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Application Of Recurring Amount From Service Settings
 
|}
 
|}
 
{|
 
{|
Line 62: Line 80:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Maximum Renewal Time Limit
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Maximum Renewal Time Limit
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Switch Billing Cycle Before Defined Number Of Days To Due Date
 
|}
 
|}
 
{|
 
{|
Line 67: Line 88:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Multiple Email Templates For Email Reminders
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Multiple Templates For Email Reminders
 
|}
 
|}
 
{|
 
{|
Line 76: Line 97:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Add Reminders
+
|style="padding: 0px 0px 0px 45px;"|✔ Add Payment Reminders
 
|}
 
|}
 
{|
 
{|
Line 88: Line 109:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View Logs
+
|style="padding: 0px 0px 0px 30px;"|✔ Customize Module Language Files With "Translations" Tool
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Control Staff Access Level To Specific Resources
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ View And Manage Logs
 
|}
 
|}
 
*'''General Info:'''
 
*'''General Info:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Multi-Language Support
+
|style="padding: 10px 0px 0px 30px;"|✔ Multi-Language Support With Custom Translations Tool
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.1 Back To PHP 7.4
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.6 Up To PHP 7.3
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS Template Six
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.10 Back To WHMCS V8.6
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V7.5 And Later
+
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V12 Or Later
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Easy Module Upgrade To [https://www.modulesgarden.com/products/whmcs/hosting-renewals#open-source-version Open Source Version]
+
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/hosting-renewals#open-source-version Open Source Version]
 
|}
 
|}
  
Line 121: Line 151:
 
{|
 
{|
 
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
 
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
In the most recent versions of the module, you will find only one package that supports PHP 7.1 and later.<br/> If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support].
+
In the most recent versions of the module, you will find only one package that supports PHP 7.4 and later.<br/> <!--  If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support]. -->
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PHP71_73.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP74_81.png]]
 
|}
 
|}
{|
+
<!--{|
 
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>  
 
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>  
The first one that supports PHP 5.6 up to PHP 7.0, and the second one addressed to PHP 7.1 up to PHP 7.3.<br/>
+
The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 8.1.<br/>
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.0 are no longer officially supported and their security issues are not fixed or released any more. Find more info [http://php.net/supported-versions.php here].''
+
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.1 are no longer officially supported and their security issues are not fixed or released any more. Find more info [http://php.net/supported-versions.php here].''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_73.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_81.png]]
|}
+
|}-->
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|'' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/hosting-renewals#open-source-version '''the open source version'''] of this module which can be applied to any PHP from version 5.6 and later.''<br/>'' '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
+
|style="padding: 0px 0px 10px 15px;"| <!-- '' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/hosting-renewals#open-source-version '''the open source version'''] of this module which can be applied to any PHP from version 5.6 and later.''<br/>'' --> '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. Once you have chosen the package with the right PHP version, extract it and upload its content into the main WHMCS directory.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory. <br/>
The content of the chosen PHP version files to upload should look like this.  
+
The content of the package to upload should look like this.
 
|}
 
|}
 
{|
 
{|
Line 202: Line 232:
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|You can enable Hosting Renewals For WHMCS only for the products that have recurring payments configured.<br />
 
|style="padding: 10px 0px 15px 15px;"|You can enable Hosting Renewals For WHMCS only for the products that have recurring payments configured.<br />
Proceed to '' 'Addons' '' → '' 'Hosting Renewals' '' → '' 'Product Settings' '' and choose from the list the product you wish to enable for renewals.
+
Proceed to '' 'Addons' '' → '' 'Hosting Renewals' '' → '' 'Products' '' and choose from the list the product you wish to enable for renewals.
 
|}
 
|}
 
{|
 
{|
Line 214: Line 244:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Available options:<br />
+
|style="padding: 0px 0px 15px 15px;"|Available options:<br /> <div id="settings"></div>
# '''Enable Renewal Configuration''' - Simply enable/disable renewals for the product.<br />
+
* '''Enable Renewal Configuration''' - Simply enable/disable renewals for the product.
# '''Allow Auto Renewal Change''' - If selected, clients are allowed to enable/disable automatic renewals.<br />
+
 
# '''Allow Billing Cycle Change''' - If selected, clients are allowed to change the billing cycle.<br />
+
* '''Allow Auto Renewal Change''' - If selected, clients are allowed to enable/disable automatic renewals.
# '''Disable Auto Renewal By Default''' - Once enabled, automatic renewals will be consequently disabled for all new services.<br />
+
 
# '''Force Domain Renewal''' - Renew a domain along with the renewal of the service it belongs to.<br />
+
* '''Allow Billing Cycle Change''' - If selected, clients are allowed to change the billing cycle.
# '''Force Addons Renewal''' - Allows your clients to renew an addon while setting the renewal of the related service.<br />
+
 
# '''Allow Domain Renewal''' - Enable the renewal of a new domain.<br />
+
* '''Disable Auto Renewal By Default''' - Once enabled, automatic renewals will be consequently disabled for all new services.
# '''Allow Addons Renewal''' - If this option is enabled, the renewals of addons can be arranged.<br />
+
 
# '''Allow Upfront Renewal''' - Allow clients to renew the service before its renewal date.<br />
+
* '''Force Domain Renewal''' - Renew a domain along with the renewal of the service it belongs to.
# '''Disable Auto Renewal Reminders''' - If selected, renewal reminders are not delivered when automatic renewal is on.<br />
+
 
# '''Apply Recurring Amount From Service Settings''' - When selected, the custom recurring amount from the service's settings will be used, [https://www.docs.modulesgarden.com/images/8/80/Hr_on.png see this picture].<br /> Any other way, the default one configured along with the product's arrangements will be applied.([https://www.docs.modulesgarden.com/images/7/72/HR_oFF.png check it here])<br /> However, it does not apply to the setup of addons and domains.<br />
+
* '''Force Addons Renewal''' - Allows your clients to renew an addon while setting the renewal of the related service.
# '''Allow Billing Cycle Change When Unpaid Invoice Exists''' - Enable your clients to change the billing cycle in case of an existing unpaid invoice.<br />
+
 
# '''Allow Immediate Cancellation Requests''' - If enabled, the '' 'Immediate' '' cancellation requests are no longer blocked, causing the service to be canceled after the cron execution. <br/>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. <br/>''Note that the 'End Of Billing Period' cancellation type will work normally regardless of the current status of this setting.''
+
* '''Change Billing Cycle''' - You can enable the billing cycle by choosing a preferred option from the dropdown menu.
# '''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.<br/> 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.
+
 
 +
* '''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, [https://www.docs.modulesgarden.com/images/8/80/Hr_on.png see this picture].<br /> Any other way, the default one configured along with the product's arrangements will be applied.([https://www.docs.modulesgarden.com/images/7/72/HR_oFF.png check it here])<br /> 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. <br/>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. <br/>''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.<br/> 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.<br/> 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.
 
|}
 
|}
 
{|
 
{|
Line 252: Line 299:
 
|style="padding: 10px 0px 15px 15px;"|It is wise to inform your clients about an incoming due date, you can do it by setting up '' 'Reminders'.''<br />
 
|style="padding: 10px 0px 15px 15px;"|It is wise to inform your clients about an incoming due date, you can do it by setting up '' 'Reminders'.''<br />
 
Before you do that, you should prepare the email template message that will be used as a reminder and sent to your clients.<br />
 
Before you do that, you should prepare the email template message that will be used as a reminder and sent to your clients.<br />
Move to '' 'Setup' '' section in your WHMCS admin area and press '' 'Email Templates'.''
+
Move to your WHMCS admin area '' 'System Settings' '' '' 'Email Templates'.'' <br/>
|}
+
 
{|
+
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". <br/>
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_823.png]]
+
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.<br />
|}
+
{|
+
|style="padding: 0px 0px 20px 15px;"|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". <br/>
+
Click on the '' 'Edit' '' button to see its details.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_10_3.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|You will be moved to email template edition page. Edit your company name, email address and email subject.<br />
+
 
Next, edit your email template content in the textbox marked on the following screen.<br />
 
Next, edit your email template content in the textbox marked on the following screen.<br />
 
Press the '' 'Save Changes' '' button.
 
Press the '' 'Save Changes' '' button.
Line 312: Line 349:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''Start with selecting primary attributes including the name and the products eligible for the discount.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''Start with selecting primary attributes including: '''
Then, choose whether the discount is supposed to be a ''Percentage'' or a ''Fixed'' one.<br />
+
* Discount friendly name
In the next step, decide on its value.<br /><br />
+
* Products eligible for the discount
'''Now, you are required to select between two types of discounts:'''<br />
+
* Decide whether the discount will be applied:
1. One time discount - it applies to a single billing cycle only.<br />
+
** on the product billing cycle change action
2. Recurring discount - it will be applied to all billing cycle payments, until your client again changes the billing cycle.<br />
+
** set it as the Early Payment Discount<br/>
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.<br />
+
 
 +
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.<br />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.<br />
 +
 
 +
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.''
 
''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.''
 
|}
 
|}
Line 336: Line 384:
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12.7.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12.7.png]]
 +
|}
 +
 +
==Settings==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Define the module settings:
 +
*'''Discount Details on Invoice'''  - enable this option to show discounts as separate items on the invoice.<br/> The option to add Early Payment Discounts during service renewal will be unlocked as well.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_12.8.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_12.9.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|
 +
*'''Auto Renewal ON Notification''' - if activated, details regarding the activation of Auto Renewal will be visible in the client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_13_0.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|
 +
*'''Auto Renewal OFF Notification''' - When activated, notifications about turning Auto Renewal OFF will be shown in the client area.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_13_1.png]]
 +
|}
 +
 +
==[https://www.docs.modulesgarden.com/Translations_Tool Translations]==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Customizing language files is now extremely easy with the '' "Translations" '' tool that is now available directly in the addon.<br.> Its user-friendly design makes managing various language file tweaks a smooth and efficient process. <br/>
 +
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 [https://www.docs.modulesgarden.com/Translations_Tool here].
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_0.png]]
 +
|}
 +
 +
==Access Control==
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|'' 'Access Control' '' allows you to specify and control exactly which sections of the module can be accessed by your administrators. <br/>
 +
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===
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|
 +
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.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_12_1_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|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. <br/> '''''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.<br/>
 +
'''Important:''' When picking specific sections, keep in mind that allowing a parent section '''will also allow all of its children.''' <br/>
 +
For example by allowing 'Discounts' you allow 'Discounts → Create,' 'Discounts → Edit' and 'Discounts → Delete.'<br/>
 +
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.'<br/> '''Restrict''' takes precedence over '''Allow,''' so if a specific section is included in both, it will be restricted.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_12_1_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 15px;"|To edit or delete existing rules, use the icons to the right.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_1_3.png]]
 +
|}
 +
 +
===Resources===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|Use the toggles in the 'Resources' section to specify which of them should be subject to logging, found in the 'Logs' section. <br/> Every time an administrator requests a toggled resource, it will be recorded.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_1_4.png]]
 +
|}
 +
 +
===Access Control Logs===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|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.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_1_5.png]]
 
|}
 
|}
  
 
==Logs==
 
==Logs==
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|All module activities are recorded in '' 'Logs' ''.<br />
+
|style="padding: 10px 0px 15px 15px;"|All module activities can be recorded in the '' 'Logs' '' section.<br />
 
'''''Note:''' You will have no visible logs here if there are no logged actions yet.''
 
'''''Note:''' You will have no visible logs here if there are no logged actions yet.''
 
|}
 
|}
Line 347: Line 489:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In case you no longer wish to see particular logs you can easily remove them.<br /> Delete a single entry or use mass action feature to delete multiple logs at the same time as presented on the screen below .
+
|style="padding: 0px 0px 15px 15px;"|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.<br/> 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.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_3.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_12_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|There are several ways to manually delete single or multiple logs at any time, regardless of the settings configured above.<br/ > 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.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:HR3_12_4.png]]
 
|}
 
|}
  
Line 358: Line 508:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_17.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_13_1.png]]
 
|}
 
|}
 
{|
 
{|
Line 370: Line 520:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Press the ''Choose Billing Cycle'' button in order to change a current billing cycle to a new one.<br />
+
|style="padding: 0px 0px 20px 15px;"|Press the ''Choose Billing Cycle'' button in order to change a current billing cycle to a new one.<br />  
 +
 
 
|}
 
|}
 
{|
 
{|
Line 376: Line 527:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In the next place, choose a new billing cycle from the dropdown menu. <br />
+
|style="padding: 0px 0px 20px 15px;"|In the next place, choose a new billing cycle from the dropdown menu. <br />
Clients will also have their domains and addons renewed, undesired items can be simply unchecked, unless you have chosen either the '' 'Force Domain Renewal' ''<br /> or '' 'Force Addons Renewal' '' during customizing your '' 'Product Settings' '' at the [https://www.docs.modulesgarden.com/images/c/c3/Hr_see.png previous] stage of the configuration.  
+
Clients will also have their domains and addons renewed, undesired items can be simply unchecked, unless you have chosen either the '' 'Force Domain Renewal' ''<br /> or '' 'Force Addons Renewal' '' during customizing your '' 'Product Settings' '' at the [https://www.docs.modulesgarden.com/images/c/c3/Hr_see.png previous] stage of the configuration. <br/>
 +
 
 +
Once you do that, check the total amount and click ''Confirm''.<br/>As you can see, the chosen option includes the previously configured discount.  
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_26.png]]
 
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_26.png]]
|}
 
{|
 
|style="padding: 0px 0px 20px 15px;"|Once you do that, check the total amount and click ''Confirm''.<br/>As you can see, the chosen option includes the previously configured discount.
 
|}
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:HR3_27.png]]
 
 
|}
 
|}
 
{|
 
{|
Line 416: Line 563:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|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:<br/>
+
|style="padding: 0px 0px 5px 15px;"|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:<br/>
 
  {if $auto_renew eq "On"} Service will be automatically renewed in {$service_next_due_date} days.  
 
  {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}
 
  {else} Service will expire in {$service_next_due_date} days.  {/if}
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|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 [[#settings|product settings]].
 +
|}
 +
==How To Use Language Overrides==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''Incorporating language customizations - the module readily accommodates language overrides, allowing you to tailor the language files to your preferences.'''<br/> 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.<br/>
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|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';
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|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.<br/>
 +
 +
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.<br/> 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.<br/> Consequently, the override lang file might include only one or just a few lines.
 
|}
 
|}
  
 
=Update Instructions=
 
=Update Instructions=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/><br/>
+
|style="padding: 10px 0px 30px 15px;"|An essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/>
Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!<br/>
+
Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.<br/> Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.
To take advantage of it, simply use the '''License Upgrade''' button located on the product's page and a discounted invoice will be generated automatically.<br/>
+
 
|}
 
|}
 
==Migration==
 
==Migration==
Line 431: Line 608:
 
|style="padding: 10px 0px 30px 15px;"|  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.<br />  
 
|style="padding: 10px 0px 30px 15px;"|  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.<br />  
 
'' '''Note:''' Remember that in case you wish to switch to the latest version, you need to reissue your license first.''
 
'' '''Note:''' Remember that in case you wish to switch to the latest version, you need to reissue your license first.''
 +
|}
 +
=Upgrade Guide=
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> 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.<br/>
 +
 +
Opt for the [https://www.modulesgarden.com/products/whmcs/hosting-renewals#open-source-version Open Source version] of your Hosting Renewals For WHMCS module to unlock these benefits.<br/> 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.<br/>
 +
 +
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module 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.
 
|}
 
|}
  

Latest revision as of 13:54, 26 April 2024

Contents

[edit] 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
✔ View And Manage Logs
  • General Info:
✔ Multi-Language Support With Custom Translations Tool
✔ Supports PHP 8.1 Back To PHP 7.4
✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme"
✔ Supports WHMCS V8.10 Back To WHMCS V8.6
✔ Requires ionCube Loader V12 Or Later
✔ Easy Module Upgrade To Open Source Version

[edit] 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

[edit] 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.

[edit] 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

[edit] 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

[edit] 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

[edit] 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

[edit] 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

[edit] 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.

[edit] 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

[edit] 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

[edit] 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

[edit] 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

[edit] 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

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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.

[edit] 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