Changelog:WHMCS V5.2
From WHMCS Documentation
Contents
Version 5.2.1
- Release Type: STABLE
- 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] Added support for New API Key authentication method 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 – Separate flagged tickets into dedicated list Case #1644 – Provide warning if adding payments to an previously paid invoice Case #1760 – Admin area Popup dialog for Full Admin only Case #1626 – Introduced IP Whitelist interface Case #1719 – Updated provision 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 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 Knowledge Base categories listing Case #1726 – Implemented search for predefined replies Case #1725 – Added Arabic admin area language files Case #1573 – Improvements to tblcontacts Case #1725 – Added Catalan admin area language files Case #1725 – Added Croatian admin area language files Case #1725 – Added Farsi admin area language files Case #1725 – Added Hungarian admin area language files Case #1725 – Improvements to Portugese & Portuguese Brazil client area language files Case #1725 – Implement new Spanish admin language file Case #1725 – Improvements to Spanish client area language files Case #1481 – Improve French Language files Case #1612 – Added strip_tags to default template client area homepage Case #1585 – Add the ability to split existing tickets into two Case #688 – Ability to enter transaction ID for manual refund Case #688 – Disable refund button if no transactions Case #1754 – Implement code to obtain custom fields and update data based on values posted Case #1728 – Implement WHMCS Api Helper File v1.0 Case #1672 – Implement Email Marketing Unsubscribe Link Case #1575 – Implement quick linking on logs Case #1651 – customfields on printable viewticket Case #1649 – Add memory of ticket list filter selections between page loads Case #1599 – Implement LicensingAddonReissue hook Case #1345 – Ability to edit security questions Case #1345 – Introduce Multi-language support for Configure Security Questions Case #1440 – Introduce 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 – Introduce ability to duplicate an existing invoice 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 #1565 – Ability to hide deactivated admin users from Tickets, To-Do 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 global validation class & implemented throughout Case #1398 – Introduce After Fraud Check 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 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