マルチサイトなWooCommerceで、店長権限に新規ユーザー登録をさせる方法

Pocket

ネットショップで、新規のお客様からの注文を、お店のほうで注文の入力をする、ということはよくあるのではないか。

それを、マルチサイトなWooCommerceでやる際の方法についての備忘録。

お店:WooCommerceで作ったサイト

お店は、Shop Manager権限とする。

MultisiteでインストールされているWordPressの、Network設定にて

  • 新規登録の許可:ユーザーアカウントの新規登録を許可
  • 新規ユーザーの追加:チェック

これだけだと、管理者権限の場合のみ、新規ユーザーを登録できる。

Shop Manager権限でも新規ユーザー登録できるように、capabilityを追加。Pluginで実装する場合は

// add user capability to shop_manager
function hoge_shop_manager_caps() {
    // Gets the shop_manager role object.
    $role = get_role( 'shop_manager' );

    // Add a create_users capability.
    $role->add_cap( 'create_users', true );
    $role->add_cap( 'add_users', true );
    $role->add_cap( 'remove_users', true );
    $role->add_cap( 'delete_users', true );
    $role->add_cap( 'list_users', true );
    $role->add_cap( 'promote_users', true );
}

add_action( 'plugins_loaded', 'hoge_shop_manager_caps', 11 );

新規ユーザーを顧客として追加するには、promote_usersが必要。

ユーザー情報を編集するには、 manage_network_users を追加した上で、edit_users も必要。

不要な権限の追加には注意されたい。