広告

WordPressでの予約システムを構築してみた

WordPress
この記事は約7分で読めます。

こんにちは

よろず屋ありみちです。

数年前、WordPressに予約システム(カレンダーから空き時間を見つけて、即時予約完了できるシステム)を導入していたのですが、ある理由で辞めてしまいました。

クライアントからすると、やっぱり予約システムがあった方が便利なので、今回復活させることに!

WordPressに予約システムを入れる問題点

そもそもWordPressには、記事一覧(アーカイブページ)が作成される仕様になっています。

WordPressのテーマを構築する時、私が必ず使っているのが下記のテンプレート階層を示した画像です。

WordPressテンプレート階層

余談ですが、企業向けのWordPressテーマ構築をするときの企画書や仕様書では、どのページをどのテンプレートにするか指定されていないので、決めるのが大変。

カスタム投稿にページネーションが使えないとか・・・制限があるので・・・

アーカイブ(記事一覧)ページに、意味不明なページが出力されてしまう問題

オリジナルのテーマを作って表示されないようにしてしまえば、済む問題なのですが、通常のテーマであれば、アーカイブページ(記事一覧ページ)に全てのページへのリンクが表示されてしまいます。

このリンクをクリックすると、下記のようなページへ飛んでしまいます。

内容がないページ

表示されているページは内容がありません。見出しがあるだけです。

しかし、予約システム的には重要なページです。

他にも、予約完了後の画面も見ることができてしまう問題もあります。

予約者専用の案内が、バレちゃう〜〜

バレてもまずいことは、書いてないけどね

表示速度が遅くなる問題

プラグインを入れたり、子テーマにするだけでWordPressはスピードが遅くなってしまいます。

可能な限り素早い表示をさせたい私としては、プラグインは最小にしたいと思ってます。

CSSが面倒

AMPサイトを構築しているなら、CSSのデータ量に制限があることをご存知だと思います。

プラグインのCSS=無駄なデータ→データ量増加→AMPエラーとなってしまうことにも。

表示速度向上、AMP化のためにも、CSSは最小としたいのが本音です。

予約専用のWordPressにしてしまえばいいのでは?

ということで、サブドメインで予約専用のWordPressを構築してしまおう!

サブドメインとは?

このサイトのドメインは aw1.jp です。

サブドメインを設定すると、xxxx.aw1.jp というURLが使えるようになります。

xxxx部分は任意の文字。

サーバーで設定するので、新たにドメインを取る必要はありませんし、サブドメインとメインで別のWordPressを構築することもできます。

なお、サーバーによって異なるので、サブドメインが取得できない、サブドメインにWordPressが構築できないこともあると思います。

試してみた予約システム

MTS simple booking C

以前、予約システムで使用していた無料のプラブインです。

とても簡単に、しかも日本語で予約システムを導入できる優れものです。

時間枠が決まっている業種におすすめです。予約により時間枠を変える必要がある場合は、有料版にすれば解決します。

ちなみに、諸々検討し試した結果、MTS Simple Booking ビジネス版(有償)を今回導入しました。

Pinpoint Booking System

日本語化できるプラグインです。

無料で使用できる範囲が広いので、試してみたのですが・・・

問題点があったので、断念。

予約しようとする操作が難しい

設定して、Pinpoont Booking Systemを使える状態にしたのですが・・・

操作がわからない。予約できない・・・

設定した本人ですら予約操作ができないので、辞めにしました。

使おうと思っていたテーマで使えない

Pinpoont Booking Systemを使うために、ショートコードを設定したら・・・

表示されない・・・

テーマを変えればいいのですが、面倒なので却下!

Salon Booking

設定方法がわからず、断念。

同じ名称で、日本語のものと英語の別プラグインがあるみたい。

日本語のものを導入しようとしたら、動かなかった・・・

PHPやWordPressのバージョンによるものだと思います。おそらくアップデートされたら使えるかと思います。

Online Lesson Booking

会員制の予約システムならありだけど、誰でも予約できるようにしたかったので、今回はパス。

入金後予約ができるシステムにしたいなら、良いと思います。

最終的にMTS Simple Booking ビジネス版

結局、MTS Simple Bookingに戻ってきました。

ただし、以前使っていたときはスマホが普及しておらず、PC版のみでよかったのでリンクボタンの大きさを気にする必要がなかったのですが・・・

当然、スマホ対策もする必要がありますよね。

で、CSSを調整・・・

設定は3日くらい必要

設定は簡単なのですが、設定して確認して、CSSを調整して・・・とやっていたら、3日くらいかかってしまいました。

Cronの設定もしておきたいし、Cronの動作確認もしておきたいし・・・

予約通知メールの時間が変!

MTS Simple Booking ビジネス版では、予約通知メール(リマインドメール)が自動送信できます。

自動でリマインドメールを送ってくれるので、大助かりな機能なのですが・・・

午前8時に送信する設定をしたのに、実際に送信されるのは17時。

あれれれれ???

もしかして、UTCになってる???

8+9=17だから日本時間ではなく、UTC(協定世界時:Coordinated universal time)じゃん。

あ〜だこ〜だ・・・どうすりゃいいんだ。

サーバーの時間は日本時間になってるし・・・

抜けていたWordPressの時間設定

おい。WordPressの設定時間はどうなっとる?

原因は、WordPress>設定>一般 のタイムゾーンでした。

WordPressタイムゾーン設定

修正後

WordPressタイムゾーン、時刻設定後

カレンダーで月曜始まりor日曜始まりの切り替え

予約システムで設定するのではなく、WordPress>設定>一般  で行います。

予約システムカレンダー曜日設定

いつも使っているグーグルカレンダーが日曜始まりだから、日曜始まりに合わせました!

Cronの設定

少しでも速度をアップしたいので、wp-cronを停止させます。

wp-config.phpに追記

WordPressインストールディレクトリ直下にある、wp-config.phpに下記を加えます。

場所は、MySQLの上あたりにします。

define('DISABLE_WP_CRON', 'true');

これで、wp-cronが停止します。

wp-cronを停止ままだと、予約投稿ができないなど、不具合が発生するのでサーバーでcronを設定します。

サーバーでcronを設定

wp-cron.phpをcronで動かす設定をします。

cronの設定はサーバーのコントロールパネルから行います。

Mix hostを使用しているので、下記のように設定しました。

Cron設定 mixhost
Cron設定 mixhost

/usr/local/bin/php の後に半角スペースを忘れずに!

業者に依頼したら、数十万円は最低必要ですな

ということで、無事に動作するようになったのですが、予約システムを業者に依頼したら、最低でも数十万円は必要ですね。

予約システムまるっと作ってと依頼されたら、50万くらいの見積もりになりそうです。

50万円が、手間賃含めたった〇〇万円で済んだから、よしとしようっと。

同じような感じでいいから、友達価格で・・・設定して・・・

OK〜〜〜

ということがあったら、いいな〜〜〜

Googleカレンダーに自動追記する方法をアップしました(2020年1月追記)