[WooCommerce] 後台整理術:開放修改作者、編輯等使用者帳號設定

本篇文章更新時間:2021/03/18
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣贊助支持。


之前的系列都是寫「WordPress」的後台整理術。這次會寫「WooCommerce」的後台整理術有一個最關鍵的原因:只有商店管理員 Shop Manager 可以去管理到 WordPress 使用者。

只是!

這功能只能針對「客戶」(Customer)來編輯,其他的角色都無法去編輯。

  • 為什麼要開通所有使用者的編輯功能?

因為我在 WordPress 權限架構上的設計是除了管理員之外,次高等級權限的使用者會是客戶端使用的「管理員」。純 WordPress 網站使用的話就是「編輯」(Editor),而有 WooCommerce 電商功能的話就是「商店管理員」。

如果定義是多用戶協作的網站的話,「管理員」就有需求來配置使用者帳號,所以開權限出來就有需求囉!

function mxp_map_meta_cap_for_users_editor($caps, $cap, $user_id, $args) {
    $check_caps = [
        'edit_user',
        'remove_user',
        'promote_user',
        'delete_user',
        'delete_users',
    ];
    // 判斷是不是管理員,是就不動
    if (!in_array($cap, $check_caps) || current_user_can('administrator')) {
        return $caps;
    }
    // 不是管理員的話,把「不允許」標籤移除
    $caps = array_filter($caps, function ($e) {
        return ($e !== 'do_not_allow');
    });
    // 排除管理員帳號的授權
    $other = get_user_by('id', $args[0] ?? false);
    if ($other && $other->has_cap('administrator')) {
        $caps[] = 'do_not_allow';
    }
    return $caps;
}
add_filter('map_meta_cap', 'mxp_map_meta_cap_for_users_editor', 11, 4);

將上述程式碼放置於(子)主題中就可以使用了。

後記

雖不是每個 WooCommerce 站都會這樣用,但這個設定符合整理後台給客戶使用的一個功能環節,就也列進來筆記吧~

通常這需求會搭配的外掛是 WP User Avatar | 使用者個人資料圖片 為每個站上使用者設定大頭貼的外掛 與 Import Users from CSV 讓客戶能夠去批次新增網站用戶帳號。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____34%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *