Changelog Latest release 30 days ago
Overview
With this release, one of the most significant, we introduce the following updates:
- Extended compatibility with WHMCS 8 while maintaining backward support for versions 5, 6, and 7
- Support for PHP 8.2, ensuring compatibility with all versions starting from PHP 5.6
- Completely rewritten translations, now even more detailed and comprehensive
- New features and improvements, aimed at optimizing the user experience
- Complete code review, with numerous fixes addressing hundreds of errors and thousands of warnings due to the new PHP 8.2 specifications
- Full retesting of all module functionalities
- Automatic rollback in case of issues after a module update, providing clear error details and ensuring operational continuity
- Redesigned Widgets and frontend, ensuring full compatibility with all Bootstrap frameworks supported by WHMCS, including templates based on Twenty-One and Six
In the upcoming releases, we will make available a system that allows adding small panels in the sidebars of the News, Documentation, and Lab sections. These panels will randomly display your products. This feature is already integrated into the module; we just need to publish an article explaining how to use it.
- The module has been successfully tested on WHMCS 8.12, the latest available version, and with PHP 8.2, which is the most recent version officially supported by WHMCS
- If the module update fails, you will no longer end up with an unusable admin area due to a Fatal Error on screen. The module will automatically roll back to the most recent working version
- Along with the rollback, a helpful message is displayed showing what information you need to send us in the support ticket to help resolve the issue
- A large number of module texts, both in English and Italian, have been rewritten from scratch. This is particularly evident in the module settings. Previously, we used short and generic descriptions, referring to the documentation for more details. Now, based on feedback received, we have changed our approach. Going forward, descriptions will be longer and more detailed to provide clear and comprehensive information
- There is now greater consistency in the behavior of selective deactivation for the News, Blog, Lab, Documentation, Live Demo, and Changelog modules. For instance, if you deactivate the News module, all nested functions and Widgets will automatically adjust to reflect the global setting
- Clear and direct notifications have been added to inform users of the need to enter the Integration Code to enable multi-domain functionalities
- In the Lab, we’ve added the same functionality already available for News, Blog, and Documentation: the ability to manage custom SEO URLs with multilingual support
- Autocompletion has been removed from the Name and Email fields for visitors submitting comments (if the feature is enabled), as it was inconvenient to find browser-saved credentials appearing incorrectly
- Regarding software functionalities (Changelog, Live Demo), the option to specify a general address where users are encouraged to make a purchase has been added. If no address is provided, the module will avoid displaying this Call To Action
- A new Widget has been added that displays a panel, similar to those for News, recent tickets, invoices, etc., showing random Blog posts. This Widget is useful for enhancing user engagement and retention
- The main pages of the Documentation and Lab sections have been completely redesigned. New texts, enhanced graphical effects and additional data have been introduced, presented more clearly and effectively than before
- Improved several core classes to enhance efficiency. Subsequently, many lines of code were reviewed to address the numerous PHP warnings generated by PHP versions 8.2 and later
- Updated the HTML code of the WHMCS frontend to ensure module pages display correctly on newer Bootstrap versions (templates based on Twenty-One), while maintaining backward compatibility with older versions (templates based on Six)
- The alert notifying users of the need to make a payment in order to access the benefits of opening a paid premium ticket has been improved
- The integration with Invisible reCAPTCHA and protection systems has been improved, further reducing the number of spam comments submitted by bots
- Numerous improvements have been made to the multi-language translation management functionality, aligning it with the latest PHP 8.2 specifications and above
- In the latest versions of WHMCS, the Metatag functionality, which allows defining the title and OG Tags (including the image) directly from the interface, was not working due to an issue with the script that injected the corresponding code
- When no additional language is specified beyond the default one, the black button for content translation is no longer displayed
- The Installer now better takes into account WHMCS default values, automatically pre-filling some module settings
- A complete overhaul of the .htaccess rules, making them more efficient, accurate, and concise
- A complete overhaul of the URL rewriting functionality, as the previous version caused many warnings with modern PHP versions
- Deep changes have been made to all Widgets, which have been retested to ensure proper functionality with both the latest and older versions of Bootstrap. This ensures greater ease of use, as there is no need to worry about compatibility: the Widgets work under all conditions
- Unlike other sections (News, Blog etc.), the Documentation section is now sorted by the last modified date rather than the creation date. This is because Documentation articles, unlike news posts, are subject to continuous updates
- To make everything clearer, all modals dedicated to the descriptions of the various Widgets now contain detailed descriptions rather than generic ones
- All Panel Widgets (News, Blog, Documentation, Lab, Changelog) now support a minimum of 1 and a maximum of 5 displayed items, instead of 2 to 5
- Previously, the most requested task by users (the one with the most votes and comments) was assigned a percentile value of 100%, which was somewhat unclear. Instead, the most requested task should have a value of 1% to better reflect its actual weight compared to less popular tasks. Therefore, the calculation script has been revised, corrected, and inverted in its logic. The corresponding translations explaining the meaning of the percentile value to users and visitors have been updated accordingly for better clarity
- Over the years, after more than 60 releases, the module needed a reorganization of its settings. Many were unclear, especially those related to the integration codes for Widgets, which were either hard to find or completely undocumented. We have completely revamped the settings, providing detailed and high-quality descriptions. Additionally, we introduced dozens of highly informative modals that not only provide code snippets to integrate Widgets into your client area but also include previews, allowing you to see the visual result before implementing them
- The module used PHPMailer, the PHP library for sending emails, in a way that caused a Fatal Error on WHMCS 8. We have fixed the issue, ensuring compatibility with WHMCS 8, while also maintaining backward compatibility with WHMCS 5, 6, and 7
- In the settings, Sliders allowed a null value, leading to errors in the frontend pagination of content, which could not be displayed correctly
- Conversion of all tables from the MyISAM engine to InnoDB
- When multiple premium tickets were present, the links in the dedicated Widget (the notification informing the customer of the need to make a payment for priority) always pointed to the same invoice, specifically the one associated with the first unpaid premium ticket. Additionally, the notification was also appearing on standard tickets. With this fix, the notification now only appears on premium tickets, and each one points to its corresponding invoice
- When submitting comments, requests, and bug reports, the antiflood system sometimes triggered incorrectly, blocking legitimate actions
- Some of the Sliders used to adjust the number of items displayed in the Widgets were linked to the wrong Widget, causing certain Widgets to be unconfigurable in terms of the number of items displayed
- When no administrator had filled in their profile with an alias, avatar, and role, frontend pages with the comment functionality enabled would display an error
- In some cases, it was not possible to post comments. The issue has now been resolved, and comments can be posted by admins, registered users, or visitors (if the option has been enabled)
- The nonexistent vibrant-ink.css file has been permanently removed, along with its reference
- The confirmation notice for comment approval was not displayed
- The Client Releases Widget, which displayed only the releases of software actually purchased by the client, never produced results because it was based on an incorrect variable
- A fix addressed the issue where the Katamaze licensing server was incorrectly registering unknown domains as valid
- Numerous improvements were made to the Input functionalities (textarea, uploader, text, password, slider, datepicker, etc.), which previously caused many warnings due to the new specifications in modern PHP versions
- The issue with some Define variables shared between Mercury, Billing Extension, and Commission Manager, which caused conflicts, has been resolved
- The DateBeautifier functionality for PHP 8 did not correctly convert the date format
- The Packages page caused a fatal error due to the execution of a query that contained a filter parameter, which was not actually intended
- In the backend, individual News and Blog posts associated with multiple categories were counted multiple times, once for each category. The count has now been corrected: an article in 2 categories will be counted as 1 instead of 2
- The queries populating the Widgets had some imperfections that could potentially cause the Widgets to display fewer items than configured
- Potential error during the execution of the daily cron due to the FlushDirectories function
What's Next
Going forward, except for urgent issues requiring immediate attention, we will release less frequent but more substantial updates.
We will put greater focus on crafting more detailed changelogs like this one, with extended explanations and comprehensive screenshots.
- Javascript error causing scroll-to-top animation to break
- PDO Exception: DOUBLE value in Uploads
- Fatal error on Validations
- Clientarea translations (English and Italian)
- 3 fatal errors in clientarea occurring on newly installed WHMCS where there were no initial data to feed some functions
- Settings > AdSense. One setting was showing before AdSense activation
Overview
We are making a slight change to the banning feature we added in the previous version 1.5.3 for comments.
Banned IP addresses can still read news, blog posts and article of documentation. The banning part takes action only when it comes to submitting a comment.
- Comments. Banned IP can still read articles. They simply can't submit comments
Overview
As you probably already know, Mercury integrates comment section right below news, blog posts and documentation.
The module can stop most of spam incorporating Google reCAPTCHA and Invisible CAPTCHA.
With this release we give you a new weapon to use against spammers. We're talking about IPv4 and IPv6 bans.
- Create bans on the fly in one-click from Comments sections of WHMCS administration
- Load your list of bans from Settings (one IP per line)
- Create as many IPv4 and IPv6 bans as you want to stop spammers
- Store visitors' IPv4 and IPv6 when they post comments
Overview
This release addresses the problem of slow loading pages on some systems running WHMCS v8.x.
- Page loading time
- Permalinks. The module now redirects using 301 (Moved Permanently) instead of 302
- Updated countries.json file
Overview
This is a major release where we add a lot of great features. We start with Google AdSense, fully configurable Categories for news, blog, docs and lab.
The icing on the cake is the possibility to define titles, meta descriptions and OG descriptions for WHMCS pages and custom ones from interface.
- Integration with Google AdSense
- New clientarea page for FAQ
- New pages to manage multi-language categories (news, blog, faq) and metadata
- Categories support the following parameters: title, label, meta description, OG description, icon, tagline
- New page from which you can define multi-language titles, meta description and OG tags for any page of WHMCS (custom and default ones)
- Database structure changed to store articles longer than 65.535 characters
- Attach up to 250 images and files for each article instead of 50
- Minor template and CSS tweaks
- Settings page. We were using an excessively complex variable declaration that was not working on older versions of WHMCS
- Minor improvements (366 DBV)
- The module automatically strips HTML tags from Meta descriptions and OG descriptions
- Settings > Utilities renamed Various
- The module no longer relies on language variables to handle news and blog categories
- Pagination showing wrong number of records
- Incorrect URL in documentation for Structured Data and OG Protocol
- Lab has been redesigned from scratch with new sidebar, widgets, features and styling
- Image/icon support for Widget > Random articles of Documentation
- Lab. Character counter when writing titles (SEO)
- CSS styling for featured images and translations
- Lab > Rate. Customers can no longer rate cancelled projects
- PHP error in Lab
- Totally renovated Live Demo page
- Blog, News and Docs sidebars. There's now a message when there's nothing to show instead of an empty box
- New Widget to display randomly selected articles from documentation
- FontAwesome icons, translations, CSS, Widgets
- Customizable titles and meta descriptions for Blog, News, Docs, Live Demo (main pages)
- Smarty error in Addons > Mercury > Settings
Overview
The module now allows to hide/display categories names from titles for articles of documentation.
- Documentation. New option to hide/display category name from page title
- Full support for custom SEO Friendly URLs in JSON-LD Structured Data
- JSON-LD Structured Data (dateCrated, datePublished, dateModified)
Overview
Some improvements to multi-language SEO Friendly URLs. There's also a new feature that shows you the optimal title length when writing article.
- Option to display blog posts ordered by Last Updated instead of Creation Date
- Filter by Last Updated available for news, blog posts and documentation
- Custom SEO URL not working for documentation due to a typo