Leaderboard
Popular Content
Showing content with the highest reputation since 11/27/25 in all areas
-
While I understand that bugs are part of any Release Candidate cycle, it's concerning that we are still discussing basic optimization issues like proper OPcache support. And let's not even get started on the fact that we still don't have 100% native Nginx support. This becomes particularly ironic with the introduction of the new WHMCS Cloud Solution. With cloud hosting, the resource costs are on their side, so you'd think they'd be rushing to support Nginx to reduce their own infrastructure expenses. It's like being sold a high-performance engine but being told you have to power it with hamster wheels. Maybe once their bills start rolling in, Nginx support will suddenly become a priority. This all points to the bigger issue: the development velocity. Core development feels like it's just about "keeping the lights on" (PHP/ionCube updates) rather than actual innovation. This stagnation has allowed third-party developers like ModulesGarden to build entire businesses by selling us functionality that should have been in the core a decade ago. When you look at the "Total Cost of Ownership" license fees + necessary third-party modules, the value proposition is slipping. Newer platforms like Upmind are entering the market with an API-first architecture and modern features built-in from day one. If WHMCS continues to outsource innovation to the community while raising prices for maintenance updates, that competitive threat is going to become an exodus very quickly. We need core features that match the modern hosting landscape, not just compatibility patches.3 points
-
Okay, maybe I was too quick about credit notes. It seems a lot of the features are "coming soon™️". This is not a Release Candidate lol. This is not even alpha. This is internal development. Nothing can convince me that this release didn't just happen because WHMCS promised us a release in December.3 points
-
Yeah, except for adding AI to domain search, this release doesn't really provide on any of the other promises. Credit notes doesn't work either. When you cancel an invoice, WHMCS just adds a transaction to the invoice. If the invoice has a total of $100, WHMCS just adds a transaction of $100 and cancels the invoice. There's no credit note or anything.2 points
-
How WHMCS have set this as a RC instead of a Beta is insane. It's a huge upgrade in terms of it's impact on themes/modules. No beta, no reply from WHMCS, no forums specific to v9.2 points
-
Your process sounds good apart from WHMCS. I would never recommend trying to import tables to new files. You need to update your existing install as normal. You can update from your version but you may have more luck doing a manual update. Backup everything, upload the new v8.13 files, adjust your hosting/server settings to meet the requirements (e.g you may need to update PHP) then run the installation script.2 points
-
@BENELUX, Today's the day!! https://blog.whmcs.com/133775/whmcs-90-release-candidate-out-now2 points
-
This week or next! It sure would be nice to double the size of the engineering team temporarily for one release every few years!2 points
-
am using 8.3 version now. i migrated my whmcs to a new server. but now the crons are not wrking properly. And am getting the following messages. Remove dead screens with 'screen -wipe'. #11 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Installer/Composer/ComposerUpdate.php(0): WHMCS\Installer\Composer\ComposerUpdate->doComposerCommand(Object(Closure)) #12 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Installer/Update/Updater.php(0): WHMCS\Installer\Composer\ComposerUpdate->getLatestVersion(true) #13 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Cron/Task/CheckForWhmcsUpdate.php(0): WHMCS\Installer\Update\Updater->fetchComposerLatestVersion() #14 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Scheduling/Task/AbstractTask.php(0): WHMCS\Cron\Task\CheckForWhmcsUpdate->__invoke() #15 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Scheduling/Task/AbstractTask.php(0): WHMCS\Scheduling\Task\AbstractTask->execute() #16 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Cron/Console/Command/AbstractCronCommand.php(0): WHMCS\Scheduling\Task\AbstractTask->run() #17 /home/mywhmcs/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Cron/Console/Command/AbstractCronCommand.php(0): WHMCS\Cron\Console\Command\AbstractCronCommand->executeCollection(Object(WHMCS\Scheduling\Task\Collection)) #18 /home/mywhmcs/public_html/clients/vendor/symfony/console/Command/Command.php(255): WHMCS\Cron\Console\Command\AbstractCronCommand->execute(Object(WHMCS\Cron\Console\Input\CliInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #19 /home/mywhmcs/public_html/clients/vendor/symfony/console/Application.php(912): Symfony\Component\Console\Command\Command->run(Object(WHMCS\Cron\Console\Input\CliInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #20 /home/mywhmcs/public_html/clients/vendor/symfony/console/Application.php(264): Symfony\Component\Console\Application->doRunCommand(Object(WHMCS\Cron\Console\Command\AllCommand), Object(WHMCS\Cron\Console\Input\CliInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #21 /home/mywhmcs/public_html/clients/vendor/symfony/console/Application.php(140): Symfony\Component\Console\Application->doRun(Object(WHMCS\Cron\Console\Input\CliInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #22 /home/mywhmcs/public_html/clients/crons/cron.php(0): Symfony\Component\Console\Application->run(Object(WHMCS\Cron\Console\Input\CliInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #23 {main}[mywhmcs@hmserver ~]$ ^C [mywhmcs@hmserver ~]$ /opt/cpanel/ea-php74/root/usr/bin/php -q /home/mywhmcs/public_html/clients/crons/cron.php all -F -vvv^C1 point
-
Hey hmaddy, It is possible that some files are missing or incorrect in your installation. Likely files from different versions are present at the same time. Raise up a ticket to our support and our team will happily assist you!1 point
-
1 point
-
I must have something set up incorrectly because the Login to DirectAdmin button doesn't work if the passwords don't match. If the client changes their password on DirectAdmin then the button only directs them to the login screen on the DirectAdmin server.1 point
-
Hi WHMCS ecosystem developers! I am excited to share an early heads-up about the upcoming WHMCS 9.0 release by the end of 2025 - a major update that brings important changes to the platform’s technical requirements. As part of this release, several core dependencies will be updated, and minimum system requirements will be increased. These changes are designed to improve performance, security, and compatibility with modern PHP standards. Key Updates in WHMCS 9.0: Minimum PHP version: 8.2 Recommended PHP version: 8.3 Minimum ionCube Loader version: 13.0.2 or higher Recommended ionCube Loader version: 14.4.0 or higher Updated dependencies: A number of underlying libraries and components have been upgraded. Some notable changes include: Smarty v3.1.48 —> v4.3.4 Legacy Smarty Tags are being deprecated and will no longer function in 9.0. Smarty Template Objects (including their use in plugins) will no longer be supported. guzzlehttp v7.4 —> v7.4.5 illuminate v7.x —> v9.0 I have attached a provisional list of dependency changes to this post. Please also use this thread to provide your feedback and ask questions of the Development Team regarding these requirement and dependency changes. These changes will require action from module developers to ensure continued compatibility. We recommend reviewing your module code and preparing for updates ahead of the release. We’ll be sharing more details, including a release window, definitive changelog and developer guidance, between now and the end of 2025 to help you get ready. Thank you for being a valued part of the WHMCS ecosystem. We appreciate your continued support and look forward to working together to make WHMCS 9.0 a successful release. whmcsv90_composerlock_provisional.txt1 point
-
@WHMCS John Good news. Thanks. Are there any screenshots of the new client UI/Nexus/Search/Ordering etc.1 point
-
... and contact WHMCS support to have the development licensed reissued. ... and then rename the directory back to make your development installation match your production installation as close as possible, once this issue is fixed, and then contact WHMCS support to have the license reissued again. @WHMCS John WHMCS really goofed this RC. It's released just before the holidays and will hit stable very shortly after everyone gets back to work. I hope you understand why developers are frustrated with this.1 point
-
lol It has tons of missing features (just look at credit notes) and shipped with hardcoded paths to /var/www/html/whmcs. Not feature rich, not stable.1 point
-
Problem: I have a fairly old WHMCS installation (WHMCS 7.10.2 and PHP 7.3.3), which is now at the end of its useful life. The current WHMCS installation is used for both the website (service presentation pages, price lists, “about us,” etc.) and the customer area. (It seemed like a good idea at the time, but it’s not: it’s a mess, management is rigid, there’s no SEO optimisation, creating multilingual pages is a mess…) So I was thinking of installing the new WHMCS in a different directory (e.g., my.example.com) and developing the main site with WP on example.com. This way I could: leave the old WHMCS site running on example.com for as long as necessary develop the new customer area on my.example.com develop the new site offline Once everything is ready, I “just” need to: delete the site on example.com install the new WP site on example.com migrate the database from the old WHMCS installation to the new one set up a series of redirects in .htaccess from the old URLs to the new ones My questions are: Did I miss something along the way? Is there something I haven’t thought of? I'll need to migrate the database from a WHMCS 7.3.3 installation to 8.13… which tables do I need to migrate? Can I do it from phpmyadmin, or are there differences in the database structure?1 point
-
It would be a nightmare. A lot of add-on modules (that need to be updated too, cause of the different PHP version), and a lot of custom hooks (that also will need to be modified in order to work with a higher PHP version). I guess it will last for at least a few working days, maybe more... so the straight update is not viable. The database migration is also safest (anything going wrong during migration? Not an issue, just roll back and study how to fix it...) So, again, the original question: according to WHMCS doc the database migration is a breeze ( https://docs.whmcs.com/8-13/system/system-tutorials/move-whmcs-to-a-new-server/ ), but will it work with such a high version difference?1 point
-
1 point
-
So your point is, whmcs should prioritize modern, clear and consistent development instead of just raising prices all the time?1 point
-
It's quite bold to release an RC without any beta for a major new version. Sure not lacking confidence.1 point
-
Nexus is gonna disappoint you. It's just a reskinned Twenty One template (for the system template) and a reskinned Standard Cart template (for the cart template). It's only during checkout that it's different.1 point
-
Announcing WHMCS 9.0 Release CandidateWe're excited to announce the availability of the WHMCS 9.0 Release Candidate. This release marks the completion of feature development for WHMCS 9.0 and the final step before it becomes generally available. WHMCS 9.0 is a compliance-focused release, introducing a range of updates and enhancements designed to help businesses stay aligned with evolving regulatory requirements while continuing to deliver a seamless experience. WHMCS 9.0 includes the...View the full blog post1 point
-
ETA: Estimated Time of Arrival. By definition, not exact. 😉1 point
-
Please don't. We cannot afford yet another price increase.1 point
-
Hello WHMCS Community! I'm thrilled to announce the release of Update 3 for the Stripe Checkout module for WHMCS, developed under RackNode! This update brings even more powerful features, making it easier than ever for businesses to cater to a global audience with a seamless and secure payment process. What’s New in Update 3? Expanded Payment Gateway Support The Stripe Checkout module already supports widely-used payment methods, including: PayPal Alipay Cash App Google Pay Apple Pay Link Card In addition to these trusted options, Update 3 introduces support for a wide range of new payment gateways to help you reach customers around the globe: WeChat Pay iDEAL Bancontact Giropay Sofort SEPA Debit EPS Przelewy24 (P24) OXXO Boleto FPX GrabPay Multibanco MobilePay Revolut Pay Amazon Pay (Beta) US Bank Account (ACH) TWINT Enhance checkout conversion rates by offering localized and regional payment methods your customers trust. Selectable Payment Gateways Now, you can choose a single payment gateway to display at checkout, offering a streamlined payment experience tailored to your business needs. Key Features (As Always): Multiple Payment Method Support: Accept payments via cards, Alipay, Cash App, and more. Adaptive Pricing: Automatically convert prices into local currencies, increasing global accessibility and conversion rates. Error Handling & Secure Webhook Integration: Ensuring secure, real-time payment confirmations with robust logging and signature verification. Seamless WHMCS Integration: Easy setup with just your Stripe credentials, making it a perfect solution for hosting providers and online businesses. Why Choose Stripe Checkout Module? Global-Ready: Accessibility for customers worldwide with local currencies and payment methods. Secure & Reliable: Built with security at its core, ensuring peace of mind for you and your customers. Pricing: $49 Per Year WHMCS Marketplace Documentation: For detailed setup instructions, visit our documentation: Documentation Questions or Customization Requests? Feel free to reply here or reach out directly to info@racknode.net for any inquiries or custom development needs.1 point
-
your API call isn’t using the filter array you think it is, and you’re reading the wrong field from the response. 1103 = totalresults for all unpaid invoices (because filters weren’t applied). 25 = numreturned default page size, with no limitnum specified. $clientid = (int) $vars['params']['userid']; $command = 'GetInvoices'; $postData = array( 'userid' => $clientid, 'status' => 'Unpaid', 'limitstart' => 0, 'limitnum' => 3000, ); $getClientInvoices = localAPI($command, $postData); // , $adminuser if needed $invoicecount = 0; if ($getClientInvoices['result'] === 'success') { $invoicecount = (int) $getClientInvoices['totalresults']; } if ($invoicecount >= 1) { logActivity( 'Service renewal will be aborted for client ' . $clientid . '. It is not qualified because it has ' . $invoicecount . ' unpaid invoices - by hook_send_renewal_notice_toadmin...' ); }1 point
-
Hello, It's very easy to resolve with Hook, just do Create a hook file at: whmcs/includes/hooks/invoice-lineitem-date.php <?php use Illuminate\Database\Capsule\Manager as Capsule; use Carbon\Carbon; add_hook('InvoiceCreationPreEmail', 1, function ($vars) { $invoiceId = (int) $vars['invoiceid']; $inv = Capsule::table('tblinvoices')->where('id', $invoiceId)->first(); if (!$inv) { return; } $dateText = Carbon::parse($inv->date)->format('d-m-Y'); $items = Capsule::table('tblinvoiceitems') ->where('invoiceid', $invoiceId) ->get(); foreach ($items as $item) { $isBillableItem = ($item->type === 'Item'); if (!$isBillableItem) { continue; } $newDescription = $item->description; if (strpos($newDescription, '{DAY}') !== false || strpos($newDescription, '{MONTH}') !== false || strpos($newDescription, '{YEAR}') !== false) { $newDescription = preg_replace( '/\{DAY\}\s*-\s*\{MONTH\}\s*-\s*\{YEAR\}/i', $dateText, $newDescription ); } else { $newDescription .= " ({$dateText})"; } Capsule::table('tblinvoiceitems') ->where('id', $item->id) ->update(['description' => $newDescription]); } });1 point
-
Hello, It’s clear that there is an issue with your database configuration. First, try connecting to the MySQL database using the credentials provided in your configuration.php file and check whether the connection is successful.1 point
-
Its solved and the login issue due to the PHP session storage location was incorrect:1 point
-
I'd suggest that your average user that grabs a script like this will not change anything in it, especially since they're not (apparently) being told to. I've seen users not change a "CHANGE_THIS" in scripts, then ask why it's not working. I've also seen them ignore the "remove this file after use", so relying on that might not be advisable either. Best practice is not to spoon feed, keep this outside the publicly accessible directories, and instead of that simple URL parameter you reveal, make it a "secret key" that is defined within the script, with a note to change it (or better still they make their own that must be x long and have this or that in it; if empty, fail with "key needed"). Safety first.1 point
-
The problem is, I *do* want clients to have access to it in Plesk in case they want to use it, but I do *not* want SiteJet to take over everything for them in WHMCS as it's far more confusing to have it there than in Plesk. The problem is, what if a customer uses WordPress and doesn't know it - they're going to be super confused as to what this is and think, oh great I can edit my site right from here! And then potentially wipe out the entirety of their WordPress website when they go to publish it, or be super confused about why their site content isn't there when they open SiteJet. You *really* need to have this option only appear *if* the primary domain is already using SiteJet or has no website at all yet. Not just blanket for every hosting plan. How do I access the hosting plan / services list on the Client Area dashboard with this? Is it considered a sidebar? Yes, I understood this from the documentation. And this is great for people who don't want SiteJet anywhere, ever. But why should it be all or nothing? If you truly want people to start using SiteJet, then don't only provide the option to force it everywhere or have it nowhere at all - allow us to choose where we want it to be displayed. And given that WHMCS doesn't have awareness of addon domains or subdomains within a hosting plan, having these options in WHMCS is kinda useless for anyone but the customer with a single domain, and a single website, who only wants a site builder and not other solutions like WordPress or Magento. Meanwhile having the SiteJet option in Plesk makes perfect sense because then the customer can choose on which domains or subdomains they wish to use it. Yet you're saying that to hide it in WHMCS I have to disable it in Plesk too, so customers can't use it at all...1 point
-
sure it's just there's still some work going on in the background, I still have to print domain info properly in WHMCS whois lookup and so on, well there might be some unreturned information in upcoming days cuz as I said above there's still work going on for method that whois calls, but here's the working whois that you can write in your whois.json file if you need .ge domain registration { "extensions": ".ge,.com.ge,.net.ge,.org.ge,.edu.ge,.pvt.ge", "uri": "https://whois.ns.ge:443/index.php?domain=", "available": "NO OBJECT FOUND!" }1 point
-
which is the definition of a lookup provider. all i'm saying is that WHMCS 7 is designed to either use whois, or a lookup provider, for ALL TLDs - you can't mix and match, e.g this module for .ge, but whois for .com - you have to put all your eggs in one basket.1 point
-
0 points
-
I don't know, I gave up. WHMCS shipped the v9.0 RC with hardcoded links to /var/www/html/whmcs in the Nexus cart assets. It attempts to load Node modules but these were not part of the version they shipped. The cart doesn't work. The Nexus template's all.css file has this, so I assume it's Bootstrap 4. /** * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches. * * @version v4.0.0-alpha.1 * @homepage http://www.bootstrap-switch.org * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu) * @license Apache-2.0 */ I think WHMCS just rushed this release because they promised a release in December. This release is so botched. They've technically delivered on their promise, but yeah...0 points
-
-1 points
-
The Nexus theme have this bootstrap file: /whmcs/templates/nexus/sass stat ../../../node_modules/bootstrap-four/scss/bootstrap stat: ../../../node_modules/bootstrap-four/scss/bootstrap: stat: No such file or directory /*! * WHMCS Twenty-One Theme * Global Stylesheet * Copyright (c) 2020 WHMCS Limited * https://www.whmcs.com/license/ */ @import "../../../node_modules/bootstrap-four/scss/bootstrap"; @import "global"; @import "forms";-1 points
