Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


123host last won the day on July 29

123host had the most liked content!

Community Reputation

13 Good

About 123host

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. That is why it is on github, it isn't perfect for everyone and, unlike WHMCS code, it is open for you to tweak as needed. @WHMCS John - please, make the hook obsolete.
  2. ahhh, crap. should be includes/hooks. Fixed - thanks
  3. @WHMCS John - so this issue continues to be painful for people and I have found another example of how broken it is. Ticket reply sent to account owner. They have an auto responder that sends from a different email address. Ticket Import Failed, the only reason I know is because of the workaround hook developed by users to fix a problem you created. WHMCS, which boasts will "automate your business", requires us to manually discover that this is happening and then manually add some sort of exception every time it happens. It is still a puzzle why are you adding an additional layer of complexity to WHMCS? You know what stat I would love to know? How many WHMCS users aren't even aware of this bug and are completely missing support tickets.
  4. Reminder that there is a workaround hook to save us from what WHMCS broke The code is available at https://github.com/xxxmicrobexxx/whmcsEmailImportHook
  5. True, but if a product can't handle international needs, it should not be sold as a global solution.
  6. Most of the world is not in the EU and therefore GDPR does not apply. It should be an option.
  7. Just to finish this off for those following. WHMCS acknowledged that the UI was incomplete and confusing. The documentation states "This setting deletes client records after a given number of months without invoice or transaction history." The automation interface says After no invoice or transaction activity has occurred . Those statements make it perfectly clear that any history or activity should prevent record deletion. An invoice had been issued just over 6 weeks before this all happens, so there had been invoice activity. I received an apology, but wasted way too much time recovering data and proving the point to them. The one thing no one ever hears is something like "here's 3 months credit since it was our fault". We shall see how quickly they fix the documentation before someone else falls for their trap. As for logs being deleted. The excuse used was EU GDPR. But that is a complete nonsense. Not all of us are in the EU so it should be an option whether or not to delete logs. But the idiotic part is that most of the logging is anonymous anyway "client 25 status changed to inactive". If the client data is gone, the log is effectively anonymised. There is no excuse for not keeping complete logs as a history of activity.
  8. This is going to make you all laugh and likely deserves a post of its own. From the ongoing tech support ticket where they seem to be getting desperate to prove the data deletion was my fault - but I keep showing them it isn't...sigh... WTF? WHMCS deletes entries from the log!!!!! As I said 'WHY ON EARTH WOULD YOU DELETE HISTORY FROM LOGS??????????????????????? This specific case demonstrates exactly why logs are kept. Another idiotic "by design" feature.' FFS! Fortunately I have a database backup from before this debacle - i.e. before the log entries were deleted (insert face palm emoji here) - and can show that the client was NOT set to inactive or closed.
  9. @WHMCS John which is what someone told me in ticket TGJ-548448 about this. Out of curiosity I just did that with an account and it is definitely logged Client Profile Modified - Status: 'Inactive' to 'Active' - User ID: nn Client Profile Modified - Status: 'Active' to 'Inactive' - User ID: nn Client Profile Modified - Status: 'Closed' to 'Active' - User ID: nn Client Status changed to Closed - User ID: nn In the ticket I have challenged them to go back to the log and show me where the client that was deleted by auto prune was set to closed or inactive. Of course I offer this challenge because I already know the answer, it wasn't. Standing by for next excuse from WHMCS...
  10. How's this for a WHMCS feature? Imagine you have a customer who has registered a domain for 10 years and has paid for 3 years hosting. They are a happy customer and never open tickets or log into the client area. You unwittingly have auto prune set to 'Automatically Delete Inactive Clients' after 30 months. You likely didn't realise that deletion occurs "After no invoice or transaction activity has occurred for the following number of months" whether or not they have active products! I just found this out the hard way. Of course, it isn't be a bug, is it @WHMCS John? It will be "by design" thanks some lazy coding WHMCS has implemented without any consideration of the possible impact.
  11. Sorry, while the problem is a serious one, I don't agree with this. I don't want the rubbish emails and the hook solution (above) created an effective stop-gap where I can see a list of blocked emails and handle them. @WHMCS John Your proposal seems to be a solution that obviously won't keep everyone happy but looks like it will work. Perhaps having the ability to disable it as J-B suggested should be included since you are implementing this from scratch.
  12. The code for this hook is now available at https://github.com/xxxmicrobexxx/whmcsEmailImportHook Thanks @brian! and @websavers
  13. Here is the latest version - with a version number to help keep track <?php // version 1.2 July 30 2021 use Illuminate\Database\Capsule\Manager as Capsule; add_hook('AdminSupportTicketPagePreTickets', 1, function($vars) { $output = "<div id='recently-blocked'><h2>Recently Blocked Messages <small><i class='far fa-eye'></i> <a href='systemmailimportlog.php' target='_blank'>SEE ALL</a></small></h2> <table id='sortabletbl1' class='datatable' style='width:100%'> <tr><th>Date</th><th>Name/Email</th><th>Subject</th><th>Status</th><th></th></tr>"; foreach (Capsule::table('tblticketmaillog')->where('status', 'like', 'Blocked%')->where('email', 'not like', 'mailer-daemon%')->orderBy('id', 'desc')->limit(10)->get() as $msg){ /* Name */ if ($msg->name === $msg->email) $name = $msg->name; else $name = "{$msg->name} <{$msg->email}>"; /* Date */ $today = new DateTime(); $msg_date = new DateTime($msg->date); $interval = $today->diff($msg_date); $date_interval = abs($interval->format('%R%a')); if ($date_interval == 0) $date_interval = 'Today'; else if ($date_interval == 1) $date_interval = 'Yesterday'; else $date_interval .= ' days ago'; $output .= " <tr> <td>$date_interval</td><td>$name</td><td>{$msg->subject}</td><td>{$msg->status}</td> <td><button class='btn' style='padding:1px 5px;' onclick=\"window.open('/" . $GLOBALS['customadminpath'] . "/systemmailimportlog.php?display=true&id={$msg->id}','','width=650,height=400,scrollbars=yes');return false\">VIEW</button></td> </tr>"; } return "$output</table><br /></div> <script> jQuery(document).ready(function($){ /* Move to bottom of page */ $('#recently-blocked').appendTo('#contentarea > div:first-child'); }); </script>"; });
  14. Another minor bug The date of the email is shown as "Today", "1Yesterday", "2 Days ago" etc. That "1" shouldn't precede "Yesterday" so change else if ($date_interval == 1) $date_interval .= 'Yesterday'; to else if ($date_interval == 1) $date_interval = 'Yesterday';
  15. In typical WHMCS style, it seems you can't delete a post or edit it after a certain period - WTF??? [UPDATED] @WHMCS John the code tags don't work properly. Everything wrapped in those tags should be ignored as real code, yet a post is blocked if it includes a global variable such as $ GLOBALS ['customadminpath'] (note added spaces to make it work) . How are we supposed to share code? Anyway, for bonus points: the cool original hook from @websavers had hard coded the path of the systemmailimportlog file. If WHMCS displays an error when you try to view the failed email's contents when you click on the "view" icon, it may be because it isn't finding your custom admin directory - you did change it from the default, right ;o) so change window.open('systemmailimportlog.php to window.open('" . $*GLOBALS*['customadminpath'] . "/systemmailimportlog.php - remove the two * characters - it was the only way to get it to post. and it will include your custom admin path
  • 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