как создать настраиваемые возможности для пользовательской роли пользователя

Я создал новую роль пользователя.

add_role('lln_assessor', 'LLN Assessor', array(
'read' => true, 
));

эта роль будет иметь доступ к пользовательской странице меню администратора.

add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {

    global $user_ID;

    if ( current_user_can( 'lln_assessor' ) ) {
        add_menu_page('Axcelerate LLN','LLN Datas','read_assess_lln', 'Axcelerate_Link_Admin_lln_data','axcelerate_link_admin_lln_data_fn','','1.0' );
    }
}

но сначала я должен создать для него пользовательскую возможность.

$role_object = get_role( 'lln_assessor' );

// add $cap capability to this role object
$role_object->add_cap( 'read_assess_lln');

но проблема, когда я пытаюсь получить доступ к меню «Данные LLN» на панели администратора, я получаю эту ошибку.

You do not have sufficient permissions to access this page.

Я думаю, что ошибка была в пользовательской возможности, но я понятия не имею, как ее исправить. пожалуйста помоги.


person gadss    schedule 03.12.2015    source источник
comment
используйте этот плагин для возможности wordpress.org/plugins/capability-manager-enhanced   -  person Deepak saini    schedule 03.12.2015


Ответы (1)


Попробуйте изменить current_user_can с lln_assessor на read_assess_lln.

if ( current_user_can( 'read_assess_lln' ) ) {
        add_menu_page('Axcelerate LLN','LLN Datas','read_assess_lln', 'Axcelerate_Link_Admin_lln_data','axcelerate_link_admin_lln_data_fn','','1.0' );
    }

И убедитесь, что вы вошли в систему как lln_assessor, а не как администратор.

person omer Farooq    schedule 03.12.2015