كما هو معلوم يتوفر الأدمن على عدة صلاحيات داخل الموقع، وعلى موقع مبني بووردبريس أحاول إنشاء إضافة plugin تسمح لمدير الموقع بعدة صلاحيات، بالشكل التالي: function wf_getManagerCaps() {
return array(
"add_users" => true,
"create_users" => true,
"edit_users" => true,
"list_users" => true,
"promote" => true,
"remove" => true,
"delete" => true
);
}
add_role("wf_manager", "WF Manager", wf_getManagerCaps()); وكوظيفة تسمح بتغيير صلاحيات المستخدم، اعتمدت الكود التالي: ببfunction wf_limitAvailableRoles( $roles ){
$user = wp_get_current_user();
if (in_array( WF_MANAGER_ROLE_SLUG, $user->roles)) {
$roles = array(
array(
"name" => "wf_manager",
"capabilities" => wf_getManagerCaps(),
),
array(
"name" => "wf_employee",
"capabilities" => wf_getEmployeeCaps(),
),
);
}
return $roles;
}
add_filter( 'editable_roles', 'wf_limitAvailableRoles' );لكن المشكل هو عند إضافة مستخدم جديد يظهر بصلاحيات 'None'، لا أدري أين هو الخطأ؟