予約

多国語サイト構築で最大の難関は「予約システム」だ。WordPressでのプラグインを探したら「Pinpoint Booking System」というのがあったが、理解するのに相当な時間がかかりそうだ。そこで、採用したのがちょうど1年前に検討したPHP工房の「カレンダー予約フォーム(無料版)」というもの。
ただ、これは多国語対応になっていないので、中国語で送信すると文字化けする。これを解消してくれるのが同サイトの「PHPメールフォーム多言語対応版(無料版)」というソフト。方法は「カレンダー予約フォーム(無料版」のmail.phpを多言語対応版(utf-8)のmail.phpに置き換えるとよい。スマホはmail.phpをそのまま一旦mailsp.phpとし、スマホ画面に合うようスタイルで調整した。
実際にやってみると変更しなければならないファイルが多いのに閉口した。また、変更したいコードの場所探しに時間がかかった。
これからすると、これらがパックになったプラグインの方が楽だ。

テーブル内の料金は架空のものです。正しい料金は公式サイトで確認できます。予約フォームでの動作は最後の「確認」までで、「送信」はできません。

カレンダー内の料金は「税込」です。


※制作メモ
・カレンダー内の料金は各言語で共通にするため、円マークと5桁の数字にした。(各言語共通
・「予約する」とか曜日は各言語専用のファイルで設定した。
・カレンダー内にある年月のフォーマットはfunction.php内にあるが、ここでは各言語共通にするため2017/12の形で代用した。(各言語共通
・日本語のファイル名:pc.php、sp.php、config.php、mail.php、mailsp.phpの5種類。(各言語毎に設定
・カレンダー内の「受付終了」は当日と次の日に自動で入るよう設定した。(各言語共通
・PCとスマホの切替えはPC用とスマホ用のiframeを2つ用意し、モニターサイズにより、一方をdisplay:none;で表示させないようにした。
これは@media (min-width:481px) and (max-width:800px)等の所で指定。(各言語共通
・dataフォルダ内のcomment_set.datの形は2017-12-01,¥45000。(Excel→テキストエディタ)(各言語共通
・「予約する」はdetaフォルダ内の「pulldown_set_0.dat」を、「2018-01-01,1,」形式でアップしておくといい。(Excel→テキストエディタ)(各言語共通
・「予約する」の表示は当月から3か月後までとした。(データは2018年12月までアップ済み)(各言語毎に設定
・GoogleAPIキーを取得していないので、祝日・祭日は赤くならない。(各言語共通
・カレンダー内の料金が「税込」であることの表示はカレンダー上に置くことにした。(各言語共通
・予約確認画面で予約年月日がreservになっているので、pc.phpの<?php echo $dspDate;?> <input type=”hidden” name=”reserv[date]” value=”<?php echo $date;?>” /><input type=”hidden” name=”reserv[time]” value=”<?php echo $time;?>” />で、「reserv」を「予約年月日」に変更した。またその後の[time]が正しく表示されないので削除した。(各言語毎に設定
・スマホで予約確認画面のサイズを#formWrap {width:700px;を100%にした。その他、「送信」ボタンなどのフォントサイズをinputのstyleで大きくした。(各言語共通