Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 01/20/25 in all areas

  1. 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.
    4 points
  2. 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.txt
    3 points
  3. 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
  4. 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
  5. 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
  6. 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
  7. @BENELUX, Today's the day!! https://blog.whmcs.com/133775/whmcs-90-release-candidate-out-now
    2 points
  8. 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
  9. @stormy, I'm glad to hear the e-invoicing feature will be a real value add for you. We are working with expert solution-providers in this space, so we're confident about delivering an easy to use and compliant solution with the broadest coverage. @andp97, Yes, by the end of the year in a pre-release version of WHMCS you will have access to this new feature. This bullet point actually describes two significant features which we're very excited about: 1. A RESTful API which provides access to the product catalogue and shopping cart logic. This will provide a suite of new endpoints to get product catalogue information, add, manipulate and get information about items in the cart (including price breakdowns and totals) and much more, all without touching the cart.php file or PHP session data. This means that power users could create their own highly-bespoke frontends whilst WHMCS handles the maths in the background, before seamlessly passing visitors to the checkout page to complete payment. 2. A brand new thin client powered by the aforementioned new API capabilities, providing a thoroughly modern purchase experience based on Vue.js. I've attached a sneak peak below. The new BuyFlow is a compiled Single-page application, meaning the layout isn't manipulated through templates, but you will be able to customise the colours to match your theme through a custom.css overrides file. The shopping cart as it exists today (cart.php and order form templates) isn't going away and will still be available if you'd like to stay with the familiar experience. Stay tuned to our blog and socials over the coming weeks for more information!
    2 points
  10. Hi @venkat.j, The current latest version is 8.13. This behaviour suggests the dates were set to 00/00/0000, either by an admin (in which case there should be an entry in the client's Log tab) or by a rogue after-market module (in which case there probably wouldn't). You can edit the date fields to set the actual dates and click Save Changes. The correct dates will be stored.
    2 points
  11. Hi all, In 8.13 a small improvement was made to the accounting of refunded mass-pay invoices. Prior to this the totals of mass-pay invoices were included in the overall income statistics, but now they are excluded as it's already accounted for by the original invoices.
    2 points
  12. But you did ask them, and not by just posting here? EDIT: This is a bit old now, but a fast search on this board found:
    2 points
  13. Hello @ThemeMetro This is a known issue, and we have published a HotFix. For more details, please review the following. Apologies for any inconvenience. Kind regards, Stephen.
    2 points
  14. Thanks to @Mytihost, I found an elegant solution for this issue. The following hook: add_hook('ClientAreaPage', 1, function($vars) { if (!empty($vars['clientsdetails']['customfields'])) { $customfieldsAssoc = []; foreach ($vars['clientsdetails']['customfields'] as $field) { $customfieldsAssoc[$field['id']] = $field['value']; } return ['customfieldsAssoc' => $customfieldsAssoc]; } }); makes available the value of any client custom field in a template, using i.e. the form {$customfieldsAssoc.17} (where "17" is the id field in the tbl customfields)
    2 points
  15. Hi @Jade D, I have responded to your ticket, but just wanted to follow up here so there's an answer if anybody else comes across this. The underlying issue here is that your web server was advertising a domain other than that registered for your license. This causes the license cache in your install to be invalid, and so your install needs to check in with our licensing infrastructure to validate your license. Since the details we held about your license were different to those being advertised by your web server, your install kept making a request to our licensing API. We rate limit all requests made to our licensing infrastructure to ensure stability thereof for all our customers. If your server sends too many requests, it will be temporarily blacklisted as part of this rate limit. To resolve this, make sure that your web server is only advertising the server_name that we have listed in your Valid Domains. Wait for 30 minutes or so and the rate limit will be removed, then your install will get a response back from the licensing servers that your license is valid and access will be restored. If anybody is unable to get to the bottom of this, please reach out to our support team and we can help!
    2 points
  16. You aren't authenticated in your hooks. The hooks aren't running as you - they're running as the system. WHMCS doesn't offer a native way of logging in as an admin in a hook. If you just want to download the invoice, you can include /includes/invoicefunctions.php and run the pdfInvoice($invoiceId) function.
    2 points
  17. Here's the fix! https://whmcs.community/files/file/204-gocardless-eur-payments/
    2 points
  18. Hello, Not at all and it's highly recommended, to change the admin path.
    2 points
  19. I am happy to say that the development cycle of vBLink 2.0 is now complete. The release was delayed for a complete ground-up rewrite after WHMCS 4 was announced. It is not ready for download just yet; I have not taken the time to create an installer or documentation because of two major issues that may become a factor in the long term success of vBLink. The first issue is vBulletin 4 support is not included. This is in part because of the fact that I do not agree with decision by vBulletin to change the licensing structure essentially us to purchase new licenses. I own three licenses, two for production sites, one for a development site. The cost to upgrade is going to be huge, especially if I choose the publishing suite. So at this point I have no access to vB4 code. The second issue is that from a business standpoint vBLink has not been a success, or at least the free/paid model that it has been distributed with. In the past year there have been over 400 downloads of vBLink but less than 2% were paid licenses making vB4 support hardly justifiable. So the question now is what to do next, and that is the reason that I am posting this message. Obviously, vBLink without vB4 support is only going to be useful for a short time until v4 goes gold. But without a solid community and financial backing behind it, I have no reason to continue development. But one promise I will make is that if I do walk away from vBLink, I will release all source code into the public domain; I do not believe in holding code hostage. If I do in fact release vBLink 2.0, I'm thinking of a 3-tier release structure... vBLink Basic (Free, Fully Encoded with only account bridging and no extras) vBLink Pro (Mid-range cost, a few admin module source files encoded, fully functional) vBLink Pro Dev (Highest cost, fully functional with full source) All feedback is welcome and will help determine the future of this vBulletin integration.
    2 points
  20. What I find somehow strange after being using WHMCS for 20 years.. when there was only 2-3 people in the company... bugs was fixed quickly often the same day. Now that I have a list of bugs reported many of them with 1 min solutions to implement, and they still doesnt get implement in X versions of whmcs 8x and still not fixed in WHMCS 9. So I dont know if being a large owned company is always a good thing. Just in December alone me and other people I work with found 3 new bugs of things that has been working since whmcs 5 and suddenly not working and per documentation should work.. I am actually concerned that the developing department / team doesnt have good working structure as they introduce bugs that should not be there that has been working for years. This make us need to use more time on testing before each upgrade and time testing is also a huge cost.. whmcs. should going forward be better in quality and also fixe the backlogs of bugs.
    1 point
  21. 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^C
    1 point
  22. 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
  23. 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
  24. 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 post
    1 point
  25. 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
  26. 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
  27. As you might know, whmcs has a problem with stripe: when the payment is not immediately confirmed by stripe (but requires to clic "capture" on stripe dashboard), whmcs does not record the order and the customer details and does not even send any notification to whmcs admin or to the customer. We solved with a hook that sends us an email with the order details, so that: - we know that there was a order attempt - we know that there might be a payment in stripe that requires manual "capture" - if necessary, we have all the client and order details in order to recreate the both client account and order. Here is the hook. <?php if (!defined("WHMCS")) { die("This file cannot be accessed directly"); } /** * Save all checkout data to a TXT file * AND email it to admin * Runs BEFORE order/invoice creation, and before redirect to Stripe. */ add_hook('ShoppingCartValidateCheckout', 1, function ($vars) { // --- 1. Clone and sanitise incoming data ------------------------------- $data = $vars; // Mask any possible card data (good practice even if Stripe never posts it) $sensitiveFields = [ 'ccnumber', 'cccvv', 'ccexpirymonth', 'ccexpiryyear', 'password', 'password2', ]; foreach ($sensitiveFields as $field) { if (!empty($data[$field])) { $data[$field] = '***masked***'; } } // --- 2. Attach cart contents from session (products, domains, etc.) --- $cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : []; $payload = [ 'timestamp' => date('Y-m-d H:i:s'), 'ip' => $_SERVER['REMOTE_ADDR'] ?? null, 'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? null, 'checkoutFields' => $data, 'cart' => $cart, ]; // --- 3. Build a text representation (for file & email) ---------------- $entry = "==============================\n"; $entry .= "Checkout submitted: " . $payload['timestamp'] . "\n"; $entry .= "IP: " . ($payload['ip'] ?? 'N/A') . "\n"; $entry .= "User-Agent: " . ($payload['user_agent'] ?? 'N/A') . "\n\n"; $entry .= "DATA:\n" . print_r($payload, true) . "\n\n"; // --- 4. Save to TXT file ---------------------------------------------- $logDir = __DIR__ . '/../../logs'; $logFile = $logDir . '/pre_stripe_checkout.txt'; if (!is_dir($logDir)) { @mkdir($logDir, 0700, true); } @file_put_contents($logFile, $entry, FILE_APPEND); // --- 5. Send email to admin ------------------------------------------- // This uses WHMCS' built-in admin notification helper. // The "system" type means it goes to the system email / admin notifications. if (function_exists('sendAdminNotification')) { $subject = 'Pre-Stripe Checkout Captured'; // Use <pre> so the print_r formatting is readable in HTML email $message = nl2br(htmlspecialchars($entry)); sendAdminNotification('system', $subject, '<pre>' . $message . '</pre>'); } // IMPORTANT: Do NOT return an error. Just let checkout continue. return; }); I suggest to implement it. It would be great if it would offer some sort of customization in the admin area.
    1 point
  28. It's the same for every single WebPros product. Also cPanel, Plesk, SolusVM, Comet Backup, etc. etc. etc. All suffer from another (= yearly) price hike. Plesk seems to be the worsed off.... At this rate, it won't take long for WebPros to lose real customers... Ah well. Then WebPros will be sold (again) to a different investment group and prices will increase even more. Mark my words (unfortunately).
    1 point
  29. Thanks for opening a new thread, I had posted in the 2025 one. In my case, they will be extracting an extra $25/mo in exchange for absolutely nothing. The email is hilariou,s though: "We understand any change in pricing directly affects your business, which we do not take lightly." HOWEVER, if they succeed in doing the European E-invoicing right, which I highly doubt, then the price increase would be worth it. The problem is - can we trust WHMCS with something that can get you us legal and financial trouble?
    1 point
  30. Hello, I have a dedicated Hetzner server, WHMCS cannot connect to the server, it gives this message, but these ports are open on the host, and Hetzner also says that we did not close the port and it is open, but it still does not connect. FAILED: Could not connect to Virtualizor. Please make sure that all Ports from 4081 to 4085 are open on your WHMCS Server or please check the server details entered are as displayed on Admin Panel >> Configuration >> Server Info.
    1 point
  31. You put them in widgets. Then you have to go into admin roles and enable display for them, checkboxes at the bottom.
    1 point
  32. Go to /path/to/whmcs/lang folder and check which language files you have. Go to Admin > General Settings > Localisation and check your Default Language Documentation: https://docs.whmcs.com/8-13/system/localization/localization/
    1 point
  33. @DristiTechnologies Thank you so much for the analysis. This was more than I anticipated so it is very VERY much appreciated. 👍
    1 point
  34. There are few issues in the hook logic for applying credit and cancelling invoices: Incorrect array index usage in the loop You had: foreach ($invoiceData['invoices']['invoice'][0] as $invoice) This loops only over the first invoice. Use: foreach ($invoiceData['invoices']['invoice'] as $invoice) Incorrect object access You used: $invoiceId = $invoice->'id'; $creditamt = $invoice->'credit'; But $invoice is an associative array, not an object. Use: $invoiceId = $invoice['id']; $creditamt = $invoice['credit']; Incorrect variable name You had: if ($canceInvoice['result'] == 'success') Correct to: if ($cancelInvoice['result'] == 'success') Syntax error in else You had: else } Correct to: else {
    1 point
  35. You can remove the Edit with Sitejet Builder link from the left sidebar menu under the Actions sidebar when logged in as a client and looking at the Product Details page using this hook code: <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimarySidebar', 1, function (MenuItem $primarySidebar) { $actionsMenu = $primarySidebar->getChild('Service Details Actions'); if ($actionsMenu instanceof MenuItem) { foreach ($actionsMenu->getChildren() as $child) { if (strpos($child->getLabel(), 'Sitejet') !== false) { $actionsMenu->removeChild($child->getName()); } } } }); See the attached screenshots showing this custom hook file in place in the /includes/hooks/ directory. The screenshots show that this link is no longer there after this hook code is added. You would create a file named "remove_sitjet_link.php" and add the above code into it, and upload it to your /includes/hooks/ directory. I tested this with WHMCS version 8.13.1. I hope that this helps someone.
    1 point
  36. Hi @donostiarra, I would suggest checking the admin role has permission for the scheduled ticket actions. Please visit "Configuration (wrench icon) > System Settings > Admin Roles & Permissions", edit the role and ensure the following permission are present: View Scheduled Ticket Actions Create Scheduled Ticket Actions Edit Scheduled Ticket Actions Cancel Scheduled Ticket Actions
    1 point
  37. We understand your frustration, and we’re sorry to hear about your experience. To clarify, the lifetime license you purchased grants you indefinite use of the theme, but as stated on our product page, ongoing updates and support require an active subscription. This is a common practice in the industry, as maintaining compatibility with WHMCS updates involves continuous development work, which incurs costs for us as well. We’d be happy to assist you further if you choose to renew your support & Updates plan. Alternatively, you’re welcome to continue using the existing version of the theme without updates. If you have any questions about your options, feel free to reach out. Thank you for your understanding.
    1 point
  38. We're pleased to announce the release of WHMCS 8.13 Release Candidate. This marks the end of feature development for the 8.13 series and is the final stage before version 8.13 is promoted to General Availability status. WHMCS 8.13 includes the following new functionality and enhancements: Manual User Password ResetsOne of our most requested admin features is here. With over 250 community upvotes, WHMCS 8.13 introduces the ability to reset a user's password directly from the Admin Area. This...View the full blog post
    1 point
  39. I haven't noticed any difference, enom support still sucks just as much as it always has.
    1 point
  40. Another day another ignored WHMCS bug as this thread surpasses 60k views. Today I had a client create an order, pay via PayPal. No client account created, no order created in WHMCS. No payment received to PayPal. Client sees the transaction in PayPal which disappears within a couple of hours. Very bad look as a user of WHMCS who has seen constant price rises for software that supposedly is all about automation and ease of use. This is 100% a WHMCS bug as I've seen the exact same with Stripe. Other times the client account is created, the order created but the payment is "uncaptured" No point submitting a ticket as WHMCS refuse to accept this is an issue with their software. I now use almost stock WHMCS. Just Fraud Record in terms of modules and I have a very simple child theme of twenty one.
    1 point
  41. Custom fields are a pain to deal with in WHMCS. Other than placing a {break} if the field is found, there's not really more optimization that can be done - unless you can access it by $customfields.17.value, which I assume you can't.
    1 point
  42. If it's a paid addon, it's unlikely that would be ok with the seller, though I'm sure others (and myself) would like to try and spot the issue.
    1 point
  43. Hi @3cellhosting, The directory can be safely deleted /vendor/whmcs/whmcs-foundation/lib/Installer/Composer/Hooks/ along with its contents. You can then run the update process again and this time the error will not occur.
    1 point
  44. Thanks for sharing the valuable info. It was required to disable the on cPanel / Plesk servers.
    1 point
  45. Great template with outstanding features! Thanks
    1 point
  46. Here is an updated link: https://controlc.com/d0ac5777
    1 point
  47. Hi @SamRudd1152, This indicates those ad-hoc addons were orphaned. The service to which the addon belongs must have been deleted without first removing the addon. These orphaned records can be recovered by associating it with an active service under the client's account: UPDATE `tblhostingaddons` SET `hostingid` = 'x' WHERE addonid = 'y'; Replace x with the value of a tblhosting.id value of one of the client's active services. Replace y with the tblhostingaddons.addonid value(s) of the orphaned addons. As always, before making changes to the database, please backup.
    1 point
  48. YOU CAN USE MY EMAIL DESIGN FOR YOUR COMPANY, THANKS TO THIS COMMUNITY I HAVE FOUND A LOT OF COMMUNITY CONTENT, SO I GIVE YOU MY PERMISSION TO USE IT. Post Update: After a long time working on the code, I have managed to get it to look correct. There were many problems that I am going to name now, which I fixed to make it display correctly; Global Email CSS Styling: Some generic tags will not work, for example 'body', instead of adding it to Global Email CSS Styling, I added it directly to the HTML code to make it work. Error ❌ body{font-size: 17px; line-height: 25px; color: #f1f1f1; font-family: 'Open Sans', sans-serif; font-weight: 400; margin: 0px; background-color: #070B41;} Solution ✅ <body style="font-size: 17px; line-height: 25px; color: #f1f1f1; font-family: 'Open Sans', sans-serif; font-weight: 400; margin: 0px; background-color: #070B41;"> Sometimes you have to add an '!important' to the CSS code, because another tag is replacing it. For example, I wanted to put links with a different color and no style; Error ❌ a{text-decoration: none; color: #1094F0;} Solution ✅ a{text-decoration: none!important; color: #1094F0!important;} Some images on some providers do not load correctly because it can detect that the domain is not secure. For example; Error ❌ https://universalgg.com/assets/img/mails/logo.svg Solution ✅ https://i.imgur.com/7nQbkxQ.png It has taken me a long time to investigate, since on localhost it was working correctly. I have tried various SMTP providers and it was working fine too. Conclusion: The error is from WHMCS and not from my design, but it can be solved. All code: <!DOCTYPE html> <html> <head> <title></title> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> .main-table{background-color: rgb(3 5 33 / 87%); border-radius: 20px; overflow: hidden; margin-top: 20px;} .content-table{padding: 50px 40px 50px 65px;} .h1-table{padding-bottom: 25px; font-size: 22px; font-weight: 700; color: #fff;} .btmspace-table{padding-bottom: 30px;}.top-line{padding-top: 30px;} .grey-line{border-top: 1px solid #707070;} .welcome-img{width: 50%; background-image: url('https://universalgg.com/assets/img/mails/img.webp'); background-position: left; background-size: cover; background-repeat: no-repeat;} .welcome-copyright{color: #DDDDDD; font-size: 12px; text-align: center;} a{text-decoration: none!important; color: #1094F0!important;} </style> </head> <body style="font-size: 17px; line-height: 25px; color: #f1f1f1; font-family: 'Open Sans', sans-serif; font-weight: 400; margin: 0px; background-color: #070B41;"> <table width="1140" border="0" align="center" cellpadding="0" cellspacing="0" class="main-table"> <tr> <td> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="content-table"> <tbody> <tr> <td colspan="2" style="padding-bottom: 35px;"> <img src="https://universalgg.com/assets/img/mails/logo.svg" style="max-width: 430px;" width="100%" height="auto" alt="logo"> </td> </tr> <tr> <td colspan="2" class="h1-table"> ¡Bienvenido! </td> </tr> <tr> <td colspan="2" class="btmspace-table"> Hola {$user_first_name}, revisa este correo electrónico en su totalidad, ya que contiene información importante. </td> </tr> <tr> <td colspan="2" class="btmspace-table"> Has registrado tu cuenta el día {$user_signup_date}. Necesitarás tu dirección de correo electrónico y la contraseña que elegiste durante el registro, para iniciar sesión.</br> Si creó la cuenta como parte de la realización de un nuevo pedido con nosotros, en breve recibirás un correo electrónico de confirmación del pedido. </td> </tr> <tr> <td colspan="2"> Por favor, no responda a este mail, es un mensaje automático. Le enviamos un cordial saludo, gracias por confiar en nosotros. </td> </tr> </tbody> </table> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="top-line"> <tbody> <tr> <td class="grey-line"></td> </tr> </tbody> </table> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="padding: 30px 40px 30px 65px;"> <tbody> <tr style="vertical-align: middle;"> <td style="padding-bottom: 20px; font-size: 15px; font-weight: 500; color: #1094F0;"> <a href="https://universalgg.com">Sitio web</a>&nbsp; | &nbsp; <a href="{$whmcs_url}">Área de clientes</a>&nbsp; | &nbsp; <a href="mailto:info@universalgg.com">Contactar</a> </td> <td style="padding-bottom: 13px; text-align: right;"> <a href="https://twitter.com/UniversalGamg"><img src="https://universalgg.com/assets/img/mails/s_twitter.svg" style="display: inline-block; margin-right: 15px;" alt="icon"></a> <a href="https://www.instagram.com/universal_gg/"><img src="https://universalgg.com/assets/img/mails/s_instagram.svg" style="display: inline-block; margin-right: 15px;" alt="icon"></a> <a href="https://discord.gg/nMxTQ5UZpM"><img src="https://universalgg.com/assets/img/mails/s_discord.svg" style="display: inline-block; margin-bottom: -1.5px;" alt="icon"></a> </td> </tr> <tr> <td colspan="2" class="welcome-copyright"> 2018-2023 &#169; {$company_name} </td> </tr> </tbody> </table> </td> <td class="welcome-img"></td> </tr> </table> </body> </html>
    1 point
  49. Today we've enabled Mark as Solution on the community. Located in the footer of each post you'll see "Mark as Solution" as the post, this will be visible to the original poster. Once the post has been marked as solved you'll see a green banner appear in the top of the post with a link to the post selected as as the solution. This is the first of many new features we're rolling out as part of our latest community upgrade.
    1 point
  50. Solved by ticket support. Fixed admin profile.
    1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated