快速答案:一個帳號的角色可能被四個地方改:註冊時的預設角色、註冊表單的規則、會員或訂閱外掛在方案變動時的自動指派、管理員手動改。角色不對,先到「使用者」看該帳號現在的角色,再回推他是走哪條路註冊的(一般表單、結帳頁、社群登入)、最近有沒有會員方案變動。會員價沒出現,九成是角色不對或頁面被快取。
為什麼會這樣 #
WordPress 有好幾個「註冊入口」:預設註冊頁、WooCommerce 結帳頁的建立帳號、會員外掛的註冊表單、LINE 或 FB 社群登入。你在其中一個表單設的必填欄位(例如通路碼)和角色規則,其他入口不會照做。所以客人「跳過必填就註冊成功」不是他厲害,是走了另一條路。表單的必填驗證如果只在瀏覽器端做,換個瀏覽器也能繞過,伺服器端也要擋。
會員與訂閱外掛在方案啟用、到期、取消時,是「覆寫」角色而不是「加上」角色。你手動幫客人設好的角色,到下一次續費日就被改回去。WordPress 預設一個使用者只有一個角色,除非用支援多角色的外掛。
角色靠 slug 識別,不是靠顯示名稱。把「店家」改名成「B2B」時如果順手建了新角色,所有依角色的價格、商品可見度規則就都對不上了。會員價或角色限定商品沒出現,還有一種是角色對了,但頁面快取把未登入版本給了登入者。
怎麼處理 #
- 使用者 → 找到該客人,看角色、註冊日期、來源欄位(如果表單有記錄)。
- 問客人是從哪裡註冊的(購物車、LINE、表單),到那個入口實際測一次。
- 必填欄位在每個入口都要有伺服器端驗證;社群登入要加一個「完成註冊」的補填頁。
- 角色一直被改回去:看會員或訂閱外掛的角色指派設定,整理成「方案決定角色」的單一來源,不再手動改角色。
- 改角色名稱只改顯示名稱,不要新建角色;已經建了新角色,就把價格與可見度規則的條件也改過去。
- 會員價沒出現:登入後用無痕視窗再看一次;確認快取外掛與 CDN 有排除登入使用者。
- 定期匯出使用者清單(角色、方案、到期日),把「角色與方案不一致」的帳號找出來一次修完。
我們實際遇過的情況 #
一家電商連續發現新客「沒填通路碼也註冊成功、角色變成一般客戶」,查到是從購物車旁的 LINE 註冊進來,繞過了表單規則,而社群登入外掛本身也有限制,這一段要另外處理。同一家客戶把角色「店家」改名「B2B」後,經銷商登入看到的價格不對,是價格規則綁舊角色,補上新角色條件就好。
一個課程平台的會員被手動設成高階角色,到扣款日又被降回去,根因是會員方案外掛在續費時重設角色;後來改由方案統一決定角色,不再手動改。
什麼時候該找人 #
角色決定「誰看到什麼價格、誰能買、誰能進後台」。要批次改幾百個帳號的角色、或角色與會員方案已經對不上一段時間,需要先匯出比對再改,不要在後台一個一個點;動到管理員角色更要小心。
WPTOOLBEAR網站工具熊