WordPress個別サポート

以前の記事で、予約システムのプラグインMTS Simple Booking Cのカスタマイズ方法として、「コース」を追加する方法を紹介しました。

WordPressプラグイン「MTS Simple Booking C」をカスタマイズして、コース選択が可能な予約システムを作成する

このカスタマイズでは、予約フォームに次のように「コース」が追加されます。

コースが追加された予約フォーム

コースが追加された予約フォーム

今回の記事では、複数のコースを選択できるように「コース」のドロップダウンリストをチェックボックスに変更する方法を紹介します。

変更後のイメージは次のようになります。

コースをチェックボックスに変更

コースをチェックボックスに変更

※プラグインの修正は自己責任でお願いします。

変更するのは以下の2箇所です。

  1. まずは、プラグインフォルダ(mts-simple-booking-c)のmtssb-booking-form.phpを開いて、予約フォームのドロップダウンリストをチェックボックスに変更します。
    <select name="booking[client][course]">
        <option>カット</option>
        <option>パーマ</option>
        <option>カラーリング</option>
        <option>ヘッドスパ</option>
    </select>
    

    このコードをチェックボックスに置き換えます。

    <input type="checkbox" name="booking[client][course][]" value="カット">カット
    <input type="checkbox" name="booking[client][course][]" value="パーマ">パーマ
    <input type="checkbox" name="booking[client][course][]" value="カラーリング">カラーリング
    <input type="checkbox" name="booking[client][course][]" value="ヘッドスパ">ヘッドスパ
    

    メニュー内容は任意に変更可能ですがポイントはbooking[client][course]に[]を付けることです。これにより、チェックされた複数の値をまとめて次の画面に渡すことができます。

  2. 続いて、mtssb-booking.phpを開いて、予約フォームの「コース」でチェックされた複数値を処理するためのコードを記述します。

    具体的には次の部分です。

        case 'course' :
        case 'company' :
        case 'email' :
        case 'postcode' :
        case 'address1' :
        case 'address2' :
        case 'tel' :
                        $client[$keyname] = …略…;
                        break;
    

    「case 'course' :」と「case 'company' :」の間に次のコードを入力します。

    if (is_array($post['client'][$keyname])) {
        $client[$keyname] = implode("/",  $post['client'][$keyname]);
    } else {
        $client[$keyname] = $post['client'][$keyname];
    }
    break;
    

    コピーペーストする場合は「break;」をコピーし忘れないようにしてください。

    追加した結果は次のようになります。

        case 'course' :
            if (is_array($post['client'][$keyname])) {
                $client[$keyname] = implode("/",  $post['client'][$keyname]);
            } else {
                $client[$keyname] = $post['client'][$keyname];
            }
            break;
        case 'company' :
        case 'email' :
        case 'postcode' :
    

    「case 'course' :」と「case 'company' :」の間に上記のコードを入力すると、course(コース)のみ、チェックボックスの複数値に対応できるようになります。

    「 implode("/",」の「/」はチェックされた複数コースを「カット/カラーリング」のように区切る文字です。自由に変更可能です。

スポンサーリンク

WordPressテーマ「LOTUS (TCD039)」

修正内容のテスト

修正したら、予約フォームをテストしてみましょう。

予約カレンダーから日時を選択して予約フォームを開くと、「コース」がチェックボックスに変更されており、複数値を選択可能になっています。

コースがチェックボックスに

コースがチェックボックスに

入力確認画面では、選択した複数のコースが表示されます。

選択した複数コースが表示される

選択した複数コースが表示される

届いたメールにも、選択した複数コースが反映されています。

予約確認メール

予約確認メール

この記事をSNSで共有する
WordPressでお困りのときはご相談を
この記事を書いた西沢直木が直接、WordPress個別サポートで対応します。
こんなときはご相談を
  • WordPressの使い方(ページやメニューの作り方を教えてほしい)
  • カスタマイズ(機能の追加やデザイン調整をお願いしたい)
  • トラブル対応(画面真っ白・「ログインできない」を解決したい)
マンツーマンなので相談内容は自由です。いただいた課題をその場で解決、CSSやPHPも目の前で修正します。気軽にご相談ください。
WordPress講座の問い合わせ先

関連記事

BizVektorのカスタマイズ

WordPressカスタマイズ

WordPressによるサイト作成のヒント

WordPressプラグイン

スポンサーリンク
西沢直木によるWordPress講座の紹介
ホームページ作成講座WordPress個別サポート