允许用户通过用户偏好设置或用户字段隐藏帖子的点赞数

这似乎适用于自定义用户组:

<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-menu", {
    menuItems() {
        const user = Discourse.User.current();
        if(user.primary_group_name.toLowerCase() === "no_likes") {
            return this.siteSettings.post_menu
                .split("|")
                .filter((item) => item !== "like");
        }
        return this.siteSettings.post_menu.split("|").filter(Boolean);
    },
});
</script>

但我仍然想知道是否有办法通过检查自定义用户字段的布尔值来实现,而不需要让用户加入某个组。我一直在查阅其他插件以了解如何实现,但到目前为止我尝试的所有方法都未能奏效。

更新:这似乎可行,但在勾选或取消勾选用户字段布尔值后需要刷新页面。

<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-menu", {
    menuItems() {
        const user = Discourse.User.current();
        if(user.custom_fields['user_field_10']) {
            return this.siteSettings.post_menu
                .split("|")
                .filter((item) => item !== "like");
        }
        return this.siteSettings.post_menu.split("|").filter(Boolean);
    },
});
</script>
2 个赞