コード例 #1
0
ファイル: roles.php プロジェクト: wpscholar/wplib
     * @var string $role_slug
     * @return array|mixed
     */
    static function get_role_class($role_slug)
    {
        $role_classes = self::role_classes();
        return isset($role_classes[$role_slug]) ? $role_classes[$role_slug] : null;
    }
    /**
     * @return array|mixed
     */
    static function role_classes()
    {
        return WPLib::get_child_classes('WPLib_User_Base', 'ROLE');
    }
    /**
     * @param string $role_slug
     *
     * @return bool
     */
    static function current_user_is($role_slug)
    {
        /**
         * @var WP_User $current_user
         */
        $current_user = wp_get_current_user();
        return isset($current_user->roles) && is_array($current_user->roles) && in_array($role_slug, $current_user->roles);
    }
}
WPLib_Roles::on_load();
コード例 #2
0
ファイル: users.php プロジェクト: wpscholar/wplib
 /**
  * @param WP_User|int|string|null $wp_user
  *
  * @return mixed|null
  */
 static function make_user($wp_user)
 {
     if (!($role_slug = self::get_assigned_role_slug($wp_user))) {
         $user = null;
     } else {
         $role_class = WPLib_Roles::get_role_class($role_slug);
         $user = new $role_class($wp_user);
     }
     return $user;
 }