Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 10/27/22 in all areas

  1. 2 points
    What are you looking to export? I'll create the query for you... By the way, you can export most, if not all data through Reports > Exports.
  2. 2 points
    You sure? "tbldomains" has domains, tblhosting has packages and so on. What makes you believe you can't export anything?
  3. 2 points
    Interesting. I guess that follows the same (flawed) logic that regular domain renewals does. If a client has registered a domain for $10, and you later change the price for renewals to $15 (without changing the price for existing domains), WHMCS will keep billing the client the original amount. If the client manually renews the domain, they're suddenly billed $15. It is described here: https://docs.whmcs.com/Domain_Renewals#Domain_Renewal_Pricing It is apparently by design but I don't understand what led to that design decision.
  4. 2 points
    For many of our clients, it is absolutely crucial that their WHMCS installation is always accessible, especially when outages start to occur. You may, therefore, want to run WHMCS in a High Availability environment. This post doesn't serve as a guide on how to set this up, but rather as a collection of thoughts and best practices that may point you in the right direction. What is High Availability? Rather than explaining the ins-and-outs of High Availability (HA) to you in my own words, I'd like to point you towards the brilliant blog post written by @Matt a few years ago which explains it beautifully: Choosing a cluster design (Active-Active vs Active-Passive) The first decision that you need to make is whether you want to run your HA cluster in an Active-Active configuration or an Active-Passive configuration. In an Active-Active configuration, traffic will be directed to all servers in the cluster via a load balancer, which is essentially responsible for making sure that no singular node is getting more traffic than any other node. Not only does this provide fault tolerance with no downtime if a node goes offline, but more importantly allows you to deliver your WHMCS installation to an unlimited number of clients, no matter the size of your organisation, as you can easily scale-up the number of nodes running according to demand. In an Active-Passive configuration (often referred to as Failover), all traffic will be routed to a single server; should that server go offline, another server 'wakes up' and takes over. Where you don't have extremely high traffic but your installation is mission-critical for your business, this is often the best choice as it is simpler to configure and less prone to configuration errors. There are many deviations to these designs and different ways of configuring each (e.g. Active-Active in a round-robin configuration), but these are the simplest and most common strategies used in production. Regardless of which design you choose, you are going to need a minimum of three servers (and an S3 bucket for the most optimal setup). Designing your cluster In this example, we will be configuring a cluster with the following servers: Web001 - Primary web and database server Web002 - Secondary web and database server LB1 - Load balancer / reverse proxy In addition to these servers, we will also be making use of an Amazon S3 bucket. Cluster configuration Your first consideration should be creating a redundant web server environment. This doesn't need to be anything complicated for WHMCS, as most live changes are made to either your database or your S3 bucket. My recommendation: install WHMCS normally on your primary web server and copy all of your files over to your secondary server(s). Following this, you will want to have some mechanism to keep your files in sync; you could use a distributed filesystem like GlusterFS if you wanted, but it might be easier to use a tool like Rsync and run it on a schedule using cron. That's it! Next, you'll want to set your storage locations to use your Amazon S3 bucket. Check out our guide here. The third step is to setup MySQL database replication (specifically as a Master-Master cluster, as we'll want to be able to write from any server). There are lots of guides available that show you how to do this - here's an example. Now that you have redundant web servers and database replication configured, you should configure WHMCS to store user sessions in the database. See our guide here. This makes it so that your users will stay logged-in to their account regardless of which server they are connected to, thus creating a seamless experience. Lastly, it's time to setup a load balancer / reverse proxy that can direct traffic to the appropriate server. This is where your chosen network design comes in; in an Active-Active cluster, the load balancer will route traffic to all servers in the cluster (depending on configuration), whereas in an Active-Passive cluster traffic will be routed to the primary server (in this case, Web001) unless it becomes unavailable, in which case it will be routed to one of your secondary servers. There are many options to choose from for reverse proxies, but Nginx is one of the most popular; there's also the option of using Nginx Proxy Manager for those that like using a GUI. It is possible to do a failover-of-sorts by using DNS round-robin and/or by changing the IP address that DNS is pointing to. I would like to discourage you from doing this, as you are reliant on another system operating correctly, and there is also the small matter of DNS caching to battle with. Only use DNS-based-failover when absolutely necessary - this should rarely be the case. If you have managed to follow all of the above steps, you should now have a redundant, fault-tolerant WHMCS installation. Congratulations! A little note about licensing All of this is possible whilst using only a single WHMCS license. That's because WHMCS will only receive your reverse proxy's IP address. The only thing that you need to make sure is that you are using the same directory on each web server to serve your installation. If you've got any questions about any of this, please feel free to leave them below or contact our team!
  5. 2 points
    No, I do not. This is a discussion board and I believe I have answered your questions, I've given advice around the PHP modules and Nginx configurations. A simple thank you for my contribution would be nice, but hey ho 🤐👇 I understand you can install Nginx, PHP and MySQL. But lets take it from the start.. Update and upgrade your packages: sudo apt update sudo apt upgrade Install Nginx and start it: sudo apt install nginx sudo systemctl start nginx sudo systemctl enable nginx Install, start and set up MariaDB: sudo apt install mariadb-server sudo systemctl start mariadb sudo systemctl enable mariadb sudo mysql_secure_installation Install dependencies: sudo apt install ca-certificates apt-transport-https software-properties-common wget curl lsb-release Import a repository for PHP 8.1 and then update and upgrade packages again: curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x sudo apt update sudo apt upgrade Install PHP 8.1 and then start FPM and check its running: sudo apt install php8.1 php8.1-fpm php8.1-cli sudo systemctl start php8.1-fpm sudo systemctl enable php8.1-fpm sudo systemctl status php8.1-fpm Install the extensions required by WHMCS: sudo apt install php8.1-curl php8.1-gd php8.1-xml php8.1-common php8.1-mbstring php8.1-gmp php8.1-bcmath php8.1-intl php8.1-zip php8.1-mysql php8.1-soap Download and extract ioncube loaders: cd /tmp wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar -zxvf ioncube_loaders_lin_x86-64.tar.gz Get your PHP extension path: php -i | grep extension_dir >> extension_dir => /usr/lib/php/20210902 => /usr/lib/php/20210902 Copy the correct loader to your extensions directory: sudo cp /tmp/ioncube/ioncube_loader_lin_8.1.so /usr/lib/php/20210902 Add the extension to your php.ini file (you may also want to add it to /etc/php/8.1/cli/php.ini) : sudo nano /etc/php/8.1/fpm/php.ini zend_extension = /usr/lib/php/20210902/ioncube_loader_lin_8.1.so Restart PHP FPM: sudo systemctl restart php8.1-fpm Set up your Nginx configuration file (in my example debian.leemahoney.cloud) : sudo nano /etc/nginx/sites-available/debian.leemahoney.cloud server { listen 80; server_name debian.leemahoney.cloud; root /var/www/html; access_log /var/log/nginx/debian.leemahoney.cloud-access_log; error_log /var/log/nginx/debian.leemahoney.cloud-error_log; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.php index.html index.htm; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; proxy_send_timeout 300s; proxy_read_timeout 300s; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /announcements/?(.*)$ { rewrite ^/(.*)$ /index.php?rp=/announcements/$1; } location ~ /downloads/?(.*)$ { rewrite ^/(.*)$ /index.php?rp=/downloads/$1; } location ~ /knowledgebase/?(.*)$ { rewrite ^/(.*)$ /index.php?rp=/knowledgebase/$1; } location ~ /\.(?!well-known).* { deny all; } location ^~ /vendor/ { deny all; return 403; } location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|svg|woff|woff2|ttf)\$ { expires 1M; access_log off; add_header Cache-Control "public"; } location ~* \.(?:css|js)\$ { expires 7d; access_log off; add_header Cache-Control "public"; } location ~ /\.ht { deny all; } } Modified from https://gist.github.com/Bharat-B/6ba2e18f85591c77fdf00ad7334fb9c6 and https://gist.github.com/Bharat-B/62205bfd1dbe6d7ac9e24973c2bfd47e Enable the configuration file and reload Nginx: sudo ln -s /etc/nginx/sites-available/debian.leemahoney.cloud /etc/nginx/sites-enabled/debian.leemahoney.cloud sudo systemctl reload nginx Optionally install a free SSL on the domain: sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d debian.leemahoney.cloud Create a database and a user for WHMCS: sudo mysql -u root -p >> create database whmcs; >> create user whmcsuser@localhost identified by 'mystrongpassword'; >> grant delete, insert, select, update, lock tables, alter, create, drop, index on whmcs.* to whmcsuser@localhost; >> flush privileges; >> exit Download WHMCS v8.6 to your /var/www/html folder and enjoy. (will not work on versions prior due to PHP 8.1) Ps, don't forget to change permissions on your html folder: sudo chown -R $USER:$USER /var/www/html There's some obvious further steps such as securing directories, setting up a firewall and allowing Nginx through it etc... to follow, but the above steps will get you started. You're welcome.
  6. 1 point
    this does not solve the problem, read the post properly.... I also explicity stated in my reply Posted October 27 that I had resorted to using the bulk pricing updater
  7. 1 point
    {$var|substr:0:30} you can also use {if $var|strstr:".com"} or something like that.
  8. 1 point
    Another one you might look at if all you need is a simple and cheap one is https://www.domaincart.net/ Have not used it, and no idea if it's any good; simply saw him advertising on a community I'm on. Claims to be an ordering system (no provisioning) with recurring billing of some kind.
  9. 1 point
    A client has turned on 'auto renew' for a number of domain names. The client believed that this meant that the domain would auto-renew with their credit card payment, however it appears it just means that it will be invoiced. Is there a way for the client to turn on auto payment for domain names? Thanks!
  10. 1 point
    Unless your settings dictate otherwise, or the client has automatic CC processing switched off, I'd imagine the payment attempt would be automatic on the invoice close to the due date. Which payment gateway is the client using?
  11. 1 point
    Hi berndkusen, You can find the email logs under System Configuration > System Logs > Email Message Log
  12. 1 point
    Documentation is here: https://fossbilling.org/docs/category/getting-started
  13. 1 point
    I suspect that is true for most hosting companies as people started to move to big cloud providers like Amazon, Google and Microsoft. This is actually not WHMCS's fault, but the entire hosting market has shrunken as cloud providers are growing. I suspect this is why cPanel, WHMCS keep raising pricing to make up for the lost customers as companies are closing down or getting smaller.
  14. 1 point
    I guess his point is that if you are small enough the cost is not justified because WHMCS still has an additional cost to maintain besides the subscription license. I can completely understand that not everyone needs instant automation and are just fine doing stuff manually until they can automate those tasks.
  15. 1 point
    I think you're using WHMCS very wrong if you don't think WHMCS offers anything that couldn't be done with a spreadsheet and a calendar. It's not fishy because it's not true. The data doesn't magically just appear in WHMCS - it's pulled from the database. You can export the data easily from phpMyAdmin. WHMCS even has a lot of different exports that you can create directly from the system. If you don't like the exports, you can even create your own using the API, models or database queries.
  16. 1 point
    Dear WHMCS users, I have set "Product/Service >> Custom Fields" dropdown option for customers to select when buying a product. For example, customed had to choose the "data center location" dropdown when placing the order. Since upgrading to WHMCS 8.5.1, customers are seeing the following "Custom Field" throw error even though they selected the required custom field option: "Please correct the following errors before continuing: Invalid Selection Option." Before upgrading to 8.5.1, the "Custom Field Options" worked fine. Due to this, my whmcs store is not working as no orders can be placed. Did anyone encounter/fix this, please?
  17. 1 point
    Hi @wiredgorilla If you'd like to resolve that error, please see https://help.whmcs.com/m/updating/l/791679-troubleshooting-a-check-for-updates-failed-error#failed-to-retrieve-latest-version
  18. 1 point
    Hello, I've done a quick search around the forums but can't find anything definitive. I'm wondering if anyone has found an alternative to MyWorks PayPal Billing Agreement module? I'm still stuck at version 7.10.2 because I've received 0 response from MyWorks for months and don't want to upgrade and end up with the fiasco it caused the last time when it didn't support the latest version of WHMCS. Any help or advice would go a long way! Thanks in advance.
  19. 1 point
    We are pleased to announce the release of WHMCS 8.6 to General Availability. This marks the end of pre-production testing, and WHMCS 8.6 is now the recommended version for all new installations and updates. What's new in WHMCS 8.6WHMCS 8.6 headlines with support for PHP 8.1. PHP 8.1 is the latest stable version of PHP and brings with it stability and performance improvements making it the best choice for running a WHMCS instance. A guide for how to update is available here: Updating to...View the full blog post
  20. 1 point
    Yes, I offered the Model as an alternative just in case he wants to further expand it and grab client details, order details, etc... without the hassle of using joins.
  21. 1 point
    For docs on the Domain model, check: https://classdocs.whmcs.com/8.6/WHMCS/Domain/Domain.html . Change version to version in use for that specific one. Using capsule directly will not produce the model and just the direct database data for the domains table. You will get essentially the same info but in some cases the Model will have different variable names then the database column names. So using one over the other depends on a few factors.
  22. 1 point
    Hi Walther, You are only selecting the id and domain for each row where the domain is active, if you want all data you can use $domain5 = Capsule::table('tbldomains')->where('status', 'Active')->get(); You can also use the Domain model to achieve this $domain5 = Domain::where('status', 'Active')->get(); Ensure to import at the top of the file use WHMCS\Domain\Domain;
  23. 1 point
    Yes we do the Custom WHMCS Development work please contact us here for further Discussion
  24. 1 point
    Hi @xyzulu, Thanks for sharing your feedback. I've asked our documentation team to review this part of the guide.
  25. 1 point
    I followed your advice and activated/deactivated the payment module and the invoices now show the correct payment method. The strange part is that I did this before and somehow the removed payment method was being reused on the daily cronjob invoice generation. I'll report back here after the next cronjob. tks.
  26. 1 point
    Premium Domain management in WHMCS is quite poorly managed, and a number of different issues may occur... I just realized another issue in premium domain renewal. Example: you manage a Premium domain; standard renewal price is 10, for that particular domain renewal price is 120 so you set "recurring amount" to 120 if domain is set to autorenew, the system will issue an invoice for 120; the user will pay 120, and everything will be fine and everyone will be happy But what's happen if the user decides to renew it manually? The user goes to /index.php/cart/domain/renew and ... SURPRISE! He will be proposed t renew the domain not for the "recurring amount" set, but for the standard price Long story short. the user will be able to renew his Premium domain paying just 10 instead than 120 ... 🥵 I've just realized this issue, and so I don't know if any easy fix exists, or if it's even possible to fix the issue any way... (Apart for the obvious way: do not try to manage premium domains using WHMCS...)
  27. 1 point
    I found a quick and dirty workaround. Far from being perfect, but fixing this issue should be a job for WHMCS's developers,,, Just edit /templates/orderforms/standard_cart/domain-renewals.tpl (or whatever cart you're using); find following lines: <h3>{$renewalData.domain}</h3> <p>{lang key='clientareadomainexpirydate'}: {$renewalData.expiryDate->format('j M Y')} ({$renewalData.expiryDate->diffForHumans()})</p> {if ($renewalData.pastGracePeriod && $renewalData.pastRedemptionGracePeriod) || !count($renewalData.renewalOptions)} {else} <form class="form-horizontal"> <div class="form-group row"> <label for="renewalPricing{$renewalData.id}" class="control-label col-md-5"> {lang key='domainRenewal.availablePeriods'} {if $renewalData.inGracePeriod || $renewalData.inRedemptionGracePeriod} * {/if} </label> <div class="col-sm-6"> <select class="form-control select-renewal-pricing" id="renewalPricing{$renewalData.id}" data-domain-id="{$renewalData.id}"> {foreach $renewalData.renewalOptions as $renewalOption} <option value="{$renewalOption.period}"> {$renewalOption.period} {lang key='orderyears'} @ {$renewalOption.rawRenewalPrice} {if $renewalOption.gracePeriodFee && $renewalOption.gracePeriodFee->toNumeric() != 0.00} + {$renewalOption.gracePeriodFee} {lang key='domainRenewal.graceFee'} {/if} {if $renewalOption.redemptionGracePeriodFee && $renewalOption.redemptionGracePeriodFee->toNumeric() != 0.00} + {$renewalOption.redemptionGracePeriodFee} {lang key='domainRenewal.redemptionFee'} {/if} </option> {/foreach} </select> </div> </div> </form> {/if} <div class="text-right"> {if !$renewalData.eligibleForRenewal || $renewalData.beforeRenewLimit || ($renewalData.pastGracePeriod && $renewalData.pastRedemptionGracePeriod)} {else} <button id="renewDomain{$renewalData.id}" class="btn btn-default btn-sm btn-add-renewal-to-cart" data-domain-id="{$renewalData.id}"> <span class="to-add"> <i class="fas fa-fw fa-spinner fa-spin"></i> {lang key='addtocart'} </span> <span class="added">{lang key='domaincheckeradded'}</span> </button> {/if} </div> </div> {/foreach} </div> and change it to: <h3 class="font-size-24">{$renewalData.domain}</h3> {if $renewalData.isPremium} <span class="label label-danger">Premium Domain - Open a support ticket to renew it</span> {/if} <p>{lang key='clientareadomainexpirydate'}: {$renewalData.expiryDate->format('j M Y')} ({$renewalData.expiryDate->diffForHumans()})</p> {if $renewalData.freeDomainRenewal} <p class="domain-renewal-desc">{lang key='domainRenewal.freeWithServiceDesc'}</p> {/if} {if ($renewalData.pastGracePeriod && $renewalData.pastRedemptionGracePeriod) || !count($renewalData.renewalOptions) || $renewalData.isPremium } {else} <form class="form-horizontal"> <div class="form-group row"> <label for="renewalPricing{$renewalData.id}" class="control-label col-md-5"> {lang key='domainRenewal.availablePeriods'} {if $renewalData.inGracePeriod || $renewalData.inRedemptionGracePeriod} * {/if} </label> <div class="col-sm-6"> <select class="form-control select-renewal-pricing" id="renewalPricing{$renewalData.id}" data-domain-id="{$renewalData.id}"> {foreach $renewalData.renewalOptions as $renewalOption} <option value="{$renewalOption.period}"> {$renewalOption.period} {lang key='orderyears'} @ {$renewalOption.rawRenewalPrice} {if $renewalOption.gracePeriodFee && $renewalOption.gracePeriodFee->toNumeric() != 0.00} + {$renewalOption.gracePeriodFee} {lang key='domainRenewal.graceFee'} {/if} {if $renewalOption.redemptionGracePeriodFee && $renewalOption.redemptionGracePeriodFee->toNumeric() != 0.00} + {$renewalOption.redemptionGracePeriodFee} {lang key='domainRenewal.redemptionFee'} {/if} </option> {/foreach} </select> </div> </div> </form> {/if} <div class="text-right"> {if !$renewalData.eligibleForRenewal || $renewalData.beforeRenewLimit || $renewalData.isPremium || ($renewalData.pastGracePeriod && $renewalData.pastRedemptionGracePeriod)} {else} <button id="renewDomain{$renewalData.id}" class="btn btn-default btn-sm btn-add-renewal-to-cart" data-domain-id="{$renewalData.id}"> <span class="to-add"> <i class="fas fa-fw fa-spinner fa-spin"></i> {lang key='addtocart'} </span> <span class="added">{lang key='domaincheckeradded'}</span> </button> {/if} </div> </div> {/foreach} </div> The result will be this:
  28. 1 point
    I had to resort to doing it the hard way as usual. I had to calculate the price increase for each product, and then apply it to each clients product using the bulk pricing updater. The actual products I have to update manually 1 at a time. It seems crazy that after 15 years there is still no way to do this. But that is the case with most of the WHMCS misisng features.
  29. 1 point
    Hi @Dawie, WHMCS can perform post-paid invoicing for resources consumed, via the Usage Billing feature: https://docs.whmcs.com/Usage_Billing The regular service Recurring Amount will need to be paid in advance. Other users have suggested this in the past and we are tracking it on our feature request site, please do add your vote so we can best gauge demand: https://requests.whmcs.com/idea/arrears-billing
  30. 1 point
    I wouldn't use WHMCS Bridge. I messed with it for an hour a few years back and it was one of the most janky pieces of software I've ever touched. Check the reviews of the plugin before deciding: https://wordpress.org/plugins/whmcs-bridge/#reviews
  31. 1 point
    @leemahoney3 that's a very compressive post. I hope the OP really does appreciate that you've assisted them with configuring their server, something that is not in the realm of WHMCS installation or support. You're very generous in help.
  32. 1 point
    Hi @Web Host Pro, To disable the ability for clients to renew domains on-demand, uncheck Enable Renewal Orders at Configuration > System Settings > Domains tab. If renewal isn't occurring on the invoice being paid, please troubleshoot with these steps: https://help.whmcs.com/m/troubleshooting/l/1601144-troubleshooting-domain-renewal-problems
  33. 1 point
    Strangely, it has started to work when you disable and re-enable the custom fields and make small changes like remove spaces after commas.
  34. 1 point
    You either need an addon module, custom page, or you can try adding to the API as mentioned by @JesusSuarz in following threads . Have not tried that method yet and don't know how long it would continue to function.
  35. 1 point
    Hi! I wanted to ask and see if there were any addons for an announcement banner that would display at like the top of the page. Thanks!
  36. 1 point
    Hello @Stuart Newton These table records data relate to cron. Basically, it is where the results of a cron task are stored. The daily cron email report aggregates its content from these rows. At present it is not possible to prune this log from within WHMCS, however in WHMCS 8.1 and above we have optimized the indexing for cron log data. https://docs.whmcs.com/Changelog:WHMCS_V8.1 CORE-14970 - Optimize indexing for cron log data In the meantime, if you did want to do this, you could so with a SQL query. For example the SQL query below will remove any entries in that table that predate 2020: DELETE FROM `tbllog_register` WHERE created_at < "2020-01-01"; As always please backup your WHMCS DB before perfoming such operations. I hope this information helps.
  37. 1 point
    Hello, I'm testing the child template functionality with the cart. All files are working for me as a child cart apart from checkout.tpl. For some reason the file duplicated within my child cart template is being ignored and the parent cart (Standard Cart) copy is being used. Is anyone else able to replicate this? Thanks.
  38. 1 point
    Hi @zomex, Please also copy the viewcart.tpl template into your child order form template. In order to have a custom checkout.tpl, you must bring over the viewcart.tpl as well due to the inclusion of this template within it. This has always been the case with child order form templates.
  39. 1 point
    Hi there, Could someone help me add a alert message (with link to kb url) to the domain configuration page when a certain tld is selected? For example a message would only popup if a .au domain is being registered. Thanks
  40. 1 point
    Thanks, that's very strange, but it helped a lot. When we contacted us they didn't provide this solution, they mainly just ignored us for multiple weeks. Let me know if anyone would like a script to make this easier. We used a simple Excel/VBA that opens these profile pages since we had a lot of clients. You just paste it on the spreadsheet after running a MySQL query. Also, some more information that may be helpful: We also had a problem where no matter what, it told everyone their billing agreement is active even if it wasn't. We fixed this by making a template file change and adding an extra and statement to make sure the $bid actually contains something meaningful, aka, there's a billing agreement ID there. This way it doesn't tell everyone they have it active. We had a problem because we've been using this module throughout several iterations. It definitely looks like the coding/coders weren't too great at figuring out how to neatly do everything. So they appeared to have tried inserting the billing agreements as credit cards. When they could have just stored it (as I was told by another party) that they could just set it as another type and avoid that. This caused issues where someone's "Mastercard-0291" was actually PayPal. We also had an issue where "Card-XXXX" was actually PayPal and there was also in many cases another PayPal object. This caused many of them to be mislabeled when we converted it. The worst part about this is that they know it's not ready and they rolled it out, and marked it as compatible with 7.8 anyway. They know entire pages are missing/not functioning. They know they're not prepared to be able to support people, but they are still selling it, with no update/warning.
  41. 1 point
    The automatic update utility will not automatically apply updates so there's really nothing to disable. If you don't want the convenience and ease of using the auto update utility, you just don't go to it and click the Update button. -Eddy
  42. 0 points
    I am looking through the WHMCS database in phpmyadmin and I am only seeing some of the data relating to my clients and my hosting business. I can see transactions, but I can't see invoice details in any table. Also, can't find clients' domains, renewal dates, etc, etc. Is this being kept in a remote database somewhere? If so where and why is this being done? Is it to prevent me from migrating my data to a different system? The data belongs to me, not WHMCS. Am I wrong in assuming that if they are remote storing some of the data tables this would be a serious breach of ethics?
  43. 0 points
    I actually did have a working version that would send emails in batches - but I trashed in months ago when we switched from WHMCS' built-in "Network Issues", unfortunately 😕
×
×
  • 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