Экспорт WordPress Роли пользователей и групп доступа
Я использую плагин Wordpress User Access Manager (UAM), который обрабатывает роли, группы пользователей и предоставляет пользователю доступ к одной или нескольким группам. Этот плагин не использует стандарт wp_capabilities
ролей, поэтому невозможно экспортировать отношения ролей / групп через обычный плагин экспорта CSV, такой как плагин Export Users To CSV.
Поэтому я пытаюсь взаимодействовать с плагином UAM через его интерфейс API и / или WP-CLI:
private function userAccessGroups() {
global $userAccessManager;
//use UserAccessManager\ObjectMembership\UserMembershipHandler;
// get a reference to the UserGroupHandler
$userGroupHandler = $userAccessManager->getUserGroupHandler();
$objectHandler = $userAccessManager->getObjectHandler();
// get a reference to the UserMembershipHandler
$objectType = \UserAccessManager\Object\ObjectHandler::GENERAL_USER_OBJECT_TYPE;
$userMembershipHandler = $objectHandler->getObjectMembershipHandler($objectType);
$allUsers=[];
// get all user groups
$userGroups = $userGroupHandler->getUserGroups();
if (count($userGroups) > 0) { // has user groups
foreach ($userGroups as $userGroup) {
// get all users in a group
// getFullObjects(AbstractUserGroup $userGroup, $lockRecursive, $objectType = null)
// https://github.com/GM-Alex/user-access-manager/blob/master/src/ObjectMembership/UserMembershipHandler.php#L151
$users = $userMembershipHandler->getFullObjects($userGroup, true, $objectType);
$allUsers = array_merge($allUsers, $users);
}
}
//var_dump( $allUsers );
return $allUsers;
}
и я добавил эту функцию в хук экспорта WP. Функция работает, но я не могу получить доступ к группам пользователей, как ожидалось. У плагина UAM есть своя собственная база данных, но я бы предпочел пройти через API плагина, который частично документирован в вики UAM - фрагменты кода
Я также попробовал этот альтернативный способ в соответствии с документами
$users = $userGroup->getFullUsers();
foreach($users as $user) {
var_dump($user);
}
Но я все еще получаю массив пользователей без данных.