لن تتمكن من استخدام decorateWidget() في منفذ إضافة (plugin outlet). جرّب شيئًا مثل هذا:
<script type="text/discourse-plugin" version="0.8.42">
const h = require("virtual-dom").h;
api.createWidget("user-card-custom-field", {
html(attrs) {
const userCustomFields = attrs.user.custom_fields;
if (userCustomFields.user_field_4) {
return h('span.poster-user-field', userCustomFields.user_field_4);
}
}
});
</script>
<script type="text/x-handlebars" data-template-name="/connectors/user-card-post-names/user-card-custom-field">
{{mount-widget widget="user-card-custom-field" args=(hash user=user)}}
</script>
يقوم mount-widget بتمرير كائن المستخدم المتاح من منفذ الإضافة في النواة (core) وجعله متاحًا في سمات الـ widget الذي أنشأناه وهو user-card-custom-field.
تأكد من أنك أضفت user_field_4 إلى إعدادات الموقع الخاصة بـ “حقول المستخدم المخصصة للعامة” أو “حقول المستخدم المخصصة للموظفين” حسب الحاجة.
تعديل
أيضًا، ما لم تكن هناك حاجة خاصة جدًا للقيام بشيء معين، فيجب أن تتمكن من تجنب استخدام الـ widgets تمامًا والاستفادة مباشرة من منفذ الإضافة:
<script type="text/x-handlebars" data-template-name="/connectors/user-card-post-names/user-card-custom-field">
{{#if user.custom_fields.user_field_1}}
<span class="poster-user-field">{{user.custom_fields.user_field_1}}</span>
{{/if}}
</script>