- 導入に先立ち、「ご利用にあたって」をお読みください。
- このプラグインは、有効化したときに自動的にいくつかのページを作ります。
すでに何らかのサービスが本稼働中の「本番サイト」に導入される場合は特に、別途テスト環境を準備して事前に十分な試用と確認をされることをおすすめします。 - WordPressのマルチサイトには対応していません
- wordpress.comでのご使用には対応していません
目次
インストール
- WordPress 5.x をお使いになられる場合は、Gutenbergエディタを使わず、Classic Editor を使われることをおすすめします。(WP5.xでのClassic Editor の使い方へ)
このプラグインはいくつかのページとデータベーステーブルを自動的に作ります。
- 管理画面を開き、「プラグイン」メニューの「新規追加」から "Attendance Manager" または、"attmgrのキーワードで検索します
- "Attendance Manager" が見つかったら「いますぐインストール」をクリックします
- プラグインパッケージのダウンロードが始まり、インストールされます
- 「プラグインを有効化」をクリックします
必要なページが自動的に作成されます。
FTPでアップロードする場合
プラグインファイル ("attendance-manager.zip") をダウンロードします。
管理画面「プラグイン > 新規追加 > プラグインのアップロード」からプラグインファイルをアップロードします。
プラグインを有効化します。
プラグイン設定
管理画面を開き「Attendance Manager」メニューを開きます。
オプション項目を設定します。
スケジューラ設定 開始時間 例)09:00 出勤時間の開始時刻です。
1桁の時刻は先頭に「0」を付けます。終了時間 例)18:00 出勤時間の終了時刻です。
1桁の時刻は先頭に「0」を付けます。
0時を過ぎて翌日にまたぐ時は「00:00」からの時刻を入れます。 (例:開始時間 19:00 ~ 終了時間 03:00 など)間隔 例)30(分) 出勤時間を設定する際の時間単位です。 日付・時間の書式 年 - 月 例)2015-9 月間スケジュールにおける「年月」表示の書式を選びます。 月 - 日 例)9/21 各スケジュール表における「月日」表示の書式を選びます。 時間 例)02:30 - 23:30 各スケジュール表における「時間」表示の書式と、スケジュール管理フォームにおける「時間」表示の書式を、それぞれ選びます。 ポートレイト(スタッフ画像) アイキャッチ画像を使う
(初期値)後述の「スタッフ紹介記事の投稿」にて関連付いた記事にアイキャッチ画像があれば、それをスタッフ画像として使います。 アバターを使う 「WP User Avatars」のようなプラグインを使うなどしてユーザーにアバターを設定し、それをスタッフ画像として使うことができます。「スタッフ紹介記事の投稿」は必要はありません。
* なお、Attendance Manager 自体には、アバターを設定する機能はありません。CRON設定 *擬似的な定期実行処理の設定 出勤情報を消さずに残す日数 例)60(日) 過去の出勤情報を何日分残しておくかの設定です。 CRON実行間隔 例)1日毎 過去の出勤情報のうち、残しておく分以外を削除するサイクルです。
スタッフの登録
職場のスタッフをユーザー登録します。
登録の際、「このユーザーはスタッフです」をチェックします。
登録済みのユーザーの場合は、そのユーザーのプロフィール編集ページで「このユーザーはスタッフです」をチェックします。
スタッフを「施設」や「店舗」に見立てて、出勤時間を「開館時間」や「営業時間」として使用している例もあるようです。
スタッフ紹介記事の投稿
各スタッフの紹介記事を投稿します。(例えば「スタッフ」カテゴリーなどに)
その記事に、ショートコード [attmgr_weekly id="xx"] を挿入します。
(カスタム投稿タイプに挿入する場合は、こちらをお読みください)
このショートコードは、各スタッフの「週間スケジュール」を表示させる他に、そのスタッフユーザーと投稿記事とを関連づける役割があります。
id="xx"の xx はあなたのサイトにおける各ユーザーのID番号(整数)です。
投稿記事中には、そのスタッフの「週間スケジュール」が表示されます。
投稿記事に「アイキャッチ画像」を登録した場合は、出勤表などにスタッフの画像として表示されます。
アバターを使う
プラグイン設定の「一般:スタッフ画像」で「アバターを使う」を選択すると、ユーザーにアバターが設定されていれば、それをスタッフ画像として使うことができます。その場合は、「スタッフ紹介記事の投稿」の必要はありません。
Attendance Manager 自体には、アバターを設定する機能はありません。
ユーザーにアバターを設定するには、「WP User Avatars」のようなプラグインを使うと簡単です。
(使い方については「WP User Avatars」を参照してください)
スタッフのリンクURL
「スタッフ紹介記事の投稿」を使わずに、管理画面「ユーザー編集」の「ウェブサイト(user_url)」に任意のURLを指定することもできます。
1つの「スタッフ一覧」ページ内にアンカーでリンクすることも可能です。
スタッフの本日出勤予定の表示
ショートコード [attmgr_today_work id="xx"] を挿入すると、「id」で指定したスタッフの、本日の出勤時間を表示します。
1 2 3 |
... 本日出勤:[attmgr_today_work id="5"]<br> ... |
[表示例][attmgr_today_work id="5"]
本日出勤:09:00 - 18:00
※深夜0時を越えた営業時間中の場合
本日出勤:2/8(水) 18:00 - 02:00
[表示例][attmgr_today_work id="5" none="お休み"]
本日出勤:お休み
[表示例][attmgr_today_work id="5" text="本日出勤"]
本日出勤:本日出勤
このショートコードには、以下のパラメータを指定することができます。
パラメータ | 例 | 説明 |
---|---|---|
id (必須) | 5 | スタッフを指定するID(整数) |
none | "お休み" | 出勤情報がない(休み)の場合に表示される文字列 省略時は何も表示されません |
text | "本日出勤" | 出勤情報がある場合に表示する文字列 省略時は、出勤時間(9:00 - 17:00など)が表示されます |
出勤管理
スタッフの人数が一定数を超えると、フォーム項目数がお使いのサーバーのPHP設定「max_input_vars」の上限を超え、スケジュールが更新されなくなる場合があります。解決方法はこちらをご参照ください。
また、CSV形式の出勤データを一括登録できる「CSVデータ読込モジュール」もご用意しています。
管理者用
管理者は「出勤管理(管理者用)」ページで、全てのユーザーの出勤管理を行ないます。
スタッフ用
スタッフはログインして「出勤管理(スタッフ用)」ページで、自身の出勤管理を行ないます。
使い方
出勤する日の「出勤時間」「退出時間」を選択します。
「出勤・退出時間」を選択していない日は「お休み」となります。
「□消」をチェックして更新すると、その日の情報は削除されます。
New! 「早番・遅番」などでの勤怠選択ができ、各スタッフごとのカレンダー上に色分け表示する拡張モジュール「スタッフ別カレンダー」を作りました。[詳細]
出勤表
更新された出勤予定は、ショートコードによって出勤表として表示されます。
プラグインを有効化した際に、「本日の出勤スタッフ」「週間スケジュール」「月間スケジュール」の各ページが作られています。
本日の出勤スタッフ
「23:00~08:00」のように営業時間が翌日におよぶ時は、終了時間まで(この場合は 08:00まで)「本日の出勤状況」には前日から続いて勤務している出勤スタッフが表示されます。
付録
ショートコード
Attendance Manager の以下のページは、ショートコードによって表示されます。
これらのページを手動で作成する場合は、新たにページを作りそれぞれのショートコードを挿入します。
ページ | ショートコード |
---|---|
出勤情報(管理者用) | [attmgr_admin_scheduler] |
出勤情報(スタッフ用) | [attmgr_staff_scheduler] |
本日の出勤スタッフ | [attmgr_daily] |
週間スケジュール | [attmgr_weekly_all] |
月間スケジュール | [attmgr_monthly_all] |
各スタッフごとの週間スケジュール | [attmgr_weekly id="xx"] |
スタッフユーザーと記事の関連付け
「スタッフ紹介記事の投稿」で本文に挿入するショートコード [attmgr_weekly id="xx"] は、各スタッフの「週間スケジュール」を表示させる他に、そのスタッフユーザーと投稿記事とを関連づける役割があります。
(カスタム投稿タイプと関連付ける場合は、こちらをお読みください)
- そのスタッフユーザーのプロフィール「ウェブサイト」に、記事のURLが設定されます
(「設定:パーマリンクの設定」を変更した場合は、記事を再び「更新」します) - user_meta「attmgr_mypage_id」に、記事のIDが設定されます
- 同記事に「アイキャッチ画像」があれば、下記ページでスタッフ画像として表示されます
- 週間スケジュール
- 本日の出勤状況
- 出勤管理(管理者用)
- 出勤管理(スタッフ用)
カスタム投稿タイプとの関連付け
スタッフ紹介記事を「カスタム投稿タイプ」で投稿する場合、お使いのテーマの「テーマのための関数(functions.php)」にアクションを追記する必要があります。
例えば、使用するカスタム投稿タイプの「スラッグ名」が「staff」である場合、テーマの「functions.php」に、以下のように追記します。
1 2 3 4 |
... add_action( 'publish_staff', array( 'ATTMGR_User', 'save_staff_url' ) ); add_action( 'trash_staff', array( 'ATTMGR_User', 'delete_staff_url' ) ); ... |
カスタム投稿タイプのフックは、そのスラッグ名(例:staff)が付きます。
スラッグ名が「staff」であれば、publish_post に対応するフックは publish_staff になります。
スラッグ名が「cast」であれば、publish_cast になります。
投稿や固定ページとの関連付けについては、Attendance Manager の構成ファイル「/class/class-user.php」の63~66行目あたりで設定されています。
1 2 3 4 5 6 7 |
public function init() { ... add_action( 'publish_post', array( 'ATTMGR_User', 'save_staff_url' ) ); add_action( 'publish_page', array( 'ATTMGR_User', 'save_staff_url' ) ); add_action( 'trash_post', array( 'ATTMGR_User', 'delete_staff_url' ) ); add_action( 'trash_page', array( 'ATTMGR_User', 'delete_staff_url' ) ); ... |
お詫び
なお、プラグインの改変方法やプログラミングについてのご質問にはお答えできかねますので、何卒ご容赦ください。