Difference between revisions of "Changelog:WHMCS V5.2"

From WHMCS Documentation

m (Version 5.2.17)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Changelogs|« Back to Changelogs]]
 
[[Changelogs|« Back to Changelogs]]
 +
<noinclude>
 +
=Version 5.2.17=
 +
 +
*Release Type: SECURITY RELEASE
 +
*Release Date: 25th March 2014
 +
 +
==Security==
 +
 +
Case #3982 - Details to be released at a later date
 +
<br />Case #4057 - Details to be released at a later date
 +
<br />Case #4161 - Details to be released at a later date
 +
<br />Case #4172 - Details to be released at a later date
 +
<br />Case #4175 - Details to be released at a later date
 +
<br />Case #4180 - Details to be released at a later date
 +
<br />Case #4186 - Details to be released at a later date
 +
<br />Case #4187 - Details to be released at a later date
 +
<br />Case #4194 - Details to be released at a later date
 +
<br />Case #4202 - Details to be released at a later date
 +
<br />Case #4256 - Details to be released at a later date
 +
<br />Case #4311 - Details to be released at a later date
 +
 +
==Bug Fixes==
 +
 +
Case #2622 - Use localized date format for domain renewal reminders
 +
<br />Case #3375 - Improved Redundancy for License Verification
 +
<br />Case #3977 - Allows promo code recurring cycles to be edited after checkbox is ticked
 +
<br />Case #3333 - Delete custom field entries for a product when the order is deleted
 +
<br />Case #4113 - Add extended TLD attributes for new .UK TLD
 +
 +
=Version 5.2.16=
 +
 +
*Release Type: SECURITY RELEASE
 +
*Release Date: 21st January 2014
 +
 +
==Maintenance==
 +
 +
Case #2557 - 2Checkout Gateway: Update to currency variable
 +
<br />Case #2623 - Fix calculations of promotions when more than 50% off
 +
<br />Case #2739 - Add TLD Specific Fields required for .CN domain registrations
 +
<br />Case #2874 - Authorize.net Echeck: Fix capture function behaving incorrectly
 +
<br />Case #3019 - Refine internal criteria for bulk domain lookup
 +
<br />Case #3030 - Resolve SQL error in Income by Product Report
 +
<br />Case #3086 - Nominet Registrar: Update to Contact Registration Logic for Individuals
 +
<br />Case #3116 - Required Custom Fields not validating correctly when using API
 +
<br />Case #3360 - Resolved issue where one time promotions could be treated as recurring
 +
<br />Case #3360 - Disable Recur For input box when Recurring is disabled
 +
<br />Case #3361 - Fix time limited recurring promotions calculating incorrectly
 +
<br />Case #3388 - Fix Invalid Token Error when applying credit in Original and Portal Client Templates
 +
<br />Case #3414 - Payflow Pro: Update to store PayFlow Reference in PayFlow Mode
 +
<br />Case #3617 - Do not CC password reset emails to sub-accounts
 +
<br />Case #3740 - ProtX VSP Form: Pass correct callback values to debug log
 +
<br />Case #3801 - Resolved PDF Quotes missing clients name/address
 +
<br />Case #3802 - Make a quantity of zero remove item from the cart
 +
<br />Case #3809 - Regular Expression Custom Field Validation failing on single quotes
 +
<br />Case #3811 - Resolve Invalid Token error when deleting recurring calendar entry
 +
<br />Case #3814 - Improvements to IPv6 detection and validation logic
 +
<br />Case #3862 - NameCheap Registrar: Fix incorrect function name call
 +
<br />Case #3864 - Authorize.net Echeck: Fix storage of bank account details
 +
<br />Case #3893 - Enom SSL Module: Fix Province is Required Error Message
 +
 +
==Security==
 +
 +
Case #3637 - Improve Access Controls in Project Management Addon
 +
<br />Case #3782 - Improve Access Controls in Tickets
 +
<br />Case #3783 - Improve Access Controls in Invoices
 +
<br />Case #3784 - Resolve Admin Area SQL Injection Vulnerability
 +
<br />Case #3839 - Resolve Potential XSS Vulnerability
 +
<br />Case #3841 - Resolve Potential XSS Vulnerability
 +
<br />Case #3842 - Resolve Potential XSS Vulnerability
 +
<br />Case #3843 - Resolve Potential XSS Vulnerability
 +
<br />Case #3846 - Improve Access Controls in Tickets
 +
<br />Case #3922 - PayPal Express Checkout Improve Validation
 +
<br />Case #3931 - Potential header injection via whois lookups
 +
<br />Case #3932 - Improve sanitization for whois query
 +
 +
=Version 5.2.15=
 +
 +
*Release Type: SECURITY RELEASE
 +
*Release Date: 23rd December 2013
 +
 +
==Security==
 +
 +
Case #3785 - SQL Injection via Admin Credit Routines
 +
 +
==Bug Fixes==
 +
 +
Case #3706 - Some graphs failing after recent Google Graph API Update
 +
<br />Case #3711 - CSV Export content should not contain HTML entities
 +
<br />Case #3726 - PDF Line Items failing to output some specific characters
 +
<br />Case #3727 - Admin password reset process failing to send new password email
 +
<br />Case #3738 - Sub-account password field's default text must be removed on focus/click events
 +
 +
=Version 5.2.14=
 +
 +
*Release Type: MAINTENANCE RELEASE
 +
*Release Date: 27th November 2013
 +
 +
==Bug Fixes==
 +
 +
Case #2555 - 5.3 Backport: Select all checkboxes not working in manage orders & invoices
 +
<br />Case #2941 - 5.3 Backport: Company ID Number being ignored via Nominet
 +
<br />Case #3075 - 5.3 Backport: Update to ECB Exchange Rates Data Feed URL
 +
<br />Case #3482 - Currency type must be calculated prior to feed aggregation
 +
<br />Case #3662 - Improved the emptying of template cache
 +
<br />Case #3663 - Client area additional currency selection not working
 +
<br />Case #3664 - Alingment correction for intelli-search in V4 admin theme
 +
<br />Case #3665 - Improved HTML quoting to handle all character sets in admin logs
 +
<br />Case #3666 - Added required token to Block Sender Action in Admin Ticket View
 +
<br />Case #3670 - Update to WHOIS Lookup Links to use form submission for lookups
 +
<br />Case #3671 - Admin New Ticket Insert Predefined Reply lacking required token
 +
<br />Case #3672 - Add Predefined Product link in Quotes leads to invalid token error
 +
<br />Case #3674 - Updated plain-text email generation to strip entity encoding
 +
<br />Case #3676 - Remove debug die statement from Admin Ticket Merge via Options Tab
 +
<br />Case #3677 - Fix PDF batch export for more than one user
 +
<br />Case #3678 - Project Management: Should redirect back to project after attaching file
 +
<br />Case #3680 - Required Token added to Open New Ticket Client Search function
 +
<br />Case #3685 - PayPal Callback failing under certain conditions
 +
<br />Case #3686 - Redirect with User ID when deleting email from client profile
 +
<br />Case #3687 - cPanel and WHM Import Tool filter buttons failing
 +
<br />Case #3688 - Remove reliance on the escapeshellcmd() function
 +
<br />Case #3696 - Resolved Import Override from Admin Ticket Mail Import Log
 +
<br />Case #3697 - Email message sender shows quotes encoded
 +
<br />Case #3698 - Emails sent to Admin have erroneous entity characters for some fields
 +
<br />Case #3690 - Ensure all values are free of entities in PDFs
 +
 +
=Version 5.2.13=
 +
 +
 +
*Release Type: TARGETED RELEASE
 +
*Release Date: 21th November 2013
 +
 +
==General==
 +
 +
Case #2989 - Downgrade orders failing when no payment due
 +
<br/>Case #3325 - Credit card processing fails with weekly retries enabled
 +
<br/>Case #3467 - API GetClientsAddons fails on certain conditions
 +
<br/>Case #3471 - Unable to download ticket attachments from first ticket message
 +
<br/>Case #3515 - Add tilde to valid character list of redirect path
 +
<br/>Case #3528 - Updated Smarty to latest 2.6.28 release
 +
<br/>Case #3545 - Project Management settings redirect on save fails
 +
<br/>Case #3482 - Improve default currency logic
 +
<br/>Case #3641 - Allow MaxMind Service Type selection
 +
 +
==Security==
 +
 +
Case #3447 -- Redacted --
 +
<br/>Case #3441 -- Redacted --
 +
<br/>Case #3459 -- Redacted --
 +
<br/>Case #3476 -- Redacted --
 +
<br/>Case #3478 -- Redacted --
 +
<br/>Case #3489 -- Redacted --
 +
<br/>Case #3492 - Remove dependency on unserialize() for admin table sorting
 +
<br/>Case #3495 -- Redacted --
 +
<br/>Case #3530 -- Redacted --
 +
<br/>Case #3554 -- Redacted --
 +
<br/>Case #3580 -- Redacted --
 +
<br/>Case #3581 -- Redacted --
 +
<br/>Case #3584 -- Redacted --
 +
<br/>Case #3585 -- Redacted --
 +
<br/>Case #3587 -- Redacted --
 +
<br/>Case #3589 -- Redacted --
 +
<br/>Case #3603 -- Redacted --
 +
<br/>Case #3605 -- Redacted --
 +
<br/>Case #3606 -- Redacted --
 +
 +
=Version 5.2.12=
 +
 +
 +
*Release Type: SECURITY PATCH
 +
*Release Date: 25th October 2013
 +
 +
==General==
 +
 +
Case #3444 - Improved validation of monetary amounts
 +
<br />Case #3313 - Moneris Vault Gateway compatibility update
 +
<br />Case #3323 - Credit cards not processing under certain conditions
 +
<br />Case #3138 - Correction to internal logic for testing Authorize.net payment gateway
 +
 +
==Security==
 +
 +
<br />Case #3464 - Information disclosure via the client area as published by 'localhost'
 +
<br />Case #3510 - HTTP Split Attack discovered by the WHMCS Development Team
 +
<br />Case #2633 - SQL Injection Vulnerability discovered by the WHMCS Development Team
 +
<br />Case #3281 - Privilege boundaries not being enforced on addons reported by Vlad C of NetSec Interactive
 +
<br />Case #3453 -Download directory traversal reported privately by an individual
 +
<br />Case #3268 - Lack of input validation in data feeds input discovered by the WHMCS Development Team
 +
<br />Case #3462 - Deficient Null Byte sanitization on input discovered by the WHMCS Development Team
 +
 +
=Version 5.2.10=
 +
 +
*Release Type: SECURITY PATCH
 +
*Release Date: 20th October 2013
 +
 +
==General==
 +
 +
<br />Case #3433 - Mass mail client filter for default language not working
 +
<br />Case #2566 - Resolved admin clients list displaying duplicates in certain conditions
 +
 +
==Security==
 +
 +
<br />Case #3246 - Enforce privilege bounds for ticket actions
 +
<br />Case #3426 - Additional CSRF Protection Added to Product Configuration
 +
<br />Case #3232 - Added additional input validation to SQL numeric manipulation routines
 +
<br /> Case #3437 - Prevent user input from manipulating IP Ban logic
 +
 +
=Version 5.2.9=
 +
 +
*Release Type: SECURITY PATCH
 +
*Release Date: 18th October 2013
 +
 +
==Security==
 +
 +
Case #2978 - Fix for improper logging of admin login IP
 +
<br />Case #3100 - Remove exposure of SQL from user interface
 +
<br />Case #3364 - Additional validation on user IP
 +
<br />Case #3425 - Potential SQL Injection Fix
 +
<br />Case #3428 - Added password verification requirement to admin user management operations
 +
<br />Case #3430 - Potential SQL Injection Fix
 +
 +
=Version 5.2.8=
 +
 +
*Release Type: SECURITY PATCH
 +
*Release Date: 3rd October 2013
 +
 +
==Security==
 +
 +
Case #3353 - Add sanitization for pre-formatted  AES_Encrypt in queries
 +
 +
=Version 5.2.7=
 +
*Release Type: '''MAINTENANCE RELEASE'''
 +
*Release Date: '''26th July 2013'''
 +
 +
==Bug Fixes==
 +
 +
Case #2950 - Invalid token on Mass Mailer steps
 +
<br />Case #2951 - Fix for PayPal callback returning HTTP 406 error on no amount
 +
<br />Case #2953 - Duplicate admin log entries upon login
 +
<br />Case #2954 - Repair link for Admin Clients Services Add New Addon
 +
<br />Case #2955 - Invalid Entity Requestd for Support Page/Module
 +
<br />Case #2956 - Revert SQL changes introduced by build 5.2.6.3
 +
<br />Case #2963 - Additional Domain Fields not saving input
 +
<br />Case #2965 - Correct SQL statement for Ticket Escalations Cron routine
 +
<br />Case #2960 - Improve installer logic
 +
<br />Case #2969 - Do not encode 3rd-party TCPDF
 +
<br />Case #2970 - Do not encode 3rd-party PHP Mailer
 +
<br />Case #2971 - Do not encode 3rd-party Google QR code library
 +
<br />Case #2974 - Fix for invoices with a zero total not being auto set to paid on automated generation
 +
<br />Case #2975 - Fix for Calendar Entry Type Checkboxes not retaining selection
 +
<br />Case #2977 - Calendar Entries Missing Addon Name for Predefined Addons
 +
 +
=Version 5.2.6=
 +
*Release Type: '''TARGETED RELEASE'''
 +
*Release Date: '''23rd July 2013'''
 +
 +
===Security===
 +
Case #2755 - Internal Security Audit & Code Refactor
 +
 +
=Version 5.2.5=
 +
*Release Type: '''SECURITY PATCH'''
 +
*Release Date: '''16th May 2013'''
 +
 +
===Security===
 +
Case #2633 - Correct security enhancement regression
 +
 +
=Version 5.2.4=
 +
*Release Type: '''RELEASE'''
 +
*Release Date: '''23rd April 2013'''
 +
 +
===General===
 +
 +
Case #2139 - Updates to cron report email format to make it easier to read
 +
<br />Case #2045 - Added Affiliates Overview Report
 +
<br />Case #2053 - Added amount filter option to admin orders list
 +
<br />Case #2134 - Update to Transactions CSV Export to show Currency Code rather than Currency ID
 +
<br />Case #2045 - Domain Sync Cron Updated to not keep re-attempting to connect to the same registrar if a connection error occurs
 +
<br />Case #2045 - Update to Yubico module to remove hard-coded WHMCS references
 +
<br />Case #2115 - Fix for hard-coded text Manage and Disable in Client Area Domain Details Template File
 +
<br />Case #1880 - Update to Client Area Module Change Password in Default Template to return to password tab on submit
 +
<br />Case #1567 - Update to invoice generation process to not invoice billable items on new orders
 +
<br />Case #2127 - Added Support to Force Two-Factor Auth for Clients
 +
<br />Case #1852 - Fixed Missing Language Vars in Two-Factor Activation Process
 +
<br />Case #2058 - Within Last Month filter on transactions list updated to maintain between pages
 +
<br />Case #2020 - Language update to credit log to remove manual adjustment reference
 +
<br />Case #2057 - Admin manual attempt CC captures process updated to display processing results
 +
<br />Case #2064 - Update to continuous invoice generation logic to not invoice pending items on a recurring basis
 +
<br />Case #1950 - Update to admin Remember Me cookie name to resolve issues some are experiencing with remember me not working
 +
<br />Case #2123 - Added 30 minute time expiry to login failures IP logging
 +
<br />Case #2122 - Added support for wildcards in whitelisted IPs
 +
<br />Case #2118 - Update to Ticket Close routine to check ticket is not closed already before performing actions
 +
<br />Case #2117 - Update to logic of Ticket Notification Emails to only send to the assigned admin for a flagged ticket
 +
<br />Case #2045 - Update to admin ticket interface to not show replying message to own admin
 +
<br />Case #2045 - Updated clients summary view orders link to use new clientid variable
 +
<br />Case #2113 - Added access restriction to files that generate an error when visited directly
 +
<br />Case #2045 - Updates to Client Side Arabic, Farsi and Norweigan language files
 +
<br />Case #2045 - Update for jquery dialog to use new admin js variable
 +
<br />Case #2110 - Admin Area Homepage widget adjustments to optimise load times
 +
<br />Case #2063 - Updated Admin Credit Card Info Window to not allow viewing/input when credit card storage is disabled
 +
<br />Case #2109 - Updated Disable Credit Card Storage Security Setting to auto remove all existing card data
 +
<br />Case #2108 - Changed admin post login redirect variable to avoid possible confusion with client area redirect urls
 +
<br />Case #2107 - Update to auto focus cursor to first input box in login/two-factor verification and setup/disable two-factor processes
 +
<br />Case #2067 - Updated Default template to use a template include to remove code duplication
 +
<br />Case #1961 - Update to domain validation rules when IDN domains are enabled to perform stricter checks
 +
<br />Case #2098 - Cron update to allow cancellation requests to process for free products (those with no next due date)
 +
<br />Case #2039 - Updated module change password input field names in Classic & Portal templates + added backwards compatibility
 +
<br />Case #2047 - Update to ticket flagging logic to not send email notification when assigning a ticket to yourself
 +
<br />Case #2045 - Updated clients, orders, tickets & invoices filter lists to maintain filters on mass actions
 +
<br />Case #2044 - Update to support ticket department deletion routine to remove custom fields & their values
 +
<br />Case #2045 - Updated Admin Support Ticket Flagged Email Notification Template to link directly to the flagged ticket
 +
<br />Case #2016 - Added client name field to all data export reports
 +
<br />Case #2045 - Update to export reports to display friendly payment method name
 +
<br />Case #2018 - Added Registration Date field to Domains Data Export Report + Capitalised first letter of Registrar
 +
<br />Case #2007 - Cleaned up client area product details HTML output
 +
<br />Case #2045 - Added refresh protection to the client area affiliates withdrawal request
 +
<br />Case #2019 - Update to surpress Support Ticket Flagged notification for those admins it's not enabled for
 +
 +
===Module Updates===
 +
 +
Case #2104 - Skrill Gateway: Re-branded MoneyBookers module to Skrill
 +
<br />Case #2036 - TPPWholesale Registrar: Fixes + Added support for registrar lock, private ns registration & epp code requests
 +
<br />Case #2045 - WebNIC Registrar: Updates to resolve problem with transfers & contact editing
 +
<br />Case #2045 - Plesk 10: Update to allow API packet version overriding
 +
<br />Case #2138 - CentovaCast: Update from them themselves for CentovaCast V3.x
 +
<br />Case #2137 - Project Management: Bug fix for staff log report always displaying a whole year rather than selected date range
 +
<br />Case #1941 - Project Management: Fix for status being empty for newly created projects
 +
<br />Case #2136 - Project Management: Update to replace .live discontinued jQuery functionality
 +
<br />Case #2135 - IPMirror Registrar: Version 2.1 Module Update from them themselves
 +
<br />Case #2032 - 2CheckOut: Update to language detection to work with new lowercase names
 +
<br />Case #2022 - DirectAdmin: Update to disk/bw usage stats importing to handle URL encoding being applied in DirectAdmins latest update
 +
<br />Case #2045 - PayPal Payments Pro Reference Payments: Implemented 3D Secure Functionality
 +
<br />Case #2015 - Enom: Added new extension field requirements for .es, .au, .sg, .pro & .it
 +
<br />Case #2015 - Enom: Updated to prevent WHOIS contacts being edited when disallowed by registry rules
 +
<br />Case #2015 - Enom: Updated TransferSync function to use more call effective method of retrieving transfer info
 +
<br />Case #2006 - WHOIS Server Additions: .rs, .co.rs, .org.rs, .edu.rs, .in.rs, .ae, .pw
 +
 +
===Bug Fixes===
 +
 +
Case #2141 - Fix for JavaScript Error Occurring in Product Domain Config Step of Modern & Slider Order Forms
 +
<br />Case #2140 - Correction to language variable for Bundle Items in Bundle Product Configuration
 +
<br />Case #2045 - Fix for domain renewals page in cart not listing all renewal term options
 +
<br />Case #2089 - Fix for Project Management Activity Log Pagination not working
 +
<br />Case #2133 - Fix for admin page field alignment when custom fields share same name as default fields
 +
<br />Case #1955 - Fix for javascript error in Original admin view ticket template
 +
<br />Case #2132 - Fix for Admin Initiated Currency Update displaying update results
 +
<br />Case #1930 - Fix for KB Category display articles shifting up to beside to sub-categories
 +
<br />Case #2131 - Fix for Vertical Steps Order Form Template Complete Step missing formatting
 +
<br />Case #2023 - API AddTicketReply command ignoring passed in adminusername variable
 +
<br />Case #2045 - Banned Emails Config Page always displaying an empty table
 +
<br />Case #2000 - Fix for one time fixed amount promo codes giving a zero discount on invoice under certain conditions
 +
<br />Case #2059 - Client area cancellation request cancel domain option non-functional
 +
<br />Case #2045 - Cookie unset not applying WHMCS prefix to cookie name
 +
<br />Case #2004 - Fix for client area support ticket list returning no results under certain conditions
 +
<br />Case #2070 - Fix for contact sub-account activation client side for existing contacts
 +
<br />Case #2009 - Fix for Mass Domain Enable Auto-Renew leaving auto-renew disabled & WHOIS Contact Info returning error
 +
<br />Case #2116 - Fix for CVV Number not being passed into 3D Secure process on new card entry
 +
<br />Case #2112 - Fix for contact ID setting being lost on admin ticket options save
 +
<br />Case #2024 - Fix for $invoice_html_contents email merge field displaying double line breaks in item descriptions
 +
<br />Case #2092 - Fix for product group order form template override not taking effect for all cases
 +
<br />Case #1972 - Anniversary Prorata not working correctly under certain conditions
 +
<br />Case #2061 - Admin notification emails being sent to disabled administrator users
 +
<br />Case #2031 - Cron notification email not listing service ID used in terminations list due to incorrect var
 +
<br />Case #2038 - Fix for payment gateway ordering in new invoice view
 +
<br />Case #2072 - Credit card remote token storage being called before new name/address info was saved
 +
<br />Case #2068 - Fix for predefined product price not being loaded correctly in quotes
 +
<br />Case #2068 - Update to states dropdown javascript to support tab index value being defined
 +
<br />Case #2010 - Fix for Client Area Two-Factor Backup Code Login Input Field Restriction
 +
<br />Case #2066 - Update to Default Client Area Products listing to not show dropdown menu if no menu items available
 +
<br />Case #2021 - MyIDEAL gateway module referencing incorrect path
 +
<br />Case #2005 - Product bundle display order not being honoured
 +
<br />Case #1289 - Added addon status change hook function calls to UpdateClientAddon API function
 +
<br />Case #2099 - Fix for link type custom fields saving values in an HTML link format
 +
<br />Case #2045 - Suspension Reason was not always being cleared on unsuspend
 +
<br />Case #2045 - Client stats for number of refunded/collections invoices were incorrect
 +
<br />Case #2027 - Fix for API GetClientsDetails function causing iPhone/Android App Failure
 +
<br />Case #2025 - Fix for invoice not displaying tax names under certain conditions
 +
<br />Case #2026 - Client area not displaying login incorrect message when login form submitted blank
 +
<br />Case #2046 - Update to prevent Support Ticket Flagged admin notification email sending upon unflagging
 +
<br />Case #2045 - Custom module action success language variable named incorrectly
 +
 +
=Version 5.2.3=
 +
*Release Type: '''RELEASE'''
 +
*Release Date: '''28th March 2013'''
 +
 +
===Bug Fixes===
 +
 +
Case #1999 - Added the ability to disable two-factor auth for a client from the admin profile page
 +
<br />Case #1980 - Fix for DirectAdmin Module having fatal error in certain conditions
 +
<br />Case #1997 - SagePay Tokens: Update to fix incorrect CVV number parameter name and to force skip 3D Secure on recurring transaction captures
 +
<br />Case #1980 - Project Management Addon: Update to handle no due date better and display message instead of long time days overdue
 +
<br />Case #1980 - Boleto Gateway: Update to ensure bank value is one of the supported options
 +
<br />Case #1913 - Update to custom fields validation logic in Validate class to only enforce rules on non admin only fields
 +
<br />Case #1980 - Correction to language used in Send Message & Email Marketer re clients who have opted out of marketing emails
 +
<br />Case #1980 - Added tag search option to admin area advanced search
 +
<br />Case #1988 - Update to admin invoice view to make invoice payment methods clearer with notices re no transactions, full paid by credit and/or partially paid by credit
 +
<br />Case #1839 - Update to WHOIS Servers for new response formats
 +
<br />Case #1923 - Fix for Two-Factor Auth failing to enable within the client area
 +
<br />Case #1914 - Fix in Income by Product Report for negative value on discounts
 +
<br />Case #1980 - Clients chosen language was not being loaded for addon modules client area output
 +
<br />Case #1980 - Update to Licensing Addon to auto clean up orphaned mod_licensing records where product table entry is deleted and to optimise licensing log via daily cron
 +
<br />Case #1980 - Update to Ticket Escalations page to make auto reply box bigger by default
 +
<br />Case #1978 - Update to client email sendMessage() function to override default X-Mailer PHPMailer value with company name
 +
<br />Case #1919 - Fix for client area WHOIS edit always erroring out re empty details if not using a contact + fix for child nameservers management missing variables
 +
<br />Case #1995 - Fix for date filters in Client Statement not working due to new toMySQLDate() formatting and filter not including end date
 +
<br />Case #1993 - Fix for PDF Invoices showing raw HTML in notes with multiple lines and adding double line spacing to line items
 +
<br />Case #1816 - Update to addon suspensions via cron to adhere to the parent products override suspension settings also
 +
<br />Case #1794 - Updated Auto-Termination via cron to apply to Addon Products also
 +
<br />Case #1693 - Update to Support Ticket email sending routine to use client area language setting if a guest
 +
<br />Case #1680 - Update to omit Recurring Amount line from Order Confirmation Email for One-Time products
 +
<br />Case #1620 - Custom Invoice Number not being set by EU VAT Addon Hook before invoice payment confirmation is sent if invoice is auto paid by credit
 +
<br />Case #1987 - Fix for invoice data amountpaid variable not being formatted as currency
 +
<br />Case #1939 - Fix for addon item calendar links linking to old file and with incorrect parameters
 +
<br />Case #1920 - Fix for adding calendar event mangling date/time
 +
<br />Case #1921 - Fix for Time Based Tokens displaying WHMCS company name to clients
 +
<br />Case #1903 - Fix to prevent systpl or carttpl template override parameters validating when empty
 +
<br />Case #1796 - TransIP Registrar: Major update to module for improved reliability and functionality
 +
<br />Case #1802 - VentraIP Registrar: Update to only perform remote callout to their API if module is activated
 +
<br />Case #1980 - Fix for warning error being generated by domain $params not being passed into domain modules AdminCustomButtonArray function
 +
<br />Case #1817 - Added TPP Wholesale Domain Registrar Module which replaces DistributeIT, PlanetDomain & TPPInternet
 +
<br />Case #1968 - Implemented all new methodology for admin services page ajax module commands to resolve issues with certain areas of the page not updating following actions
 +
<br />Case #1916 - Update to client summary mass update logic to only run SQL queries if there is at least one update to perform
 +
<br />Case #1980 - Fix for Admin Area On Demand Invoice Generation no longer displaying number of invoices generated
 +
<br />Case #1870 - Added trim to custom ticket statuses to avoid erroneous spaces at the beginning or end of a status
 +
<br />Case #1757 - GoCardless Gateway: Update to replace a linked button which doesn't work in IE with a standard form
 +
<br />Case #1980 - Update to logic of hidden configurable options to ensure they only show up within the admin area
 +
<br />Case #1994 - Fixed bug where modules containing underscores in their names would not be loaded
 +
<br />Case #1942 - RRPProxy Registrar Module: Updated to handle curl connection errors better
 +
<br />Case #1931 - Correction to charset encoding of Arabic language file + additional translations
 +
<br />Case #1974 - Fix for Client Two-Factor Auth Login Processing
 +
<br />Case #1992 - Integrated Enom New TLDs Addon Module as a bundled addon
 +
<br />Case #1980 - Update to admin side quotes creation page to only load line items if ID is set to prevent new quotes ever showing orphaned line item records
 +
<br />Case #1911 -  Fixed LocalAPI validation warning errors occurring in AddClient request
 +
<br />Case #1944 - Fix for fatal error occurring due to missing function in API GetAdminDetails function
 +
<br />Case #1983 - Fix for check all box not working on support tickets list when a user has assigned tickets
 +
<br />Case #1952 - Reverted change to .de whois server which was causing lookups to fail
 +
<br />Case #1982 -  Fix for ajax ticket flag/assign not sending ticket flagged notification email
 +
<br />Case #1967 - Updated the admin ticket list to remember and return to previous filters after replying to a ticket
 +
<br />Case #1909 - Fix for client area applying credit to invoice failing
 +
<br />Case #1991 - Fix for auto recalculate on save using old packageid and promoid values and therefore not re-calculating price correctly
 +
<br />Case #1989 - Fix for registrar lock not enabling due to missing input name in the Default template
 +
<br />Case #1956 - Update to MyIdeal payment gateway certificate file
 +
<br />Case #1980 - Update to 3D Secure template file iframe to increase default width for newer wider 3D Secure processes
 +
<br />Case #1986 - Fix for Client Profile checkbox settings change logging not working correctly and added No Changes notice when form submitted without any changes
 +
<br />Case #1989 - Switched positioning of Add Response and Insert Predefined Replies/KB Article buttons in new admin View Ticket interface in Blend and V4 themes
 +
<br />Case #1980 - Added quick Close and Assign to Me links to new Blend and V4 Admin Theme View Ticket Pages + removed extra div causing extended blank space in V4 version
 +
<br />Case #1980 - Updated administrator roles admin page to show disabled users as greyed out
 +
<br />Case #1980 - Fixed bug where in use admin roles were being allowed to be deleted
 +
<br />Case #1980 - Fixed assigned departments listing for disabled administrators
 +
<br />Case #1953 - Update to billable items edit/save logic to work for decimal quantities of less than 1 and zero
 +
<br />Case #1958 - Correction to last reply field label in ticket feedback template in both classic and portal templates
 +
<br />Case #1984 - Update to license expiry date formatting in admin area
 +
<br />Case #1840 - Removed duplicate client area contact navigation client area language file variable
 +
<br />Case #1845 - Replaced hardcoded text in admin support tickets list and Blend admin homepage template
 +
<br />Case #1980 - Update to support tickets admin assignment/flag list to only show active admins (plus the one a ticket is actually flagged to if not active)
 +
<br />Case #1977 - Update to MoneyBookers Gateway Module
 +
<br />Case #1976 - Update to client details change notification email to fix missing client name and admin area profile link
 +
<br />Case #1965 - Fix for department names and emails not being loaded in Tickets Management
 +
<br />Case #1962 #1963 - Added disk and bandwidth percent usage return values to getDiskUsageStats function
 +
<br />Case #1938 - Bulk Domain Transfer in Default client area template displaying registration pricing and periods not even enabled for transfers
 +
<br />Case #1883 - Update to Ticket Closure routine to only send Feedback Request Email if feedback not already provided for a ticket
 +
<br />Case #1461 - Added userid variable to AdminAreaClientSummaryPage hook point
 +
<br />Case #1904 - API AddClientNote Command inverting sticky attribute
 +
<br />Case #1940 - Userid not being populated when admin clients domains page linked to with only an id
 +
<br />Case #1943 - Fix for admin client profile page always selecting English in client language dropdown when none set due to validateLanguage validation function
 +
<br />Case #1910 - Fix for product/service modules _ClientArea function not passing returned vars to template correctly
 +
<br />Case #1928 - Fix for Ticket Tags not saving initial delete change
 +
<br />Case #1954 - Updated payment gateway descriptions to use invoice number if set rather than invoice id
 +
<br />Case #1934 - Updated Email Prompt in Expired & No Connection License Error Messages + Some Minor Text Adjustments/Improvements
 +
<br />Case #1935 - Fix for Service Class not passing vars into buildParams function correctly
 +
<br />Case #1937 - Gateway ID not being passed into token gateway modules storeremote delete function when clearing card
 +
<br />Case #1948 & #1945 - Captcha input not being shown on client area homepage when enabled + update to naming language in default template
 +
<br />Case #1932 - Fix for client status update setting not being saved in Automation Settings
 +
<br />Case #1933 - Update to Affiliate Signup Button Code in Classic & Portal Templates
 +
<br />Case #1936 - Update to make admin side transaction list filter use a like match on description field
 +
<br />Case #1935 - Fix for client area change password function not passing new password into modules because module params already loaded prior
 +
<br />Case #1905 - Fix for client area product upgrade process fatal error on checkout step order confirmation
 +
<br />Case #1929 - Default language select option was being duplicated in mass mail
 +
<br />Case #1925 - Fix for product name email template var empty in New Cancellation Request admin notification & type not being sanitized prior to email
 +
<br />Case #1907 - Fixed missing include in API UpdateTicket function causing ticket closure to fail
 +
<br />Case #1900 - Project Management Addon Editing Task Times formatting error leading to empty value
 +
<br />Case #1899 - Fix for cron not adhering to Exchange Rates & Product Pricing Update Automation Config Settings
 +
<br />Case #1902 - Fix for currency update failing
 +
<br />Case #1901 - Fix for override auto suspend setting being ignored in cron
 +
<br />Case #1908 - Fix for cancellation request reason being overwritten by type, and type always being set to End of Billing Period
 +
 +
=Version 5.2.2=
 +
*Release Type: '''RELEASE'''
 +
*Release Date: '''14th March 2013'''
 +
 +
===Bug Fixes===
 +
 +
Case #1896 - Domain registrar modules reporting function not found erroneously
 +
<br />Case #1855 - Added CSRF Token Management User Configurable Settings to General Settings > Security
 +
<br />Case #1855 - Updated Domain Checker to default to no token check
 +
<br />Case #1895 - Updates to allow for Smarty Backwards Compatability in Third Party Pages & Addons
 +
<br />Case #1890 - Fix for total balance always showing as zero
 +
<br>Case #1865 - Reverted upgrade process changes temporarily to resolve upgrade process debug output & errors
 +
<br>Case #1857  - Update client area chage of default payment method not passed into ClientEdit hook
 +
<br>Case #1861 - Update shopping cart header redirect to CC Processing page logout due to lack of token
 +
<br>Case #1893 - Update JS Class for Yubico Key Setup Process
 +
<br>Case #1868 - Quotes PDF File missing notes
 +
<br>Case #1881 - Email Registrar module displaying Function not Found on admin side due to missing GetNameservers function
 +
<br>Case #1891 - Admin side domain management function calls refactored to include $params array
 +
<br>Case #1869 - Fix Client area module template output failing when custom template is utilized
 +
<br>Case #1853 - Client area ticket search causing logout due to token check failure
 +
<br>Case #1873 - Correct SQL query to use selected server for server revenue forecast report
 +
<br>Case #1887 - Admin profile language not being stored during logout
 +
<br>Case #1871 - Update Domain Sync functions for license handling
 +
<br>Case #1876 - Invoice payment link variable not populated in invoice related email templates
 +
<br>Case #1888 - Implement new dbconnect.php file to maintain backwards compatibility with files that rely on it.
 +
<br>Case #1886 - Added handling of pattern matching for custom fields
 +
<br>Case #1882 - Product Group Re-Ordering due to SQL order keyword not escaped
 +
<br>Case #1874 - Remove second duplicate invoice button from admin invoice list
 +
<br>Case #1848 - Update to captcha variable name
 +
<br>Case #1886 - Revert smart class customizations to not error out blank page upon syntax errors
 +
<br>Case #1884 - Credit Card details cannot be cleared form the admin area
 +
<br>Case #1885 - Client Area Credit Card process attempting to validate custom fields
 +
<br>Case #1850 - Password reset failing due to email not passing to templates
 +
<br>Case #1879 - Update client area module change function not updating displayed password until page reload
 +
<br>Case #1878 - Update client area module change password function calls
 +
<br>Case #1877 - Return from registrar modules not being handled correctly when not an array
 +
<br>Case #1875 - Fix for failing domain management actions due to incorrect function call params
 +
<br>Case #1822 - Two Factor SQL Fields updates
 +
<br>Case #1856 - Fix Domain checker attempting to validate captcha input even when not enforced
 +
<br>Case #1864 - Fix PHP Fatal Error occurring when registrar module saving name server returns an error admin side
 +
<br>Case #1863 - Fix admin side filtering order list by date
 +
<br>Case #1862 - Update auto-recalc reoccurring amount and logging calculation
 +
<br>Case #1862 - Correct servers losing ID in array_merge causing selected server to be lost on Admin Client Profile
 +
<br>Case #1849 - Fix for API Allowed IPs being cleared when settings are saved
 +
<br>Case #1860 - Update PHPMailer class to address bug with email validation logic
 +
<br>Case #1822 - 5.2.0 SQL update skipped when updating from 5.1.4
 +
 +
===Module Updates===
 +
 +
Case #1858 - [ Live Chat ] - Update license checking mechanism
 +
<br>Case #1859 - [ Live Chat ] - Updated Client Side Hook file to be compatible with 5.2.x
 +
<br>Case #1889 - [ ResellerClub ] - Update module to return friendly error when API is missing
 +
 +
=Version 5.2.1=
 +
 +
*Release Type: '''RELEASE'''
 +
*Release Date: '''12th March 2013'''
 +
 +
===New Features===
 +
 +
Case #1772 - Update to log date & ip with ticket feedback submissions
 +
<br />Case #1772 - Added New Reports: Ticket Feedback Scores & Ticket Feedback Comments
 +
<br />Case #1418 - Added New Client Sources Report (aka How Did You Find Us)
 +
<br />Case #1779 - Updated VAT Number validation hook to use the SOAP service provided at VIES directly
 +
<br />Case #1746 - Re-factored invoice display logic
 +
<br />Case #1768 - Update to support ticket bounce email to add global header/footer email wrapper
 +
<br />Case #1768 - Added graceful exit handling to admin side clients domains page when no domains found for user
 +
<br />Case #1788 - Updated invoice totals to show as total+credit in all invoice lists both client & admin side
 +
<br />Case #1418 - Updated order details view to show exact invoice payment status and disable Cancel & Refund option once refunded
 +
<br />Case #1662 - Licensing mechanism updates to add further license server redundancy supportlicense server redundancy support
 +
<br />Case #1768 - Update to clients services page to immediately change status dropdown value (both main status and license status when licensing module in use) upon success result from new ajax module commands
 +
<br />Case #1795 - Update to conditionally include payment modules in cart for integrated checkout
 +
<br />Case #1255 - Implemented Two-Factor Authentication Logic & Support to Admin Login Process
 +
<br />Case #1418 - Updated transactions & gateway log query logic & added default date range filters to speed up initial page load on larger installations
 +
<br />Case #1586 - Fixed ticket tagging JS code double calls on load and incorrect saving on update with class update and function call changes
 +
<br />Case #1586 - Optimised admin support ticket page loads by separating JavaScript code into separate JS file
 +
<br />Case #1418 - Updated old wiki/docs link in all locations and added new comment format to open sample files
 +
<br />Case #1586 - Implemented Tag Cloud to admin ticket list & created ticket tag report/chart
 +
<br />Case #1803 - Redesigned admin reports interface to display reports in groups, removed legacy CSV export options, converted transactions and pdf export methods into report modules, and updated admin templates to display most used reports in reports menu dropdown
 +
<br />Case #1804 - Implemented line graph to Daily Performance Report
 +
<br />Case #1255 - Added Staff Management & Two Factor Authentication management links
 +
<br />Case #1803 - Fix for reports dropdown menu list in original and v4 templates
 +
<br />Case #1768 - Reverted TCPDF Class to previous version due to memory leak issue in latest update
 +
<br />Case #1586 - Implemented support for ticket tags with auto-complete suggestions
 +
<br />Case #1586 - Optimised & improved admin side handling of JavaScript code
 +
<br />Case #1586 - Optimised blend template loading by moving common JS into separate file
 +
<br />Case #1811 - Began re-factoring of client area
 +
<br />Case #1798 - Ported new admin view ticket styling from Blend template into V4 template
 +
<br />Case #1797 - Added checkbox to allow for splitting replies to Blend & V4 admin templates
 +
<br />Case #1815 - [API] Added Windows 8 App Addon Licensing Status return to GetAdminDetails API Function for use in upcoming Windows 8 App
 +
<br />Case #1818 - Refactored Session Handling product wide and updated to apply HTTPOnly attribute
 +
<br />Case #1819 - Refactored cookie handling and updated to apply HTTPOnly attribute by default for all cookies + updated affiliate & link cookies
 +
<br />Case #1822 - Added gridlines and minorgridlines count options support to graph class and updated head output for new admin interface array method
 +
<br />Case #1822 - Added protection against sending of blank emails to customers when email processing fails
 +
<br />Case #1824 - Added an option to enable showing client only departments to non logged in users visiting the ticket submission department selection page
 +
<br />Case #1822 - Various minor improvements and fixes to new code
 +
<br />Case #1825 - Updated get user ip function to use X-Forwarded-For value from apache request headers if available - primarily for our server setup
 +
<br />Case #1827 - Update to language of both ResellerClub and Enom modules account signup promo
 +
<br />Case #1811 - Created New Client Area & Service Classes & Re-factored frontend client side code
 +
<br />Case #1681 - Updated shopping cart to use localised status name in domain renewals
 +
<br />Case #1409 - Added extra conditional link parameters for affiliates and domain reg options and updated all client area templates to show/hide affiliate and domain reg menu options based on conditional status
 +
<br />Case #1761 - Updated domain breadcrumb links to include link back to domains details
 +
<br />Case #1823 - Moved admin homepage optimize image tag call from after closing HTML tag to bottom of the page body using AdminAreaFooterOutput hook point
 +
<br />Case #1751 - Updated ticket submission page in all client area templates to display a no departments found error msg when no support departments are configured
 +
<br />Case #1822 - Added check to 2FA time based tokens module to ensure GD image library is available before attempting to display QR image
 +
<br />Case #1830 - Updated Request Support page to provide additional help links and to provide customised message to reseller customers
 +
<br />Case #1822 - Removed sidebar workaround for Blend template in admin internal browser page since Blend template now has a sidebar
 +
<br />Case #1832 - Refactored cron process to make it possible to not only skip certain actions, but also to request only specific actions are performed
 +
<br />Case #1832 - Added CLI Output & Debugging flag options to make troubleshooting cron issues easier
 +
<br />Case #1822 - Added the ability to link to the internal browser page with a link pre-selected (?link=x)
 +
<br />Case #1806 - Update to WebsitePanel module to use hostname instead of IP for control panel links when hostname is specified
 +
<br />Case #1768 - Update to automatically grant access permissions to new functionality to default admin role groups as appropriate
 +
<br />Case #1768 - Added missing ticket notifications language file variable and additional variable for when no support departments exist
 +
<br />Case #1768 - Added the ability to specify a different department and/or priority for split ticket & updated to hide split tickets button when no replies available to split
 +
<br />Case #1822 - Added label tags to many more of the admin interface config fields/settings
 +
<br />Case #1649 - Added new escalation rules text to language file and previously missing priorities
 +
<br />Case #1822 - Added dedicated isLoggedIn function for checking for active client login
 +
<br />Case #1822 - Update to admin ticket departments config page to prevent refresh resubmits and to remove empty space displaying for admins with only a first name specified
 +
<br />Case #1822 - Updated in product links to use our go.whmcs.com link tracking for MaxMind, Enom, ResellerClub, Licensing & Project Management modules
 +
<br />Case #1822 - Added Premium badge to paid addon modules and improved/streamlined license enforcing/purchase/refreshing process
 +
<br />Case #1768 - Update for contact permissions error not working on pages using the new client area class
 +
<br />Case #1822 - Added new permissions for viewing/managing credits
 +
 +
 +
===Module Updates===
 +
 +
Case #1755 - [ResellerClub] Implemented New API Key Auth Method for Improved Security
 +
<br />Case #1822 - [ResellerCamp] Removed old ResellerCamp sync module file and replaced with domain sync cron functions
 +
<br />Case #1822 - [Enkompass] Removed x3 theme from Enkompass login links
 +
 +
 +
===Bug Fixes===
 +
 +
Case #1768 - Fix for endless redirects on shopping cart when no product groups have been setup
 +
<br />Case #1768 - Correction to image path in Original and V4 admin templates for dropdown menu popout icon
 +
<br />Case #1768 - Install process confirm password field type corrected to hide password, automatic url detection fixed to exclude step variable, and validation added to prevent install form being submitted with blank admin details
 +
<br />Case #1768 - Shopping Cart checkout step is grabbing IP directly from REMOTE_ADDR value instead of using get_user_ip function which was resulting in IP displaying incorrectly in certain scenarios
 +
<br />Case #1768 - Update to installer to create admin user under utf-8 charset like rest of app runs under
 +
<br />Case #1746 - Update to ticket department reassignment emails to obey ticket notification settings per admin
 +
<br />Case #1768 - Adds the missing closing </a> tag for Edit Product Icon image on configproducts.php
 +
<br />Case #1768 - V5.2 Upgrade was not working for users of V5.1.3 Patch Release
 +
<br />Case #1768 - Ticket Duration calculating incorrectly when ticket contains no replies & generic comments row being created even when no comments submitted
 +
<br />Case #1768 - Update to menu expand icon to be black by default for lighter menu backgrounds, and white expand icon made blend template specific only
 +
<br />Case #1791 - Provide a valid return value (the PDF object) in the createPDF method of the WHMCS_Invoice class
 +
<br />Case #1709 - Sorting My Domains list by Auto Renew wasn't working
 +
<br />Case #1763 - Missing "Success" message when domain contacts are edited
 +
<br />Case #1793 - NetworkIssueClose should run when editing network issue status to closed
 +
<br />Case #1768 - Invoice related emails not sending due to userid not being populated correctly
 +
<br />Case #1768 - Fixed admin homepage popup not hiding until next content update correctly
 +
<br />Case #1812 - Added missing login to enkompass language file variable and updated module to use it
 +
<br />Case #1418 - Corrected SQL query for calculating addons ordered in the Monthly Orders report - was previously giving total for entire year
 +
<br />Case #1808 - Correction to gid int casting which was causing cart to permanently redirect to domain registration step on initial visit
 +
<br />Case #1822 - Default template KB search not remembering search term and returning to homepage on 2nd search if empty catid parameter
 +
<br />Case #1768 - Fix to client area details validation routine giving error relating to email and uneditable profile fields
 +
<br />Case #1768 - SQL Error Occurring in specific admin email send routine + Optimization to logActivity function to only query username once per runtime
 +
<br />Case #1822 - No addons message in Default client area product details template incorrect colspan
 +
<br />Case #1768 - Suspension reason stops being recorded after & character due to missing url encoding
 +
<br />Case #1768 - Incorrect billing cycle variable for when adding a new addon & Services dropdown menu showing last rows color for active services
 +
<br />Case #1768 - Service edit form not being closed when addons are edited causing send message to fail
 +
<br />Case #1771 - Update to support ticket billing entry to auto prune any non numerical chars from amount
 +
<br />Case #1821 - Replaced hardcoded word "Go" with language variable in 2 client area & 4 order form template files
 +
<br />Case #1822 - Fixed create new project dialog not saving ticket number
 +
<br />Case #1822 - Stats query optimisations & bug fix for SQL error that was being generated every time support ticket page was accessed when admin not assigned to any departments
 +
<br />Case #1768 - Some addon downloads were not being displayed in the client area product details downloads tab
 +
<br />Case #1768 - No Totals to Display text was not being shown on empty Transactions list page
 +
<br />Case #1768 - Added support ticket notification customisation settings back to admin users My Account page
 +
<br />Case #1768 - Changed email encoding from 8bit to quoted-printable to resolve issue of erroneous characters/spaces on long lines of text
 +
<br />Case #1768 - Update to automatic ticket close logic to only send Support Ticket Auto Close Notification email template if Ticket Feedback is not enabled since it already sends it's own email on closure
 +
<br />Case #1768 - Update to invoice loadData function which was failing in some situations due to subquery for gateway name returning more than 1 row
 +
<br />Case #1833 - Update to various third party classes to remove deprecated assigning of return value by reference
 +
<br />Case #1768 - Update to init file to prevent it erroring or failing with a blank page during upload of the new version
 +
<br />Case #1768 - File download page erroring out blank when login was required due to missing var
 +
<br />Case #1768 - Include product downloads in directory setting being displayed twice in General Settings
 +
<br />Case #1773 - Update to predefined search box so that field doesn't expand past the edge of the box when no predefined replies exist + added search icon to search box as background
 +
<br />Case #1800 - Affiliates commission list showing incorrect amount if no payment made yet and has a different first payment amount
 +
<br />Case #1768 - Configurable Options Radio Button was echoing checkbox checked rather than appending to input code HTML
 +
<br />Case #1768 - Free addons generating invoice upon adding from admin side due to no exclusion on free billing cycles in specific items invoicing routine
 +
<br />Case #1768 - Addon products on services page using wrong variable for ID in edit and delete links rendering them unmanagable
 +
 +
 +
=Version 5.2.0=
  
=Version 5.3.0=
 
*Build ID: 10
 
 
*Release Type: '''BETA'''
 
*Release Type: '''BETA'''
*Release Date: '''27th September 2013'''
+
*Release Date: '''1st February 2013'''
  
 +
===New Features===
  
 +
Case #1585 – Implemented new ticket listing interface which separates flagged tickets from others
 +
<br />Case #1644 – Added friendly warning if adding payments to an already paid invoice
 +
<br />Case #1760 – Admin side WHMCS news/notification popup for release announcements & special offers
 +
<br />Case #1626 – Introduced IP Whitelisting Support from Bans
 +
<br />Case #1719 – Updated provisioning modules to return rather than echo
 +
<br />Case #1756 – Introduced dedicated product news feed
 +
<br />Case #1756 – Updated news widget to use dedicated product news feed
 +
<br />Case #1756 – Updated check for updates page to use dedicated product news feed
 +
<br />Case #1418 – Update module command buttons to use ajax to avoid page reload
 +
<br />Case #1719 – Add additional logging for admin services actions to activity log
 +
<br />Case #1505 – Allow client to enter desired new password when visiting reset verification URL
 +
<br />Case #1449 – Add logic for API addorder for invoices paid by credits
 +
<br />Case #1418 – Add pagination to spam control page
 +
<br />Case #1418 – Optimize ticket counts query for admin pages
 +
<br />Case #1418 – Language Case update for admin account page
 +
<br />Case #1418 – Redraw charts for when no chart widgets are active
 +
<br />Case #1418 – Update to Knowledge Base categories listing
 +
<br />Case #1726 – Implemented search for predefined replies management
 +
<br />Case #1725 – Added Arabic client area language file
 +
<br />Case #1573 – Improvements to tblcontacts
 +
<br />Case #1725 – Added Catalan client area language file
 +
<br />Case #1725 – Added Croatian client area language file
 +
<br />Case #1725 – Added Farsi client area language file
 +
<br />Case #1725 – Added Hungarian client area language file
 +
<br />Case #1725 – Improvements to Portugese & Portuguese Brazil client area language files
 +
<br />Case #1725 – Improvements to Spanish client area language file
 +
<br />Case #1725 – Implemented new Spanish admin language file
 +
<br />Case #1481 – Improvements to French Language file
 +
<br />Case #1612 – Added HTML stripping to default template client area homepage news snippet
 +
<br />Case #1585 – Added the ability to split support ticket replies out to new tickets
 +
<br />Case #688 – Added the ability to enter transaction ID for manual refund
 +
<br />Case #688 – Updated invoice interface to disable refund button if unavailable
 +
<br />Case #1754 – Implement code to obtain custom fields and update data based on values posted
 +
<br />Case #1728 – Created WHMCS API Helper File v1.0
 +
<br />Case #1672 – Implemented Email Marketing Unsubscribe Option for Clients
 +
<br />Case #1575 – Additional logging relating to quote management & quick links from log itself
 +
<br />Case #1651 – Added custom fields display to printable version of support tickets
 +
<br />Case #1649 – Add memory of ticket list filter selections between page loads
 +
<br />Case #1418 – Removed arbitrary credit balance edit field and added dedicated Remove Credit option
 +
<br />Case #1599 – Added LicensingAddonReissue hook
 +
<br />Case #1345 – Ability to edit security questions
 +
<br />Case #1440 – Added email template merge field for product description
 +
<br />Case #1556 – Log date/time to ticket logs when auto-closing ticket
 +
<br />Case #1536 – Allow knowledge base articles to be available when opening a new ticket for client
 +
<br />Case #1437 – Added the ability to duplicate an existing invoice and line item(s)
 +
<br />Case #1418 – Allow mass mails to be sent from services listing
 +
<br />Case #1537 – Allow company name in client sort filters for admin invoice list
 +
<br />Case #1418 – Add variable to load template dropdown ensuring that Send Multiple is carried across
 +
<br />Case #1565 – Ability to disable admin accounts
 +
<br />Case #1418 – Refactoring of system wide page structure to use new single initialisation file
 +
<br />Case #1565 – Hiding of deactivated admin users from Tickets & To-Do Lists
 +
<br />Case #1474 – Ability to disable auto-status change to inactive for clients without products/services
 +
<br />Case #1312 – Introduce duplicate bundle function
 +
<br />Case #1582 – Introduce ability to restrict subdomains when offering free subdomains
 +
<br />Case #1743 – Admin ticket notification system now works independently from department assignments
 +
<br />Case #1418 – Introduced credit card info full clear function for admin usage for local & remote storage
 +
<br />Case #1449 – Introduced API function AffiliateActivate
 +
<br />Case #1449 – Introduced API function GetAffiliates
 +
<br />Case #1449 – Introduced API function GetCancelledPackages
 +
<br />Case #1449 – Updated API function AddOrder
 +
<br />Case #1449 – Updated API function AddProduct
 +
<br />Case #1449 – Updated API function GetInvoices
 +
<br />Case #1449 – Updated API function UpdateClient
 +
<br />Case #1449 – Updated API function UpdateProject
 +
<br />Case #1465 – Introduce autolinking of urls to client & ticket notes
 +
<br />Case #1418 – Introduce permission check to admin invoicing within ticket
 +
<br />Case #1752 – Introduce new global validation logic & implemented throughout
 +
<br />Case #1398 – Added AfterFraudCheck Action Hook
  
==IMPROVEMENTS==
+
===Module Updates===
<br />Case 2514 - Implemented Ability to filter Transactions CSV Export by Date Range
+
 
<br />Case 2561 - Implemented Category name to available template fields in KnowledgeBase Category Viewing page
+
Case #1742 – [ VentraIP ] – Commit updates to latest version v1.5.2
<br />Case 2570 - Implemented Support for marketing email opt-out to bulk send message requests
+
<br />Case #1212 – [ 2CheckOut ] – Updated transaction callbacks logging for refund processing on reoccurring payments
<br />Case 2571 - Implemented Unsubscribe Confirmation Email Template to be sent on unsubscribe
+
<br />Case #1669 – [ WeNIC ] – Add handling for .asia & .tw specific field requirements
<br />Case 2583 - Implemented WHOIS server definition updates
+
<br />Case #1418 – [ BizCN ] – UTF-Bytecode fix for handling IDN domains
<br />Case 2591 - Implemented Automatic line breaking to API SendEmail Custom Messages
+
<br />Case #1602 – [ cPanel ] – Not retaining dedicated IP on package change
<br />Case 2595 - Implemented Dev License Banner to Client & Admin Area End User Outputs
+
<br />Case #1418 – [ Amazon Simple Pay ] – Updated to allow proper refund processing
<br />Case 2635 - Implemented Display of log message to Project Management Recent Activity Homepage Widget
+
<br />Case #1698 – [ IPPay ] – Update for new transaction processing URLs
<br />Case 2636 - Implemented Support for Apply Once only promos in multiple quantity orders
+
<br />Case #1686 – [ FreeRadius ] – Introduced Free Radius module
<br />Case 2650 - Implemented WHOIS servers for .id domains
+
<br />Case #1687 – [ Ahsay Backups ] – Introduced Ahsay Backups Module
<br />Case 2658 - Implemented Date input validation to admin clients services page
+
<br />Case #1694 – [ Helm ] – Updated class to resolve login button in clientarea
<br />Case 2681 - Implemented Itemlimit variable to client area template vars
+
<br />Case #1692 – [ CCAvenue ] – Allow display notice at Invoice Payment to client informing a manual review is required
<br />Case 2683 - Implemented AfterModuleChangePassword hook to client area module pw change
+
<br />Case #1470 – [ VPS.Net ] – Added missing images folder
<br />Case 2704 - Implemented InvoiceSplit hook point to invoice split process
+
<br />Case #1594 – [ SecureTrading ] – Update to latest version
<br />Case 2698 - Implemented Improvements to domain input handling to auto clean http -// and www.
+
<br />Case #1593 – [ ResellerClub SSL Module ] – Strip URL prefixing from domains when generating approval emails
<br />Case 2747 - Implemented Field order in Downloads Admin for more natural flow
+
<br />Case #1600 – [ Stargate ] – Update domain sync functionality
<br />Case 3147 - Implemented OverrideOrderNumberGeneration hook to allow overriding of the default order number generation logic
+
<br />Case #1600 – [ NetEarthOne ] – Update domain sync functionality
<br />Case 3281 - Implemented Improved validation of input parameters in addon add to cart action
+
<br />Case #1418 – [ Plesk ] – Packet version loaded from configuration file
<br />Case 3226 - Implemented Include Live Chat Integration Code to Default Template by default
+
<br />Case #1690 – [ ResellerClub ] – Improve handling for >64 Character Address’
<br />Case 2784 - Implemented Use of hidden payment gateways in admin order form
+
<br />Case #1460 – [ ResellerClub] – Transfer function not defining the full state value
<br />Case 2786 - Implemented Improved validation of admin general config settings
 
<br />Case 2629 - Implemented Password Reset Validation Email Template Default Text Updated
 
<br />Case 2685 - Implemented Improved handling of open invoices in admin upgrade order process
 
<br />Case 2597 - Implemented JSON check during installation process
 
<br />Case 3294 - Implemented Perform GD requirement check in installer
 
<br />Case 2809 - Implemented UX Improvements to Product Pricing Configuration
 
<br />Case 2526 - Implemented Change for 2FA Backup Code Generation
 
<br />Case 2680 - Implemented Update to include email sending in user activity logs
 
<br />Case 3075 - Implemented Update to ECB Exchange Rates Data Feed URL
 
<br />Case 2513 - Implemented Update to Russian Admin Language File
 
<br />Case 2588 - Implemented Update to Hungarian Language File
 
<br />Case 2589 - Implemented Update to Dutch Client Area Language File
 
<br />Case 2745 - Implemented Update to French and Norwegian Client Area Language File
 
<br />Case 2746 - Implemented Update to French Admin Area Language File
 
<br />Case 2715 - Implemented Update to Russian and Ukranian Client Area Language File
 
<br />Case 2631 - Implemented Update to Spanish Client Area Language File
 
<br />Case 2774 - Implemented Update WHMCS EULA
 
  
==General==
 
  Case 2503 - Resolved Client information not always being passed to gateways
 
<br />Case 2508 - Resolved TLD Specific Fields not always loading on admin order form
 
<br />Case 2510 - Resolved Deleting service doesn't reduce affiliate signups count
 
<br />Case 2522 - Resolved Typo in Bulk Pricing Updater Addon Description
 
<br />Case 2527 - Resolved Delete button on order details view not working
 
<br />Case 2529 - Resolved Pending Orders shortcut in Original admin template
 
<br />Case 2531 - Resolved Confirmation message not being displayed on server add
 
<br />Case 2534 - Resolved Update to default invoice overdue email templates to remove login
 
<br />Case 2548 - Resolved Stopped ticket list display order reversing on refresh after new sort
 
<br />Case 2549 - Resolved JS Error on Direct PID link in Slider Cart Template
 
<br />Case 2552 - Resolved Logout occurring when changing item limit in support
 
<br />Case 2553 - Resolved Cron report duplicated in some conditions
 
<br />Case 2555 - Resolved Select all checkboxes not working in manage orders & invoices
 
<br />Case 2559 - Resolved Stop allowed ticket attachment file types stretching
 
<br />Case 2560 - Resolved System Cleanup Activity Log & Email Log Clearance
 
<br />Case 2562 - Resolved Pre-Sales Contact Form update to set Reply-To to Customers Details
 
<br />Case 2566 - Resolved Admin clients list displaying multiple instances of the same
 
<br />Case 2581 - Resolved Custom field Regex validation being enforced even when field set as optional
 
<br />Case 2587 - Resolved Date picker being lost upon module commands invocation
 
<br />Case 2594 - Resolved Calendar Homepage Widget To-Do Items Inconsistency
 
<br />Case 2600 - Resolved Update to Entity Encode Ampersands in Frontend Language Switcher HTML
 
<br />Case 2601 - Resolved Cancellation requests failing in some scenarios
 
<br />Case 2602 - Resolved Update to prevent templates per product group with ajax cart
 
<br />Case 2605 - Resolved Escalation Rule Notification Email not using latest reply text
 
<br />Case 2607 - Resolved CC capture process not attempting all due invoices by default
 
<br />Case 2611 - Resolved Admin Add New Addon link not working in certain conditions
 
<br />Case 2612 - Resolved Selected gateway not being displayed on invoice if disabled in product group
 
<br />Case 2617 - Resolved Admin duplicate invoice function not duplicating line items
 
<br />Case 2617 - Resolved Duplicate invoice activity log entry not appearing in client log when done from main invoices list
 
<br />Case 2627 - Resolved Invoices pay all link redirected to invoice list when mass pay is disabled
 
<br />Case 2632 - Resolved Improved handing of HTML in payment gateway display names
 
<br />Case 2645 - Resolved Removed empty whitespace padding on admin open new ticket page if no signature defined
 
<br />Case 2645 - Resolved Ticket Department Change Notification sending to members of the previous department
 
<br />Case 2652 - Resolved IP Ban Disable Option Non-Functional
 
<br />Case 2670 - Resolved Update to hide system overview banner if not enabled for admin role
 
<br />Case 2673 - Resolved Erroneous config option db entries being created on cart checkout in certain conditions
 
<br />Case 2674 - Resolved Order Process Fraud Check Running Post Auto Activation
 
<br />Case 2682 - Resolved Currency formats with commas not escaped for CSV export
 
<br />Case 2689 - Resolved State field being skipped via tabbing in slider template
 
<br />Case 2702 - Resolved Banned subdomain prefixes displaying empty error message in some order form templates
 
<br />Case 2713 - Resolved Update to Billable Items Mass Action Access Control
 
<br />Case 2714 - Resolved Admin notification from default sender when ticket flagged
 
<br />Case 2720 - Resolved Allow order form login when Two-Factor Auth is enabled
 
<br />Case 2721 - Resolved Handling of no activity on initial install of Project Management Addon
 
<br />Case 2722 - Resolved Reply & close ticket action not sending ticket feedback request
 
<br />Case 2725 - Resolved Extra unnecessary padding being added to plain text emails and ensure ampersands always display correctly
 
<br />Case 2732 - Resolved Mass action buttons not working in admin ticket list
 
<br />Case 2736 - Resolved Ticket Options Save Logging Custom Fields Edits
 
<br />Case 2751 - Resolved Admin user creation empty error message when username taken
 
<br />Case 2752 - Resolved Added back link to installer upon invalid DB credentials
 
<br />Case 2757 - Resolved Allow deletion of addons while still preserving name
 
<br />Case 2772 - Resolved Admin invoice mass mark paid action generating sql error
 
<br />Case 2781 - Resolved Optimize row count retrieval for email message log
 
<br />Case 2803 - Resolved Update to Shopping Cart starting price calculations to ignore hidden config options
 
<br />Case 2811 - Resolved Activity Logging not working under strict mode
 
<br />Case 2818 - Resolved pageheader.tpl include removed from clientareasecurity.tpl portal theme.
 
<br />Case 2819 - Resolved clientareachangesq.tpl removed from classic and portal themes.
 
<br />Case 2891 - Resolved Searching an invalid TLD now returns the proper error message.
 
<br />Case 2892 - Resolved Ordering As Logged In Client w/Modern Theme fails to display the invoice, hangs indef.
 
<br />Case 2942 - Resolved HTML Entities not decoded for email subject
 
<br />Case 2948 - Resolved Honor Mass Mail opt-out for all email delivery batches
 
<br />Case 2977 - Resolved Calendar Entries Missing Addon Name for Predefined Addons (5.2.7 forwardport)
 
<br />Case 2978 - Resolved Improper logging of admin login IP
 
<br />Case 3006 - Resolved Setting ?systpl=xxx can change the template dropdown in General Settings
 
<br />Case 3074 - Resolved Invoice Number Filter not working in Admin Clients Invoices Page
 
<br />Case 3092 - Resolved Mass Mail Marketing Opt-Out not being honored in certain conditions
 
<br />Case 3093 - Resolved Mass Mail failing to find recipients
 
<br />Case 3107 - Resolved Fixes domain validation bugs.
 
<br />Case 3108 - Resolved Use a valid mysql resource in error logging.
 
<br />Case 3110 - Resolved Fix typo in class name.
 
<br />Case 3114 - Resolved DomainChecker incorrectly reports Available for domain sld ending in '2'
 
<br />Case 3216 - Resolved Added CSRF Protection to Admin General Settings Ajax Calls
 
<br />Case 3224 - Resolved Potential Memory Leak in SQL Error Logging
 
<br />Case 3237 - Resolved Fixed the product pricing fields so they always show up/disappear.
 
<br />Case 3246 - Resolved Improved Latest Version Checking Logic
 
<br />Case 3254 - Resolved Enforce IP ban on logins that lack username or password
 
<br />Case 3257 - Resolved IP address should render within warning box of orderform
 
<br />Case 3258 - Resolved Update themes to display invalid user-provided TLD in domainchecker
 
<br />Case 3276 - Resolved Custom Validation Hooks return handling in Clients Profile
 
<br />Case 3275 - Resolved Application instance & hooks must be available prior to activity logging
 
<br />Case 3280 - Resolved Remove warnings & bad input combos for invalid product item & nameserver references (Courtesy VladC)
 
<br />Case 3292 - Resolved Calendar Entry Type Checkboxes not retaining selection - Resolved Port Case 2975
 
<br />Case 2788 - Resolved Shoutcast Welcome email created by installer, but can't be selected.
 
<br />Case 2835 - Resolved Refunds failing with manual error if gateway doesn't match invoice
 
  
==API==
+
===Bug Fixes===
<br />Case 2872 - Resolved Standardize ClientDetailsValidation hook input/output.
 
<br />Case 2718 - Resolved API - Resolved AddClient function not saving credit card details
 
<br />Case 2791 - Resolved API sendemail.php numeric id validation.
 
<br />Case 3057 - Resolved AddClient API Response including HTML upon validation error
 
<br />Case 2657 - Resolved AddBannedIP API call failing to add requested IP
 
<br />Case 2756 - Resolved Banned domains not being checked correctly using AddClient API
 
<br />Case 2735 - Resolved Domain WHOIS API returning available on invalid domain
 
  
==MODULES==
+
Case #441 – License check code to now show branding for branding free live chat
<br />Case 2537 - [Nominet] Schema Withdrawal
+
<br />Case #1396 – Numerous WHOIS Server definition updates
<br />Case 2884 - [Nominet] Resolved Registrant Name & Type not being set correctly
+
<br />Case #1418 – Ticket Masks containing “%i” failed to generate
<br />Case 2941 - [Nominet] Fixed bug with Company ID Number being ignored
+
<br />Case #1746 – Refactor class design for future expansion & optimization
<br />Case 2538 - [2CheckOut] Added conversion of foreign currencies to fee value of transactions
+
<br />Case #1623 – Improve duplicate TLD Routine to automatically at ‘.’ prefix if missing
<br />Case 2556 - [2CheckOut] Fixed recurring pass off failing with access error
+
<br />Case #1722 – Update cart.php to not redirect when confdomains exists
<br />Case 2546 - [Skrill] Update to prevent payment success confirmation always showing on return even if payment failed
+
<br />Case #1418 – Updated API variables to allow separation of send to registrar and autosetup
<br />Case 2563 - [BluePay] Update to Refund Processing to Specify Payment Type
+
<br />Case #1418 – Update API Variables in AcceptOrder function
<br />Case 2564 - [DirectAdmin] Improved error detection for Suspend/Unsuspend Actions
+
<br />Case #1418 – Clean up second renewals SQL Query
<br />Case 3256 - [EU Vat Addon] Improved handling when SOAP not available in PHP
+
<br />Case #1449 – Clean up if statements in updateclientdomain
<br />Case 3024 - [EU VAT Addon] Improved error handling on checkout
+
<br />Case #1583 – Prevent gateway from being disabled if only 1 is enabled
<br />Case 2838 - [EU VAT Addon] Added newly joined Finland to supported EU countries
+
<br />Case #1540 – Split permissions for Manage Predefined Replies
<br />Case 3192 - [Twitter] Updated to use the TransientData class
+
<br />Case #1577 – Update CVV Fields
<br />Case 2776 - [Twitter] social module created to replace v1 API.
+
<br />Case #1433 – Addclientnote & Addticketnote API function not parsing carriage returns
<br />Case 2808 - [SagePay Tokens] Updated VPSProtocol to 3.00, added CustomerEmail to passed fields, and added handling for Visa Debit card type
+
<br />Case #1449 – Improve autorecalc section to include promotion codes that were passed in update
<br />Case 2789 - [Authorize.net CIM] update to handle long addresses and special chars.
+
<br />Case #1590 – Added autoauthkey to configuration.php when key is updated
<br />Case 2874 - [Authorize.net] Echeck Recurring Capture Invoice ID Misref
+
<br />Case #1584 – Mail in Payment option now redirects straight to invoice
<br />Case 2783 - [PayPal] JPY currencies now round correctly.
+
<br />Case #1553 – Printable Version within Quotes unavailable by default
<br />Case 2743 - [Enom New TLDs Addon] Improved Logging Update
+
<br />Case #1684 – Update function to use existing next due date for incrementing nextinvoicedate
<br />Case 2724 - [ResellerClub] Update to pass null Billing Contact for .NL Registrations
+
<br />Case #1388 – Check if admin has “Add “Transaction” permission when applying payments to invoices
<br />Case 2675 - [Heart Internet Registrar] Save Nameservers generating unintended output
+
<br />Case #1418 – Remove hard coded text in KB Search box default template
<br />Case 2638 - [SECPay] Resolved capture attempts failing
+
<br />Case #1542 – Upgrade/Downgrade section in client area shows free domain is offered – misleading
<br />Case 2593 - [TransIP] Module file include handling improvements
+
<br />Case #1585 – Improve split ticket functions
<br />Case 2585 - [Register.com] Improved handling of EPP codes with special characters
+
<br />Case #1474 – Expand logic around auto-status change for clients
<br />Case 2656 - [Payza] Resolved payments being recorded without gateway association
+
<br />Case #1418 – Introduce error message to all error checks as not all contain “response_text”
<br />Case 2604 - [Optimal Payments] Update to make card types case insensitive
+
<br />Case #1431 – Add logging of changed fields to activity log
<br />Case 2664 - [Liberty Reserve] Removed now defunct Liberty Reserve gateway module
+
<br />Case #1677 – Prevent admins deleting themselves
 +
<br />Case #1743 – Updated Smarty class to latest 2.x release
 +
<br />Case #1743 – Updated PHPMailer class to latest stable v5.2.2
 +
<br />Case #1418 – Added custom fields array to clients detail
 +
<br />Case #1555 – Complete refactor of language handling system
 +
<br />Case #1418 – Implement nl2br formatting to admin client notes
 +
<br />Case #1577 – Add CVV input field for Admin & Client side cart update forms
 +
<br />Case #1673 – Prevent unknown editing of client side card data
 +
<br />Case #1431 – Add logging on ticket boxes with status as Enabled or Disabled
 +
<br />Case #1418 – Correct language for billable items invoice confirmation dialog
 +
<br />Case #1431 – Improve logic for logging change fields
 +
<br />Case #1609 – Bulk domain check may result in unformatted return
 +
<br />Case #1418 – Password input field type to hide input in Web 2.0 Cart login template
 +
<br />Case #1549 – Added ‘empty’ to configurableoptions variable in recalcRecurringProductProce function
 +
<br />Case #1433 – Carriage returns not parsed by client notes
 +
<br />Case #1538 – Unable to filter tickets in client area
 +
<br />Case #1532 – Server revenue forecast includes inactive servers
 +
<br />Case #1086 – Ajax cart domain addons not refreshing cart summary
 +
<br />Case #1418 – Complete button changed to please wait upon click
 +
<br />Case #1294 – Message preview stopping at ‘&’ character
 +
<br />Case #1485 – Re-introduce TinyMCE rich text editor for admin area text fields that support HTML input
 +
<br />Case #1418 – Introduce delete transaction permission check to admin invoice transaction deletion
 +
<br />Case #1569 – Billing Cycle & Configurable options not updating price summary
 +
<br />Case #1535 – Ensure that multiple partial refunds don’t exceed the original transaction fee amount
 +
<br />Case #1644 – Allow admin to add payments to a paid invoice
 +
<br />Case #1645 – Next Due Date not being emptied when changing from reoccurring to free in products & product addons
 +
<br />Case #1626 – Refactor Whitelisting IP logic to remove unnecessary queries and improve logic
 +
<br />Case #1418 – Reintroduce SMTP Debug flag for configuration.php
 +
<br />Case #1672 – Reintroduce portral template files
 +
<br />Case #1626 – Whitelisted IP address shown never be banned
 +
<br />Case #1754 – Revert naming of AddtoLog function to addTicketLog
 +
<br />Case #1701 – Remove duplicate pwstrength JS code from clientregister on default theme
 +
<br />Case #1418 – Correct language whitespace output
 +
<br />Case #1675 – Adjust sales tax liability report to tax + credit = total
 +
<br />Case #1675 – Switch Tax & Credits column for more human friendly readability
 +
<br />Case #1565 – Fix SQL errors caused by no department set for admin
 +
<br />Case #1418 – Update variable “type” to “listtype” to avoid conflict
 +
<br />Case #1702 – Update income by products report to work with currency selector
 +
<br />Case #1702 – Resolve units sold column always empty
 +
<br />Case #1730 – Remove duplicate Cleint ID field in admin lang file
 +
<br />Case #1412 – Domain Renewals Grace Period & Minimums loading from config file
 +
<br />Case #1417 – Correct Admin invoice number search
 +
<br />Case #1479 – Client area Tasks ‘Due In’ corrected
 +
<br />Case #1419 – Update MySQL list tables function
 +
<br />Case #1418 – Mass domain management auto renew improvements
 +
<br />Case #1191 – Backups failing due to database name unavailable
 +
<br />Case #1418 – Message preview button returns no results with rich text editor
 +
<br />Case #1418 – Update dbconnect.php for API Access & Disable Vars
 +
<br />Case #1418 – Fix new admin session vars for mobile login
 +
<br />Case #1425 – Lanugage change in client area not being retained between page loads
 +
<br />Case #1418 – Currency ID has been updated to show currency code
 +
<br />Case #1430 – Resolve CSV download error when reports contain a graph or geo-chart
 +
<br />Case #1429 – Resolve load problems with graph or geo-chart data when viewing print report version
 +
<br />Case #1435 – Update important field to sticky on orders detail view for client notes
 +
<br />Case #1418 – Knowledge base searches fail with syntax error when no term is specified
 +
<br />Case #1418 – Cron user status switch generating MySQL error due to incorrect function call
 +
<br />Case #1448 – Resolved support ticket edits when attachments are present
 +
<br />Case #1454 – Introduced human readable error message for graphs when JSON is not available in PHP
 +
<br />Case #1301 – Resolved Slider Order Form only accepting lowercase domain input
 +
<br />Case #1439 – If due date is 0000-00-00 thens suppress auto suspend/terminate
 +
<br />Case #1428 – Resolved Support Ticket overview widget JS error when a department contains a special character
 +
<br />Case #1747 – Custom order status removing provisioning/welcome email option from order details page
 +
<br />Case #1682 – Annual income reporting adding previous years fees & amount out instead of sutracting
 +
<br />Case #1740 – changeOrderStatus() now savesPending Transfer correctly for Domains with type=Transfer
 +
<br />Case #1446 – Support Ticket Ratings Review Report update to apply message formatting to ticket replies
 +
<br />Case #1727 – Paid invoice process attempting to combat multiple invoices being assigned the same number
 +
<br />Case #1418 – Add payment button in admin invoice page not greyed out when disabled
 +
<br />Case #1723 – Require admin addon modules to validate module name
 +
<br />Case #1418 – Cart should pre-select stored country when passed via session
 +
<br />Case #1707 – Implement smarty variables to allow template mods to query more info on affiliate referrals
 +
<br />Case #1418 – Better handling of invalid affiliate ID passed into manage affiliates page
 +
<br />Case #1418 – Reimplement TinyMCE Rich Text Editor for network issues
 +
<br />Case #1746 – Ensure gateway module callback files reference correct include path
 +
<br />Case #1439 – Reverted unneeded query change for optimization
 +
<br />Case #1683 – Resolved TinyMCE converting URLs
 +
<br />Case #1558 – Password password checking not working on comparison template
 +
<br />Case #1552 – Updated POP Import field names to be more conscience
 +
<br />Case #1666 – .DE Domains registration showing text field rather than yes|no ticket box
 +
<br />Case #1638 – Client notes area does expand correctly caused by additional divs end
 +
<br />Case #1423 – Admin support ticket widget not handling zero ticket count present on new installs correctly
 +
<br />Case #1566 – Update billable items logic to automatically recalculate amount when qty/hrs is updated
 +
<br />Case #1739 – Require ID presence in URL when downloading PDF
 +
<br />Case #1449 – addcancelrequest to return error if a cancellation requests exists
 +
<br />Case #1444 – Add Local API Support for custom provisioning module functions
 +
<br />Case #441 – Prevent conflicts for branding removal
 +
<br />Case #1731 – Show enabled WHMCS addons on licensing info page
 +
<br />Case #1418 – Added VentraIP Registrar Logo
 +
<br />Case #1726 – Update if statement to not show predefines on root category
 +
<br />Case #1418 – Add missing global declaration for ICONV disable
 +
<br />Case #1418 – Add backwards compatable getValidLanguages function
 +
<br />Case #1418 – Update admin knowledge base config page to use getlanguages function
 +
<br />Case #1697 – Ensure email address’ cannot be empty
 +
<br />Case #1697 – Ensure sub-accounts do not retain the same address
 +
<br />Case #1474 – Invalid select query in cron during client status change
 +
<br />Case #1646 – Validate invoice ID exists when passing into PDF download link
 +
<br />Case #1657 – _GetEmailForwarding error message is treaded as forwarding record when listing forwarders
 +
<br />Case #1641 – Convert config servers page to use language file variables
 +
<br />Case #1601 – Ticket list sorting by department ID instead of name
 +
<br />Case #1420 – Remove hardcoded text in template files
 +
<br />Case #1463 – New customers report export generates invalid data
 +
<br />Case #1621 – Typo in English language file
 +
<br />Case #1469 – Curacao missing from countries list
 +
<br />Case #1639 – Admin ticket log should have URLs converted to links
 +
<br />Case #1575 – Modifying Quotes does not log to the Activity Log
 +
<br />Case #1653 – _GetDNS error message is treated as DNS Record when listing dnsrecords
 +
<br />Case #1650 – View quotes failing ifTOS accept not enabled
 +
<br />Case #1485 – TinyMCE Editor not loading for announcements
 +
<br />Case #1643 – Enkompass using archaic API for IPs
 +
<br />Case #1642 – Affiliate payments on renewal generated regardless if one time option is select
 +
<br />Case #1557 – Corrected typo “occured” throughout.
 +
<br />Case #1591 – Logging in as client resets admin session token
 +
<br />Case #1589 – CSS scaling issues in 5.1 v4 template
 +
<br />Case #1588 – Associated invoices displaying unrelated invoices when an associated ticket is not found in project view
 +
<br />Case #1581 – Deleting invoice doesn’t pass through vars
 +
<br />Case #1415 – Affiliates template extra TD Colspan
 +
<br />Case #1432 – API Cancelation request calling undefined function if canceled service is on joint invoice
 +
<br />Case #1597 – Fees returned from gateway modules not handled correctly
 +
<br />Case #1598 – Prevent addons from doubling invoices when invoice selected items is used in the client summary
 +
<br />Case #1418 – Prevent warning error from genTicketMask when creating new tickets
 +
<br />Case #1418 – Resolve failure to locate KnowledgeBase suggestions when no existing k articles are passed
 +
<br />Case #1418 – Updated IP not being set in core class
 +
<br />Case #1418 – Improve session handling for cart.tpl override
 +
<br />Case #1418 – Improve Product config listing page to reset product group order values for consistency
 +
<br />Case #1563 – Update usage stats in ServerUsageUpdate function
 +
<br />Case #1755 – Improve EU Transfer process to always use the client account details
 +
<br />Case #1676 – [Security] Google Checkout update
 +
<br />Case #1631 – [Security] Improve logic of widgets
 +
<br />Case #1731 – [Security] Improve logic of license info page
 +
<br />Case #1759 – [Security] Improve logic of carts
 +
<br />Case #1631 – [Security] Improve logic of widgets
 +
</noinclude>

Latest revision as of 15:07, 19 November 2014

« Back to Changelogs

Version 5.2.17

  • Release Type: SECURITY RELEASE
  • Release Date: 25th March 2014

Security

Case #3982 - Details to be released at a later date
Case #4057 - Details to be released at a later date
Case #4161 - Details to be released at a later date
Case #4172 - Details to be released at a later date
Case #4175 - Details to be released at a later date
Case #4180 - Details to be released at a later date
Case #4186 - Details to be released at a later date
Case #4187 - Details to be released at a later date
Case #4194 - Details to be released at a later date
Case #4202 - Details to be released at a later date
Case #4256 - Details to be released at a later date
Case #4311 - Details to be released at a later date

Bug Fixes

Case #2622 - Use localized date format for domain renewal reminders
Case #3375 - Improved Redundancy for License Verification
Case #3977 - Allows promo code recurring cycles to be edited after checkbox is ticked
Case #3333 - Delete custom field entries for a product when the order is deleted
Case #4113 - Add extended TLD attributes for new .UK TLD

Version 5.2.16

  • Release Type: SECURITY RELEASE
  • Release Date: 21st January 2014

Maintenance

Case #2557 - 2Checkout Gateway: Update to currency variable
Case #2623 - Fix calculations of promotions when more than 50% off
Case #2739 - Add TLD Specific Fields required for .CN domain registrations
Case #2874 - Authorize.net Echeck: Fix capture function behaving incorrectly
Case #3019 - Refine internal criteria for bulk domain lookup
Case #3030 - Resolve SQL error in Income by Product Report
Case #3086 - Nominet Registrar: Update to Contact Registration Logic for Individuals
Case #3116 - Required Custom Fields not validating correctly when using API
Case #3360 - Resolved issue where one time promotions could be treated as recurring
Case #3360 - Disable Recur For input box when Recurring is disabled
Case #3361 - Fix time limited recurring promotions calculating incorrectly
Case #3388 - Fix Invalid Token Error when applying credit in Original and Portal Client Templates
Case #3414 - Payflow Pro: Update to store PayFlow Reference in PayFlow Mode
Case #3617 - Do not CC password reset emails to sub-accounts
Case #3740 - ProtX VSP Form: Pass correct callback values to debug log
Case #3801 - Resolved PDF Quotes missing clients name/address
Case #3802 - Make a quantity of zero remove item from the cart
Case #3809 - Regular Expression Custom Field Validation failing on single quotes
Case #3811 - Resolve Invalid Token error when deleting recurring calendar entry
Case #3814 - Improvements to IPv6 detection and validation logic
Case #3862 - NameCheap Registrar: Fix incorrect function name call
Case #3864 - Authorize.net Echeck: Fix storage of bank account details
Case #3893 - Enom SSL Module: Fix Province is Required Error Message

Security

Case #3637 - Improve Access Controls in Project Management Addon
Case #3782 - Improve Access Controls in Tickets
Case #3783 - Improve Access Controls in Invoices
Case #3784 - Resolve Admin Area SQL Injection Vulnerability
Case #3839 - Resolve Potential XSS Vulnerability
Case #3841 - Resolve Potential XSS Vulnerability
Case #3842 - Resolve Potential XSS Vulnerability
Case #3843 - Resolve Potential XSS Vulnerability
Case #3846 - Improve Access Controls in Tickets
Case #3922 - PayPal Express Checkout Improve Validation
Case #3931 - Potential header injection via whois lookups
Case #3932 - Improve sanitization for whois query

Version 5.2.15

  • Release Type: SECURITY RELEASE
  • Release Date: 23rd December 2013

Security

Case #3785 - SQL Injection via Admin Credit Routines

Bug Fixes

Case #3706 - Some graphs failing after recent Google Graph API Update
Case #3711 - CSV Export content should not contain HTML entities
Case #3726 - PDF Line Items failing to output some specific characters
Case #3727 - Admin password reset process failing to send new password email
Case #3738 - Sub-account password field's default text must be removed on focus/click events

Version 5.2.14

  • Release Type: MAINTENANCE RELEASE
  • Release Date: 27th November 2013

Bug Fixes

Case #2555 - 5.3 Backport: Select all checkboxes not working in manage orders & invoices
Case #2941 - 5.3 Backport: Company ID Number being ignored via Nominet
Case #3075 - 5.3 Backport: Update to ECB Exchange Rates Data Feed URL
Case #3482 - Currency type must be calculated prior to feed aggregation
Case #3662 - Improved the emptying of template cache
Case #3663 - Client area additional currency selection not working
Case #3664 - Alingment correction for intelli-search in V4 admin theme
Case #3665 - Improved HTML quoting to handle all character sets in admin logs
Case #3666 - Added required token to Block Sender Action in Admin Ticket View
Case #3670 - Update to WHOIS Lookup Links to use form submission for lookups
Case #3671 - Admin New Ticket Insert Predefined Reply lacking required token
Case #3672 - Add Predefined Product link in Quotes leads to invalid token error
Case #3674 - Updated plain-text email generation to strip entity encoding
Case #3676 - Remove debug die statement from Admin Ticket Merge via Options Tab
Case #3677 - Fix PDF batch export for more than one user
Case #3678 - Project Management: Should redirect back to project after attaching file
Case #3680 - Required Token added to Open New Ticket Client Search function
Case #3685 - PayPal Callback failing under certain conditions
Case #3686 - Redirect with User ID when deleting email from client profile
Case #3687 - cPanel and WHM Import Tool filter buttons failing
Case #3688 - Remove reliance on the escapeshellcmd() function
Case #3696 - Resolved Import Override from Admin Ticket Mail Import Log
Case #3697 - Email message sender shows quotes encoded
Case #3698 - Emails sent to Admin have erroneous entity characters for some fields
Case #3690 - Ensure all values are free of entities in PDFs

Version 5.2.13

  • Release Type: TARGETED RELEASE
  • Release Date: 21th November 2013

General

Case #2989 - Downgrade orders failing when no payment due
Case #3325 - Credit card processing fails with weekly retries enabled
Case #3467 - API GetClientsAddons fails on certain conditions
Case #3471 - Unable to download ticket attachments from first ticket message
Case #3515 - Add tilde to valid character list of redirect path
Case #3528 - Updated Smarty to latest 2.6.28 release
Case #3545 - Project Management settings redirect on save fails
Case #3482 - Improve default currency logic
Case #3641 - Allow MaxMind Service Type selection

Security

Case #3447 -- Redacted --
Case #3441 -- Redacted --
Case #3459 -- Redacted --
Case #3476 -- Redacted --
Case #3478 -- Redacted --
Case #3489 -- Redacted --
Case #3492 - Remove dependency on unserialize() for admin table sorting
Case #3495 -- Redacted --
Case #3530 -- Redacted --
Case #3554 -- Redacted --
Case #3580 -- Redacted --
Case #3581 -- Redacted --
Case #3584 -- Redacted --
Case #3585 -- Redacted --
Case #3587 -- Redacted --
Case #3589 -- Redacted --
Case #3603 -- Redacted --
Case #3605 -- Redacted --
Case #3606 -- Redacted --

Version 5.2.12

  • Release Type: SECURITY PATCH
  • Release Date: 25th October 2013

General

Case #3444 - Improved validation of monetary amounts
Case #3313 - Moneris Vault Gateway compatibility update
Case #3323 - Credit cards not processing under certain conditions
Case #3138 - Correction to internal logic for testing Authorize.net payment gateway

Security


Case #3464 - Information disclosure via the client area as published by 'localhost'
Case #3510 - HTTP Split Attack discovered by the WHMCS Development Team
Case #2633 - SQL Injection Vulnerability discovered by the WHMCS Development Team
Case #3281 - Privilege boundaries not being enforced on addons reported by Vlad C of NetSec Interactive
Case #3453 -Download directory traversal reported privately by an individual
Case #3268 - Lack of input validation in data feeds input discovered by the WHMCS Development Team
Case #3462 - Deficient Null Byte sanitization on input discovered by the WHMCS Development Team

Version 5.2.10

  • Release Type: SECURITY PATCH
  • Release Date: 20th October 2013

General


Case #3433 - Mass mail client filter for default language not working
Case #2566 - Resolved admin clients list displaying duplicates in certain conditions

Security


Case #3246 - Enforce privilege bounds for ticket actions
Case #3426 - Additional CSRF Protection Added to Product Configuration
Case #3232 - Added additional input validation to SQL numeric manipulation routines
Case #3437 - Prevent user input from manipulating IP Ban logic

Version 5.2.9

  • Release Type: SECURITY PATCH
  • Release Date: 18th October 2013

Security

Case #2978 - Fix for improper logging of admin login IP
Case #3100 - Remove exposure of SQL from user interface
Case #3364 - Additional validation on user IP
Case #3425 - Potential SQL Injection Fix
Case #3428 - Added password verification requirement to admin user management operations
Case #3430 - Potential SQL Injection Fix

Version 5.2.8

  • Release Type: SECURITY PATCH
  • Release Date: 3rd October 2013

Security

Case #3353 - Add sanitization for pre-formatted AES_Encrypt in queries

Version 5.2.7

  • Release Type: MAINTENANCE RELEASE
  • Release Date: 26th July 2013

Bug Fixes

Case #2950 - Invalid token on Mass Mailer steps
Case #2951 - Fix for PayPal callback returning HTTP 406 error on no amount
Case #2953 - Duplicate admin log entries upon login
Case #2954 - Repair link for Admin Clients Services Add New Addon
Case #2955 - Invalid Entity Requestd for Support Page/Module
Case #2956 - Revert SQL changes introduced by build 5.2.6.3
Case #2963 - Additional Domain Fields not saving input
Case #2965 - Correct SQL statement for Ticket Escalations Cron routine
Case #2960 - Improve installer logic
Case #2969 - Do not encode 3rd-party TCPDF
Case #2970 - Do not encode 3rd-party PHP Mailer
Case #2971 - Do not encode 3rd-party Google QR code library
Case #2974 - Fix for invoices with a zero total not being auto set to paid on automated generation
Case #2975 - Fix for Calendar Entry Type Checkboxes not retaining selection
Case #2977 - Calendar Entries Missing Addon Name for Predefined Addons

Version 5.2.6

  • Release Type: TARGETED RELEASE
  • Release Date: 23rd July 2013

Security

Case #2755 - Internal Security Audit & Code Refactor

Version 5.2.5

  • Release Type: SECURITY PATCH
  • Release Date: 16th May 2013

Security

Case #2633 - Correct security enhancement regression

Version 5.2.4

  • Release Type: RELEASE
  • Release Date: 23rd April 2013

General

Case #2139 - Updates to cron report email format to make it easier to read
Case #2045 - Added Affiliates Overview Report
Case #2053 - Added amount filter option to admin orders list
Case #2134 - Update to Transactions CSV Export to show Currency Code rather than Currency ID
Case #2045 - Domain Sync Cron Updated to not keep re-attempting to connect to the same registrar if a connection error occurs
Case #2045 - Update to Yubico module to remove hard-coded WHMCS references
Case #2115 - Fix for hard-coded text Manage and Disable in Client Area Domain Details Template File
Case #1880 - Update to Client Area Module Change Password in Default Template to return to password tab on submit
Case #1567 - Update to invoice generation process to not invoice billable items on new orders
Case #2127 - Added Support to Force Two-Factor Auth for Clients
Case #1852 - Fixed Missing Language Vars in Two-Factor Activation Process
Case #2058 - Within Last Month filter on transactions list updated to maintain between pages
Case #2020 - Language update to credit log to remove manual adjustment reference
Case #2057 - Admin manual attempt CC captures process updated to display processing results
Case #2064 - Update to continuous invoice generation logic to not invoice pending items on a recurring basis
Case #1950 - Update to admin Remember Me cookie name to resolve issues some are experiencing with remember me not working
Case #2123 - Added 30 minute time expiry to login failures IP logging
Case #2122 - Added support for wildcards in whitelisted IPs
Case #2118 - Update to Ticket Close routine to check ticket is not closed already before performing actions
Case #2117 - Update to logic of Ticket Notification Emails to only send to the assigned admin for a flagged ticket
Case #2045 - Update to admin ticket interface to not show replying message to own admin
Case #2045 - Updated clients summary view orders link to use new clientid variable
Case #2113 - Added access restriction to files that generate an error when visited directly
Case #2045 - Updates to Client Side Arabic, Farsi and Norweigan language files
Case #2045 - Update for jquery dialog to use new admin js variable
Case #2110 - Admin Area Homepage widget adjustments to optimise load times
Case #2063 - Updated Admin Credit Card Info Window to not allow viewing/input when credit card storage is disabled
Case #2109 - Updated Disable Credit Card Storage Security Setting to auto remove all existing card data
Case #2108 - Changed admin post login redirect variable to avoid possible confusion with client area redirect urls
Case #2107 - Update to auto focus cursor to first input box in login/two-factor verification and setup/disable two-factor processes
Case #2067 - Updated Default template to use a template include to remove code duplication
Case #1961 - Update to domain validation rules when IDN domains are enabled to perform stricter checks
Case #2098 - Cron update to allow cancellation requests to process for free products (those with no next due date)
Case #2039 - Updated module change password input field names in Classic & Portal templates + added backwards compatibility
Case #2047 - Update to ticket flagging logic to not send email notification when assigning a ticket to yourself
Case #2045 - Updated clients, orders, tickets & invoices filter lists to maintain filters on mass actions
Case #2044 - Update to support ticket department deletion routine to remove custom fields & their values
Case #2045 - Updated Admin Support Ticket Flagged Email Notification Template to link directly to the flagged ticket
Case #2016 - Added client name field to all data export reports
Case #2045 - Update to export reports to display friendly payment method name
Case #2018 - Added Registration Date field to Domains Data Export Report + Capitalised first letter of Registrar
Case #2007 - Cleaned up client area product details HTML output
Case #2045 - Added refresh protection to the client area affiliates withdrawal request
Case #2019 - Update to surpress Support Ticket Flagged notification for those admins it's not enabled for

Module Updates

Case #2104 - Skrill Gateway: Re-branded MoneyBookers module to Skrill
Case #2036 - TPPWholesale Registrar: Fixes + Added support for registrar lock, private ns registration & epp code requests
Case #2045 - WebNIC Registrar: Updates to resolve problem with transfers & contact editing
Case #2045 - Plesk 10: Update to allow API packet version overriding
Case #2138 - CentovaCast: Update from them themselves for CentovaCast V3.x
Case #2137 - Project Management: Bug fix for staff log report always displaying a whole year rather than selected date range
Case #1941 - Project Management: Fix for status being empty for newly created projects
Case #2136 - Project Management: Update to replace .live discontinued jQuery functionality
Case #2135 - IPMirror Registrar: Version 2.1 Module Update from them themselves
Case #2032 - 2CheckOut: Update to language detection to work with new lowercase names
Case #2022 - DirectAdmin: Update to disk/bw usage stats importing to handle URL encoding being applied in DirectAdmins latest update
Case #2045 - PayPal Payments Pro Reference Payments: Implemented 3D Secure Functionality
Case #2015 - Enom: Added new extension field requirements for .es, .au, .sg, .pro & .it
Case #2015 - Enom: Updated to prevent WHOIS contacts being edited when disallowed by registry rules
Case #2015 - Enom: Updated TransferSync function to use more call effective method of retrieving transfer info
Case #2006 - WHOIS Server Additions: .rs, .co.rs, .org.rs, .edu.rs, .in.rs, .ae, .pw

Bug Fixes

Case #2141 - Fix for JavaScript Error Occurring in Product Domain Config Step of Modern & Slider Order Forms
Case #2140 - Correction to language variable for Bundle Items in Bundle Product Configuration
Case #2045 - Fix for domain renewals page in cart not listing all renewal term options
Case #2089 - Fix for Project Management Activity Log Pagination not working
Case #2133 - Fix for admin page field alignment when custom fields share same name as default fields
Case #1955 - Fix for javascript error in Original admin view ticket template
Case #2132 - Fix for Admin Initiated Currency Update displaying update results
Case #1930 - Fix for KB Category display articles shifting up to beside to sub-categories
Case #2131 - Fix for Vertical Steps Order Form Template Complete Step missing formatting
Case #2023 - API AddTicketReply command ignoring passed in adminusername variable
Case #2045 - Banned Emails Config Page always displaying an empty table
Case #2000 - Fix for one time fixed amount promo codes giving a zero discount on invoice under certain conditions
Case #2059 - Client area cancellation request cancel domain option non-functional
Case #2045 - Cookie unset not applying WHMCS prefix to cookie name
Case #2004 - Fix for client area support ticket list returning no results under certain conditions
Case #2070 - Fix for contact sub-account activation client side for existing contacts
Case #2009 - Fix for Mass Domain Enable Auto-Renew leaving auto-renew disabled & WHOIS Contact Info returning error
Case #2116 - Fix for CVV Number not being passed into 3D Secure process on new card entry
Case #2112 - Fix for contact ID setting being lost on admin ticket options save
Case #2024 - Fix for $invoice_html_contents email merge field displaying double line breaks in item descriptions
Case #2092 - Fix for product group order form template override not taking effect for all cases
Case #1972 - Anniversary Prorata not working correctly under certain conditions
Case #2061 - Admin notification emails being sent to disabled administrator users
Case #2031 - Cron notification email not listing service ID used in terminations list due to incorrect var
Case #2038 - Fix for payment gateway ordering in new invoice view
Case #2072 - Credit card remote token storage being called before new name/address info was saved
Case #2068 - Fix for predefined product price not being loaded correctly in quotes
Case #2068 - Update to states dropdown javascript to support tab index value being defined
Case #2010 - Fix for Client Area Two-Factor Backup Code Login Input Field Restriction
Case #2066 - Update to Default Client Area Products listing to not show dropdown menu if no menu items available
Case #2021 - MyIDEAL gateway module referencing incorrect path
Case #2005 - Product bundle display order not being honoured
Case #1289 - Added addon status change hook function calls to UpdateClientAddon API function
Case #2099 - Fix for link type custom fields saving values in an HTML link format
Case #2045 - Suspension Reason was not always being cleared on unsuspend
Case #2045 - Client stats for number of refunded/collections invoices were incorrect
Case #2027 - Fix for API GetClientsDetails function causing iPhone/Android App Failure
Case #2025 - Fix for invoice not displaying tax names under certain conditions
Case #2026 - Client area not displaying login incorrect message when login form submitted blank
Case #2046 - Update to prevent Support Ticket Flagged admin notification email sending upon unflagging
Case #2045 - Custom module action success language variable named incorrectly

Version 5.2.3

  • Release Type: RELEASE
  • Release Date: 28th March 2013

Bug Fixes

Case #1999 - Added the ability to disable two-factor auth for a client from the admin profile page
Case #1980 - Fix for DirectAdmin Module having fatal error in certain conditions
Case #1997 - SagePay Tokens: Update to fix incorrect CVV number parameter name and to force skip 3D Secure on recurring transaction captures
Case #1980 - Project Management Addon: Update to handle no due date better and display message instead of long time days overdue
Case #1980 - Boleto Gateway: Update to ensure bank value is one of the supported options
Case #1913 - Update to custom fields validation logic in Validate class to only enforce rules on non admin only fields
Case #1980 - Correction to language used in Send Message & Email Marketer re clients who have opted out of marketing emails
Case #1980 - Added tag search option to admin area advanced search
Case #1988 - Update to admin invoice view to make invoice payment methods clearer with notices re no transactions, full paid by credit and/or partially paid by credit
Case #1839 - Update to WHOIS Servers for new response formats
Case #1923 - Fix for Two-Factor Auth failing to enable within the client area
Case #1914 - Fix in Income by Product Report for negative value on discounts
Case #1980 - Clients chosen language was not being loaded for addon modules client area output
Case #1980 - Update to Licensing Addon to auto clean up orphaned mod_licensing records where product table entry is deleted and to optimise licensing log via daily cron
Case #1980 - Update to Ticket Escalations page to make auto reply box bigger by default
Case #1978 - Update to client email sendMessage() function to override default X-Mailer PHPMailer value with company name
Case #1919 - Fix for client area WHOIS edit always erroring out re empty details if not using a contact + fix for child nameservers management missing variables
Case #1995 - Fix for date filters in Client Statement not working due to new toMySQLDate() formatting and filter not including end date
Case #1993 - Fix for PDF Invoices showing raw HTML in notes with multiple lines and adding double line spacing to line items
Case #1816 - Update to addon suspensions via cron to adhere to the parent products override suspension settings also
Case #1794 - Updated Auto-Termination via cron to apply to Addon Products also
Case #1693 - Update to Support Ticket email sending routine to use client area language setting if a guest
Case #1680 - Update to omit Recurring Amount line from Order Confirmation Email for One-Time products
Case #1620 - Custom Invoice Number not being set by EU VAT Addon Hook before invoice payment confirmation is sent if invoice is auto paid by credit
Case #1987 - Fix for invoice data amountpaid variable not being formatted as currency
Case #1939 - Fix for addon item calendar links linking to old file and with incorrect parameters
Case #1920 - Fix for adding calendar event mangling date/time
Case #1921 - Fix for Time Based Tokens displaying WHMCS company name to clients
Case #1903 - Fix to prevent systpl or carttpl template override parameters validating when empty
Case #1796 - TransIP Registrar: Major update to module for improved reliability and functionality
Case #1802 - VentraIP Registrar: Update to only perform remote callout to their API if module is activated
Case #1980 - Fix for warning error being generated by domain $params not being passed into domain modules AdminCustomButtonArray function
Case #1817 - Added TPP Wholesale Domain Registrar Module which replaces DistributeIT, PlanetDomain & TPPInternet
Case #1968 - Implemented all new methodology for admin services page ajax module commands to resolve issues with certain areas of the page not updating following actions
Case #1916 - Update to client summary mass update logic to only run SQL queries if there is at least one update to perform
Case #1980 - Fix for Admin Area On Demand Invoice Generation no longer displaying number of invoices generated
Case #1870 - Added trim to custom ticket statuses to avoid erroneous spaces at the beginning or end of a status
Case #1757 - GoCardless Gateway: Update to replace a linked button which doesn't work in IE with a standard form
Case #1980 - Update to logic of hidden configurable options to ensure they only show up within the admin area
Case #1994 - Fixed bug where modules containing underscores in their names would not be loaded
Case #1942 - RRPProxy Registrar Module: Updated to handle curl connection errors better
Case #1931 - Correction to charset encoding of Arabic language file + additional translations
Case #1974 - Fix for Client Two-Factor Auth Login Processing
Case #1992 - Integrated Enom New TLDs Addon Module as a bundled addon
Case #1980 - Update to admin side quotes creation page to only load line items if ID is set to prevent new quotes ever showing orphaned line item records
Case #1911 - Fixed LocalAPI validation warning errors occurring in AddClient request
Case #1944 - Fix for fatal error occurring due to missing function in API GetAdminDetails function
Case #1983 - Fix for check all box not working on support tickets list when a user has assigned tickets
Case #1952 - Reverted change to .de whois server which was causing lookups to fail
Case #1982 - Fix for ajax ticket flag/assign not sending ticket flagged notification email
Case #1967 - Updated the admin ticket list to remember and return to previous filters after replying to a ticket
Case #1909 - Fix for client area applying credit to invoice failing
Case #1991 - Fix for auto recalculate on save using old packageid and promoid values and therefore not re-calculating price correctly
Case #1989 - Fix for registrar lock not enabling due to missing input name in the Default template
Case #1956 - Update to MyIdeal payment gateway certificate file
Case #1980 - Update to 3D Secure template file iframe to increase default width for newer wider 3D Secure processes
Case #1986 - Fix for Client Profile checkbox settings change logging not working correctly and added No Changes notice when form submitted without any changes
Case #1989 - Switched positioning of Add Response and Insert Predefined Replies/KB Article buttons in new admin View Ticket interface in Blend and V4 themes
Case #1980 - Added quick Close and Assign to Me links to new Blend and V4 Admin Theme View Ticket Pages + removed extra div causing extended blank space in V4 version
Case #1980 - Updated administrator roles admin page to show disabled users as greyed out
Case #1980 - Fixed bug where in use admin roles were being allowed to be deleted
Case #1980 - Fixed assigned departments listing for disabled administrators
Case #1953 - Update to billable items edit/save logic to work for decimal quantities of less than 1 and zero
Case #1958 - Correction to last reply field label in ticket feedback template in both classic and portal templates
Case #1984 - Update to license expiry date formatting in admin area
Case #1840 - Removed duplicate client area contact navigation client area language file variable
Case #1845 - Replaced hardcoded text in admin support tickets list and Blend admin homepage template
Case #1980 - Update to support tickets admin assignment/flag list to only show active admins (plus the one a ticket is actually flagged to if not active)
Case #1977 - Update to MoneyBookers Gateway Module
Case #1976 - Update to client details change notification email to fix missing client name and admin area profile link
Case #1965 - Fix for department names and emails not being loaded in Tickets Management
Case #1962 #1963 - Added disk and bandwidth percent usage return values to getDiskUsageStats function
Case #1938 - Bulk Domain Transfer in Default client area template displaying registration pricing and periods not even enabled for transfers
Case #1883 - Update to Ticket Closure routine to only send Feedback Request Email if feedback not already provided for a ticket
Case #1461 - Added userid variable to AdminAreaClientSummaryPage hook point
Case #1904 - API AddClientNote Command inverting sticky attribute
Case #1940 - Userid not being populated when admin clients domains page linked to with only an id
Case #1943 - Fix for admin client profile page always selecting English in client language dropdown when none set due to validateLanguage validation function
Case #1910 - Fix for product/service modules _ClientArea function not passing returned vars to template correctly
Case #1928 - Fix for Ticket Tags not saving initial delete change
Case #1954 - Updated payment gateway descriptions to use invoice number if set rather than invoice id
Case #1934 - Updated Email Prompt in Expired & No Connection License Error Messages + Some Minor Text Adjustments/Improvements
Case #1935 - Fix for Service Class not passing vars into buildParams function correctly
Case #1937 - Gateway ID not being passed into token gateway modules storeremote delete function when clearing card
Case #1948 & #1945 - Captcha input not being shown on client area homepage when enabled + update to naming language in default template
Case #1932 - Fix for client status update setting not being saved in Automation Settings
Case #1933 - Update to Affiliate Signup Button Code in Classic & Portal Templates
Case #1936 - Update to make admin side transaction list filter use a like match on description field
Case #1935 - Fix for client area change password function not passing new password into modules because module params already loaded prior
Case #1905 - Fix for client area product upgrade process fatal error on checkout step order confirmation
Case #1929 - Default language select option was being duplicated in mass mail
Case #1925 - Fix for product name email template var empty in New Cancellation Request admin notification & type not being sanitized prior to email
Case #1907 - Fixed missing include in API UpdateTicket function causing ticket closure to fail
Case #1900 - Project Management Addon Editing Task Times formatting error leading to empty value
Case #1899 - Fix for cron not adhering to Exchange Rates & Product Pricing Update Automation Config Settings
Case #1902 - Fix for currency update failing
Case #1901 - Fix for override auto suspend setting being ignored in cron
Case #1908 - Fix for cancellation request reason being overwritten by type, and type always being set to End of Billing Period

Version 5.2.2

  • Release Type: RELEASE
  • Release Date: 14th March 2013

Bug Fixes

Case #1896 - Domain registrar modules reporting function not found erroneously
Case #1855 - Added CSRF Token Management User Configurable Settings to General Settings > Security
Case #1855 - Updated Domain Checker to default to no token check
Case #1895 - Updates to allow for Smarty Backwards Compatability in Third Party Pages & Addons
Case #1890 - Fix for total balance always showing as zero
Case #1865 - Reverted upgrade process changes temporarily to resolve upgrade process debug output & errors
Case #1857 - Update client area chage of default payment method not passed into ClientEdit hook
Case #1861 - Update shopping cart header redirect to CC Processing page logout due to lack of token
Case #1893 - Update JS Class for Yubico Key Setup Process
Case #1868 - Quotes PDF File missing notes
Case #1881 - Email Registrar module displaying Function not Found on admin side due to missing GetNameservers function
Case #1891 - Admin side domain management function calls refactored to include $params array
Case #1869 - Fix Client area module template output failing when custom template is utilized
Case #1853 - Client area ticket search causing logout due to token check failure
Case #1873 - Correct SQL query to use selected server for server revenue forecast report
Case #1887 - Admin profile language not being stored during logout
Case #1871 - Update Domain Sync functions for license handling
Case #1876 - Invoice payment link variable not populated in invoice related email templates
Case #1888 - Implement new dbconnect.php file to maintain backwards compatibility with files that rely on it.
Case #1886 - Added handling of pattern matching for custom fields
Case #1882 - Product Group Re-Ordering due to SQL order keyword not escaped
Case #1874 - Remove second duplicate invoice button from admin invoice list
Case #1848 - Update to captcha variable name
Case #1886 - Revert smart class customizations to not error out blank page upon syntax errors
Case #1884 - Credit Card details cannot be cleared form the admin area
Case #1885 - Client Area Credit Card process attempting to validate custom fields
Case #1850 - Password reset failing due to email not passing to templates
Case #1879 - Update client area module change function not updating displayed password until page reload
Case #1878 - Update client area module change password function calls
Case #1877 - Return from registrar modules not being handled correctly when not an array
Case #1875 - Fix for failing domain management actions due to incorrect function call params
Case #1822 - Two Factor SQL Fields updates
Case #1856 - Fix Domain checker attempting to validate captcha input even when not enforced
Case #1864 - Fix PHP Fatal Error occurring when registrar module saving name server returns an error admin side
Case #1863 - Fix admin side filtering order list by date
Case #1862 - Update auto-recalc reoccurring amount and logging calculation
Case #1862 - Correct servers losing ID in array_merge causing selected server to be lost on Admin Client Profile
Case #1849 - Fix for API Allowed IPs being cleared when settings are saved
Case #1860 - Update PHPMailer class to address bug with email validation logic
Case #1822 - 5.2.0 SQL update skipped when updating from 5.1.4

Module Updates

Case #1858 - [ Live Chat ] - Update license checking mechanism
Case #1859 - [ Live Chat ] - Updated Client Side Hook file to be compatible with 5.2.x
Case #1889 - [ ResellerClub ] - Update module to return friendly error when API is missing

Version 5.2.1

  • Release Type: RELEASE
  • Release Date: 12th March 2013

New Features

Case #1772 - Update to log date & ip with ticket feedback submissions
Case #1772 - Added New Reports: Ticket Feedback Scores & Ticket Feedback Comments
Case #1418 - Added New Client Sources Report (aka How Did You Find Us)
Case #1779 - Updated VAT Number validation hook to use the SOAP service provided at VIES directly
Case #1746 - Re-factored invoice display logic
Case #1768 - Update to support ticket bounce email to add global header/footer email wrapper
Case #1768 - Added graceful exit handling to admin side clients domains page when no domains found for user
Case #1788 - Updated invoice totals to show as total+credit in all invoice lists both client & admin side
Case #1418 - Updated order details view to show exact invoice payment status and disable Cancel & Refund option once refunded
Case #1662 - Licensing mechanism updates to add further license server redundancy supportlicense server redundancy support
Case #1768 - Update to clients services page to immediately change status dropdown value (both main status and license status when licensing module in use) upon success result from new ajax module commands
Case #1795 - Update to conditionally include payment modules in cart for integrated checkout
Case #1255 - Implemented Two-Factor Authentication Logic & Support to Admin Login Process
Case #1418 - Updated transactions & gateway log query logic & added default date range filters to speed up initial page load on larger installations
Case #1586 - Fixed ticket tagging JS code double calls on load and incorrect saving on update with class update and function call changes
Case #1586 - Optimised admin support ticket page loads by separating JavaScript code into separate JS file
Case #1418 - Updated old wiki/docs link in all locations and added new comment format to open sample files
Case #1586 - Implemented Tag Cloud to admin ticket list & created ticket tag report/chart
Case #1803 - Redesigned admin reports interface to display reports in groups, removed legacy CSV export options, converted transactions and pdf export methods into report modules, and updated admin templates to display most used reports in reports menu dropdown
Case #1804 - Implemented line graph to Daily Performance Report
Case #1255 - Added Staff Management & Two Factor Authentication management links
Case #1803 - Fix for reports dropdown menu list in original and v4 templates
Case #1768 - Reverted TCPDF Class to previous version due to memory leak issue in latest update
Case #1586 - Implemented support for ticket tags with auto-complete suggestions
Case #1586 - Optimised & improved admin side handling of JavaScript code
Case #1586 - Optimised blend template loading by moving common JS into separate file
Case #1811 - Began re-factoring of client area
Case #1798 - Ported new admin view ticket styling from Blend template into V4 template
Case #1797 - Added checkbox to allow for splitting replies to Blend & V4 admin templates
Case #1815 - [API] Added Windows 8 App Addon Licensing Status return to GetAdminDetails API Function for use in upcoming Windows 8 App
Case #1818 - Refactored Session Handling product wide and updated to apply HTTPOnly attribute
Case #1819 - Refactored cookie handling and updated to apply HTTPOnly attribute by default for all cookies + updated affiliate & link cookies
Case #1822 - Added gridlines and minorgridlines count options support to graph class and updated head output for new admin interface array method
Case #1822 - Added protection against sending of blank emails to customers when email processing fails
Case #1824 - Added an option to enable showing client only departments to non logged in users visiting the ticket submission department selection page
Case #1822 - Various minor improvements and fixes to new code
Case #1825 - Updated get user ip function to use X-Forwarded-For value from apache request headers if available - primarily for our server setup
Case #1827 - Update to language of both ResellerClub and Enom modules account signup promo
Case #1811 - Created New Client Area & Service Classes & Re-factored frontend client side code
Case #1681 - Updated shopping cart to use localised status name in domain renewals
Case #1409 - Added extra conditional link parameters for affiliates and domain reg options and updated all client area templates to show/hide affiliate and domain reg menu options based on conditional status
Case #1761 - Updated domain breadcrumb links to include link back to domains details
Case #1823 - Moved admin homepage optimize image tag call from after closing HTML tag to bottom of the page body using AdminAreaFooterOutput hook point
Case #1751 - Updated ticket submission page in all client area templates to display a no departments found error msg when no support departments are configured
Case #1822 - Added check to 2FA time based tokens module to ensure GD image library is available before attempting to display QR image
Case #1830 - Updated Request Support page to provide additional help links and to provide customised message to reseller customers
Case #1822 - Removed sidebar workaround for Blend template in admin internal browser page since Blend template now has a sidebar
Case #1832 - Refactored cron process to make it possible to not only skip certain actions, but also to request only specific actions are performed
Case #1832 - Added CLI Output & Debugging flag options to make troubleshooting cron issues easier
Case #1822 - Added the ability to link to the internal browser page with a link pre-selected (?link=x)
Case #1806 - Update to WebsitePanel module to use hostname instead of IP for control panel links when hostname is specified
Case #1768 - Update to automatically grant access permissions to new functionality to default admin role groups as appropriate
Case #1768 - Added missing ticket notifications language file variable and additional variable for when no support departments exist
Case #1768 - Added the ability to specify a different department and/or priority for split ticket & updated to hide split tickets button when no replies available to split
Case #1822 - Added label tags to many more of the admin interface config fields/settings
Case #1649 - Added new escalation rules text to language file and previously missing priorities
Case #1822 - Added dedicated isLoggedIn function for checking for active client login
Case #1822 - Update to admin ticket departments config page to prevent refresh resubmits and to remove empty space displaying for admins with only a first name specified
Case #1822 - Updated in product links to use our go.whmcs.com link tracking for MaxMind, Enom, ResellerClub, Licensing & Project Management modules
Case #1822 - Added Premium badge to paid addon modules and improved/streamlined license enforcing/purchase/refreshing process
Case #1768 - Update for contact permissions error not working on pages using the new client area class
Case #1822 - Added new permissions for viewing/managing credits


Module Updates

Case #1755 - [ResellerClub] Implemented New API Key Auth Method for Improved Security
Case #1822 - [ResellerCamp] Removed old ResellerCamp sync module file and replaced with domain sync cron functions
Case #1822 - [Enkompass] Removed x3 theme from Enkompass login links


Bug Fixes

Case #1768 - Fix for endless redirects on shopping cart when no product groups have been setup
Case #1768 - Correction to image path in Original and V4 admin templates for dropdown menu popout icon
Case #1768 - Install process confirm password field type corrected to hide password, automatic url detection fixed to exclude step variable, and validation added to prevent install form being submitted with blank admin details
Case #1768 - Shopping Cart checkout step is grabbing IP directly from REMOTE_ADDR value instead of using get_user_ip function which was resulting in IP displaying incorrectly in certain scenarios
Case #1768 - Update to installer to create admin user under utf-8 charset like rest of app runs under
Case #1746 - Update to ticket department reassignment emails to obey ticket notification settings per admin
Case #1768 - Adds the missing closing </a> tag for Edit Product Icon image on configproducts.php
Case #1768 - V5.2 Upgrade was not working for users of V5.1.3 Patch Release
Case #1768 - Ticket Duration calculating incorrectly when ticket contains no replies & generic comments row being created even when no comments submitted
Case #1768 - Update to menu expand icon to be black by default for lighter menu backgrounds, and white expand icon made blend template specific only
Case #1791 - Provide a valid return value (the PDF object) in the createPDF method of the WHMCS_Invoice class
Case #1709 - Sorting My Domains list by Auto Renew wasn't working
Case #1763 - Missing "Success" message when domain contacts are edited
Case #1793 - NetworkIssueClose should run when editing network issue status to closed
Case #1768 - Invoice related emails not sending due to userid not being populated correctly
Case #1768 - Fixed admin homepage popup not hiding until next content update correctly
Case #1812 - Added missing login to enkompass language file variable and updated module to use it
Case #1418 - Corrected SQL query for calculating addons ordered in the Monthly Orders report - was previously giving total for entire year
Case #1808 - Correction to gid int casting which was causing cart to permanently redirect to domain registration step on initial visit
Case #1822 - Default template KB search not remembering search term and returning to homepage on 2nd search if empty catid parameter
Case #1768 - Fix to client area details validation routine giving error relating to email and uneditable profile fields
Case #1768 - SQL Error Occurring in specific admin email send routine + Optimization to logActivity function to only query username once per runtime
Case #1822 - No addons message in Default client area product details template incorrect colspan
Case #1768 - Suspension reason stops being recorded after & character due to missing url encoding
Case #1768 - Incorrect billing cycle variable for when adding a new addon & Services dropdown menu showing last rows color for active services
Case #1768 - Service edit form not being closed when addons are edited causing send message to fail
Case #1771 - Update to support ticket billing entry to auto prune any non numerical chars from amount
Case #1821 - Replaced hardcoded word "Go" with language variable in 2 client area & 4 order form template files
Case #1822 - Fixed create new project dialog not saving ticket number
Case #1822 - Stats query optimisations & bug fix for SQL error that was being generated every time support ticket page was accessed when admin not assigned to any departments
Case #1768 - Some addon downloads were not being displayed in the client area product details downloads tab
Case #1768 - No Totals to Display text was not being shown on empty Transactions list page
Case #1768 - Added support ticket notification customisation settings back to admin users My Account page
Case #1768 - Changed email encoding from 8bit to quoted-printable to resolve issue of erroneous characters/spaces on long lines of text
Case #1768 - Update to automatic ticket close logic to only send Support Ticket Auto Close Notification email template if Ticket Feedback is not enabled since it already sends it's own email on closure
Case #1768 - Update to invoice loadData function which was failing in some situations due to subquery for gateway name returning more than 1 row
Case #1833 - Update to various third party classes to remove deprecated assigning of return value by reference
Case #1768 - Update to init file to prevent it erroring or failing with a blank page during upload of the new version
Case #1768 - File download page erroring out blank when login was required due to missing var
Case #1768 - Include product downloads in directory setting being displayed twice in General Settings
Case #1773 - Update to predefined search box so that field doesn't expand past the edge of the box when no predefined replies exist + added search icon to search box as background
Case #1800 - Affiliates commission list showing incorrect amount if no payment made yet and has a different first payment amount
Case #1768 - Configurable Options Radio Button was echoing checkbox checked rather than appending to input code HTML
Case #1768 - Free addons generating invoice upon adding from admin side due to no exclusion on free billing cycles in specific items invoicing routine
Case #1768 - Addon products on services page using wrong variable for ID in edit and delete links rendering them unmanagable


Version 5.2.0

  • Release Type: BETA
  • Release Date: 1st February 2013

New Features

Case #1585 – Implemented new ticket listing interface which separates flagged tickets from others
Case #1644 – Added friendly warning if adding payments to an already paid invoice
Case #1760 – Admin side WHMCS news/notification popup for release announcements & special offers
Case #1626 – Introduced IP Whitelisting Support from Bans
Case #1719 – Updated provisioning modules to return rather than echo
Case #1756 – Introduced dedicated product news feed
Case #1756 – Updated news widget to use dedicated product news feed
Case #1756 – Updated check for updates page to use dedicated product news feed
Case #1418 – Update module command buttons to use ajax to avoid page reload
Case #1719 – Add additional logging for admin services actions to activity log
Case #1505 – Allow client to enter desired new password when visiting reset verification URL
Case #1449 – Add logic for API addorder for invoices paid by credits
Case #1418 – Add pagination to spam control page
Case #1418 – Optimize ticket counts query for admin pages
Case #1418 – Language Case update for admin account page
Case #1418 – Redraw charts for when no chart widgets are active
Case #1418 – Update to Knowledge Base categories listing
Case #1726 – Implemented search for predefined replies management
Case #1725 – Added Arabic client area language file
Case #1573 – Improvements to tblcontacts
Case #1725 – Added Catalan client area language file
Case #1725 – Added Croatian client area language file
Case #1725 – Added Farsi client area language file
Case #1725 – Added Hungarian client area language file
Case #1725 – Improvements to Portugese & Portuguese Brazil client area language files
Case #1725 – Improvements to Spanish client area language file
Case #1725 – Implemented new Spanish admin language file
Case #1481 – Improvements to French Language file
Case #1612 – Added HTML stripping to default template client area homepage news snippet
Case #1585 – Added the ability to split support ticket replies out to new tickets
Case #688 – Added the ability to enter transaction ID for manual refund
Case #688 – Updated invoice interface to disable refund button if unavailable
Case #1754 – Implement code to obtain custom fields and update data based on values posted
Case #1728 – Created WHMCS API Helper File v1.0
Case #1672 – Implemented Email Marketing Unsubscribe Option for Clients
Case #1575 – Additional logging relating to quote management & quick links from log itself
Case #1651 – Added custom fields display to printable version of support tickets
Case #1649 – Add memory of ticket list filter selections between page loads
Case #1418 – Removed arbitrary credit balance edit field and added dedicated Remove Credit option
Case #1599 – Added LicensingAddonReissue hook
Case #1345 – Ability to edit security questions
Case #1440 – Added email template merge field for product description
Case #1556 – Log date/time to ticket logs when auto-closing ticket
Case #1536 – Allow knowledge base articles to be available when opening a new ticket for client
Case #1437 – Added the ability to duplicate an existing invoice and line item(s)
Case #1418 – Allow mass mails to be sent from services listing
Case #1537 – Allow company name in client sort filters for admin invoice list
Case #1418 – Add variable to load template dropdown ensuring that Send Multiple is carried across
Case #1565 – Ability to disable admin accounts
Case #1418 – Refactoring of system wide page structure to use new single initialisation file
Case #1565 – Hiding of deactivated admin users from Tickets & To-Do Lists
Case #1474 – Ability to disable auto-status change to inactive for clients without products/services
Case #1312 – Introduce duplicate bundle function
Case #1582 – Introduce ability to restrict subdomains when offering free subdomains
Case #1743 – Admin ticket notification system now works independently from department assignments
Case #1418 – Introduced credit card info full clear function for admin usage for local & remote storage
Case #1449 – Introduced API function AffiliateActivate
Case #1449 – Introduced API function GetAffiliates
Case #1449 – Introduced API function GetCancelledPackages
Case #1449 – Updated API function AddOrder
Case #1449 – Updated API function AddProduct
Case #1449 – Updated API function GetInvoices
Case #1449 – Updated API function UpdateClient
Case #1449 – Updated API function UpdateProject
Case #1465 – Introduce autolinking of urls to client & ticket notes
Case #1418 – Introduce permission check to admin invoicing within ticket
Case #1752 – Introduce new global validation logic & implemented throughout
Case #1398 – Added AfterFraudCheck Action Hook

Module Updates

Case #1742 – [ VentraIP ] – Commit updates to latest version v1.5.2
Case #1212 – [ 2CheckOut ] – Updated transaction callbacks logging for refund processing on reoccurring payments
Case #1669 – [ WeNIC ] – Add handling for .asia & .tw specific field requirements
Case #1418 – [ BizCN ] – UTF-Bytecode fix for handling IDN domains
Case #1602 – [ cPanel ] – Not retaining dedicated IP on package change
Case #1418 – [ Amazon Simple Pay ] – Updated to allow proper refund processing
Case #1698 – [ IPPay ] – Update for new transaction processing URLs
Case #1686 – [ FreeRadius ] – Introduced Free Radius module
Case #1687 – [ Ahsay Backups ] – Introduced Ahsay Backups Module
Case #1694 – [ Helm ] – Updated class to resolve login button in clientarea
Case #1692 – [ CCAvenue ] – Allow display notice at Invoice Payment to client informing a manual review is required
Case #1470 – [ VPS.Net ] – Added missing images folder
Case #1594 – [ SecureTrading ] – Update to latest version
Case #1593 – [ ResellerClub SSL Module ] – Strip URL prefixing from domains when generating approval emails
Case #1600 – [ Stargate ] – Update domain sync functionality
Case #1600 – [ NetEarthOne ] – Update domain sync functionality
Case #1418 – [ Plesk ] – Packet version loaded from configuration file
Case #1690 – [ ResellerClub ] – Improve handling for >64 Character Address’
Case #1460 – [ ResellerClub] – Transfer function not defining the full state value


Bug Fixes

Case #441 – License check code to now show branding for branding free live chat
Case #1396 – Numerous WHOIS Server definition updates
Case #1418 – Ticket Masks containing “%i” failed to generate
Case #1746 – Refactor class design for future expansion & optimization
Case #1623 – Improve duplicate TLD Routine to automatically at ‘.’ prefix if missing
Case #1722 – Update cart.php to not redirect when confdomains exists
Case #1418 – Updated API variables to allow separation of send to registrar and autosetup
Case #1418 – Update API Variables in AcceptOrder function
Case #1418 – Clean up second renewals SQL Query
Case #1449 – Clean up if statements in updateclientdomain
Case #1583 – Prevent gateway from being disabled if only 1 is enabled
Case #1540 – Split permissions for Manage Predefined Replies
Case #1577 – Update CVV Fields
Case #1433 – Addclientnote & Addticketnote API function not parsing carriage returns
Case #1449 – Improve autorecalc section to include promotion codes that were passed in update
Case #1590 – Added autoauthkey to configuration.php when key is updated
Case #1584 – Mail in Payment option now redirects straight to invoice
Case #1553 – Printable Version within Quotes unavailable by default
Case #1684 – Update function to use existing next due date for incrementing nextinvoicedate
Case #1388 – Check if admin has “Add “Transaction” permission when applying payments to invoices
Case #1418 – Remove hard coded text in KB Search box default template
Case #1542 – Upgrade/Downgrade section in client area shows free domain is offered – misleading
Case #1585 – Improve split ticket functions
Case #1474 – Expand logic around auto-status change for clients
Case #1418 – Introduce error message to all error checks as not all contain “response_text”
Case #1431 – Add logging of changed fields to activity log
Case #1677 – Prevent admins deleting themselves
Case #1743 – Updated Smarty class to latest 2.x release
Case #1743 – Updated PHPMailer class to latest stable v5.2.2
Case #1418 – Added custom fields array to clients detail
Case #1555 – Complete refactor of language handling system
Case #1418 – Implement nl2br formatting to admin client notes
Case #1577 – Add CVV input field for Admin & Client side cart update forms
Case #1673 – Prevent unknown editing of client side card data
Case #1431 – Add logging on ticket boxes with status as Enabled or Disabled
Case #1418 – Correct language for billable items invoice confirmation dialog
Case #1431 – Improve logic for logging change fields
Case #1609 – Bulk domain check may result in unformatted return
Case #1418 – Password input field type to hide input in Web 2.0 Cart login template
Case #1549 – Added ‘empty’ to configurableoptions variable in recalcRecurringProductProce function
Case #1433 – Carriage returns not parsed by client notes
Case #1538 – Unable to filter tickets in client area
Case #1532 – Server revenue forecast includes inactive servers
Case #1086 – Ajax cart domain addons not refreshing cart summary
Case #1418 – Complete button changed to please wait upon click
Case #1294 – Message preview stopping at ‘&’ character
Case #1485 – Re-introduce TinyMCE rich text editor for admin area text fields that support HTML input
Case #1418 – Introduce delete transaction permission check to admin invoice transaction deletion
Case #1569 – Billing Cycle & Configurable options not updating price summary
Case #1535 – Ensure that multiple partial refunds don’t exceed the original transaction fee amount
Case #1644 – Allow admin to add payments to a paid invoice
Case #1645 – Next Due Date not being emptied when changing from reoccurring to free in products & product addons
Case #1626 – Refactor Whitelisting IP logic to remove unnecessary queries and improve logic
Case #1418 – Reintroduce SMTP Debug flag for configuration.php
Case #1672 – Reintroduce portral template files
Case #1626 – Whitelisted IP address shown never be banned
Case #1754 – Revert naming of AddtoLog function to addTicketLog
Case #1701 – Remove duplicate pwstrength JS code from clientregister on default theme
Case #1418 – Correct language whitespace output
Case #1675 – Adjust sales tax liability report to tax + credit = total
Case #1675 – Switch Tax & Credits column for more human friendly readability
Case #1565 – Fix SQL errors caused by no department set for admin
Case #1418 – Update variable “type” to “listtype” to avoid conflict
Case #1702 – Update income by products report to work with currency selector
Case #1702 – Resolve units sold column always empty
Case #1730 – Remove duplicate Cleint ID field in admin lang file
Case #1412 – Domain Renewals Grace Period & Minimums loading from config file
Case #1417 – Correct Admin invoice number search
Case #1479 – Client area Tasks ‘Due In’ corrected
Case #1419 – Update MySQL list tables function
Case #1418 – Mass domain management auto renew improvements
Case #1191 – Backups failing due to database name unavailable
Case #1418 – Message preview button returns no results with rich text editor
Case #1418 – Update dbconnect.php for API Access & Disable Vars
Case #1418 – Fix new admin session vars for mobile login
Case #1425 – Lanugage change in client area not being retained between page loads
Case #1418 – Currency ID has been updated to show currency code
Case #1430 – Resolve CSV download error when reports contain a graph or geo-chart
Case #1429 – Resolve load problems with graph or geo-chart data when viewing print report version
Case #1435 – Update important field to sticky on orders detail view for client notes
Case #1418 – Knowledge base searches fail with syntax error when no term is specified
Case #1418 – Cron user status switch generating MySQL error due to incorrect function call
Case #1448 – Resolved support ticket edits when attachments are present
Case #1454 – Introduced human readable error message for graphs when JSON is not available in PHP
Case #1301 – Resolved Slider Order Form only accepting lowercase domain input
Case #1439 – If due date is 0000-00-00 thens suppress auto suspend/terminate
Case #1428 – Resolved Support Ticket overview widget JS error when a department contains a special character
Case #1747 – Custom order status removing provisioning/welcome email option from order details page
Case #1682 – Annual income reporting adding previous years fees & amount out instead of sutracting
Case #1740 – changeOrderStatus() now savesPending Transfer correctly for Domains with type=Transfer
Case #1446 – Support Ticket Ratings Review Report update to apply message formatting to ticket replies
Case #1727 – Paid invoice process attempting to combat multiple invoices being assigned the same number
Case #1418 – Add payment button in admin invoice page not greyed out when disabled
Case #1723 – Require admin addon modules to validate module name
Case #1418 – Cart should pre-select stored country when passed via session
Case #1707 – Implement smarty variables to allow template mods to query more info on affiliate referrals
Case #1418 – Better handling of invalid affiliate ID passed into manage affiliates page
Case #1418 – Reimplement TinyMCE Rich Text Editor for network issues
Case #1746 – Ensure gateway module callback files reference correct include path
Case #1439 – Reverted unneeded query change for optimization
Case #1683 – Resolved TinyMCE converting URLs
Case #1558 – Password password checking not working on comparison template
Case #1552 – Updated POP Import field names to be more conscience
Case #1666 – .DE Domains registration showing text field rather than yes|no ticket box
Case #1638 – Client notes area does expand correctly caused by additional divs end
Case #1423 – Admin support ticket widget not handling zero ticket count present on new installs correctly
Case #1566 – Update billable items logic to automatically recalculate amount when qty/hrs is updated
Case #1739 – Require ID presence in URL when downloading PDF
Case #1449 – addcancelrequest to return error if a cancellation requests exists
Case #1444 – Add Local API Support for custom provisioning module functions
Case #441 – Prevent conflicts for branding removal
Case #1731 – Show enabled WHMCS addons on licensing info page
Case #1418 – Added VentraIP Registrar Logo
Case #1726 – Update if statement to not show predefines on root category
Case #1418 – Add missing global declaration for ICONV disable
Case #1418 – Add backwards compatable getValidLanguages function
Case #1418 – Update admin knowledge base config page to use getlanguages function
Case #1697 – Ensure email address’ cannot be empty
Case #1697 – Ensure sub-accounts do not retain the same address
Case #1474 – Invalid select query in cron during client status change
Case #1646 – Validate invoice ID exists when passing into PDF download link
Case #1657 – _GetEmailForwarding error message is treaded as forwarding record when listing forwarders
Case #1641 – Convert config servers page to use language file variables
Case #1601 – Ticket list sorting by department ID instead of name
Case #1420 – Remove hardcoded text in template files
Case #1463 – New customers report export generates invalid data
Case #1621 – Typo in English language file
Case #1469 – Curacao missing from countries list
Case #1639 – Admin ticket log should have URLs converted to links
Case #1575 – Modifying Quotes does not log to the Activity Log
Case #1653 – _GetDNS error message is treated as DNS Record when listing dnsrecords
Case #1650 – View quotes failing ifTOS accept not enabled
Case #1485 – TinyMCE Editor not loading for announcements
Case #1643 – Enkompass using archaic API for IPs
Case #1642 – Affiliate payments on renewal generated regardless if one time option is select
Case #1557 – Corrected typo “occured” throughout.
Case #1591 – Logging in as client resets admin session token
Case #1589 – CSS scaling issues in 5.1 v4 template
Case #1588 – Associated invoices displaying unrelated invoices when an associated ticket is not found in project view
Case #1581 – Deleting invoice doesn’t pass through vars
Case #1415 – Affiliates template extra TD Colspan
Case #1432 – API Cancelation request calling undefined function if canceled service is on joint invoice
Case #1597 – Fees returned from gateway modules not handled correctly
Case #1598 – Prevent addons from doubling invoices when invoice selected items is used in the client summary
Case #1418 – Prevent warning error from genTicketMask when creating new tickets
Case #1418 – Resolve failure to locate KnowledgeBase suggestions when no existing k articles are passed
Case #1418 – Updated IP not being set in core class
Case #1418 – Improve session handling for cart.tpl override
Case #1418 – Improve Product config listing page to reset product group order values for consistency
Case #1563 – Update usage stats in ServerUsageUpdate function
Case #1755 – Improve EU Transfer process to always use the client account details
Case #1676 – [Security] Google Checkout update
Case #1631 – [Security] Improve logic of widgets
Case #1731 – [Security] Improve logic of license info page
Case #1759 – [Security] Improve logic of carts
Case #1631 – [Security] Improve logic of widgets