Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


string last won the day on May 15 2019

string had the most liked content!

Community Reputation

12 Good

About string

  • Rank

Recent Profile Visitors

2291 profile views
  1. Even if the plugins still work in the latest WHMCS version (which I would assume in principle), in my opinion the detection would not be very reliable. Nearly every email client blocks outgoing HTTP connections by default, this has to be explicitly enabled by the user. Of course you could deface your emails in such a way that the customer is practically forced to allow outgoing connections, as many do, but that would be a dubious approach. What you could do is that you don't send relevant content via email and the customer has to click the link to read the full message. This would also gives you a reasonable click detection.
  2. I have 2 suggestions: Cache the server status, you can use the AfterCronJob hook to refresh the cache every 5 minutes. AfterCronJob is executed each 5 minutes by default. You could also create your own cronjob which is executed more often. But you should take care that the executions do not overlap. For example with a lock file or an entry in the database like "if is_running = 1, then dont execute". To get a real-time status, get the server status via an AJAX request. In that case you will also want to update your hook to not block the PHP session. curl_multi, setting reasonable timeouts and reusing the same curl handle (if you do multiple requests to the same server) can help reducing the query time. Personally I would prefer the first suggestion as it is less prone to errors.
  3. I saw this issue often when the used mailserver was slow. You could try to disable the related email templates so that no email is sent after an order.
  4. It will probably not cause any problems, at least not with the current WHMCS version. I would still correct the order number to avoid possible problems with new WHMCS versions using following SQL query: update tblorders set ordernum = replace(ordernum,'-','') This query removes all "-" sign. The order number has no other reference in the database. Since the ID of the row does not change, you don't have to fear any problems with the above mentioned SQL query.
  5. There are multiple ways to troubleshoot. You could disable all your modules / hooks and re-enable them one after one. This way you can find out which module causes the issue. You do not must to disable the modules via WHMCS, you can just rename the directory of the module. This way, all settings will persist. However, before doing this i would strace the PHP process. This should provide information what PHP does exactly.
  6. https://whmcsglobalservices.com/whmcs-amazon-lightsail-module/#lg=1&slide=4 Haha, nice copied from us: https://deploymentcode.com/wp-content/uploads/2018/07/powerbox_dedic-min.gif
  7. The easiest and fastest way would be to use virtualization, which allows you the easy (live) migration of containers or virtual machines. Since you are asking this question, you are probably not using virtualization - I would recommend to consider that. The migration is no different from other website migrations. Simply install the new server and copy the web content + database. When you have a tested, working installation, you can continue with putting the old WHMCS installation into maintenance mode, synchronize all modified files (e.g. rsync) and import the current database. If the server IP will change, you should set the TTL at your nameserver provider to the lowest value and wait until the current TTL has expired. Afterwards change the IP to the new server just before the switchover. You will also have to reissue the WHMCS license if your IP will be changed. Also think about third-party vendor licenses and IP whitelist of payment gateways. Since some DNS resolvers do not respect the TTL, you could also install a reverse proxy on the old server so that all requests are forwarded to the new server. If the migration is well planned, the downtime will be minimal.
  8. 2018: WGS exposed for bad coding and (probably*) copy-pasting from stackoverflow. 2020: WGS exposed for copy-pasting blog articles. Normally I stay out of competitor bashing, but I couldn't resist... * I don't remember exactly the expose letters.
  9. You can use smarty template files within the admin module interface: function module_output ($vars) { $params = array ('key1' => 'value1', 'key2' => 'value2'); $smarty = new Smarty; $smarty->assign('params', $params); $smarty->caching = false; $smarty->compile_dir = $GLOBALS['templates_compiledir']; $smarty->display(__DIR__ . '/template.tpl'); } This code will use the file "template.tpl" and assign the array $params to the template.
  10. Since my last post there have been several updates. For the sake of clarity I will only summarize the relevant things from the last few releases: Support for multiple IPMI/KVM proxies + proxy assignments Ability to execute a pre-profile before installing the operating system. This allows to delete the metadata on the hard disks and prevent conflicts during the operating system installation Stock Monitor: Automatically update the quantify of available servers Ability to automatically wipe disk content of servers after termination The complete release notes can be found in the documentation: Release Notes Order Link
  11. What you see is an automatic scan, probably scanning for vulnerable scripts. This has no reference to WHMCS or a module.
  12. You could also just delete the session content: add_hook('ClientLogin', 1, function($vars) { // if... then: $_SESSION = array (); }); 😂
  13. I can give you 2 issues: Modules may make AJAX calls to the clientarea service page. If the SSL checker failed to run, or did not checked the site yet, there will be a delay on the AJAX requests. I saw cases where there was a huge delay in each request because the webserver of the domain did not answer. The visitor needs then to wait until the request of the SSL checker hits the timeout. Personally I feel uncomfortable when the WHMCS server IP calls thousands of pages each day. Clients may even ask why this IP calls their page each day. Sure, the IP is no secret, but is it really necessary? For this reasons I added "skip --SslSync" to the cronjob from day one.
  14. You are welcome to open a feature request about this on https://requests.whmcs.com 🤪
  15. You can get the userid via the PHP Session. It would be: $guidbuild = bcadd(bcmul($_SESSION['uid'], "xxxxxxxxxxxxxxxxxxxxx"), "xxxxxxxxxxxxxxxxxxxxx");
  • 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