在帮助中心只向客户显示相关的工单表格,打造自定义的支持体验。在本教程中,您将了解如何根据用户组织隐藏特定工单表格。

此工作流程包括以下步骤:

  • 第 1 步:查找工单表格 ID
  • 第 2 步:查找组织名称
  • 第 3 步:编辑 JavaScript

此工作流程不适用于未经身份验证或没有组织的用户。对于这些用户,将显示所有表格。

注意:如果主题使用 Guide Templating V2,您必须导入 jQuery 。此代码不适用于 Guide 模板化 V4。有关完整详情,请参阅帮助中心主题的模板化版本。
免责声明:本文仅供说明之用。Zendesk 对代码不提供支持,也不保证代码质量。也不针对第三方技术(例如 JavaScript、jQuery 或 CSS)提供支持。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。如果您的帮助中心使用的是自定义主题,而不是默认的 Copenhagen 主题代码,也可能无法使用此代码。

第 1 步:查找工单表格 ID

  1. 在工单表格中,打开适当的工单表格
  2. 在 URL 中最后一个斜杠后找到 ID 号

工单表格 ID

第 2 步:查找组织名称

  1. 在 Support 中,打开客户标签
  2. 浏览或搜索组织以找到正确的组织名称。

第 3 步:编辑 JavaScript

如果主题使用Guide Templating V2 ,您必须导入 jQuery。有关完整的详情,请参阅导入或升级 jQuery 。此代码依赖于 DOMNodeInserted 变动事件。新版 Chrome 和 Chromium 已停止支持此变动事件。要兼容不支持 DOMNodeInserted 的浏览器,请按照 Mutation Observer 指南迁移到较新的功能。

编辑代码:

  1. 在知识中,单击自定义设计图标(自定义侧栏中的设计图标)
  2. 单击您要编辑的主题名称
  3. 单击选项菜单,选择编辑代码,然后选择 Script.js
  4. 复制以下代码块:

    $(document).ready(function() {
      var formID = 6502769669773; // Change this to the form ID you wish to remove
        var userOrgs = window.HelpCenter.user.organizations;
        var userOrgNames = userOrgs.map(org => org.name);
    
    if (!(userOrgNames.includes("ZENDESK"))) { // Specify the organization name here
    
          // If the user does not belong to the organization specified, remove the form option from the dropdown
          $('#request_issue_type_select option[value="' + formID + '"]').remove();
          $('.nesty-panel').on('DOMNodeInserted', function(e) {
            $(this).children('ul').children().remove('#' + formID);
          });
        }
      });
  5. 将代码粘贴到帮助中心代码的 JavaScript 模板中
  6. 将 formID = 6502769669773 变量替换为您希望隐藏的工单表格 ID
  7. 将 "ZENDESK" 替换为您希望工单表格对其可见的组织的名称
  8. 如果您不复制所有字符,例如;和}从模板,代码可能会中断页面
  9. 保存模板并发布更改

以上提供的代码为其他组织预留了空间。要添加其他表格和组织,复制if语句,并将其放在现有的if语句。将工单表格 ID 替换为正确的 ID 和您要检查的组织。可以根据需要对更多工单表格和组织重复此操作,数量没有限制。

要更改代码的行为,以向除指定组织以外的所有组织显示一张工单表格,请将 NOT 运算符 (!) 从 if 语句中移除。

for (var c in HelpCenter.user.organizations) {
 if (HelpCenter.user.organizations[c].name !== "ZENDESK"){
 $("#TICKT_FORM_ID").remove();
 }
if (HelpCenter.user.organizations[c].name !== "MYORG"){
 $("#TICKET_FORM_ID2").remove();
 } 

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

由 Zendesk 提供技术支持