はじめに

MTS Simple Bookingプラグインでは、デフォルトでは予約品目の本文(post_content)が予約フォームに表示されません。今回は、予約品目の本文を予約フォームに表示させるためのカスタマイズ方法をご紹介します。

カスタマイズの手順

1. 予約品目データの取得部分の修正

まず、mtssb-article.phpファイル内のget_the_article()メソッドを修正して、post_contentフィールドを取得するようにします。

static public function get_the_article($article_id=0) {
    global $wpdb;

    $sql = $wpdb->prepare("
        SELECT ID AS article_id,post_title AS name,post_content,post_type,post_status,
            m1.meta_value AS timetable,m2.meta_value AS restriction,m3.meta_value AS capacity,
            m4.meta_value AS quantity,m5.meta_value AS minimum,m6.meta_value AS maximum,
            m7.meta_value AS count,m8.meta_value AS addition
        FROM {$wpdb->posts}
        LEFT JOIN {$wpdb->postmeta} AS m1 ON m1.post_id=ID AND m1.meta_key='timetable'
        // ... 以下省略 ...

ポイント:

  • SQLクエリのSELECT句にpost_contentを追加
  • これにより予約品目の本文データが取得可能に

2. 予約フォームでの表示部分の追加

次に、mtssb-booking-form.phpファイル内の予約内容確認部分に本文を表示するコードを追加します。

<p><?php echo esc_html($this->article['name']) ?><br />
    <?php if (!empty($this->article['post_content'])) : ?>
        <?php echo nl2br(esc_html($this->article['post_content'])) ?><br />
    <?php endif; ?>
    <?php echo apply_filters('booking_form_date', date('Y年n月j日 H:i', $this->thetime), $this->thetime) ?>
</p>

ポイント:

  • 予約品目名の下に本文を表示
  • nl2br()関数で改行を<br>タグに変換
  • esc_html()でXSS対策
  • 本文が空の場合は表示しない条件分岐

カスタマイズのメリット

  1. 予約品目の詳細情報を予約フォーム上で直接確認可能
  2. 予約時の注意事項や特記事項を効果的に伝達
  3. ユーザーの理解度向上による予約ミスの防止

注意点

  1. 本文が長すぎる場合、フォームのレイアウトが崩れる可能性があります
  2. HTMLタグを含む本文は、セキュリティ対策のためエスケープされます
  3. 本文の装飾はプレーンテキストのみとなります

まとめ

このカスタマイズにより、予約品目の本文を予約フォームに表示することができ、ユーザーへのより詳細な情報提供が可能になります。必要に応じて、CSSでスタイリングを追加することで、さらに見やすい表示にすることもできます。

以上が、MTS Simple Bookingプラグインで予約品目の本文を表示させるためのカスタマイズ方法です。