Jump to content

Hook for TicketOpen and specific support department ID

Recommended Posts



I would like to send an email to another address if a ticket is opened from a specific support department ID. Here is my hook, but it's not working. Advice please;



if (!defined("WHMCS"))
   die("This file cannot be accessed directly");

function hook_send_emergency_email($vars) {

 $criticaldept = 5; // id of emergency department from whmcs admin

 $deptid = $vars['deptid'];
 $company = $vars['companyname'];

if (in_array($vars['deptid'], $criticaldept)) {

  // Send email to specified address
       $to = '[email protected]';

       // e-mail subject
       $subject = "Emergency Ticket Alert";

       // e-mail message
       $message = "Hello Admin,\r\n"
       ."Emergency Ticket Opened For:\r\n"
       ."Company: $company\r\n";

       $headers = "From: Some Company <[email protected]>\n"
       ."Reply-To: [email protected]\n"
       ."X-Mailer: PHP/".phpversion();

       mail( $to, $subject, $message, $headers );       

       }  // if in_array



Share this post

Link to post
Share on other sites

You can use the function logActivity to check and ensure your hook is running as you expect.


For example:


logActivity("Department is {$vars['deptid']}");


You can then check the activity log to see where in your hook the system is getting.


Finally, you should check to ensure that your mail() function call is returning true/false.


If your mail is going to an admin set of email addresses, you could also use the WHMCS SendAdminEmail API command as this will allow you to use the WHMCS Activity Log to ensure your mail is being sent correctly - http://developers.whmcs.com/api-reference/sendadminemail/


The internal api is available when a hook runs

Share this post

Link to post
Share on other sites

Thanks - I will look into that.  Is there any more detail on how to use the function logActivity ? Where would I add that in my code.

Could you advise if the code for the hook is in theory, correctly written ?



Edited by sol2010

Share this post

Link to post
Share on other sites

Regarding the  logActivity,
 you can call just after

if (in_array($vars['deptid'], $criticaldept)) {

To make sure that your email sending code is executing or not.


Also make sure that email function is working properly in your server.

You can just create a simple php file, and run from it.


// The message
$message "my message";
// Send
mail('[email protected]''My Subject'$message);


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By servetas
      Hello All,
      I am trying to following part of code within the viewinvoice page but the paymentbutton is not updated. Is the smarty->assign option still supported?
      <?php function custom($vars) { global $smarty; if ($vars['filename'] == 'viewinvoice' && $vars['status'] == 'Unpaid') { $smarty->assign('paymentbutton', "BG"); } } add_hook('ClientAreaPage', 1, 'custom'); ?> The hook seems to run but the paymentbutton is not updated. Does anyone have the same issue? How can we update the paymentbutton?
    • By Charles Bradbeer
      I have built a hook to show a new navbar, but I want it to hide to not logged in members. Is this possible?
      Thank you
      My hook im using:
      <?php use WHMCS\View\Menu\Item as MenuItem; add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)    {    $primaryNavbar->addChild('Tools')                ->setOrder(50);    $primaryNavbar->getChild('Tools')                ->addChild('Html Tester')                ->setUri('/html.php')                ->setOrder(1);    $primaryNavbar->getChild('Tools')                            ->addChild('Privacy Policy Generator')                ->setUri('/privacypolicygenerator.php')                ->setOrder(2);    $primaryNavbar->getChild('Tools')                            ->addChild('cPanel Backup Generator')                ->setUri('/backup.php')                ->setOrder(3); });  
    • By Web Host Pro
      I added a hook file to try and change the title tags on each domain per a thread here.
      I removed the bad hook called titles.php and the site is still down with this message: 
      Something went wrong and we couldn't process your request.
      Please go back to the previous page and try again.
      The template cache folder is empty and I've tried it from multiple locations and computers. I've rebooted apache and the server and no help.
      Once the bad hook file is gone how can it still crash the whole system. The site is Web Host Pro
      Any ideas how to fix it?
    • By UWH - David
      We are trying to include a productID into a tracking link so we can include the product which was purchased. A hook is required for it and we require someone who can write a simple one. 
      Example of the complete.tpl link:
      <img src="https://trackingurl.com/ep?ord={$ordernumber}&orderid={$orderid}&product={$THISISMISSING}&qlist={$smarty.session.orderdetails.Products|@count}&amtlist={$amount*100}&cur=USD&img=1">
      Thank you!
    • By Web Host Pro
      I am trying to add a link tot he affiliate login page under the account menu section. Just like the log in hook for the main section. I would like it to be under the:
      lost password
      (Affiliate Login)
      Thanks for any help. I've checked the TMSecondaryNavbar.php file but can't see what to add.
      I tried to add this: 
                          ->addChild('Affiliate Login', array(
                          'uri' => 'affiliates.php',
                          'order' => '20',
      But it crashed the whole site.
      Thank you,
  • Recently Browsing   0 members

    No registered users viewing this page.


Important Information

By using this site, you agree to our Terms of Use & Guidelines