问题
如何根据用户组织隐藏工单表格?
回答
免责声明:本文仅供说明之用。Zendesk 不支持代码,不保证代码质量,也不针对第三方技术(例如 JavaScript、jQuery 或 CSS)提供支持。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。
要根据用户组织名称隐藏特定工单表格,请执行以下步骤:
注意:如果您的主题使用 Guide Templating V2,则必须导入 jQuery。有关完整详情,请参阅文章:导入或升级 jQuery。
第 1 步:查找工单表格 ID
第 2 步:查找组织名称
- 前往管理中心,导航到“人员”。
- 浏览或搜索组织以找到正确的组织名称。
第 3 步:编辑 JavaScript
注意:如果用户未从模板复制所有字符(例如“;”和“}”),则代码将无法如期运行,并可能导致用户无法访问用户个人资料下拉菜单,也无法看到“我的活动”按钮、“退出”按钮等组件。
- 在 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); }); } });
- 将
formID = 6502769669773
变量替换为您希望隐藏的工单表格 ID。 - 将
"ZENDESK"
替换为您希望工单表格对其可见的组织的名称。 - 将代码粘贴到帮助中心代码的 JavaScript 模板中。
- 保存模板并发布更改。
以上提供的代码为其他组织预留了空间。要添加更多表格和组织,请复制上列 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();
}
注意:此工作流程不适用于未经身份验证或没有组织的用户。对于此类用户,系统将显示所有表格。