通知

WHMCS 與多種流行嘅團隊通訊應用程序(包括 Slack®同 HipChat™ )整合,令 WHMCS 能夠喺事件發生時即時通知你。

你可以喺設置( < I id=1 > ) % 3E 系統設置% 3E 通知中訪問此功能。

Notifications in the Admin Area

透過設置條件,你可以畀 WHMCS 喺你嘅 Slack 頻道同 HipChat 房間中通知你關注嘅事件。 例如:

  • 支持部門中開啟一張優先級嘅新工單時,通知我嘅支持頻道或房間。
  • 企業客戶客戶組中嘅客戶開啟新工單或回覆時,通知我嘅企業支持頻道或房間。
  • 当開啟一張主題中包含緊急字樣嘅新工單時,通知我嘅緊急頻道或房間。
  • 当有人下單金額超過 25 美金時,通知我嘅銷售頻道或房間。
  • 高價值客戶群組嘅客戶支付發票時,通知我嘅賬單頻道或房間。
  • 當客戶訂購商業主機產品時,通知我的客戶服務頻道或房間。

配置通知供應商#

WHMCS 支持以下通知供應商:

你可以透過創建自定義通知糢塊嚟添加自己嘅通知供應商。

  • WHMCS 自帶嘅電郵糢塊並未加密。 你可以複製它作為自定義通知糢塊開發嘅糢闆。
  • 更多信息,請參閱我哋嘅開發者文檔 

創建通知規則#

通知使用規則。 每條規則透過事件和條件嘅組合嚟定義何時觸發通知。

要創建新規則:

  1. 點擊建立新通知規則 
  2. 為您的規則輸入名稱和描述,以便日後輕鬆識別。
  3. 選擇一個事件類別。
    Selecting an event for a notification.
  4. 在選中事件類別中選擇一個或多個事件嚟觸發通知。 使用 Ctrl+點擊嚟揀多個事件。
    您可以使用 WHMCS API 添加自定義事件。 更多信息,請參閱自定義通知事件 
  5. 配置你希望用嚟限制系統觸發通知嘅任何條件。 可用條件取決於所選的事件類別。
    Selecting a condition for a notification.
  • 默認情況下,所有條件均為無限制。
  • 要套用條件,請為指定條件選擇或提供一個值。
    • 對於像主題這類自由文字條件,您可以選擇完全匹配或包含匹配。
    • 對於像訂單總額這類貨幣值條件,您可以指定大於小於匹配。
  • 您可以使用 NotificationPreSend 掛鉤點創建自定義條件邏輯。
    更多信息,請參閱進階通知邏輯 
  1. 配置通知供應商。
    Selecting settings for a notification.

  2. 設定通知設定。
    • 可用的通知設置將取決於您選擇的供應商。 例如,對於 HipChat 同 Slack,你必須選擇一個房間或頻道,然後可以設定所需嘅消息。
    • HipChat 仲允許你設定通知是否觸發警報,例如聲音或移動通知。
  3. 點擊創建 

  通知規則#

通知規則列表包括你 WHMCS 安裝中嘅所有規則。

啟用和禁用通知#

要啟用通知規則,將切換掣設為開啟 ,或設為關閉以停用它。

編輯通知規則#

要編輯通知規則,請點擊該通知規則嘅鉛筆圖標。

複製通知規則#

要複製通知規則,請點擊複製圖標。 自定義顯示嘅配置,然後點擊複製 

刪除通知規則#

要刪除通知規則,請點擊垃圾桶圖標,然後確認刪除。

刪除通知規則係永久性嘅。 我哋建議停用規則而非刪除它們。

高級通知邏輯#

你可以使用 NotificationPreSend 掛鉤點進一步自定義通知條件。 NotificationPreSend 掛鈎點會喺系統發送通知前執行,畀你能夠應用額外嘅條件準則並控通知訊息。

您亦可以使用此掛鉤點來阻止發送使用您邏輯嘅通知。

例如,以下掛鈎代碼會阻止 WHMCS 發送發票 ID 大於 1000 嘅通知:

<?php

add_hook('NotificationPreSend', 1, function($vars) {

    $eventType = $vars['eventType']; // e.g. "Ticket", "Invoice", "Order", "Service" or "Domain"
    $eventName = $vars['eventName'];
    $rule = $vars['rule'];
    $hookParameters = $vars['hookParameters'];
    $notification = $vars['notification'];

    // Perform additional conditional logic and throw the AbortNotification
    // exception to prevent the notification from sending.
    if ($eventType == 'Invoice'
        && $eventName == 'created'
        && (isset($hookParameters['invoiceid'])
        && $hookParameters['invoiceid'] > 1000)
    ) {
        throw new \WHMCS\Notification\Exception\AbortNotification();
    }

    // If allowing the notification to continue, you can manipulate the
    // notification using the \WHMCS\Notification\Notification object.
    $notification->setTitle('Override notification title');
    $notification->setMessage('Override notification message body');

});

為阻止通知,系統會返回一個 \WHMCS\Notification\Exception\AbortNotification(); 異常。

如果 ID 低於 1000,系統將繼續發送通知,但會覆蓋標題和信息。

要覆蓋值,請使用 $notification 中嘅 set 函數。

如需更多信息,請參閱我哋嘅內部類別文件 

自定義通知事件#

你可以使用 TriggerNotificationEvent WHMCS API 功能嚟建立自定義通知事件。 這讓您能夠擴展已有的事件列表,當您在設置()> 系統設置 > 通知中設置通知規則時可供選擇。

創建自定義事件#

要建立自定義事件,請喺你嘅自定義代碼中調用 TriggerNotificationEvent API 功能。

例如,以下代碼建立一個使用 AdminLogin 掛鈎嘅事件,每當管理員登錄管理區域時觸發通知:

<?php
add_hook('AdminLogin', 1, function($vars) {
    $command = 'TriggerNotificationEvent';
    $postData = array(
        'notification_identifier' => 'adminarea.staff.login', // A unique identifier used when referencing the notification rule.
        'title' => 'A Staff Member Just Logged In',
        'message' => $vars['username'] . ' just logged in to the WHMCS Admin Area.',
        'url' => 'https://whmcs.example.test/admin/',
        'status' => 'Success',
        'statusStyle' => 'info',
    );
    $adminUsername = 'ADMIN_USERNAME'; // Optional
    $results = localAPI($command, $postData, $adminUsername);
    print_r($results);
});

請確保你包含一個獨特嘅 notification_identifier 值。 當您為此事件設定通知規則時,將會使用此標識符。

  使用自定義事件#

創建自定義代碼後,您仍需使用事件創建通知規則。

  作步驟如下:

  1. 前往設置( < I id=1 > ) % 3E 系統設置% 3E 通知 
  2. 點擊創建新通知規則 
  3. 為您的規則輸入名稱和描述,以便日後輕鬆識別。
  4. 選擇 API 作為事件類別。
  5. 選擇自定義 API 觸發作為事件。
  6. 觸發標識符中,輸入您在自定義代碼中指定的通知標識符。 喺上面嘅例子中,係 adminarea.staff.login
  7. 選擇完全匹配 
  8. 配置通知提供者。
  9. 配置通知設定。
    如需更多信息,請參閱通知 
  10. 點擊建立 

每當您在自定義代碼中觸發 API 呼叫時,系統將會發送已配置的通知。