diff --git a/includes/hooks/WHMCS-Discord-Notifications.php b/includes/hooks/WHMCS-Discord-Notifications.php index 67c4d0a..bab056c 100644 --- a/includes/hooks/WHMCS-Discord-Notifications.php +++ b/includes/hooks/WHMCS-Discord-Notifications.php @@ -1,134 +1,73 @@ $discordGroupID, - } + // $discordWebHookURL = ""; + // Found on line(s): 300 + // Your Discord WebHook URL. Please be aware that the channel which you select to create the web hook is the channel which will be used for sending messages. + + // $whmcsAdminURL = ""; + // Found on line(s): 24, 45, 66, 87, 125, 146, 199, 220, 259 + // Your WHMCS Admin URL. Please include the end / on your URL. An example of an accepted link would be: https://account.whmcs.com/admin/ + + // $companyName = ""; + // Found on line(s): 25, 46, 67, 88, 126, 147, 200, 221, 260 + // Your Company Name. This will be the name of the user which sends the messages. + + // $discordGroupID = ""; + // Found on line(s): 26, 47, 68, 89, 127, 148, 201, 222, 261 + // Discord Group ID Config Option. If you wished for each message which is sent to ping a specific group, please place the ID here. An example of a group ID is: @&343029528563548162 + + add_hook('InvoicePaid', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, 'username' => $companyName, 'embeds' => array( array( - 'title' => $vars['subject'], - 'url' => $whmcsAdminURL . 'supporttickets.php?action=view&id=' . $vars['ticketid'], + 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['invoiceid'], 'timestamp' => date(DateTime::ISO8601), 'description' => '', 'color' => '5653183', 'author' => array( - 'name' => 'New Support Ticket', - ), - 'fields' => array( - array( - 'name' => 'Priority', - 'value' => $vars['priority'], - 'inline' => true, - ), - array( - 'name' => 'Department', - 'value' => $vars['deptname'], - 'inline' => true, - ), - array( - 'name' => 'Ticket ID', - 'value' => $vars['ticketid'], - 'inline' => true, - ) - ), + 'name' => 'Invoice Payment Received' + ) ) - ), + ) ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_POSTFIELDS, $dataString); - $output = curl_exec($curl); - $output = json_decode($output, true); - if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 204) { - echo "Failed " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "

"; - print_r($output); - } - curl_close($curl); + processNotification($dataPacket); }); - - add_hook('TicketUserReply', 1, function($vars) { - $dataPacket = array( - if (isset($discordGroupID)) { - 'content' => $discordGroupID, - } + add_hook('InvoiceRefunded', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, 'username' => $companyName, 'embeds' => array( array( - 'title' => $vars['subject'], - 'url' => $whmcsAdminURL . 'supporttickets.php?action=view&id=' . $vars['ticketid'], + 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['invoiceid'], 'timestamp' => date(DateTime::ISO8601), 'description' => '', 'color' => '5653183', 'author' => array( - 'name' => 'New Ticket Reply', - ), - 'fields' => array( - array( - 'name' => 'Priority', - 'value' => $vars['priority'], - 'inline' => true, - ), - array( - 'name' => 'Department', - 'value' => $vars['deptname'], - 'inline' => true, - ), - array( - 'name' => 'Ticket ID', - 'value' => $vars['ticketid'], - 'inline' => true, - ) - ), + 'name' => 'Invoice Refunded' + ) ) - ), + ) ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_POSTFIELDS, $dataString); - $output = curl_exec($curl); - $output = json_decode($output, true); - if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 204) { - echo "Failed " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "

"; - print_r($output); - } - curl_close($curl); + processNotification($dataPacket); }); - - add_hook('PendingOrder', 1, function($vars) { - $dataPacket = array( - if (isset($discordGroupID)) { - 'content' => $discordGroupID, - } + add_hook('AcceptOrder', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, 'username' => $companyName, 'embeds' => array( array( @@ -137,106 +76,19 @@ 'description' => '', 'color' => '5653183', 'author' => array( - 'name' => 'New Pending Order', - ), + 'name' => 'New Accepted Order' + ) ) - ), + ) ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_POSTFIELDS, $dataString); - $output = curl_exec($curl); - $output = json_decode($output, true); - if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 204) { - echo "Failed " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "

"; - print_r($output); - } - curl_close($curl); + processNotification($dataPacket); }); - - add_hook('AcceptOrder', 1, function($vars) { - $dataPacket = array( - if (isset($discordGroupID)) { - 'content' => $discordGroupID, - } - 'username' => $companyName, - 'embeds' => array( - array( - 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['orderid'], - 'timestamp' => date(DateTime::ISO8601), - 'description' => '', - 'color' => '5653183', - 'author' => array( - 'name' => 'New Accepted Order', - ), - ) - ), - ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_POSTFIELDS, $dataString); - $output = curl_exec($curl); - $output = json_decode($output, true); - if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 204) { - echo "Failed " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "

"; - print_r($output); - } - curl_close($curl); - }); - - add_hook('FraudOrder', 1, function($vars) { - $dataPacket = array( - if (isset($discordGroupID)) { - 'content' => $discordGroupID, - } - 'username' => $companyName, - 'embeds' => array( - array( - 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['orderid'], - 'timestamp' => date(DateTime::ISO8601), - 'description' => '', - 'color' => '5653183', - 'author' => array( - 'name' => 'Order Marked As Fraud', - ), - ) - ), - ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); - curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($curl, CURLOPT_POSTFIELDS, $dataString); - $output = curl_exec($curl); - $output = json_decode($output, true); - if (curl_getinfo($curl, CURLINFO_HTTP_CODE) != 204) { - echo "Failed " . curl_getinfo($curl, CURLINFO_HTTP_CODE) . "

"; - print_r($output); - } - curl_close($curl); - }); - - add_hook('CancellationRequest', 1, function($vars) { - $dataPacket = array( - if (isset($discordGroupID)) { - 'content' => $discordGroupID, - } + add_hook('CancellationRequest', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, 'username' => $companyName, 'embeds' => array( array( @@ -245,33 +97,212 @@ 'description' => $vars['reason'], 'color' => '5653183', 'author' => array( - 'name' => 'New Cancellation Request', + 'name' => 'New Cancellation Request' ), 'fields' => array( array( 'name' => 'Product ID', 'value' => $vars['relid'], - 'inline' => true, + 'inline' => true ), array( 'name' => 'Cancellation Type', 'value' => $vars['type'], - 'inline' => true, + 'inline' => true ), array( 'name' => 'User ID', 'value' => $vars['userid'], - 'inline' => true, + 'inline' => true ) - ), + ) ) - ), + ) ); - $dataString = json_encode($dataPacket); - $curl = curl_init(); + processNotification($dataPacket); + }); + add_hook('FraudOrder', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, + 'username' => $companyName, + 'embeds' => array( + array( + 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['orderid'], + 'timestamp' => date(DateTime::ISO8601), + 'description' => '', + 'color' => '5653183', + 'author' => array( + 'name' => 'Order Marked As Fraud' + ) + ) + ) + ); + processNotification($dataPacket); + }); + add_hook('NetworkIssueAdd', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, + 'username' => $companyName, + 'embeds' => array( + array( + 'url' => $whmcsAdminURL . 'networkissues.php?action=manage&id=' . $vars['announcementid'], + 'timestamp' => date(DateTime::ISO8601), + 'description' => $vars['reason'], + 'color' => '5653183', + 'author' => array( + 'name' => 'New Network Issue' + ), + 'fields' => array( + array( + 'name' => 'Start Date', + 'value' => $vars['startdate'], + 'inline' => true + ), + array( + 'name' => 'End Date', + 'value' => $vars['enddate'], + 'inline' => true + ), + array( + 'name' => 'Title', + 'value' => $vars['title'], + 'inline' => true + ), + array( + 'name' => 'Description', + 'value' => $vars['description'], + 'inline' => true + ), + array( + 'name' => 'Affecting', + 'value' => $vars['affecting'], + 'inline' => true + ), + array( + 'name' => 'Priority', + 'value' => $vars['priority'], + 'inline' => true + ) + ) + ) + ) + ); + processNotification($dataPacket); + }); + add_hook('PendingOrder', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, + 'username' => $companyName, + 'embeds' => array( + array( + 'url' => $whmcsAdminURL . 'orders.php?action=view&id=' . $vars['orderid'], + 'timestamp' => date(DateTime::ISO8601), + 'description' => '', + 'color' => '5653183', + 'author' => array( + 'name' => 'New Pending Order' + ) + ) + ) + ); + processNotification($dataPacket); + }); + add_hook('TicketOpen', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, + 'username' => $companyName, + 'embeds' => array( + array( + 'title' => $vars['subject'], + 'url' => $whmcsAdminURL . 'supporttickets.php?action=view&id=' . $vars['ticketid'], + 'timestamp' => date(DateTime::ISO8601), + 'description' => '', + 'color' => '5653183', + 'author' => array( + 'name' => 'New Support Ticket' + ), + 'fields' => array( + array( + 'name' => 'Priority', + 'value' => $vars['priority'], + 'inline' => true + ), + array( + 'name' => 'Department', + 'value' => $vars['deptname'], + 'inline' => true + ), + array( + 'name' => 'Ticket ID', + 'value' => $vars['ticketid'], + 'inline' => true + ) + ) + ) + ) + ); + processNotification($dataPacket); + }); + add_hook('TicketUserReply', 1, function($vars) { + $whmcsAdminURL = ""; // Your WHMCS Admin URL. + $companyName = ""; // Your Company Name. + $discordGroupID = ""; // Discord Group ID Config Option. + $dataPacket = array( + 'content' => $discordGroupID, + 'username' => $companyName, + 'embeds' => array( + array( + 'title' => $vars['subject'], + 'url' => $whmcsAdminURL . 'supporttickets.php?action=view&id=' . $vars['ticketid'], + 'timestamp' => date(DateTime::ISO8601), + 'description' => '', + 'color' => '5653183', + 'author' => array( + 'name' => 'New Ticket Reply' + ), + 'fields' => array( + array( + 'name' => 'Priority', + 'value' => $vars['priority'], + 'inline' => true + ), + array( + 'name' => 'Department', + 'value' => $vars['deptname'], + 'inline' => true + ), + array( + 'name' => 'Ticket ID', + 'value' => $vars['ticketid'], + 'inline' => true + ) + ) + ) + ) + ); + processNotification($dataPacket); + }); + function processNotification($dataPacket, $discordWebHookURL) { + $dataString = json_encode($dataPacket); + $curl = curl_init(); + $discordWebHookURL = ""; // Your Discord WebHook URL curl_setopt($curl, CURLOPT_URL, $discordWebHookURL); curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); + curl_setopt($curl, CURLOPT_HTTPHEADER, array( + 'Content-Type: application/json' + )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); @@ -283,5 +314,5 @@ print_r($output); } curl_close($curl); - }); -?> \ No newline at end of file + } +?>