| アカウント種別 | 法人名 ▲ | 氏名 / アカウント名 | メールアドレス | 登録状況 | 登録日 ▼ | |
|---|---|---|---|---|---|---|
| 法人管理者 | 社会福祉法人あおぞら会 | 山田 太郎 | yamada.taro@aozora-kai.jp | 登録済み・有効 | 2026-04-01 | |
| 事業所管理者 | 社会福祉法人あおぞら会 | 鈴木 花子 | suzuki.hanako@aozora-kai.jp | 登録済み・有効 | 2026-04-01 | |
| 個人 | 医療法人大樹会 | 田中 一郎 | tanaka.ichiro@taijukai.or.jp | 登録済み・有効 | 2026-04-05 | |
| 法人管理者 | 特定非営利活動法人ひかり | 佐藤 美智子 | sato.michiko@hikari-npo.jp | お試し | 2026-05-20 | |
| 事業所 | 社会福祉法人白寿会 | 白寿デイサービス東館 | higashi@hakujukai.jp | 登録済み・有効 | 2026-04-10 | |
| 個人 | 医療法人大樹会 | 高橋 直人 | takahashi.n@taijukai.or.jp | 未登録 | 2026-06-01 | |
| 事業所管理者 | 社会福祉法人あおぞら会 | 伊藤 美紀 | ito.miki@aozora-kai.jp | 停止中 | 2026-04-08 | |
| 個人 | 特定非営利活動法人ひかり | 中村 和子 | nakamura.k@hikari-npo.jp | 登録済み・有効 | 2026-05-22 | |
| アカウント種別 | 法人名 | 氏名 / アカウント名 | メールアドレス | 登録状況 | 登録日 |
カスタムDBテーブル lms_accounts を直接クエリする LMS_Account_List_Table クラス(WP_List_Table 継承)で一覧を構築する。管理メニューは add_submenu_page() で「会員管理」親メニュー下に「全アカウント一覧」として登録。メニュースラッグ: lms-accounts。アカウント種別(法人管理者/事業所管理者/事業所/個人)はカラムフィルタとステータスビューで切替。B-MBR-002のEXCELダウンロードは同画面上部の専用ボタンから実行(全件・絞り込み結果の2種)。B-MBR-004の登録状況統計は wp-subsubsub ビューでカウント表示。
capability: manage_lms_members を新規定義し、事務局(管理者)ロールに付与。一般の editor / author ロールはアクセス不可。メニュー表示条件: current_user_can('manage_lms_members')。CRUD・停止・削除・EXCELダウンロードはすべて同権限チェック必須。将来的に「会員担当」ロール(参照のみ)追加の場合は別 capability(view_lms_members)を定義し、EXCELダウンロードとアカウント削除は管理者限定とする権限分離を検討。
主テーブル: lms_accounts(カラム: id, account_type[corp_admin/office_admin/office/personal], corp_id, site_id, display_name, email, status[active/trial/unregistered/suspended/expired], registered_at, last_login_at)。法人情報は lms_corporations テーブルと corp_id で結合(JOIN)。事業所情報は lms_sites と site_id で結合。WordPressユーザーとの紐付けは wp_user_id カラムで管理(未登録の場合は NULL)。登録状況フィルタは status カラムで集計。
一括操作(Bulk Actions): 「有効にする」(status=active へ変更)、「停止する」(status=suspended)、「削除」(完全削除・要確認ダイアログ)。行アクション(Row Actions): 「編集」→アカウント編集画面(B-MBR-001編集)へ遷移、「受講履歴」→B-HST-001(受講履歴)に当該アカウントフィルタ付きで遷移、「ログイン確認」→最終ログイン日時・IPアドレスをインラインで展開、「招待メール再送」→未登録アカウントのみ表示(SendGrid経由)、「有効にする」→停止中アカウントのみ表示、「削除」→確認後に完全削除。
表示列の選択: アカウント種別 / 法人名 / 氏名・アカウント名 / メールアドレス / 登録状況 / 登録日 / 最終ログイン日。デフォルトは全列表示(最終ログイン日は非表示)。ページあたり表示件数: デフォルト20件。set-screen-option フィルタで lms_accounts_per_page キーとして保存。フィルタ(アカウント種別・法人・登録状況・登録日)の選択状態は URL パラメータ(account_type, corp_id, status, m)で保持し、EXCELダウンロードにも反映する。
アカウント総数は初期500社×平均50アカウント=約25,000件、最大200,000件を想定。lms_accounts テーブルに status, account_type, corp_id, registered_at の複合インデックスを設定し、絞り込み検索を高速化。一覧取得は $wpdb->get_results($wpdb->prepare(...)) でページネーション(LIMIT + OFFSET)。20万件規模ではOFFSETが遅くなるため、キーセットページネーション(WHERE id > last_seen_id)への切替を将来設計で検討。EXCELダウンロード(全件)は最大200,000行になるため、非同期バックグラウンド処理(WP_Background_Processing 等)+完了通知メール方式を推奨。絞り込み結果ダウンロードは件数上限(例: 10,000件)を設け、超過時は警告表示。CRUD・一括操作・削除はすべて wp_nonce_field() / check_admin_referer() でNonce検証必須。SQL直接操作は $wpdb->prepare() でSQLインジェクション対策。メールアドレス・氏名は sanitize_email() / sanitize_text_field() でサニタイズ。