在帮助中心仅向客户显示相关的工单表格,创建自定义支持体验。在本教程中,您将了解如何根据用户组织隐藏特定工单表格。
此工作流程包括以下步骤。
此工作流程不适用于未经身份验证或没有组织的用户。对于此类用户,系统将显示所有表格。
如果您的主题使用 Guide 模板化 V2,则必须导入 jQuery。有关完整详情,请参阅文章:导入或升级 jQuery。
免责声明:本文仅供说明之用。Zendesk 不支持代码,不保证代码质量,也不针对第三方技术(例如 JavaScript、jQuery 或 CSS)提供支持。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。
第 1 步:查找工单表格 ID
- 在工单表格中,打开相应工单表格
- 在 URL 中最后一个斜杠后找到 ID 号
第 2 步:查找组织名称
第 3 步:编辑 JavaScript
如果您的主题使用 Guide 模板化 V2,则必须导入 jQuery。有关完整详情,请参阅文章:导入或升级 jQuery。此代码依赖于 DOMNodeInserted 变动事件。新版 Chrome 和 Chromium 已停止支持此变动事件。要兼容不支持 DOMNodeInserted 的浏览器,请按照 Mutation Observer 指南迁移到较新的功能。
- 在 Guide 中,单击侧栏中的自定义设计图标 ()
- 单击您要编辑的主题名称
- 单击选项菜单,选择编辑代码,然后选择
Script.js
- 复制以下代码块:
$(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); }); } });
- 将代码粘贴到帮助中心代码的 JavaScript 模板中
- 将
formID = 6502769669773
变量替换为您希望隐藏的工单表格 ID - 将
"ZENDESK"
替换为您希望工单表格对其可见的组织的名称 - 如果用户未从模板中复制所有字符,例如
;
和}
,则代码可能会分页 - 保存模板并发布更改
以上提供的代码为其他组织预留了空间。要添加更多表格和组织,请复制上列 if
语句,并将其置于现有 if
语句之下,确保正确替换工单表格 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();
}