Welcart の「編集者(設定権限無し)」ユーザーでも営業日設定権限は与えたい
カテゴリー: WordPress
この記事は2017年9月6日に書かれたものです。情報が古い可能性がありますのでご注意ください。
Welcart をインストールすると、WordPress のユーザー権限に「編集者(設定権限無し)」「編集者(マネジメント権限無し)」の2つの権限が追加されます。「編集者」としての権限は WordPress デフォルトの編集者権限と同様ですが、Welcart メニューに対する権限は、「設定権限無し」が商品管理と受注・会員管理のみ、「マネジメント権限無し」が商品管理のみとなっています。
いずれも各種設定権限が与えられないわけですが、営業日設定についてはショップ担当者に更新を委ねたい、つまり編集者でも権限を与えたいという場合があるのではないでしょうか。
「編集者(設定権限無し)」あるいは「編集者(マネジメント権限無し)」でも営業日設定だけは権限を与えたいという場合、ユーザー権限を WordPress デフォルトの「編集者」として、管理者権限以外に不要な権限を与えない設定を行うことで可能です。
メインメニュー | サブメニュー | 編集者(設定権限無し) | 編集者(マネジメント権限無し) |
---|---|---|---|
Welcart Shop | ホーム | ○(権限あり) | ○(権限あり) |
商品マスター | ○(権限あり) | ○(権限あり) | |
新規商品追加 | ○(権限あり) | ○(権限あり) | |
基本設定 | ×(権限無し) | ×(権限無し) | |
営業日設定 | ×(権限無し) | ×(権限無し) | |
配送設定 | ×(権限無し) | ×(権限無し) | |
メール設定 | ×(権限無し) | ×(権限無し) | |
カートページ設定 | ×(権限無し) | ×(権限無し) | |
会員ページ設定 | ×(権限無し) | ×(権限無し) | |
システム設定 | ×(権限無し) | ×(権限無し) | |
クレジット決済設定 | ×(権限無し) | ×(権限無し) | |
Welcart Management | 受注リスト | ○(権限あり) | ×(権限無し) |
新規受注見積登録 | ○(権限あり) | ×(権限無し) | |
会員リスト | ○(権限あり) | ×(権限無し) | |
新規会員登録 | ○(権限あり) | ×(権限無し) |
上記の権限では、営業日設定の権限がありません。そこで、権限を WordPress デフォルトの「編集者」に設定します。この「編集者」は Welcart メニューの全ての権限が与えられます。
そして、管理者権限以外に営業日設定を除く設定権限を与えないため、functions.php に以下を記述します。
function remove_menus () {
if (!current_user_can('administrator')) { // 管理者権限以外
global $menu;
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_initial'); // 基本設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_delivery'); // 配送設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_mail'); // メール設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_cart'); // カートページ設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_member'); // 会員ページ設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_system'); // システム設定
remove_submenu_page('usc-e-shop/usc-e-shop.php', 'usces_settlement'); // クレジット決済設定
}
}
add_action('admin_menu', 'remove_menus');
これで、上記の「編集者(設定権限無し)」に営業日設定を加えた権限を与えることができます。
また、通常、投稿のカテゴリーやタグなどを上記の記述で削除した場合はメニュー項目から消えるだけで、URL に直アクセスすると表示されるのですが、Welcart メニューの場合は非表示としたメニューの URL に直アクセスしても「このページにアクセスする権限がありません。」と表示されます。
なお、マネジメント権限も与えない場合は、上記の記述の中に
remove_menu_page('usces_orderlist'); // Welcart Management
を加えます。