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

  • すでに何らかのサービスを運営されている、いわゆる「本番サイト」においては特に、WordPress本体のアップグレードや、プラグインの新規追加・アップグレードなどは慎重に行なわれてください。
  • 別途、テストサイトやバックアップサイトを準備されて、そちらで十分な試用と確認をされた上で、「本番サイト」をアップグレードされることをおすすめします。
    バックアップサイトの作成には、「All-in-One WP Migration」というプラグインが便利なようです。使い方については、有志の方々によるたくさんの記事が見つかりますので検索されてみてください。
  • WordPress 5.0 をお使いになられる場合は、Gutenbergエディタを使わず、Classic Editor を使われることをおすすめします。WP5.0でのClassic Editor の使い方へ

 

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

OLBをお試しくださったユーザーさんから、「うまく動かない」といったご相談をいただくことがありますが、以下の方法によって解決したことが多いので、おかしいなと思ったときはぜひ試してみてください。
(なお、OLBは WordPressのマルチサイトでの利用は考慮されていません

症状から探す解決方法一覧

 

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

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

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

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

 

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

「サービス提供時間を延ばしたら、"講師スケジュール編集" でスケジュールを登録しても反映されなくなった」という場合、お使いのサーバーのPHP設定の制限に引っかかってしまった可能性があります。

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」の値を変更しても解決しない場合はほかの原因が考えられます。
その際はまたご相談ください。

 

お使いのキャッシュ系プラグインの設定を確認してみる

キャッシュ系プラグインを併用されている場合、それらの設定の影響によって誤動作を生じる場合があります。(WP Super Cache、Autoptimeze、など)

「スタイルシートが反映されない」「javascriptエラーが出ている」といった時には、念のため、ブラウザのキャッシュの削除をはじめ、キャッシュ系プラグイン自体のキャッシュの削除や設定の変更、あるいはキャッシュ系プラグインの一旦停止などもお試しください。

お使いのサーバーのキャッシュ処理について確認してみる

レンタルサーバーの中には、キャッシュ処理の影響でプラグインの誤動作が生じるケースがあるようです。 特に、会員制サイトやショッピングサイトのように訪問者ごとに表示する内容が異なるようなサイトでは、キャッシュ処理の本来のメリットが逆にデメリットになりかねないため、注意が必要です。

 

お使いのサーバーの送信ドメイン認証について確認してみる

ご利用のレンタルサーバーで、差出人アドレスが契約ドメイン以外の場合は送信させない設定になっていて、予約後の通知メールが送信されない、という事例がありました。

具体的には、予約フォームからの申し込みの後、「パラメータ不足」のメッセージが表示され、予約は完了しているのに予約通知メールが送信されない、ということでした。

サーバーの設定を変更されたところ正常に動作したとのことでしたので、同じ現象が起きている方は念のため確認されてみてください。
設定についてよくわからない場合は、ご利用のレンタルサーバー会社へ問い合わせてみてください

 

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

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

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

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

 

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

「予約をしようとしたら、トップページへ転送されてしまう」という場合、現在ログイン中のユーザーが「会員(購読者)」ではない(管理者または講師である)可能性があります。

その他のケースでも、適切な権限(会員・講師・管理者など)のアカウントでログインし直したら解決した、という事例が多々ありますので、念のためログイン中のユーザーを再確認するか、一旦ログアウトして「会員」ユーザーでログインし直してみてください。

 

OLBのプラグイン設定を確認してみる

「タイムテーブルが全く表示されない」という場合、OLBのプラグイン設定の「タイムテーブル設定」が 先頭ゼロ付き指定(例:08:00) になっているかチェックしてみてください。

 

テーマ独自のCSSを確認してみる

「タイムテーブルの背景色が統一されていない」という場合、お使いのテーマのCSSで独自にテーブルのスタイルを指定されていないかチェックしてみてください。テーマによっては「1行ごとに<td>タグの背景色を変える」というスタイルが指定されていることがあります。

 

OLBが自動作成したページの「階層」を戻してみる

OLBを有効化したときに自動的に作成された各ページの「階層」(各ページの親子関係)を、あとから独自に変更している場合、正しく動作しないことがあります。
階層をもとに戻してみてください。

予約フォームは、「子ページ」にすると正しく動きません

例えば、「予約・キャンセルフォーム」ページは、「子ページ」にすると正しく動きません。
予約フォームで予約を行なった直後に、「パラメーターが不足しています」と表示されます。
その場合、「予約・キャンセルフォーム」ページの属性を「親なし」に戻してください。

 

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

OLBを有効化したときに自動的に作成された各ページの中には、「予約・キャンセルフォーム」ページのように、他のページの中のリンクからパラメータをともなって開かれるべきページがあります。
それらのページは、直にアクセスしてもパラメータ不足で何もできません。

サイトのメニューから削除しておくべきページも参照してみてください。

 

講師用ユーザーの「講師属性」のチェックを確認してみる

講師用として「投稿者」権限のユーザーを登録したものの、その後に講師用ユーザーの「講師属性」をチェックするのを忘れていたというケースがありました。

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

 

OLBや拡張モジュールのバージョンが古くないか確認してみる

OLBや拡張モジュールのバージョンが、導入した当時の古いバージョンのままになっていたというケースがありました。

カスタマイズなどを施していてアップデートできない場合を除き、念のため、確認してみてください。

 

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

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

  • ショートコードの箇所に何も表示されない
  • ショートコードの文字がそのまま表示される
  • スケジュールを設定しても反映されない
  • 日別スケジュール(全講師)にサムネイルが表示されない
  • 日別スケジュール(全講師)から講師紹介記事にリンクされない

 

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

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

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

 

「特別なページの名前」のスラッグ名が一致しているか確認してみる

OLBを有効化した時点では、

  • 「予約・キャンセルフォーム」のページのスラッグ名は reservation になっています
  • 「OLBsystem:特別なページの名前」の「予約フォームページ」も同じ reservation に設定されます

その後、何らかの理由でこれが不一致の状態になると、予約フォームを見失う形になり、元のページへと戻されてしまいます

念のため、管理画面「OLBsystem:特別なページの名前」のスラッグ名と、対象となる各ページのスラッグ名が一致しているか確認してみてください。

 

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

稀に「講師用スケジュール編集」ページでの開講・閉講の操作(セルをクリック)をしても何も反応しない、というご相談をいただきます。このケースのほとんどは、何らかの影響で javascript に関するエラーが生じています。 念のため、ブラウザのツールを使って、スクリプトエラーの有無をチェックしてみてください。

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

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

エラーの原因を特定する

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

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

とりあえずの対処

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

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

 

WordPressのタイムゾーン設定を確認する

まれに、講師のスケジュール編集で、各コマの「締切時間前」なのに編集ができないというご相談がありますが、それらはタイムゾーンの設定が影響していました。

  • タイムゾーンの設定が「東京」ではなかった
    (使用している現地の時間とズレがあった)
  • テーマの関数(functions.php)の中で date_default_timezone_set() の記述があった

WordPressは、デフォルトのタイムゾーンを UTC に設定し、独自の計算を実行して時間を調整しているようです。テーマやプラグインの中で、date_default_timezone_set()でタイムゾーンを変更すると、以降の時間計算に誤りが生じる場合があります。

その場合は、date_default_timezone_set()を使わない形に変更されてみてください。

 

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

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

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

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

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

 

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

予約完了後のページで「パラメーターが不足しています」と表示される場合、メール通知にて問題が生じている可能性があります。
特定の人にだけメール通知がとどかない場合、メールアドレスの形式がRFC(インターネットの技術に関する標準仕様)に準拠していない可能性があります。

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

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

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

となっています。
該当していないか、念のため確認してみてください。

 

PayPal支払後のステータスを確認してみる

「ごく稀に、PayPal支払い後のチケットやポイントが更新されないことがある」というご相談も、稀にいただきます。いずれも現象を再現できないのですが、一般的には以下のようなケースが考えられます。

  • 誤って、/payment_process ページに「購入フォーム」を設置していた。(使い方

  • 通常、数秒~十数秒でPayPal決済ページから元のサイトへ自動遷移しますが、通信環境によっては数分かかる場合があり、何らかの理由で手続きが中断されてしまった可能性もあります。

  • 会員や講師の数が増えるにつれサイトの動きが重くなってきて、サイトのレスポンスが得られないまま処理が終わってしまったた可能性もあります。

  • PayPalでJCBカードで決済不成立になるケースもあるようです。(https://bit.ly/2Ow4P6Y

 

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

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

例えば、Zerif Liteや一部のテーマにおいて、 OLBとの間でスタイル設定が重なり、そのままではスケジュール表が正しく表示されないようです。
[参考記事]
一部のテーマでスケジュールが読み込み中のまま表示されないときの対処

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

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

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

調査等について

基本的に、テーマに依存する問題については対応できかねますが、やむをえないご事情がある場合については有償にて調査・対応いたします。
» 問題の生じるテーマをどうしても使わなければならない場合

 

OLBと「WP Multibyte Patch」を除き、他のプラグインを全て停止してみる

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

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

 

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

「OLBがうまく動かない」という当該サイトとは別に、もう1つテストサイトを用意して、WordPressのインストールからOLBのインストールまでを最小限の手順で行なってみてください。今のところ、これによって問題が解決したケースが最も多いです。
(なお、OLBは WordPressのマルチサイトでの利用は考慮されていません

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

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

  2. 「プラグイン > 新規追加」から「online lesson」でプラグインを検索。
    Online Lesson Booking をインストール&有効化。

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

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

  5. 「ユーザー > 新規追加」で「権限グループ=投稿者」として講師「t1」を登録。
    続けて「t1」のプロフィール編集画面を開き「講師属性」をチェックして保存。

  6. 一旦ログアウトして「t1」でログインし直す。
    「講師スケジュール編集」ページ(http://example.com/test/editschedule/)を開き、レッスン日・時刻をクリックして正常動作を確認します。

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

元のサイトを削除して、テストサイト同様にWordPressのインストールからやり直すケースが多いようですが、 元のサイトをそのままにして、テストサイトの方を「予約専用サイト」として運用することにしたというケースもありました。

 

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

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

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

 

XAMPPではなく、実際のレンタルサーバーで確認してみる

ローカルの開発環境「XAMPP」においてはうまく動作しなかったが、実際のレンタルサーバーにWordPressを移してみたら問題なく動作した、というケースも数件ありましたので、念のためお試しください。

また、OLBに限らず、「XAMPPでメールが送信されない」ということでお困りのケースは多いようです。 検索すると、解決の手順を示した記事も多数見つかりますので、それらも参考にされてみてください。

 

ご利用の海外サーバーに合わせて、OLB自体を調整してみる

ある海外サーバーで、予約・キャンセルの際の「講師側への通知メール」だけが届かない(会員側には届く)というケースがありました。

会員側への通知メールは届くということから、OLBの「講師への通知メール」の差出人アドレスが、予約者(会員)のメールアドレスであることと関係があるのかもしれません。
その場合の対処方法をまとめましたので、こちらもご参照ください。

 

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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