Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 06/09/25 in all areas

  1. 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
  2. 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
  3. Hi @rcartists, You must first set product pricing in your default currency. Then you can have the system calculate the pricing in additional currencies: https://docs.whmcs.com/payments/currencies/#update-product-prices The system can also be configured to update the pricing of additional currencies automatically once per day: https://docs.whmcs.com/payments/currency-tutorials/automatically-update-prices/
    1 point
  4. @bear is right in this case. AI is generally only a help if you already know what you're doing. @MytihostYou can't solve the issue using Javascript. Javascript is a client side language, so you can only use it to manipulate the data you already have received from the client. If you only want to get a set amount of records for each page, you could use the limit() and offset() methods on your collection. Unfortunately, WHMCS doesn't support the paginate() method provided by Laravel. If you're retrieving thousands of records from the database, it's going to be slower than retrieving 50.
    1 point
  5. You should write your own. AI is not to be trusted.
    1 point
  6. @DristiTechnologies Thank you so much for the analysis. This was more than I anticipated so it is very VERY much appreciated. 👍
    1 point
  7. 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
  8. Hi @ZeroMB, Thanks for that information. I've logged case #WHMCS-22693 with our developers in order to have this reviewed for future releases. Whilst I cannot provide an estimated time for completion for this, once we resolve cases and push features they are available at our change log, here: https://changelog.whmcs.com/ Thanks again for taking the time to report your findings.
    1 point
  9. 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
  10. Hi @File_Explorer @TheHostingHeroes, Some users have reported poor performance of this query is resolved by updating their MySQL server version. So please try that first. As a workaround you can remove the /modules/widgets/Billing.php file.
    1 point
  11. Hi. For convenience, I wanted to create a custom model for my module. I didn't like having to call Capsule every time I needed information that the module stored in the database. I want to share the code here in case other people didn't know how to do it but also to gather some feedback on this way of doing it. <?php namespace WHMCS\Module\Addon\MyModule; use WHMCS\Model\AbstractModel; /** * Convenience model for custom modules */ class MyModel extends AbstractModel { // Set the table that should be used for searching protected $table = 'mod_mymodule'; // We almost always have access to the service ID. Has to represent a column in the mod_mymodule table protected $primaryKey = 'serviceid'; } When using the model, we're able to do MyModule::find() or create a new instance using 'new MyModule()'.
    1 point
  12. Hello. I accidentally cleared my session on my computer. When i did this i was no longer able to login to my WHMCS admin panel. I tried changing my password but with no luck. I do have a ticket for this issue, but i'm hoping for a quicker answer in the forums, since fixing this is crucial. What i have tried. - From the troublshooting guide i tried to query against the WHMCS database: UPDATE tblconfiguration SET value = 'on' WHERE setting = 'DisableSessionIPCheck'; But this did not work. - I tried uploading the sessiontest.php which gives no error. - I tried to login from a different IP and phone/computer, but i still have the same issue, which is wierd if it's session related. - Using recuva i tried to recover my sessions from Opera. However, that didn't help either so i guess they are corrupted. This issue happened straight after i deleted my cache/sessions. And there was no changes made to any files. I'm also logging in from the correct url. I am using a custom admin panel url. Any suggestions would be appreciated. Thanks.
    1 point
  13. And what exactly is the issue? I am guessing it is doing the infinite login loop without saying if the login was good or not. If so, that is indeed sessions or cookie issues . If the server's sessions are working, then check that your session cookies are actually being saved.
    1 point
  14. Hi, Did you resolve this? If not, try using a different web browser. If the issue persists, I'd suggest contacting WHMCS Support.
    1 point
  15. Solved by ticket support. Fixed admin profile.
    1 point
  16. 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
  17. Hi @rcartists, There are a few potential ways to approach such a customisation. This post contains one way:
    -1 points
  18. Hi @rcartists, You can customise the appearance of the themes by customising the corresponding CSS. You'll need someone with web-design experience and the relevant documentation which is here: https://developers.whmcs.com/themes/css-styling/
    -1 points
×
×
  • 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