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

17 Good

About string

  • Rank

Recent Profile Visitors

5490 profile views
  1. For this issue, I must defend whmcsservices. It was some time ago and I can't remember the details, but I also had the "usedhooks" problem with a module of my own. WHMCS v8 has changed something - presumably it's a bug - which under certain circumstances tries to write to the tblusers.usedhooks column, even though this isn't defined in any way. Even though I'm pretty sure it's a bug in WHMCS, I didn't bother to report this to WHMCS as the problem 1.) will not be solved for older versions anyway and 2.) it will probably take a long time before a fix appears. Instead I solved the problem via workaround, which took quite some of my time...
  2. Unfortunately WHMCS does not offer an simple way to add more states. Have a look at the following feature request, there you will also find links that show how you can add states: https://requests.whmcs.com/topic/allow-stateregion-overrides
  3. 🙂 I guess its the "$" what causes the issue.
  4. <input pattern="{literal}[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}${/literal}" type="email" name="email" id="email" class="field form-control" placeholder="Email Address" required> Please try this. Here is the excerpt from the Smarty documentation explaining what literal does:
  5. Purchase module - 19,99 Euro / year Mail Tracker For WHMCS automatically adds an invisible 1x1 pixel tracking code to your mails so you can determine the read status of your mails. The module records when the customer read the mail for the first time, how many times he read it and when he read it last. The module page offers you a unique insight with detailed information, statistics and various filtering options. Mails can be tracked either globally, or only specific email templates (for example, newsletters). The module page is fully based on AJAX and all actions are performed without page reloads. This allows a very convenient evaluation of the statistics. Click here to view screenshots. Features Easy setup. You only need to add one variable to your email template. Mails can be tracked globally or per email template. AJAX based module page to analyse the statistics. Read status can be shown on the "Summary" profile page tab (optional). Read status can be shown on the "Emails" profile page tab (optional). IP logging can be disabled. IP addresses can be pseudonymized. Logs can be deleted after a configurable number of days. Free Trial For all modules, a free trial is available. Click on the purchase link on the top of the site to order. Please note the requirements for a free trial on the page. Compatibility The module does work with WHMCS v6.0 and above.
  6. Before making changes in the database, it should be confirmed if there are any slow queries at all or how long the queries take. This can be determined via the MySQL query log. But even if there are slow queries, I would advise against making changes to the WHMCS database, this is certainly not recommended / supported by WHMCS. Instead, I would recommend optimizing the configuration of the MySQL server. Optimizing the MySQL server also has the most potential. I'm not assuming this, but if you're using the default configuration, there are definitely things to tweak (innodb_buffer_pool_size, innodb_buffer_pool_instances, innodb_read/write_io_threads, ...).
  7. The default country value is not a dynamic value. It is configurated here: https://help.whmcs.com/m/localisation/l/678184-set-your-default-country-and-language To adjust the currency list after your client has changed the country, you would need to use javascript.
  8. WHMCS doesn't offer a native way to do this. You can do this using an hook. Save the following code into the file /includes/hooks/<a-readable-understandable-name>.php: <?php add_hook('ClientAreaPageAddFunds', 1, function($vars) { unset ($vars['gateways']['paypal']); return array("gateways" => $vars['gateways']); }); Just replace "paypal" with the name of the payment gateway. You must use the system name of the gateway, not the friendly name. To find out the system name, open the add funds page, look at the source code of the page via your browser and search for "paymentmethod". You will find a <select> tag where you can read the names. But you have to be aware that tech-savvy users could spoof the HTTP request by manually setting the value to the gateway's name. It is unlikely that this will happen, but if you want to be sure, you would have to cross-check the POST request as well.
  9. Yes, in WHMCS under version 8 it shows the client name on the ticket overview page. In version 8 it looks like here:
  10. $postData = array ( 'deptid' => '1', 'subject' => 'This is a sample ticket', 'message' => 'This is a **sample** ticket message', 'clientid' => '1', 'priority' => 'Medium', 'markdown' => true, 'admin' => true ); $results = localAPI ('OpenTicket', $postData, 'admin'); print_r ($results); This code will create an admin ticket via the admin account "admin" for client ID 1.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  • 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