Wordpress remove_role() не работает

Привет, я пытаюсь удалить некоторые созданные пользователем роли с помощью

$wp_roles = new WP_Roles();
$wp_roles->remove_role("your_role");

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

Я почти уверен, что это не то, что воссоздает роль, если ее не существует. Поскольку я создал эти роли с помощью add_role, эти роли полностью независимы и не создают внутреннего кода.

Спасибо

Я пробовал с плагином «Редактор ролей пользователя», тоже не работал.


person Voo    schedule 22.04.2012    source источник


Ответы (2)


Если у вас есть доступ к phpmyadmin, попробуйте отредактировать базу данных напрямую.

wp_user_roles находится в таблице wp_options.

Роль/возможность каждого пользователя указана в записи wp_capabilities в wp_usermeta.

Там вы можете добавлять/редактировать/удалять любые роли с минимальными знаниями mysql.

person Libin    schedule 26.04.2012

Попробуйте с этим

//check if role exist before removing it
if( get_role('subscriber') ){
      remove_role( 'subscriber' );
}

//check if role exist before removing it
if( get_role('contributor') ){
      remove_role( 'contributor' );
}

//check if role exist before removing it
if( get_role('editor') ){
      remove_role( 'editor' );
}

//check if role exist before removing it
if( get_role('author') ){
      remove_role( 'author' );
}
person Yacine    schedule 23.12.2016