Skip to content

ADM-025 会員管理画面 ​

項目内容
最終更新2026-07-25

概要 ​

  • role = member の WordPress ユーザーを一覧・詳細で閲覧する専用管理画面。
  • 手動退会・購入付与/取消は本画面のスコープ外。
  • 会員詳細からのみ、未確認・在籍会員へ確認メール再送が可能(確認ダイアログ付き)。
  • サイト運営ダッシュボード配下のサブメニューとして登録。

外部インターフェース ​

管理画面 URL ​

項目値
URL/wp-admin/admin.php?page=member-admin
メニュー名会員管理
権限manage_options
親メニューサイト運営ダッシュボード(site-ops-dashboard)

GET パラメータ ​

パラメータ説明
ma_searchメール・表示名・ログイン名の部分一致検索
ma_statusall(既定)/ active(在籍)/ withdrawn(退会済み)
ma_pagedページ番号(1 始まり)
ma_per_page表示件数(20 / 50 / 100)
ma_user_id詳細表示対象のユーザー ID(指定時は詳細ビュー)

フォーム POST(確認メール再送) ​

POST admin.php?page=member-admin(詳細表示中の ma_user_id を維持してリダイレクト)。

ma_action 値処理
resend_email対象会員へ確認メール再送(MemberEmailVerificationService::issue_and_send。成否 bool を返却)
フィールド説明
ma_noncenonce(アクション: member_admin)
ma_user_id対象ユーザー ID
ma_actionresend_email

確認ダイアログ: data-confirm-message(例: 「この会員に確認メールを再送します。よろしいですか?」)

issue_and_send が false(wp_mail 失敗等)のときはエラー通知。トークンは差し替え済みのまま残し、ロールバックしない。

リダイレクト後クエリ(通知) ​

クエリ内容
ma_success1 / 0
ma_msg表示文言(URL エンコード)

一覧 URL のエンコード ​

ページネーション・詳細リンクとリダイレクト先はいずれも build_list_page_url() が組み立てる。add_query_arg() は値をエンコードしないため、AdminQueryUrl が渡された生値を 1 回だけ URL エンコードする(ma_search などのフィルタ値も同じ扱い)。生値のままだと & や # を含む検索語で条件や文言が途中で切れる。

既知の制約: 受け取り側の sanitize_text_field() は % + 16 進 2 桁を削除するため、A%2Bb のような検索語は往復で値が変わる。

画面 ​

一覧 ​

列内容
IDwp_users.ID
表示名display_name
メールuser_email
ロールWP_User::roles(表示名。複数時はカンマ区切り。未設定時は —)
メール確認member_email_verified が 1 なら確認済
退会member_withdrawn_at の有無
登録日user_registered
操作詳細リンク

詳細 ​

  • 基本: ID、ログイン名、表示名、メール、ロール、登録日
  • メタ: メール確認、規約同意版・同意日時、退会日時
  • 購入履歴: db_paid_article_purchase(記事タイトル・金額・購入日時・外部取引 ID)。読み取りのみ
  • 確認メール再送: 未確認かつ在籍のときのみボタン表示。確認ダイアログ後に POST

データ ​

  • アカウント: wp_users / wp_usermeta(role=member のみ)
  • 購入: db_paid_article_purchase(user_id 論理参照)

エラー ​

条件ユーザー向け挙動
権限不足Messages::PERMISSION_DENIED で wp_die
詳細で非 member / 不存在一覧へ誘導し「会員が見つかりません」表示
再送: 確認済み / 退会済 / 非会員リダイレクト+エラー通知
再送: wp_mail 失敗リダイレクト+送信失敗のエラー通知
nonce 不正リダイレクト+Messages::AUTH_FAILED