当サイトには広告が含まれております

WordPressでタスク管理:ログインユーザー別掲示板でチケットシステムのようなものを作ってみた

この記事は最終更新日から5年経過しています。内容が古い可能性があります。

お客様と仕事上のやりとりをしていてメールは煩雑だなと思うことがあります。プログラムの開発の場合は「チケットシステム」という課題ごとに掲示板のように「課題」「それに対するレスポンス」のみでやりとりをするものを使うことが多いです。お客様ともこの「チケットシステム」をなんとか使えないかと考えたのですが既存のものは使い方が煩雑そうだったり料金が高そうだったりして導入には至っていませんでした。そこで、WordPressならお客様も慣れているし、掲示板のようなものを使ってお客様ごとにやりとりできたらチケットシステム的な使い方ができるのでは?と思いついて作ってみました。

記事をざっと見る

掲示板でチケットシステムのようなものを作る、という仕様

掲示板でチケットシステムのようなものを作る、ということを考えたときに仕様はこのようにしよう(だじゃれではないですが…)と思いました。

・お客様が慣れているWordPressの中に作る
・お客様別の掲示板を作り、書き込んだり見ることができるのはその掲示板のお客様と管理者のみ
・お客様全員が参加できる総合掲示板を1つ作る
・説明に必要なので画像も添付できるようにする

というものです。

これらが実現すれば、システム開発で言う「チケットシステム」ができるのではないかと思いました。ちないにCRM(顧客管理システム)でもチケットシステムは利用されているようです。

掲示板をプラグインbbpressで作成する

掲示板といえばやはり有名なプラグインbbPressですね。まずは掲示板をプラグインで作ってみたいと思います。

ダッシュボード プラグイン>新規追加 をクリック

bbpressと入力すると

このプラグインが見つかりますので、今すぐインストールをクリック

有効化をクリック。これでインストールが終了です。

bbPressでフォーラムを作ってみる

インストールしたbbPressでフォーラム(=掲示板)を作ってみます。

最終的には

・ログインした人全員が見ること、書くことのできる掲示板
・管理者以外のユーザー(仮にお客さん)がログインしたときはそのユーザーと管理者のみが見ること、書くことのできる掲示板

の2種類を作る予定です。

フォーラムを作るには、

ダッシュボード フォーラム>フォーラムを新規作成 をクリック

このような画面になるので

タイトルと説明、パーマリンクを入力して

公開をクリックします。

このテスト用サイトにはあらかじめ複数のユーザーを作っておきましたので、そのうちの

この3人にいて個人用掲示板を作ってみます。

こんな感じに入力して、公開をクリックして3人分の専用掲示板を作ってみました。

スラッグにユーザーのログインIDを使っています。これは各個人の専用掲示板へのリンクを自動的に表示させるためにこのようにしてみました。

ということで4つの掲示板を作りました。

bbPressで作ったフォーラムは基本的にはすべて公開されている

みんなの掲示板、に書き込みをしてみます。

フォーラム一覧から 表示をクリックしてみんなの掲示板を表示させます。

このように内容を入力して

送信をクリックします。

そうすると、このようにトピック(チケット)が公開されました。

ということで掲示板は作成できたので、仕様のうちの

・お客様が慣れているWordPressの中に作る

は実現しました。

今時点ではまだ、

・お客様別の掲示板を作り、書き込んだり見ることができるのはその掲示板のお客様と管理者のみ
・お客様全員が参加できる総合掲示板を1つ作る
・説明に必要なので画像も添付できるようにする

この3つの仕様が実現できていません。お客様全員が参加できる掲示板としてみんなの掲示板があるように見えますが、今時点ではログインしていない人でも誰でもurlさえわかれば見ることができる状態ですので、こちらもまだ実現できていません。

bbPressに画像などを添付できるようにする

ということで、想定している使い方は「お客様がなにか困ったことがあり、問い合わせがくる。そのやりとりにチケットを使う」というものです。ということは困った状態の画像など、文字以外でのご連絡もあるかと思います。

先ほどの入力画面

にはメディアがないため、画像のアップロードはできそうにありません。調べたところbbPressに画像をアップロードできるプラグインがあるようなので使ってみました。

ダッシュボード プラグイン>新規追加 をクリック

GD bbPress Attachmentsと入力すると、

このプラグインが見つかりますので、今すぐインストールをクリック

有効化をクリック。これでインストールが終了です。

インストールが終了してから、再度フォーラムのトピック追加画面を見ると、

送信の上にファイルを添付できる部分が追加されていました。

ファイルを選択をクリックし

pcから画像ファイルを選択して、送信をクリックすると、

このように画像付きでトピックを作成することができました。

画像をクリックすると

拡大表示され、

ファイル名をクリックするとファイルをダウンロードすることができます。

これで、

・説明に必要なので画像も添付できるようにする

の仕様がクリアされました。

残りは

・お客様別の掲示板を作り、書き込んだり見ることができるのはその掲示板のお客様と管理者のみ
・お客様全員が参加できる総合掲示板を1つ作る

です。

プラグインbbP private groupsでフォーラム単位で利用者を制限する

検索したところbbP private groupsというプラグインでフォーラムにグループ単位で利用者を制限することができるようでしたので導入します。

ダッシュボード プラグイン>新規追加 をクリック

bbP private groupsと入力すると、

このプラグインが見つかりますので、今すぐインストールをクリック

有効化をクリック。これでインストールが終了です。

このプラグインではグループを作り、フォーラムごとにどのグループに属している人が利用できるか、を指定することができます。

ということで各ユーザーごとのグループを作ります。

ダッシュボード 設定>bbp Private Groups をクリック

Group Name Settingsタブをクリック

Group1、Group2というグループがありますがここに各お客様ごとのグループを作っていきます

今回はテスト用に3人のお客さんでテストをしたいと思います。2人分の名前を入れてからAdd new groupにチェックを入れてからSave Groupsをクリック

Group3が表示されるので、名前を入力してSave Groupsをクリック。これでテストに必要なグループができました。

次にそれぞれのグループに誰が所属しているのか?を指定します。

ダッシュボード ユーザー>ユーザー一覧 をクリック

該当するユーザーの

編集をクリック。

編集画面の一番下の方にスクロールすると

このように先ほど作った3つのグループが表示されているので、

該当するグループにチェックを入れて、ユーザーを更新をクリックします。
これを3人分行います。管理者についてはこの作業は必要ありません。

ダッシュボード フォーラムをクリックすると一覧が表示されますので

各お客様用専用掲示板の編集をクリックします。

本文入力域の下にForum Groupsという項目が表示されています。デフォルトではこのように何もチェックが入っていない状態となります。

この状態は、ログインしていない人も含めたすべての人が見ることができる 状態です。

そこで

Group1 小田様のみにチェックを付けて、

更新をクリックします。

これまではログインしていないユーザーでもurlを入力すれば上記のように掲示板が表示されていましたが、bbP private groupsを入れて設定した後は同じurlを見たときに

ログイン画面に移動します。

管理者とこの専用掲示板で指定されたグループに所属している人(この場合は小田様)がこのurlを見たときは、

このように掲示板が表示されます。

この掲示板をログインしているがこのグループに所属していない人が見ると

お探しのページが見つかりません、と表示され、見ることができない状態になっています。

次にログインしている人が全員使える掲示板の設定をします。

フォーラム一覧から

みんなの掲示板編集をクリック

現在Forum Groupsにはこのチケットシステムのユーザーごとのグループがすべて存在している(という仮定)ので

すべてにチェックを付けて


更新をクリックします。

この状態でログインしている人それぞれがみんなの掲示板をみると

このように見ることと書くことができるようになっています。

ログインしていない人がこの掲示板のurlを入力して見ようとすると、

ログイン画面が表示されて見ることができない状態です。

ログインユーザー全員がそれぞれのグループを持っているという前提ですが、もしも「個別の掲示板を持てる会員」と「それ以外の会員」がいて、ログインさえできれば「みんなの掲示板」が使えるようにしたいというような場合は、「ログイン者全員のグループ」というものを作っておいて、ユーザー全員(管理者以外)はそのグループにチェックをいれておくという方法でも実現できると思います。

これで、

・お客様別の掲示板を作り、書き込んだり見ることができるのはその掲示板のお客様と管理者のみ
・お客様全員が参加できる総合掲示板を1つ作る

の仕様もクリアして、最初に想定した機能すべてが実装できました!

まとめ:使ったプラグインは3つ。bbPressはまだ色々な機能がありそうです

ということで長くなってしまったのでまとめます。使ったプラグインは3つです

・bbPress フォーラムの本体プラグイン
・GD bbPress Attachments 画像をアップロードできるようにするプラグイン
・bbP private groups フォーラムの利用者をグループごとに限定するプラグイン

です。

ということでこの手順で「ユーザーと管理者だけのプライベートフォーラム(掲示板)」を作成することができます。

実際には、

こんな感じで、お客さんと管理者が1つのチケットについてのやりとりを行う、という形になっていくといいなぁと思っています。

bbPressを使ったのは今回が初めてなのですが、多くのユーザーがいるようでこれ以外にも機能や設定によって使い勝手が良くなったりするのではないかと思っています。

おまけ:ログインユーザー専用の掲示板を表示するショートコード

ユーザー専用掲示板を作った時にスラッグをログインIDにしました。これは「ログインしたユーザーの専用掲示板へのリンクが自動的に表示できるように」ということを考慮してのことです。

例えば以下のコードを

// 下記はショートコードがそのまま表示されてしまうときに用のコード
add_filter('widget_text', 'do_shortcode' );

// ショートコード追加
function user_bbs_show(){
    if ( !current_user_can( 'administrator' ) ) {
        $user = wp_get_current_user();
        return '<div class="user_bbs_link"><a href="'. home_url().'/forums/forum/'.$user->user_login.'">'.$user->display_name.'様専用掲示板</a></div>';
    } else {
        return '';
    }
}
add_shortcode('user_bbs_show', 'user_bbs_show');

子テーマのfunctions.phpに記述するか、Code Snippetsで追加すればショートコードをウィジェットなどに指定するだけで、ログインした人専用の掲示板へのリンクを貼ることができます。

Code Snippetsについては以下のurlで説明をしています。

あわせて読みたい
プラグイン「Code Snippets」で機能を追加するとテーマを変更しても大丈夫 仕事でホームページを制作する際にphpでコードを書いてカスタマイズをすることが多いです。その場合、「子テーマのfunctions.php」にコードを書いています。コードは使...

また、Code Snippets用のコードをこちら(ユーザー専用掲示板リンク表示ショートコード.code-snippets)に置いておきますので、展開>インポート>有効化 すると使えるようになります。

外観>ウィジェットで、好きなウィジェットエリアに

[user_bbs_show]

と記述して保存すれば、ログインしたユーザーには



このように、ユーザーごとの専用掲示板のリンクが表示されるようになります。

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントを残す

記事をざっと見る