QAアナリティクス専用の閲覧アカウントを作成する・権限付与する

version 4.1.0.0より、QAアナリティクス専用のユーザー権限グループを設置;
version 4.1.1.0より、QAアナリティクス専用の権限を、既存ユーザーにも付与できるようになりました。

QAアナリティクス専用ユーザーを作る方法として、
1.WordPress新規ユーザー作成の時、『権限グループ』で「QAアナリティクス専用ユーザー」を選択する
2.既存ユーザーにQAアナリティクス専用権限を付与する
の 2パターンが可能です。

1.WordPress新規ユーザー作成の時、『権限グループ』で「QAアナリティクス専用ユーザー」を選択する

QAアナリティクス専用のユーザー権限グループは、2種類あります。

  • QAアナリティクス閲覧者(QA Analytics Viewer)
     ・・・QAアナリティクスのデータ閲覧メニューのみ(ホーム、リアルタイム、SEO分析、ヒートマップ、セッションリプレイ、ヘルプ)が使えます。WordPress管理メニューは表示されません。
  • QAアナリティクス管理者(QA Analytics Manager)
     ・・・QAアナリティクスの全てのメニュー(※)が使えます。WordPress管理メニューは表示されません。

※QAアナリティクスが提供する Looker Studio コネクタ「QA Analytics Connector」はQA専用ユーザーのアカウントでは連携できません。

2.既存ユーザーにQAアナリティクス専用権限を付与する

QAアナリティクス専用権限(capability)には、以下2種類があります。

  • qahm_view_reports
     ・・・ホーム、リアルタイム、SEO分析、ヒートマップ、セッションリプレイ、ヘルプ へアクセス可
  • qahm_manage_settings
     ・・・ページバージョン、設定、ライセンス認証 へアクセス可
▼既存ユーザーにQAアナリティクス専用権限を付与するサンプルコード

WordPressの「add_cap」関数(『ユーザー』オブジェクトの関数)を用います。
お使いのthemeのfunctions.phpに、下記サンプルコードの必要な所を編集して、追記します。

function add_capability_to_specific_user() {
	$qahm_viewer = get_role('qahm-manager');
	if ( $qahm_viewer ) {
		$user_id = 123; // 権限を付与するユーザーのユーザーIDに置き換えてください
		$user = new WP_User($user_id);		
		if ($user->exists()) {
                        // 付与する権限を入れてください
			$user->add_cap('qahm_view_reports');
			$user->add_cap('qahm_manage_settings');
		}
	} 
}
add_action('init', 'add_capability_to_specific_user');

追加された権限は、
WordPress管理画面 > ユーザー > 該当ユーザーの編集画面で確認できます →
※反映されていない場合は「ユーザーを更新」してみてください。

一度ユーザー権限が付与されたら、上記のコードを呼ぶ必要はなくなりますので、コメントアウトするなどしてもよいでしょう。(記述したままでも特に問題ありません。)

add_cap関数を用いると、該当ユーザーには永久的にQAアナリティクス専用の権限が与えられます(DBのuser_metaに保存されます)。QAアナリティクスプラグインを削除しても、付与されたユーザー権限は消えません。権限を削除するには、remove_cap関数を使ってください。


【 ↓ 3.Xなど4.1.0.0未満のバージョンをお使いの方は下記方法をお試しください。 ↓ 】

※アンバサダーのuzurea.netさんから情報提供頂いた内容をもとに記事を作成しました。ありがとうございます。

WordPressの権限機能をカスタマイズすることで、特定のアカウントでQAアナリティクスだけを閲覧できるようすることができます。手順は下記です。

  1. 任意のユーザーを追加する。ダッシュボードを閲覧する権限は購読者でも大丈夫ですが、QAアナリティクスを閲覧できるようにするには管理者である必要があります。
  2. お使いのthemeのfunctions.phpに下記に記載しているコードを追加します。
  3. 2のコード中の’login_name’(2箇所)を、1で追加したユーザーのログインIDに入れ替えます。
    1. 例)$user_login === ‘myname@test.com’
  4. 2のコードの中の$need_submenusという変数のところで、1のユーザーに必要なサブメニュー名を追加したり残します。
    1. 例)$need_submenus = [‘ホーム’];
  5. 1のユーザーログインし、QAアナリティクスの管理画面URLに直接アクセスすると、正しく4で設定したメニューが閲覧できることを確認します。

add_cap関数を用いるため、上記の設定を行うと該当ユーザーには永久的にQAアナリティクスの閲覧権限が与えられます(DBのuser_metaに保存されます)。不要になった権限を削除するには、ユーザーごと削除するか、remove_cap関数を活用してください。

functions.phpに追加するコード

//管理者画面へのアクセス権を付与
function qa_roleadd_func ( $user_login , $current_user ) {
    //権限を与えたいユーザーのログインIDを指定します
    if ( $user_login === 'login_name' ) {
        $current_user->add_cap('manage_options');
    }
}
add_action( 'wp_login', 'qa_roleadd_func', 10, 2 );

//管理画面の不要なメニューを消す
function remove_admin_menus() {
    $currentuser = wp_get_current_user();
    if ( $currentuser->user_login === 'login_name' ) {

        //QA Analytics以外のメニューを消します
        //下記で消せないメニューは、themeに入っているfunctions.phpなどで直接追加されている可能性があります。
        global $menu;
        foreach ( $menu as $idx => $eachmenu ) {
            if ( $eachmenu[0] !== 'QA Analytics' ) {
                unset( $menu[$idx] );
            }
        }

        //QA Analytics サブメニューコントロール
        //必要なメニュー名を記入しておきます。
        $need_submenus = ['ホーム', 'リアルタイム ビュー', 'ヒートマップ管理'];
        global $submenu;
        foreach ( $submenu['qahm-home'] as $idx => $eachsub ) {
            $is_need = false;
            foreach ( $need_submenus as $need_submenu ) {
                if ( $eachsub[0] === $need_submenu ) {
                    $is_need = true;
                }
            }
            if ( ! $is_need ) {
                unset( $submenu['qahm-home'][$idx] );
            }
        }
    }
}
add_action('admin_menu', 'remove_admin_menus');

関連記事