Экспорт 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);
}

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

0 ответов

Другие вопросы по тегам