محمد بوسكوري نشر 16 يناير 2016 أرسل تقرير نشر 16 يناير 2016 (معدل) كما هو معلوم يتوفر الأدمن على عدة صلاحيات داخل الموقع، وعلى موقع مبني بووردبريس أحاول إنشاء إضافة 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'، لا أدري أين هو الخطأ؟ تم التعديل في 16 يناير 2016 بواسطة محمد بوسكوري اقتباس
1 E.Nourddine نشر 18 يناير 2016 أرسل تقرير نشر 18 يناير 2016 (معدل) المشكل الأساسي هو عند استخدام الدالة داخل editable_roles.أهداف السكريبت:السماح بإضافة مدراء الموقع والمستخدمين الجدد.السماح للمدراء بإضافة مشغلين جدد.وسيكون الحل هو عبارة تصحيح للدالة الأصلية ، التي هي كالآتي:function wf_limitAvailableRoles( $roles ){ $user = wp_get_current_user(); if (in_array( 'wf_operator', $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' );يمكنك الاطلاع على codex لإجراء بعض التعديلات على roles$:array( array( "name' => [role name] "capabilities" => [capabilities] ), array( "name' => [role name] "capabilities" => [capabilities] ) );وهذا ما تحتاج إلى استعماله بالضبط:array( [role_slug] => array( "name' => [role name] "capabilities" => [capabilities] ), [role_slug] => array( "name' => [role name] "capabilities" => [capabilities] ), ); تم التعديل في 18 يناير 2016 بواسطة E.Nourddine اقتباس
السؤال
محمد بوسكوري
كما هو معلوم يتوفر الأدمن على عدة صلاحيات داخل الموقع، وعلى موقع مبني بووردبريس أحاول إنشاء إضافة plugin تسمح لمدير الموقع بعدة صلاحيات، بالشكل التالي:
وكوظيفة تسمح بتغيير صلاحيات المستخدم، اعتمدت الكود التالي:
لكن المشكل هو عند إضافة مستخدم جديد يظهر بصلاحيات 'None'، لا أدري أين هو الخطأ؟
تم التعديل في بواسطة محمد بوسكوري1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.