Changelog:WHMCS V7.7
Contents
Version 7.7.0 Beta 1
Implemented
FEATURE-1550 - Add native Tax ID/VAT Number field to Clients and Contacts
FEATURE-1635 - Provide drag and drop support for admin dashboard widgets
FEATURE-1789 - Add ability to hide inactive clients by default with toggle functionality to reveal them
FEATURE-1792 - Group inactive clients at the bottom of client dropdown menus
FEATURE-1990 - Implement new Apps and Integrations module discovery center
FEATURE-2007 - Add payment gateway module for BitPay
FEATURE-2011 - Implement Invisible reCAPTCHA support to more areas of the product
FEATURE-2016 - Add support for Amazon S3 and S3 compatible storage providers for file uploads
FEATURE-2035 - Provide support for sessions to be stored in the database
FEATURE-2043 - Update and improve usability of Tax Configuration within admin area
FEATURE-2052 - Implement fraud module for FraudLabs Pro
FEATURE-2062 - Implement new design and functionality to Intelligent Search
FEATURE-2066 - Improve functionality available to developers in Intelligent Search hook
FEATURE-2067 - Allow retrieval of more than 10 results in Intelligent Search
FEATURE-2070 - Implement CodeGuard Website Backup provisioning via MarketConnect
FEATURE-2075 - Add payment gateway module for GoCardless
FEATURE-2079 - Store country at time of invoice generation for use in VAT MOSS reporting
FEATURE-2085 - Implement SSL Status Monitoring for domains within the client area
FEATURE-2086 - Implement SSL Status Monitoring for admin users
FEATURE-2104 - Provide option to hide inactive clients in intelligent search
Maintenance
CORE-6110 (#2765) - Update tables to have primary keys
CORE-8446 - Inspect for concurrent payment during Cron suspension
CORE-10559 - Clarify PayPal configuration description noting that a Notification URL must be set
Also known as: MODULE-6565
CORE-10794 - Display appropriate domain search error message for domains already in the system
Also known as: CORE-12017
CORE-10899 - Detect and notify when pop cron is failing to complete
CORE-11301 - Observe variable param changes returned by PreModuleCreate hook
CORE-11858 - Prevent erroneous automated cancellation notifications for upgrade orders cancelled prior to payment
CORE-11874 - Ensure correct appropriate user IDs are referenced in Activity Log
CORE-11926 - Add space to "Setup Fee" string used for Product Addons
CORE-11927 - Normalize link value in merge field $quote_link
CORE-11956 - Ensure ClientDetailsValidation hook is triggered when adding client via Admin area
CORE-12055 - Prevent Auto Data Retention deletion of affiliates and free product only clients
CORE-12266 - Correct Pre/AfterRegistrar hook parameters
CORE-12298 - Correct "Manage SSL Certificates" button link
CORE-12372 - Correct Google reCAPTCHA on homepage domain checker
CORE-12440 - Update Plesk for MarketConnect automatic SSL provisioning
CORE-12445 - Ensure parent product is suspended according to suspended addon's settings
CORE-12564 - Prevent intelligent search rendering login page when session has expired
CORE-12572 - Provide indicator when viewing an order where fraud check was skipped due to existing active order
CORE-12576 - Correct syntax for SpamExperts Welcome Email
Also known as: CORE-11571
CORE-12577 - Ensure additional data is provided on resend of MarketConnect emails
CORE-12585 - Correct addon relation following merge of clients records
CORE-12598 - Update MDE editor to use FontAwesome 5 icons
Also known as: CORE-12605
CORE-12610 - Implement 'pop_cron_debug' configuration setting to allow cron output via web invocation
CORE-12611 - Improve scheme detection on /dologin.php
CORE-12623 - Display domain renewal link notification only if Domain Renewals are enabled.
CORE-12636 - Inspect menu item's 'btn-icon' for Font Awesome & prepend style appropriately
CORE-12646 - Correct credit transaction attribution for merged invoices
CORE-12663 - Ensure "Forgot password" in login.tpl is an absolute path
CORE-12664 - Update admin email notification footer to include ALT tag for logo
CORE-12666 - Refine subdomain detection for "Existing Domain" option in cart
Also known as: CORE-10825, CORE-12733
CORE-12674 - Correct itemized minimum MySQL version within Installer
CORE-12679 - Correct evaluation of domain sync cron schedule setting
CORE-12680 - Allow premium domain configuration when using Whmcs Namespinning lookup provider
CORE-12683 - Provide translation strings for MarketConnect promos and upsells
CORE-12685 - Clarify documentation about when PreCronJob hook point is triggered
CORE-12693 - Correct various Font Awesome icon references
CORE-12694 - Update ECB Exchange Rates URL
CORE-12702 - Correct typo in OrderDomainPricingOverride documentation
CORE-12712 - Improve error handling of invalid domain name search when using WHMCS Namespinner
CORE-12713 - Restore phone fields to formatted values on form reset
CORE-12720 - Correct ClientLogout Hook Description
CORE-12722 - Ensure contact details are supplied for Enom transfers
Also known as: CORE-12130
CORE-12724 - Ensure correct domain renewal invoice is cancelled after the domain has expired
CORE-12726 - Update requirement of .vote|.voto additional domain fields for registration
CORE-12729 - Update legal address in EULA
CORE-12734 - Prevent duplicate invocations of AddonActivation when accepting order
CORE-12735 - Ensure AdminAreaViewTicktPageSidebar hook outputs to sidebar
CORE-12736 - Extend OrderDomainPricingOverride hook to allow overriding both first payment and recurring values
CORE-12738 - Improve UX of admin selectize client dropdown when no clients exist
CORE-12741 - Display "Auto-Terminate End of Cycle" option as checked to admins when viewing clients' immediate cancellation requests
CORE-12756 - Require "Manage Domains" contact permission for domain auto renewal setting
CORE-12757 - Correct evaluation of tax calculation method for domain renewals
CORE-12762 - Update WHOIS server for .ws
CORE-12766 - Correct display of quantities less than 1 whole item on printable quote
CORE-12768 - Ensure TinyMCE theme is available for mobile browsers
Also known as: CORE-12820
CORE-12789 - Improve styling of Add Server UI
CORE-12790 - Improve styling of Admin Area Terminate Account modal
CORE-12791 - Ensure Ticket Mail Import Log associates attachments to respective ticket
CORE-12797 - Prevent spurious MySQL errors when aggregating Support widget recent ticket count
CORE-12808 - Correct upgrade calculation for billing cycle changes
CORE-12809 - Update MarketConnect DigiCert logo
CORE-12810 - Update jQuery UI to v1.12.1
CORE-12816 - Ensure renewal notices are sent for domains in grace and grace redemption status
CORE-12822 - Show indication in shopping cart when promo is limited to a set number of recurring cycles
CORE-12824 - Disallow next due date changes for one-time addons
CORE-12827 - Prevent fatal error when updating domain contact details from admin area
Also known as: MODULE-6913
CORE-12834 - Update .mx WHOIS server
CORE-12836 - Add note to upgrade order when Credit On Downgrade is disabled
CORE-12848 - Correct evaluation of disabled captcha for domain transfers in cart
CORE-12850 - Update .ac WHOIS server
CORE-12858 - Correct example for OverrideOrderNumberGeneration hook
CORE-12860 - Correct Smarty template syntax in clientregister.tpl
CORE-12866 - Prevent spurious error when filtering billable items
CORE-12867 - Set "MAIL FROM" to System From Email on contact form emails for SMTP setting interoperability
CORE-12871 - Correct SQL for addon suspending via the module queue
CORE-12872 - Only render "Create Add Funds Invoice" option if admin has "Create Invoices" role
CORE-12882 - Improve suggested binary for crontab entry
CORE-12886 - Correct announcement translation timestamp
CORE-12887 - Disregard Deduct Tax Amount settings if tax system is disabled
DEV-560 - Implement support for MySQL v8
Also known as: CORE-12589
Addons
ADDON-6026 - Correct caching for Project Management widget
Modules
MODULE-6379 - [Plesk] More accurate reporting of errors in server connection tester
MODULE-6456 - Remove transaction fee calculation for Standard 2Checkout
MODULE-6544 - [ResellerClub] Transferred Away status not updating in _Sync function of RC module
Also known as: MODULE-6919
MODULE-6670 - HTML entities in Title value are not decoded before being sent to Slack
MODULE-6677 - PayPal Subscriptions created using Upgrade Order result in unpaid invoices
MODULE-6710 - ResellerClub SSL module configuration does not load on addon configuration
MODULE-6784 - Improve normalization of domain names for wildcard SSL configuration
Also known as: MODULE-6931
MODULE-6803 - Update Hexonet Registrar Module
MODULE-6815 - LogicBoxes Modules return "Telephone Country Code/Telephone No. is invalid" for Trinidad and Tobago calling code (1868)
MODULE-6816 - Enom: All transfers fail with Enom if "Extended Attributes" / Additional Fields are required
Also known as: CORE-6958, CORE-10800, CORE-7745
MODULE-6826 - Slack: Add support for private channel notifications
MODULE-6835 - ResellerClub not showing domains as having the registrar lock enabled
MODULE-6837 - Update Symantec about text in MarketConnect admin area
MODULE-6838 - Update Symantec logo to include powered by DigiCert
MODULE-6849 - DirectAdmin: Prevent SSL installation altering other domain settings
MODULE-6857 - Unable to cancel Subscriptions with the 2Checkout Module
MODULE-6858 - 2Checkout Partial Payment Handling (Inline checkout bug)
MODULE-6860 - ResellerClub: Enable/Disable ID Protection "Operation Not Permitted"
MODULE-6862 - vePortal Discontinued
MODULE-6863 - LxAdmin/Kloxo Discontinued
MODULE-6865 - xPanel Discontinued
MODULE-6871 - 2CO callback file throwing Invalid invoice id provided exception when subscription callback
MODULE-6873 - Ensure 2CO "Inline" is passing line item data correctly when a product is a "one-time" billing cycle
MODULE-6876 - DirectAdmin Reseller Usage Stats are Imported Backwards
MODULE-6879 - Ensure licensing addon returns the corresponding customfields data
MODULE-6884 - Correct evaluation of merchant_order_id value for 2CO callbacks
MODULE-6890 - MaxMind not sending all datapoints in previous versions
MODULE-6893 - Correct PSIGate to support recurring payments
MODULE-6896 - MarketConnect: Always send Company Name and Company URL in configure calls
MODULE-6897 - Ensure PayPal callback fails if no "custom" variable is found in the IPN and no Subscription ID is found in WHMCS.
MODULE-6899 - Handle Automatically Converted PayPal Subscriptions
MODULE-6900 - Authorize.net eCheck not logging the Gateway in the Gateway Log
MODULE-6910 - Align Skip 2CO Fraud Check behaviour in Inline and Standard Checkout Modes
MODULE-6911 - CustomerSuppliedPrice price not passed when renewing domain with Enom
MODULE-6917 - Remove gateway module eeecurrency
MODULE-6918 - Update SpamExperts Email with Appropriate Outgoing and Archiving Info
MODULE-6920 - 2CO does not use invoice Total to determine payment amount
MODULE-6930 - CodeGuard Welcome Email
CORE-12290 - Ensure pre-defined addons can be added for non-monthly cycles
CORE-12439 - Ensure proper population of card type during checkout
CORE-12721 - Pass same domainObj to all registrar module functions
API
CORE-12079 - Ensure invoice status is provided to InvoiceCreation hook when invoking UpdateInvoice API
CORE-12137 - Implement sorting functionality for GetInvoices API
CORE-12686 - Correct logic for server password changes via ModuleChangePw API
CORE-12688 - Implement GetAdminUsers API
CORE-12703 - Updated description for customfield returned with GetProducts API
CORE-12728 - Disallow publish action if status is not Draft for UpdateInvoice API
CORE-12732 - Correct erroneous variable usage in ModuleChangePackage API
CORE-12777 - Prevent spurious error when refunding transactions created via AddTransaction
CORE-12841 - Correct documented input for AddTicketReply API
CORE-12863 - Allow ordering domains in Grace and Redemption status via AddOrder API
CORE-12864 - Implement UpdateTicketReply API
CORE-12865 - Provide timeline data argument for GetStats API
Languages
CORE-12669 - Improvements for client area French translation
CORE-12687 - Improvements for client area Turkish translation
CORE-12695 - Improvements for Portuguese-pt translations
CORE-12716 - Improvements for Spanish translations
Version 7.7.0 Release Candidate 1
Implemented
CORE-12911 - Add Dejavusans font option for invoices
CORE-12992 - Add toggle to control rendering of Tax ID/VAT Number field on various client UIs
CORE-13012 - Include tax id fields for intelligent search queries
Maintenance
CORE-8289 - Optimize sequential invoice increment logic to mitigate race condition
CORE-12877 - Correct link provided in "License Limit Near" notification email
CORE-12913 - Distribute only one copy of Fontawesome in assets/
CORE-12943 - Correct various module logo files and itemization in manifest
CORE-12944 - Add module selection to Create New Product UI
CORE-12953 - Improve mobile and tablet display of Apps and Integrations
CORE-12954 - Improve admin area pagination styling
CORE-12956 - Ensure related service for a support ticket always shows at the top of the ticket list
CORE-12957 - Do not show assigned tickets at the top of ticket queue for non active ticket queues
CORE-12958 - Allow cancellation requests to be sorted by both date created and date due
CORE-12961 - Correct form labels in new Tax Configuration UI
CORE-12972 - Correct relative links provided in IntelligentSearch
CORE-12973 - Ensure client modification of Tax ID is saved
CORE-12976 - Ensure Tax ID field is appropriately rendered on register page
CORE-12982 - Ensure module parameter "serversecure" returns boolean as documented
CORE-12986 - Correct view construction for client product/services pages
CORE-12988 - Correct CodeGuard landing page links
CORE-12989 - Correct client custom field search
CORE-13009 - Prevent incomplete Google reCaptcha settings from enforcing captcha
Modules
MODULE-6650 - Ensure Connection Test for DirectAdmin can function using reseller credentials
MODULE-6923 - Update Yubikey API for v2
MODULE-6927 - Remove DotDNS registrar module
MODULE-6928 - Remove ResellOne module
MODULE-6934 - Ensure one time payment is offered for overdue invoices using 2Checkout inline
MODULE-6937 - Correct URL for GoCardless onboarding redirect logic
API
CORE-12964 - Ensure "ResetPassword" is available within "Manage API Roles"
CORE-12618 - Ensure skipvalidation does not affect email constraint of AddClient API
CORE-12979 - Document "invoiceid" input parameter for UpdateInvoice API
CORE-12980 - Correct documentation formatting for SendEmail API
CORE-12981 - Correct documentation for AddOrder API
Version 7.7.0 General Availability
Security
CORE-12787 - Correct WHMCS Installer input processing
CORE-12796 - Correct Twitter data processing
CORE-12814 - Improve date parameter processing
CORE-12838 - Correct email template policy
CORE-12843 - Update Smarty to correct a template processing issue
CORE-12853 - Update TCPDF to 6.2.22
CORE-12879 - Correct variable usage when rendering admin affiliate overview
CORE-12928 - Correct knowledgebase input validation
CORE-13057 - Correct logic for aggregate search fields
CORE-13073 - Improve input sanitization for API
Maintenance
CORE-8228 - Ensure ticket tag cloud aggregates regardless of status
Also known as: CORE-12894
CORE-8419 - Prevent erroneous redirect when selecting a product bundle whose first item is a domain
CORE-10540 - Ensure $totalcredit merge field is in client's currency when viewing admin invoice as client
CORE-11990 - Correct display of One Time Addons billing cycle in Product Details Tab
CORE-12526 - Correct cron report summary for auto suspension count
CORE-12655 - Correct Pending Transfer sync for ResellerClub
CORE-12672 - Ensure "Don't show this again" is honored for "Approaching Client Limit" notifications
CORE-12870 - Do not display cancellation option for Free and One Time products in client area
CORE-12932 - Ensure all Setup nav items are present for contextual sidebar
CORE-12960 - Implement SSL Certificate Monitoring report
CORE-13019 - Update syntax for PHP 7.3 compatibility
CORE-13024 - Prevent erroneous auto renew opt-in when enabling registrar lock
Also known as: MODULE-6925
CORE-13027 - Correct title for Domain Registrations
CORE-13028 - Correct currency display in Service/Addon/Domain Lists
CORE-13029 - Prevent erroneous redirect when sorting by column on Admin Area pages
Also known as: CORE-13058
CORE-13032 - Prevent PDO exception when sorting by Price on Domain Registrations
CORE-13039 - Prevent spurious form action on Configure Domains
CORE-13042 - Ensure links in Tweets are parsed
CORE-13050 - Prevent error when viewing cart which does not support captcha
CORE-13062 - Improve CSS for Hide Inactive Clients toggle
CORE-13069 - SSL Status Monitoring UX improvements
CORE-13076 - Ensure valid target upgrade product
Modules
MODULE-6796 - Prevent duplicate log and notification when using 3DSecure with SagePay Tokens
MODULE-6883 - Update check graphic used by banking modules
Also known as: MODULE-6318
MODULE-6910 - Correct fraud check behaviour for 2Checkout
MODULE-6924 - Ensure Domain Name custom field is saved for ResellerClubSSL
MODULE-6935 - Revise secure connection required notice in GoCardless usage notes
MODULE-6944 - Ensure BluePay eCheck reference is stored for recurring billing
MODULE-6946 - Correct URL for GoCardless onboarding redirect logic
MODULE-6948 - UX and text refinements for Apps & Integrations
MODULE-6950 - Improve UX of BitPay activation
API
CORE-13025 - Prevent error with searching only by 'status' for GetInvoices API
Version 7.7.1 Maintenance
Maintenance
CORE-13080 - Update WHOIS server for .vc, .vg, .tc
CORE-13081 - Improve jQuery selector used by stripe.js for better template compatibility
CORE-13102 - Correct logic for re-verification of client email on admin change
CORE-13105 - Correct ticket attachment aggregation utilized for storage migration
CORE-13106 - Ensure Custom Invoice Numbering is applied to all created invoices
CORE-13107 - Improve file migration error display
CORE-13116 - Correct tax rate inconsistency on new invoices
CORE-13119 - Correct due date assignment on manually generated invoices
CORE-13120 - Improve SSL certificate validity detection
CORE-13124 - Correct same-directory name collisions for analyzed storage configuration settings
CORE-13127 - Update WHOIS server for .ch
CORE-13131 - Prevent DOM error in Chrome for activating a payment gateway
CORE-13132 - Ensure Predefined Products can be applied to quotes
CORE-13134 - Improve UX for invalidated storage configurations
CORE-13141 - Correct captcha validation for ticket form submissions
CORE-13143 - Prevent PDO exception when sorting by Service Addon name
CORE-13144 - Correct goto parameter usage when authenticating via AutoAuth
CORE-13145 - Correct application of login captcha settings for AutoAuth authentications
CORE-13146 - Correct ordering of service list on tickets
CORE-13149 - Optimize and improve resilence of queries in SSL Sync cron task
Also known as: CORE-13147
CORE-13151 - Prevent widget minimization from affecting layout location
CORE-13152 - Correct missing details in Setup Advance Mode for CodeGuard
CORE-13158 - Correct display of attachment not found error when sending templated email
CORE-13177 - Correct custom module categorization in Apps and Integrations
CORE-13179 - Correct view construction for Client > Service Addons and Client > Domain Registrations pages
CORE-13181 - Update WHOIS server for .ca
CORE-13186 - Ensure admin area addons search returns appropriate results
CORE-13189 - Correct error when attempting to generate PDF invoices using dejavusans font
CORE-13140 - Correct compatibility issue with automatic updates in PHP 7.3
Addons
PMA-136 - Correct trigger for invoice data snapshot generation
Also known as: CORE-13121, CORE-13122, CORE-13139
PMA-137 - Provide fallback logic for environments which cannot detect browser-viewable attachment content
Modules
MODULE-6598 - Ensure Nominet shows TAG Change option when AllowClientTAGChange is enabled on module settings
MODULE-6949 - Correct invoice payment record for non-hosting with 2CO Inline
MODULE-6957 - Correct admin area JS error trigged by subscription cancellation associated with 2CO
MODULE-6961 - Assert required format of CA postal codes with Namecheap API
MODULE-6962 - Update fallback logic to account for inconsistent PayPal transitory subscription id schema
MODULE-6965 - Add support for Payments Cancelled events with GoCardless
MODULE-6966 - Ensure CodeGuard services show in Manage dropdown of client area
MODULE-6967 - Ensure Existing Domain addon selection is limited to applicable products
MODULE-6969 - Correct tax application for overdue or custom invoices with 2CO
MODULE-6971 - Prevent error for completed transaction with PayJunction
MODULE-6972 - Correct Disk Space value of Professional plan on CodeGuard Upgrade page
CORE-13078 - Update Slack logo
CORE-13172 - Prevent error when performing delete on release via Nominet
API
CORE-13101 - Return replyid in replies data of GetTicket API
CORE-13138 - Ensure currency data is provided in response of GetInvoices API
Also known as: CORE-13047
Languages
CORE-12832 - Update client Italian translation
CORE-12987 - Update client Hebrew translation
CORE-13085 - Correct client German translation
CORE-13118 - Update Hungarian translations
Also known as: CORE-13030