Changelog Latest release 7 days ago
Summary
Fixed a false positive that triggered an error message about a missing "transaction." Additionally, several other bugs have been resolved.
- Version 2.2.197 marks a turning point for the update system. If you are updating the module from an earlier version and encounter an error, the error message (see attached screenshot) will clearly indicate the correct procedure to follow in order to resolve the issue. Once you upgrade to version 2.2.197 or later, this specific procedure will no longer be required
- Fixed a bug in the PayPal Subscription Check function that prevented active subscription details from being displayed on the invoice, thereby avoiding the risk of the customer making an additional PayPal payment and creating an overpayment
- Fixed an issue in the integration with the Digiting intermediary for Italian electronic invoicing, which prevented the import of events associated with each XML file
- Resolved an issue that was causing a false positive error: There is no active transaction
Summary
We have introduced a new feature to maintain a cleaner accounting process by addressing some minor issues caused by WHMCS. Additionally, a bug that led to the incorrect processing of suppressed invoices has been fixed. While not a serious issue, it was certainly an annoying one.
- New system for managing proforma invoices that have no line items or amount. In some cases, WHMCS removes line items from proforma invoices. Although this is done with good intentions, it can cause issues, as customers may receive payment reminders for proforma invoices with no line items or due amount. The new feature identifies these proforma invoices and allows you to decide on a series of actions to take at your discretion
- The functionality that corrects paid invoices that WHMCS failed to mark as such, leaving them as proforma and omitting renewals, has been improved. As discussed in the previous changelog, this issue can occur naturally due to various factors. The rules governing the automation that handles this process have been refined to avoid certain false positives
- The update system introduced in version 2.2.197 has been improved. Now, the module stops the process after the first failed attempt, avoiding repeated updates on each page load. Once the fix is available, you can instruct the module to repeat the update with a single click
- When an invoice suppression occurred in the WHMCS backend, the dedicated page was no longer displayed, and an error screen regarding the invoice ID not found appeared instead. This issue also prevented the transaction, along with the reasons for the invoice suppression, from being recorded on the Billing Extension > Payments page. The problem, introduced in 2.2.197, has been resolved. Unfortunately, it is not possible to recover the data that was not recorded, but this event had no other implications aside from the missing transaction registration on the aforementioned page
- The alert notifying the failure to activate the Apply Tax checkbox, introduced in version 2.2.197, was appearing on pages where it was not intended to. The issue has been resolved
- A minor issue in version 2.2.197 has been fixed, where a setting could have been displayed in the wrong order
- The description of the Proforma Status Correction feature contained inaccurate information. The check is performed after each execution of the WHMCS Cron Job, typically several times per hour, rather than once a day with the daily Cron Job, as previously indicated
Summary
Update Available: Minimum Required Version 2.2.100 (Released in 2019).
If you are using an older version, please contact us for assistance with the update.
With version 2.2.197, one of the most significant releases ever, we celebrate 10 years of Billing Extension with major improvements:
- Extended compatibility with WHMCS 8, while maintaining support for versions 5, 6, and 7
- Support for PHP 8.2, with backward compatibility for all versions starting from PHP 5.6
- Completely rewritten translations, now more detailed and comprehensive
- New features and improvements, aimed at enhancing the user experience
- Full revision of 26.144 lines of code, with numerous fixes to address hundreds of errors and thousands of warnings caused by PHP 8.2 specifications
- Complete re-testing of all module functionalities
- No more Fatal Errors after module updates: in case of an issue, an automatic rollback is performed, with details on the problem and guaranteed operational continuity
- The module has been successfully tested on WHMCS 8.11, the latest available version, and with PHP 8.2, which is the most recent version officially supported by WHMCS
- The plugin previously known as Processing Fees has been renamed to Payment Gateways Customizer. In addition to being redesigned, it now includes a new feature that allows you to enforce a payment method based on the invoice amount specifically for clients from the countries you specify
- A feature has been added to the VIES, upon request from several accountants, that automatically enforces tax exemption (Tax Exempt) for all UK clients who have provided a Company Name. Conversely, the exemption is removed if the client deletes the Company Name. We recommend caution when using this feature, and it should only be enabled if explicitly advised by your accountant
- 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
- Added a warning that notifies you if the Apply Tax checkbox is disabled when saving a Product/Service. If this happens, an on-screen alert will remind you to activate it, ensuring that you don't start selling a product without VAT. Obviously the alter che be skipped and also applies to Product Addons
- 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
- Send an email notification to administrators or specified roles when the module detects and corrects a proforma whose status has not been updated from Unpaid to Paid despite the payment being made. This setting can be found under Settings > Billing Preferences > Notify Proforma Status Correction (Staff)
- On the Business Profile page, we have implemented security features. In addition to the existing protection that prevents the deletion of all profiles, since it is not possible to operate without them, we have introduced a new functionality: when all profiles are deleted, the oldest profile is not only retained and used as the default, but all its settings (name, logo, invoice header, and country) are immediately applied to the system. Previously, manual intervention in the database was required to rectify the situation, but now this process is automatic
- New control mechanisms have been implemented in the Company Profile page. Since certain module functions and plugins are closely tied to your business location (eg. VIES, electronic invoicing, ABN & RCTI Lookup), from now on, changing the country will automatically disable any related functions and plugins. For example, switching from Italy to Australia will remove VIES and electronic invoicing if they are enabled
- For Italian Electronic Invoicing, the XML download management has been redesigned, including the bulk download of Zip files. Processing no longer creates a local temporary file on disk but instead uses PHP's temporary memory. This ensures faster execution for small files, such as XMLs, which are processed entirely in the server's RAM. Only larger files, such as Zips containing thousands of XMLs, will be temporarily stored on disk
- In the generation of the XML for Italian Electronic Invoicing, the error notification on the invoice view has been updated. The message has been upgraded from Warning (yellow) to Danger (red), and all error descriptions have been rewritten to be more direct and concise
- Regarding Italian Electronic Invoicing, all the numerous texts related to the functionality have been reviewed, along with those of the entire module, with extra attention given to avoid annoying redundancies. In other words, if you are using Italian Electronic Invoicing, it is clear that you are not using invoicing from another country. Therefore, it becomes redundant to repeatedly state that, for example, an error is related to Italian Electronic Invoicing
- In the generation of an electronic invoice (Italy), the function that verifies the validity of the postcode has been made more permissive. Previously, entering the postcode with spaces was considered an error. From now on, spaces will be ignored, and only the numeric part of the postcode will be considered. All other validations on the field will still apply
- When the Invoice Restrictions setting is set to either Edit or Delete, the Page Replacements setting is automatically enabled. This is necessary because from the standard WHMCS pages, it would still be possible to use Edit and Delete, bypassing the configuration
- 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)
- On the Cash Flow page, the last column appeared to be an error as it seemed empty. In reality, it displays an icon corresponding to the entries for which you have entered a description; clicking on this icon opens a modal that shows the description. To avoid initial confusion, from now on, the icon will always be visible and will be clickable and active only when there is a description to display
- The Company Profile page has been renamed to Business Profile only in English
- Domain Repricing plugin has been renamed as Automatic Domain Repricing
- LinkedIn Insight Tag plugin has been renamed as LinkedIn Ads Tracker
- Facebook Pixel plugin has been renamed as Facebook Ads Tracker
- Australian Toolkit plugin has been renamed as ABN & RCTI Validation
- WebService plugin has been renamed as Billing API Service
- Invoice Archiving plugin has been renamed as PDF Auto Archive
- Tax Stamp plugin has been renamed as Revenue Stamp
- The settings of the recently renamed Revenue Stamp plugin have been reorganized to provide a more streamlined and intuitive configuration process
- The Processing Fees plugin has been renamed to Payment Gateways Customizer to better reflect the new features
- Over the years, after 280 releases, the module needed a reorganization of its settings. Some appeared when they were not necessary, while others had even disappeared. We have reviewed all of them, restoring those that had been lost over time and creating the appropriate dependencies so that certain settings, which depend on others, are only displayed when needed Settings are now conditional
- The Processing Fees of the Payment Gateways Customizer plugin (formerly known as Processing Fees) were mistakenly applied to invoices that did not yet contain any items
- 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
- On systems with taxation enabled for Add Funds invoices (also known as Credit Notes), a particular scenario could cause an incorrect VAT Credit Return (money that WHMCS may return to the customer to avoid double taxation). Specifically, if an invoice had credit applied and included at least one invoice item with a negative amount, it resulted in an incorrect VAT calculation
- The setting Settings > Invoices > Invoice Due Date no longer appeared on the corresponding page
- The setting Settings > Clientarea > Minimum Days for Low Credit Alert no longer appeared on the corresponding page
- In the Italian Electronic Invoicing system, issuing Credit Notes with negative items (discounts) would result in error 2.2.2.5 (Taxable Amount not calculated according to specifications) because the negative sign was not included. The module now takes this into account
- Fixed a fatal error on the module's Terminations page in the WHMCS backend that was preventing access to it
- Syntax error during the test email sending in the Enhanced Renewals feature
- The missing translations for the events of the LinkedIn Insight Tag plugin, such as Purchase, Page View, and Add to Cart, were not only absent but also caused PHP warnings
Developer notes
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.
Summary
The following releases will be focusing on improving the way updates are delivered to overcome fatal error (database) that from time to time occur during updates.
- Fatal Error during cron
- Fatal error on Validations
- PDO Exception: DOUBLE value in Uploads
- Error updating to 2.2.194
Summary
Refactoring of Processing Fees plugin that charges transaction fees to endusers depending on payment gateway in use. It can be used on individual customers or globally.
- Still in Processing Fees settings we removed dropdown with all customers since it was too much complicated to use. You can now define customers on which you want to charge fees directly from their profiles
- Updated settings for Processing Fees plugin. Now there's a toggle (enable/disable) to charge fees globally
Summary
Added private notes on invoice view where you can store details that unlike standard notes of WHMCS are not visible to customers.
- Invoice private notes
Summary
Big news if you're using Italian electronic invoicing. From now on for every invoice line you can easily define:
- CUP code
- CIG code
- Lettera di Intento (protocol number and date)
- Italian electronic invoicing. Possibility to define lettera di intento for every invoice item
- Italian electronic invoicing > Causale Cliente removed since it is no longer needed
- Italian electronic invoicing > Invalid XML file with multi-line invoices when using Lettera di intento
- Fatal Error - TypeError in Warnings (Hooks.php)
Summary
For Italian Electronic Invoicing we improved the handling of customers with "Lettera d'intento" so that the module automatically issues XML files including both "numero protocollo" and "numero progressivo". For more details please read documentation.
- Italian electronic invoicing > Lettera di intento
Summary
We're aware of an issue with XML (Italian Electronic Invoicing) not issuing the correct "Natura" parameter is some occasions. We will address this problem soon in the next release.
- Invoice View (Backend). Credit Note badge next to invoice items not always shown
- Processing fee. Invoice description containing debug variables that weren't meant for official release
- Terminations page. Notes not saving due to a conflict with another modal
- Fixed some compatibility issues on PHP 8.1+
- Fatal error in Payments page when using search