Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 11/13/24 in all areas

  1. That's a hook I developed and sold to Hexonet. They've probably expanded it a lot though as this was many years ago. When I asked OpenProvider about it, they said they had a similar feature for WHMCS. If not, I'll just create one from scratch again. It's really dead simple: Intercept the domain registration with the PreRegistrarRenewDomain hook point Be aware that WHMCS will send the "Domain Renewal Failed", so you might want to abort sending this email as well Use the providers API to transfer the domain instead Write logic for TLDs that aren't renewed during transfer - these would to be renewed after transfer That's basically it. It's not even 100 lines of code. I still have the code but I can't share it.
    3 points
  2. Hey, all! Been a few weeks since my last look at this thread. My initial thought was that we would go with DynaDot, but they do not support a lot of the TLDs we already offer. We had also ruled out OpenProvider initially because we had to pay them a yearly membership subscription. However... We've spent the last month crunching numbers and comparing various providers, and OpenProvider looks to be the best alternative. Even though we have to pay a yearly fee, we are saving thousands of euros every year because we get no markup on domain prices. We have been speaking with OpenProvider for the past week and signed up yesterday, getting a nice discount for the first year. Apparently, we are not the first one to contact them regarding the CentralNic migration. If I understood correctly, they have methods to take care of the migration from Hexonet/CentralNic to OpenProvider. Another incentive for us to move to OpenProvider is the fact they we can authenticate our domain and have them send emails on our behalf (such as WDRP messages). This is something I've been requesting from Hexonet for years because we had a lot of clients that were suspicious of emails coming from @ispapi.net, claiming to be sent on behalf of us. Oh, and they respond to tickets very quickly. We don't have to wait days or weeks. Looking at you, CentralNic. Hexonet has just announced that the migration dates have been moved (May 2025 instead of Feb 2025 IIRC). This gives us plenty of time to move everything. Initially, we thought we would actually need to top up our CNR accounts with 75$ - but it looks like that's no longer the case 😁 My boss is no longer annoyed about the migration. We are gonna save a bunch of money with minimal effort - and we get better service by the looks of it.
    3 points
  3. 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
    2 points
  4. @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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. I take it you weren't here when WHMCS yanked owned license update "support addons" and we all lost any updating of those convenient owned and now worthless licenses many of us bought? I had two.
    2 points
  13. Next week we'll test our module. It works like this: You define the old and new registrar modules New registrar should be configured as the default for new domain registrations for a specific TLD When WHMCS attempts to renew a domain, it will check if the current registrar module is defined as the old registrar in the module settings and if the new registrar has been configured as the default for the TLD Use the new registrars _GetTldPricing() function to see if EPP code is required and get the transfer price for the TLD If EPP code is required, fetch it from the old registrar using their _GetEPPCode() function If transfer price is set to 0, we assume domain is not renewed - renewal will need to happen after successful transfer (this part is still WIP) Run the the new registrar's _TransferDomain() function If anything goes wrong, send an email to admins If the transfer is successful, the client receives an email with relevant information and the domain's registrar module is updated. I plan on adding support for registrars that doesn't have a _GetTldPricing() method, but this would require feeding the module with information about EPP requirement and whether domains are renewed during transfer.
    2 points
  14. I have started work on an addon module that can hopefully work with any registrar in WHMCS. You have to define the source and destination registrar module, and the addon module takes care of the rest.
    2 points
  15. Hello everyone. I see that here are some respected figures in the WHMCS world. I made a decision some time ago, it is difficult and complex. I will try not to use anything from WebPros. This is a difficult decision, but I see that everyone shares the same feeling, they do not care about us. Is it extremely difficult to leave cPanel? YES We are working hard to improve DA as well, and we are also working on other open source control panels. Is WHMCS very good and does it solve a lot of things? YES We do not have viable alternatives yet, but I am sure that there are many people who are dissatisfied and very soon an alternative will appear... and when it does... well... An idea... Has anyone ever thought of 'making a clone' of WHMCS? Something that WHMCS modules could be used for? Where WebPros plays, I run. I am not criticizing people, but rather how business is conducted. I understand that we all wake up in the morning to make money. I do not use any pirated tools, it is very complex to stay competitive.
    2 points
  16. For anyone wanting to hide SiteJet from WHMCS here is the code I use, its a combination of a code earlier here provided by a user and addition to hide it inside the package <?php use WHMCS\View\Menu\Item as MenuItem; // Hide in Client Area Sidebar add_hook('ClientAreaPage', 1, function($vars) { $primarySidebar = Menu::primarySidebar(); if ($primarySidebar) { $serviceActions = $primarySidebar->getChild('Service Details Actions'); if ($serviceActions) { $serviceActions->removeChild('sitejet'); } } }); // Hide from Client area add_hook('ClientAreaFooterOutput', 1, function($vars) { return <<<STYLE <style> #sitejetPromoPanel{ display: none !important; } button[data-identifier="sitejet"], li[data-identifier="sitejet"]{ display:none !important; } button[data-identifier="sitejet"] + .btn-group > .btn[data-toggle="dropdown"]{ border-top-left-radius: 3.2px; border-bottom-left-radius: 3.2px; } button[data-identifier=“sitejet”] + .btn-group > .btn[data-toggle=“dropdown”], .btn-group:has(> button[data-identifier=“sitejet”]) > .btn[data-toggle=“dropdown”] { display: none !important; } </style> STYLE; }); // Adjust the Client Area display for Sitejet panel add_hook('ClientAreaFooterOutput', 1, function($vars) { return <<<SCRIPT <script> jQuery(document).ready(function($) { // Change the title text inside h3 $('#cPanelPackagePanel h3.panel-title.card-title').text("Package/Domain"); // Change col-sm-6 to col-md-3 for the image column $('#cPanelPackagePanel .col-sm-6').first().removeClass('col-sm-6').addClass('col-md-3'); // Remove the image with class card-img-top $('#cPanelPackagePanel img.card-img-top').remove(); }); </script> SCRIPT; }); This hook will do as stated earlier where the Promosplash on the frontpage of the SIX theme is showing the SiteJet, then the last code is inside the client area, it adjusts the "Package/Domain" which was always there and they changed to "SiteJet Panel" by adjusting that text back, then removing the half page, into a full 3 row page, and remove the image display so it looks like this See, I pay for the license, I don't see why there isn't a toggle switch to turn off your promotional advertisement but since that is not possible this HOOK legitimately does that, thanks to whomever wrote the first part for the splash on the main client page, but this one also edits the in client product page removing the webpros advertisement and makes it look like it did before. You can always edit that code to remove the image and or replace with yours but this will be enough for me, it keeps it clean. (The image above, Ive redacted any sensitive information but obviously it says the domain name above the Manage Domain). Thank you.
    2 points
  17. I'm fuming. Is this yet another price increase, after the last not long ago?
    2 points
  18. WHMCS users and client accounts have separate contact information and they require separate updates to change details like the email addresses. The user management system allows a single user to access multiple client accounts. This separates authentication and authorization from services, billing, and support. To learn how to change the client account and the user account email address so they match please review this help guide: https://help.whmcs.com/m/managing/l/1681243-updating-user-and-client-account-details With this hook added to your WHMCS installation the system will now "Sync" the Client Account Email Address to match the User Account Email Address only when the change is made under the Account Details page via the client area. This hook adds a little "Note" under the Email Address field under the Hello Client! > Account Details section of the client area to inform that when this Email Address is changed, they will be logged out and they will need to log back in using the new Email Address they just set since this hook is updating both the client account and user account email addresses. Here is an example of the Account Details page Email Address field with this note: Via the Admin Area, when a client does this change and the hook was used it will make a log entry just like this: This entry indicates that the Client/User Email Sync Script hook was a success. Now both the Client Account Email Address and the User Account Email Address match for that client account. If there are multiple Users associated with the Client Account, this will only change the Email Address of the Owner of the account. <?php /* This script will update both the Client Account Profile email address and the user account email address when the change is made to the Account Details page for the email address field. Otherwise, you would have to update the email in both places and follow this article: https://help.whmcs.com/m/managing/l/1681243-updating-user-and-client-account-details Upload this file to your /includes/hooks directory of your WHMCS installation. There will be a Log entry when this script runs. @WHMCSDanny */ add_hook('ClientAreaHeadOutput', 1, function($vars) { // Only run if the on the Account Details page via the client area. // The action is going to be "details". This will make sure this message does not show anywhere else. $action = $_GET['action']; if($action == "details") { //Input the message under the Email Address field that they will be logged out after making the change. return <<<HTML <script type="text/javascript"> $(document).ready(function() { jQuery("input[name='email']").after('<span style="color:red; font-size:9pt;"><b>Note:</b> Changing your email address here will sync the email with your User Account. You will be logged out after you change the email. You must login using the new email address you just set.</span>'); }); </script> HTML; }; }); // prevent file from being loaded directly if (!defined("WHMCS")) { die("This file cannot be accessed directly."); } else { function clientowneruseremailsync_changeUserEmail(int $client_id, string $client_email){ // call the API and grab the owner user ID $command = 'GetClientsDetails'; $postData = array( 'clientid' => $client_id, 'stats' => false, ); $results = localAPI($command, $postData); if ($results['result'] == 'success') { // success! $client_owner_user_id = $results['client']['owner_user_id']; if (is_numeric($client_owner_user_id)){ // got a number, so it should be a valid owner user ID // now to perform the update to the user account to match the email set for the client account $command = 'UpdateUser'; $postData = array( 'user_id' => $client_owner_user_id, 'email' => $client_email, ); $results = localAPI($command, $postData); if ($results['result'] == 'success') { logActivity("Client/User Email Sync Script - Emails Successfully Changed and Synced. The e-mail address is set to $client_email for the Client Account and the Owners User ID: $client_owner_user_id", $client_id); } else { logActivity("Client/User Email Sync Script - Failed to change the e-mail address to $client_email for the Owners User ID: $client_owner_user_id . Results: ". $results, $client_id); } } } else { logActivity("Client/User Email Sync Script - Failed to verify that an e-mail change occurred on the clients profile. Results: ". $results, $client_id); } } add_hook('ClientEdit', 1, function($vars) { // Only run if the clients account profile email address is being changed. if ($vars['email'] != $vars['olddata']['email']){ // email is being changed. Update owning user accordingly. // get the client ID. It should be $vars['userid'] $client_id = $vars['userid']; // get the new e-mail address $client_email = $vars['email']; // call our helper function clientowneruseremailsync_changeUserEmail($client_id, $client_email); } }); } ?> Enhanced Version - Added a checkbox and tooltip In this new updated version of this hook, I added a checkbox/tooltip for the end-users to decide if they want to use this option to sync the Email Address under the Profile page too. Otherwise, nothing happens and WHMCS works as normal. The checkbox needs to be checked before it will run the same hook code to update both email addresses in both locations. (Account Details and Profile sections via the client area) <?php /* This hook script will update both the Client Account Profile email address and the User Account email address When the change is made to the Account Details page for the email address field only. It does not work for the Profile page. This version adds a new checkbox with a tooltip to let the end-user decide if they want to use this option or not. The checkbox needs to be checked for the hook to execute. If the checkbox does not get checked WHMCS works as expected and updates just the Account email. The Profile email account will still need to be updated if they want it to be the same. Otherwise, you would have to update the email in both places and follow this article: https://help.whmcs.com/m/managing/l/1681243-updating-user-and-client-account-details Upload this file to your /includes/hooks directory of your WHMCS installation. There will be a Log entry in the admin area when this script executes. @WHMCSDanny */ add_hook('ClientAreaHeadOutput', 1, function($vars) { // Only run if the on the Account Details page via the client area. // The page action is "details". This will make sure this message does not show anywhere else. $action = $_GET['action']; if($action == "details") { //Input the checkbox and tooltip under the Email Address field return <<<HTML <script type="text/javascript"> $(document).ready(function() { jQuery("input[name='email']").after('<input type="checkbox" name="syncEmails" id="syncEmails"> <span style="color:red; font-size:9pt;"><b>Sync Email with your User Account Email</b></span><span class="form-group"> &nbsp; <i class="far fa-question-circle" data-toggle="tooltip" data-placement="top" title="This option will sync your Email Address Here with your Profile Email Address. You will be logged out and will need to login with your new email address. If you do not check this option you will need to update it under the Your Profile page as well"></i></span>'); }); </script> HTML; }; }); // Prevent file from being loaded directly if (!defined("WHMCS")) { die("This file cannot be accessed directly."); } else { if (isset($_POST['syncEmails'])) { // Checkbox is checked // Perform actions and the logic to check the emails and replace them with the new one function clientowneruseremailsync_changeUserEmail(int $client_id, string $client_email){ // call the API and grab the owner user ID $command = 'GetClientsDetails'; $postData = array( 'clientid' => $client_id, 'stats' => false, ); $results = localAPI($command, $postData); if ($results['result'] == 'success') { // Success we have the owners user ID from the database! $client_owner_user_id = $results['client']['owner_user_id']; if (is_numeric($client_owner_user_id)){ // We have the ID number, so it should be a valid owner user ID // Perform the update to the user account to match the email set for the client account $command = 'UpdateUser'; $postData = array( 'user_id' => $client_owner_user_id, 'email' => $client_email, ); $results = localAPI($command, $postData); if ($results['result'] == 'success') { logActivity("Client/User Email Sync Script - Emails Successfully Changed and Synced. The e-mail address is set to $client_email for the Client Account and the Owners User ID: $client_owner_user_id", $client_id); } else { logActivity("Client/User Email Sync Script - Failed to change the e-mail address to $client_email for the Owners User ID: $client_owner_user_id . Results: ". $results, $client_id); } } } else { logActivity("Client/User Email Sync Script - Failed to verify that an e-mail change occurred on the clients profile. Results: ". $results, $client_id); } } add_hook('ClientEdit', 1, function($vars) { // Only run if the clients account detaoils email address field is being changed. if ($vars['email'] != $vars['olddata']['email']){ // Wmail is being changed. // Get the client ID. It should be $vars['userid'] $client_id = $vars['userid']; // Get the new e-mail address $client_email = $vars['email']; // Call the helper function to make the change clientowneruseremailsync_changeUserEmail($client_id, $client_email); } }); } } ?> At the time of writing this post, this process was tested on the latest stable release of WHMCS 8.9.0 I hope you find this useful. If you have any feedback or questions, please feel free to reply to this thread! WHMCSDanny
    2 points
  19. Hello, Not at all and it's highly recommended, to change the admin path.
    2 points
  20. 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
  21. Yes, this behavior is expected. The /vendor/ directory in WHMCS contains core dependency files and is not intended to be accessed directly via the browser. For security reasons, WHMCS restricts access to this directory, and attempting to access it should result in a 404 error rather than a 403. This is by design to prevent exposure of sensitive files. The .htaccess file inside the /vendor/ directory is part of this protection, but depending on your server configuration, the parent .htaccess in public_html and Apache’s rewrite rules may also influence how errors are handled. Removing or modifying the parent .htaccess can interfere with WHMCS’s routing and URL handling, which is why you noticed a change in behavior when doing so. In general, you should not need to access anything inside /vendor/ via the browser, and it’s best to leave the default .htaccess WHMCS rules in place to ensure WHMCS functions securely and correctly. These are the stock WHMCS Rules: https://docs.whmcs.com/8-13/system/general-settings/general-settings-general/#whmcs-rules I hope this information helps.
    1 point
  22. John didn't say that 😉 He said the feature list is under wrap (eg not yet announced).
    1 point
  23. This module works as documented. Password reset and firewall rules are tested and functional. For support, contact support@arkhost.com as stated in the README or via GitHub issues.
    1 point
  24. oh wow! Thanks for clarifying that John. I must have been on HEAVY drugs the day I thought I saw a button there. Much appreciated that you clarified this for me.
    1 point
  25. Hello Jackson, I have used QuickBooks Payment Gateway Module for my WHMCS store. This module is very easy to use and supports credit and debit card payments across different countries United States, Canada, United Kingdom, Australia, and New Zealand. The best thing is, you will get 7 days free trial before buying the premium version here. Get it from here - https://members.modulesstack.com/index.php?m=product_page&pid=18&name=quickbooks-payment-gateway-for-whmcs Let me know if you need any assistance. Thanks
    1 point
  26. 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
  27. @elonmusk Check log with which API user it's getting created So you can edit the role assign to that user and remove API access Hope this will help you
    1 point
  28. Hello @HarryAdney You can try from System Setting -> General Setting -> 1st Tab (General) -> Update "Records to Display per Page". You can update 200 records per page
    1 point
  29. Look for something common, like a .ru domain, and block that at the TLD level (unless you have customers using those). Trying to block all spammers by individual email addresses is a game you won't ever win. More effectively, you can disallow tickets by non logged-in users. Public facing things like this are abused all the time, and recaptcha only helps a little.
    1 point
  30. I am interesting in figuring out how to do the following. Right now, it appears to only be possible manually, and well, it's a big PITA. 1.) Remove ALL available TLDs. Right now hundreds of TLDs are imported and many of them we can not legally sell or are TLDs that are managed by registries like Radix or XYZ which are horrible registries and deserve no money. The process to remove these any many ccTLDs is very time consuming, as each one has to be removed one by one, with the page reloading between each adjustment. There is no option to simply checkmark multiple TLDs for removal. 2.) How can we disable multiple year domain registrations. The problem is, many domains have a special first year price. If a customer orders a domain for 5 years, it's 5x the first year price even if years 2, 3, 4 and 5 are much higher. This is very problematic and a real pain, as such, we can not allow automated domain registrations as customers will take advantage of this flaw and we lose money on the very low margin domain sales. 3.) In fact, is it possible to just simply remove ALL available TLDs at once? Then re-add only the ones we want? This may be easier than figuring out how to do number 1 or 2 above. The domain / TLD management in WHMCS is very poor as it is, and it makes it very difficult to operate any sort of serious business that sells a lot of domain names like we do.
    1 point
  31. Hello, Thank you for your reply, but I already got this sorted out i just needed a confirmation .
    1 point
  32. Yes , below one to get client password and once you get the password you need to decrypt it https://developers.whmcs.com/api-reference/getclientpassword/ https://developers.whmcs.com/api-reference/decryptpassword/
    1 point
  33. @WHMCS Rex why don't you offer any answers to @Zetamex legitimate concerns about the software itself?
    1 point
  34. $ wget https://f.licensing.whmcs.com:443/ --2024-12-18 12:47:09-- https://f.licensing.whmcs.com/ Resolving f.licensing.whmcs.com (f.licensing.whmcs.com)... 2606:4700:10::6816:335, 2606:4700:10::ac43:421, 2606:4700:10::6816:235, ... Connecting to f.licensing.whmcs.com (f.licensing.whmcs.com)|2606:4700:10::6816:335|:443... connected. HTTP request sent, awaiting response... 429 Too Many Requests 2024-12-18 12:47:09 ERROR 429: Too Many Requests. They definitely changed something. We're seeing this as well. Same goes for all their license servers from a-f.licensing.whmcs.com. This is a mess. We have some unusable WHMCS installations and they blame us, lol.
    1 point
  35. That wasn't the plan, actually - but that might be a lot easier! When you're building a registrar module, you have to define specific functions. It the module should be able to register domains, you need a _Register() method. If you include the registrar module's primary file (the one that defines all of these methods), you can use them wherever you like. Say, if you want to do it for domains that use the Enom registrar - this module is just called "enom" in WHMCS. You would do the following <?php include ROOT_DIR . '/modules/registrars/enom/enom.php'; //Now you can use the functions defined in enom.php: enom_RegisterDomain($domainDetails); enom_TransferDomain($domainDetails); Using the internal API basically does the same. When you call the DomainRegister API endpoint, it finds out what the registrar is for the domain in WHMCS and runs the _RegisterDomain() method from that module.
    1 point
  36. This add-on module displays a customizable helpdesk wallboard for your support center. Includes a live (AJAX) overview of: each department with ticket count (Waiting and Open) each status with ticket count staff online WHMCS activity feed The display is pure html and css and can easily be modified as required. Some sample layouts are included. Download for free from the marketplace: https://marketplace.whmcs.com/product/7620-ut-ticketboard Installation instructions can be found here: https://uptimemodules.com/knowledge-base/installation/
    1 point
  37. Getting same error today, the email sent to 1st 200 users as per the mail log activity but after that it showed an error template not found.
    1 point
  38. WHMCS happy to increase the price yet again yet refuse to refund for after overcharging me for years 😄 It's becoming laughable at this point. As you stated which updates have we seen that users actually wanted? I am starting to route heavily for all "Web Pros" competitors: - Blesta - DirectAdmin Would love to see both take over the industry.
    1 point
  39. How long ago was that? What were the issues you encountered? How about the community forms a group, and reaches out to Blesta collectively to get what's lacking addressed? Any corporation who just wants profit and more profit by sucking their customers dry will continue to impose price hikes. For peoples' interests to be protected, people need to invest in Open Source.
    1 point
  40. We pay a subscription for a software, and for that software to stay relevant the software is supposed to add new features without imposing price increases. In whmcs case, there has been no new features that the community needed, and yet price increases are being imposed.
    1 point
  41. All they do is add what they want not what their users want. Most of us are still waiting for actual feature requests to be added and old bugs to be fixed, which they just ignore. Some of those popular feature requests have been there 10+ years.
    1 point
  42. This looks like what we need to stop spamming orders. Is there a plan to include this in WHMCS itself witho it being just a hook? thank you
    1 point
  43. I think your domain, serverclouds.in, is not registered at registrar 😂
    1 point
  44. As I said yesterday, I have no more free time to donate to you. You can wait for WHMCS to answer you or open a support ticket with WHMCS directly. I don't need to continually be down voted by you because you don't understand what I am trying to say to you. Best of luck in finding a solution.
    1 point
  45. delete the line item from the invoice cancel the invoice delete the cancelled invoice change the due-date back 1 day on the product change the due -date to it's original date on the product change the billingperiod and tick the recalc on save on the product and save on the client summary page click generate due invoices (or wait for the cron if doing multiple)
    1 point
  46. there's no equivalent simple hook method with these home page tiles... you can adapt other hook points to change certain aspects of these tiles, but generally to keep things simple, you're looking at either editing the clientareahome.tpl template (which determines which tiles are shown based on the general settings). or you use CSS in a custom CSS file, e.g if you want to adjust styling. for example, in Six, if you wanted to remove the Tickets tile and adjust the width of the other tiles to take up the full width (if you don't adjust, then it will just show three tiles and leave a space), then you could use... .tiles .tile:nth-child(3) {display: none !important; } .tiles .col-sm-3 {width: 33.33% !important; } you could do something similar in 21, but the css would be different... .tiles .col-6:nth-child(3) {display: none !important; } .tiles .col-xl-3 {max-width: 33.33% !important; flex: 33.33% !important;}
    1 point
  47. by the time the hook is adding the code, the smarty will have already been processed - so adding smarty that you expect to do anything is not worth it... the way to think of it is to create the content of the replacement and pass that via the jQuery - don't think of it as the template contains {$tag1} and so I can just replace it with {$tag2}... what you do is replace the content of {$tag1} with a predefined replacement value - could be text, html etc.. and more importantly, assumes that you can locate the specific position of the content you want to replace in the hook - with WHMCS, that might not always, and sadly too often, be the case. replacing content with jQuery is not a magic bullet solution - at a push, i'd use it in a small limited way, but I wouldn't use it to make wholesale changes to a client area template, certainly not a cart template, unless it was a last resort. if you take your footer hook and replace the copyright content... <?php add_hook('ClientAreaHeaderOutput', 1, function($vars){ $footer = '<script>$(document).ready(function() { $("#footer .container").replaceWith("<div class=\"container\"><h2 style=\"color:red;\">New Copyright Footer</h2></div>"); });</script>'; return $footer; });
    1 point
  48. Thanks for all the help and replies on this. Really loving this community. So engaging and helpful... I resolved it myself. The issue was a set of extraneous rules related to a separate issue in our Apache conf regarding Access-Control-Allow-Origin and setting X-Frame-Options to "sameorigin".
    1 point
  49. I personally think post count is enough of a "ranking" system. As for people that are employed, by WHMCS, well.. they just need something to indicate that (as they already do). I give little attention to a rank under a persons name. I give plenty of attention to their meaningful posts. To be blunt, "we" (whoever you may choose to put into that group) help WHMCS a lot more than I think they realize. Reward "us" with better support, or tangible things other than a fancy tagline and you might just be on to something when it comes to encouraging contributions. PS If you want to learn about how to engage people, you'll find much material on the subject online, including plenty of contradictions. I have quite a lot of experience managing a community many times larger than this, but it's a Open Source community.. and the reasons people are there are vastly different from the reasons they are here.
    1 point
  50. the easiest way would be a css entry in templates/six (or custom)/css/custom.css #order-premium_comparison .price-table-container .price-table { width: 250px !important; min-width: 250px !important; } if you wanted 5 columns, you'd change them both to 190px or less..
    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