WordPress本体およびプラグインをアップグレードする前に

  • すでに何らかのサービスを運営されている、いわゆる「本番サイト」においては特に、WordPress本体のアップグレードや、プラグインの新規追加・アップグレードなどは慎重に行なわれてください。
    別途、テストサイトやバックアップサイトを準備されて、そちらで十分な試用と確認をされた上で、「本番サイト」をアップグレードされることをおすすめします。
  • WordPress 5.0〜 をお使いになられる場合は、Gutenbergエディタを使わず、Classic Editor を使われることをおすすめします。WP5.0でのClassic Editor の使い方へ

 

あれ?動作がおかしい..と思った時にお試しいただきたいこと

Attendance Manager をお試しくださったユーザーさんから、「うまく動かない」といったご相談をいただくことがありますが、以下の方法によって解決したことが多いので、おかしいなと思ったときはぜひ試してみてください。

(なお、Attendance Manager はWordPressのマルチサイトでの利用は考慮されていません

 

PHPのバージョンを 5.5以上にしてみる

プラグインや拡張モジュールを有効化しようとしたら、
「重大なエラーを引き起こしたため、プラグインを有効化できませんでした。」
というメッセージが出てしまう場合、ご利用のサーバーの設定で、PHPのバージョンが 5.5 より低い可能性が考えられます

PHPのバージョンを 5.5以上にするには、ご利用のサーバーのマニュアルをご確認いただくか、サーバーのサポート窓口などにお問い合わせください。

なお、WordPressの各プラグインが PHPのどのバージョンで動作するかは、公式ディレクトリの各プラグインのページに表示(例:5.5 or higerなど)されていますので参考にされてください。

 

どの権限のユーザーでログインしているか確認してみる

スケジュールを登録しようとしたら「アクセス権がない」というエラーが表示される場合、以下の可能性が考えられます。

  • 管理者アカウントでログイン中に「出勤管理(スタッフ用)」にアクセスした
  • スタッフアカウントでログイン中に「出勤管理(管理者用)」にアクセスした

アクセス権のあるアカウントでログインし直してみてください。

 

お使いのサーバーのPHP設定を確認してみる

「スタッフの数を増やしたら、"出勤管理(管理者用)" でスケジュールを登録しても反映されなくなった」という場合、お使いのサーバーのPHP設定の制限に引っかかってしまった可能性があります。

Attendance Managerでは「利用可能なユーザー数」のような制限はしていません。
ただ、PHPの環境として、フォームから一度にPOSTできる項目数には上限があります。
この上限を超えると、フォームから送信される項目が途切れ、誤動作を招くことがあります。

原因

  1. スタッフの登録数が増加
  2. それにともない、出勤管理(管理者用)フォーム内にある入力項目数も増加
  3. その項目数が、お使いのサーバーのPHP設定「max_input_vars」の上限を超えた
  4. 上限を超えた分の項目(特に、更新を指示する項目)が途切れて、送信されない
  5. スケジュールが更新されない

もし、スタッフ個人のアカウントでログインし、スタッフ自身の出勤管理(スタッフ用)でなら更新できる場合、フォーム内の項目数が関係していると思われます。

解決方法

このケースに当てはまる場合、お使いのサーバーのPHP設定「max_input_vars」の上限値(1000とか2000ぐらいが多いようです)をより大きくすることで解決します。
PHP設定の編集・変更方法はお使いのサーバーによって異なりますので、サーバーの利用ガイドなどを参照してみてください。

例1:「お名前サーバー」の場合
  1. テキストエディタ(HTMLやJavascript等のコーディングに適したもの)を開きます
  2. 新規作成したファイルに下記の1行を記入します
    max_input_vars = 5000
  3. ファイル名を「php.ini」として保存します
  4. FTPで、WordPressサイトの直下にこのファイルをアップロードします
例2:「さくらのレンタルサーバー」の場合
  1. コントロールパネルを開きます
  2. 「アプリケーションの設定:PHP設定の編集」を開きます
  3. 下記の1行を記入して保存します
    max_input_vars = 5000

もし、「max_input_vars」の値を変更しても解決しない場合はほかの原因が考えられます。
その際はまたご相談ください。

 

CSSでテーブルの日付行を固定する

出勤管理(管理者用)でスタッフの人数が増えて、日付行が上に消えてしまうのが使いづらい場合、CSSによるスタイル指定で <table> の一部の行を固定することができます。

 

プラグインのオプション設定を確認してみる

登録したユーザーのアバターを表示するには、オプション設定で「アバターを使う」にする必要があります。

  • 管理画面「Attendance Manager:全般」を開きます
  • 「ポートレイト」の項目が「アバターを使う」になっているか確認します。
  • 英語表示の場合は、「Portrait」が「Use Avatar」になっているか確認します

 

ショートコードの記述が正しいか確認してみる

各ページに挿入するショートコードの記述に誤りがあると、以下のようなことが起きる場合があります。

  • ショートコードの箇所に何も表示されない
  • ショートコードの文字がそのまま表示される
  • スケジュールを設定しても反映されない

 

これらの原因として、次のようなケースがありました。

  • スペルミスがあった([正]weekly → [誤]weekry, [正]monthly → [誤]montlhy など)
  • ショートコードを挿入する際、本文を「ビジュアル」モードで入力してしまった。
    または、ガイドに掲載のショートコードをコピーし、「ビジュアル」モードで貼付けてしまった。 (ショートコードは「テキスト」モードで入力してください
     WP5.0でのClassic Editor の使い方へ
  • ダブルクォーテーション(")が全角文字になっていた
  • 角括弧([])が全角文字になっていた
  • 空白( )が全角文字になっていた
  • アンダースコア(_)がハイフン(-)になっていた
  • "id="で指定したスタッフIDが全角数字だった
  • "id="で指定したスタッフIDが誤っていた
  • "id="で指定したスタッフIDが無効だった(スタッフユーザーの削除+再登録など)

念のため、確認してみてください。

 

パラメータを要するページに直にアクセスしていないか確かめる

拡張モジュールの予約システムには、「キャンセルフォーム」ページのように、必要なURLパラメータを伴って開かれるべきページがあります。
それらのページは、直にアクセスしてもパラメータ不足で何もできません。
念のため、確認してみてください。

キャンセルフォームの場合

例えば、キャンセルフォームへのアクセスは、その予約に固有のキャンセルキー(ランダムな文字列)を伴った「キャンセル用URL」へのアクセスとなります。
[参考] キャンセルフォーム|予約システムガイド

キャンセル用URLは、例えばこのようなURLです。
例) http://(ホームURL)/cancellation/?id=99&key=A7jAeASxIycjlPni

この、キャンセルキーを伴った「キャンセル用URL」は、予約通知メールの中で案内されます。 もし予約者ではなく、スタッフや管理者がキャンセルする場合には、「予約一覧」のリンク("管理"列の「×」印)からアクセスしてください。

 

javascriptのエラーの有無を確認してみる

何らかの影響で javascript に関するエラーが生じていると、正しく動作しないことがあります。
念のため、ブラウザのツールを使って、スクリプトエラーの有無をチェックしてみてください。

スクリプトエラーの有無を確認する

  1. ブラウザ「Google Chrome」で、メニュー「表示 > 開発/管理 > javascriptコンソール」を表示する
  2. 問題が生じているページを開く
  3. ツールの「Console」タブにスクリプトエラーなどが出ていないか確認する

エラーの原因を特定する

javascript に関するエラーの原因は、お使いのテーマによるものだったケースが多いですが、他のプラグインによるものだったこともあります。
問題の原因を絞り込むために、テーマをWordPress同梱のものに変更したり、他のプラグインを一旦すべて停止してみることもおすすめします。

もし、お使いのテーマ自体にスクリプトエラーがある場合(そのテーマのデモサイトでも同じエラーが出ていたりします)は、テーマの制作元に問い合わせてみてください。

とりあえずの対処

  1. 「404 (Not Found) (=ファイルが見つからない)」エラーの場合
    1. そのファイルを参照・リンクしている行を削除またはコメントアウトする
    2. あるいは、ダミーで同名のファイルを作り、参照先に置く

  2. javascriptの中でエラーが生じている場合
    1. そのjavascriptが不要であれば、読み込ませないようにする
    2. あるいは、エラーの箇所をコメントアウトする(/* */ で括る) 

 

DBテーブルの「照合順序」を「utf8_general_ci」に変更する

まれに、文字化けについてのご相談をいただくことがあります。
ほとんどの場合、お使いのデータベース内のテーブルのカラムの「照合順序」が、「utf8」ではなく「latin」などになっていることが原因です。

  • 照合順序が「utf8_xxx」あるいは「utf8mb_xxx」ではない
  • 照合順序が「latin_xxx」などになっていた

Attendance Manager および 予約システムモジュールが情報を保存しているテーブルは以下の通りです。

  • wp_attmgr_schedule
  • wp_attmgr_booking
  • wp_attmgr_booking_ex

これらのテーブルの中で「テキスト種別(textやvarcharなど)」のカラムの照合順序が「latin_xxx」などになっている場合、文字化けする可能性があります。

その場合は、phpMyAdminなどのデータベース管理ツールを使って、「照合順序」を「utf8_general_ci」に変更されてみてください。

 

「迷惑メール」や「プロモーション」などのフォルダなどに振り分けられていないか確かめる あるユーザーさんから、「ある日から、予約・キャンセルの通知メールが届かなくなった」といったご相談がありました。 念のため、「迷惑メール」フォルダや「プロモーション」フォルダ、「ソーシャル」フォルダなどに振り分けられていないかご確認いただいたところ、やはりそれらに振り分けられていたようです。 それ以前は問題なく受信できていたのに、ある日を境として突然「迷惑メール」フォルダや「プロモーション」フォルダ、「ソーシャル」フォルダなどに振り分けられてしまうことが、実際にあります。 もしも、予約申込が正常に行われているのに、ある日から通知メールが届かなくなった、ということがありましたら、念のため確認されてみた方がよいかもしれません。

メールアドレスをRFC準拠のものにする

特定のユーザーにだけメール通知がとどかない場合、メールアドレスの形式がRFC(インターネットの技術に関する標準仕様)に準拠していない可能性があります。

[参考] http://www.never-giveup.net/2012/02/rfc-outlook/

例えば、メールアドレスの「@」より前の部分におけるドット「.」については、

  • 先頭と末尾以外で使用可能
  • 2個以上連続してはならない

となっています。

 

SMTPサーバーを指定したメールを送信できるようにする

ご利用のレンタルサーバーのシステムからメールを送信しているとメールが不着になる問題が生じたという事例がありました。

そのケースでは、対策として、WordPressでメールを送信する際にSMTPサーバーにて送信する仕組みを導入したことで解決されたとのことでした。こちらの「WP Mail SMTP by WPForms」を参考にされてください。
https://ja.wordpress.org/plugins/wp-mail-smtp/

導入解説としては、こちらの記事がわかりやすいようです。
指定したSMTPサーバーを使ってメールを送信できるようにするWP Mail SMTPプラグイン|TCD Blog

 

「迷惑メール」や「プロモーション」などのフォルダなどに振り分けられていないか確かめる

あるユーザーさんから、「ある日から、予約・キャンセルの通知メールが届かなくなった」といったご相談がありました。

念のため、「迷惑メール」フォルダや「プロモーション」フォルダ、「ソーシャル」フォルダなどに振り分けられていないかご確認いただいたところ、やはりそれらに振り分けられていたようです。

それ以前は問題なく受信できていたのに、ある日を境として突然「迷惑メール」フォルダや「プロモーション」フォルダ、「ソーシャル」フォルダなどに振り分けられてしまうことが、実際にあります。

もしも、予約申込が正常に行われているのに、ある日から通知メールが届かなくなった、ということがありましたら、念のため確認されてみた方がよいかもしれません。

 

メールサーバーがブラックリスト登録されていないか確かめる

あるユーザーさんから、「ある日から、予約・キャンセルの通知メールが届かなくなった」といったご相談がありました。 ご自身で調べてみたところ、ご利用のメールサーバーがブラックリストに登録されていたとのことでした。

ブラックリストとは、迷惑メールを配信している(もしくはその疑いがある)不正送信者として指定されたメールサーバーのIPアドレスのリストです。
ブラックリストに登録されてしまうと、送信したメールが届かなくなってしまいます。

もしも、予約申込が正常に行われているのに、ある日から通知メールが届かなくなった、ということがありましたら、念のため確認されてみた方がよいかもしれません。

 

テーマをWordPress同梱のものに変更してみる

お使いのテーマとプラグインの間で何らかの影響が生じ、プラグインのスタイルシートやjavascriptが適用されないというケースはあります。

表示や動作がおかしい時は、念のため、テーマをWordPressに同梱のテーマ(Twenty Sixteenなど)に替えて、問題が解消されるか確認してみてください。

WordPressに同梱されていたテーマ

  • Twenty Sixteen
  • Twenty Fifrteen
  • Twenty Fourteen
  • Twenty Thirteen
  • Twenty Twelve など

調査等について

みなさまお使いのテーマはオリジナルのものを含め大変多種多様で、こちらではテーマごとの検証・調査などはできかねます。ご賢察のうえ何卒ご容赦願います。

 

Attendance Manager以外のプラグインを全て停止してみる

これで問題が解決するようでしたら、他のプラグインとの間で何らかの影響があったのかもしれません。停止させた他のプラグインを1つずつ元に戻しながら動作を確認し、どのプラグインとの併用で問題が起きるのか確かめてみてください。

  • WP Super Cacheプラグインなどでキャッシュを有効にしていると、スケジュールの更新が反映されなくなることがあります。

 

別途もう1つテストサイトを作ってみる

「プラグインがうまく動いていない」という当該サイトとは別に、もう1つテストサイトを用意して、WordPressのインストールからプラグインのインストールまでを最小限の手順で行なってみてください。

確認のための簡単な導入手順

  1. 新たに別のディレクトリへWordPressをインストールし、管理者としてログイン
    (URLを、仮に http://example.com/test/ とします)

  2. 「設定 > パーマリンク設定」で「投稿名」を選択して保存

  3. 「外観 > テーマ」で「Twenty Sixteen」を有効化。
    (WordPress同梱の、他のテーマでも可)

  4. 「プラグイン > 新規追加」から「attmgr」か「attendance manager」でプラグインを検索
    Attendance Managerをインストール&有効化

  5. 「ユーザー > 新規追加」で「スタッフ」としてのユーザーを登録

  6. 「出勤管理(管理者用)」でスケジュールを登録

  7. スケジュールが反映されているか確認

このテストサイトで問題なく動作するようであれば、元のサイトの方に何らかの原因があったと思われます。

 

WordPress本体のファイル一式を再アップロードしてみる

最初に作ったサイトではプラグインがうまく動作せず、同じサーバーに別途もう1つテストサイトを作ってみるとそちらではちゃんと動作した、という事例の後日談です。

その後、最初に作ったサイトにもう一度 WordPress本体のファイル一式をアップロードし直してみたところ、今度はちゃんと動作した、というご報告をいただいたケースがありました。そういうこともあるようです。

 

それでもやっぱりうまく動かないときは

一通りこれらの方法を試してみたけれど、「やっぱりうまく動かない」という場合は、ご利用環境などの情報を添えてご相談ください。

[ご利用環境について]
- WordPressのバージョン
- お使いのテーマ
- 同時に使われているプラグインの一覧
- お使いのブラウザ
- ご契約のレンタルサーバーとプラン

お問い合わせはこちらから » お問い合わせ