MTS Simple Booking C(プラグイン顛末記)

MTS Simple Booking C(以下MSBC)

このプラグイン、なんとWopdpress上で予約システムを展開できる、ッて、シロートには夢のようなプラグイン!!

で、こちらのサイト、「MTS Simple Booking C カスタマイズ記録」を拝見しながら、夢のボーダーラインををさらに踏み越えていこうと四苦八苦・・・

メールで予約の自動キャンセル、なんてとこまで実装できるかな・・・

if (!class_exists('MTSSB_Booking')) {
  require_once(dirname(__FILE__) . '/mtssb-booking.php');
}

class MTSSB_Yosaku2 extends MTSSB_Booking {
  
  function yoyaku_sakujo2() {	
    $url = get_permalink();
  
    echo "<form method=\"post\" action=\"$url\">";
    echo 'ご予約時のメールに記載の「名前」「キャンセル用パスワード」「キャンセル用ID」をご用意ください。<br />';
    echo 'キャンセル情報を「送信」後、「予約をキャンセルする」ボタンが表示されたら、','<br />','ご予約内容を確認の上「予約をキャンセルする」をクリックしてださい。<br />';
    echo'<br />';
    echo '予約時に登録した名前を入力<input type="text" class="content-text medium" name="name_sub" >';
    echo '予約時に登録したキャンセル用パスワードを入力<input type="text" class="content-text medium" name="pass_sub">';
    echo '予約確認メールに記載したキャンセル用IDを入力<input type="text" class="content-text medium" name="id_sub">';
    echo '<input type="submit" value="送信"></form>';
    
    echo'<br />';
    $daytime = time();
    $daytime = $daytime - $daytime % 86400;
    $maxmonth = 6;//何ヶ月先まで予約可能か
    $maxday = $daytime + $maxmonth*31*24*60*60;
    
    
    if(isset($_POST['yosaku_sub']) != FALSE){
      $del_id = $_POST['yosaku_sub'];
      $del_name = $_POST['yosakun_sub'];
      $del_time = $_POST['yosakut_sub'];
          
      mb_language("Japanese");
      mb_internal_encoding("UTF-8");
      mb_send_mail('5963desu@xxxxxx.net', '三十人坂キャンセル','予約ID:'. $del_id.' 予約名:'.$del_name.' 予約日時:'.$del_time);
      
      $yo_sakujo = $this->del_booking($del_id);
      echo '予約をキャンセルしました。<br />';
    }
    
    $yo_flag = FALSE;
    $rooma_name = '三十人坂占の館 予約';
    $rooma_id = 104;
  
    if(isset($_POST['pass_sub']) != FALSE){
      $user_name = $_POST['name_sub'];
      $pass_word = $_POST['pass_sub'];
      $id_num = $_POST['id_sub'];
      
      
      while($daytime <= $maxday){
        $yo_array = $this->get_booking_of_theday($daytime);
        $num = 0;
        $maxnum = 8;//1日に可能な予約数
        while($num < $maxnum){
          if($yo_array[$num]){
            if($yo_array[$num]['client']['password'] == $pass_word && $yo_array[$num]['client']['name'] == $user_name && $yo_array[$num]['booking_id'] == $id_num){
              $yo_time = date("Y年n月j日H:i",$yo_array[$num]['booking_time']);
              $yo_namename = $yo_array[$num]['client']['name'];
              $yo_id = $yo_array[$num]['booking_id'];
              
              echo "<table><tr><td><form method=\"post\" action=\"$url\">";
              echo "<input type=\"hidden\" name=\"yosaku_sub\" value=\"$yo_id\">";
              echo "<input type=\"hidden\" name=\"yosakun_sub\" value=\"$yo_namename\">";
              echo "<input type=\"hidden\" name=\"yosakut_sub\" value=\"$yo_time\">";

              echo '<br />ご予約内容を確認の上、問題なければ「予約をキャンセルする」をクリックしてください。','<br />','キャンセルを中断するに「キャンセルの中断」をクリックしてください。','<br />';
              echo '<br />';
              echo '☆☆ご予約内容☆☆','<br />';
              
              echo '予約ID:'.$yo_id;
              echo '<br />';
              echo '予約のお名前:'.$yo_namename;
              echo '<br />';
              echo '予約の日時:'.$yo_time,'<br />';
              echo '<br />';
              
              
              //echo "<input type=\"submit\" value=\"削除\" onclick=\"return confirm('この予約を本当にキャンセルしてもいいですか?')\"></form>";
              echo "<input type=\"submit\" value=\"予約をキャンセルする\" onclick=\"yoyaku_sakujo2()\"></form>";
              
              if($yo_array[$num]['article_id'] == $rooma_id){$yo_room = $rooma_name;}
              //echo '<br />ご予約内容:',$yo_time,',',$yo_room,',',$yo_array[$num]['client']['name'];
              echo '<br />';
              echo '<br />';
              $yo_array2 = $this->get_booking($yo_array[$num]['booking_id']);
              //if($yo_array2['note']){echo '<br />',$yo_array2['note'];}
              //echo '</td></tr></table><hr />';
              $yo_flag = TRUE;							
            }
          }
          $num = $num + 1;
        }
        $daytime = $daytime + 86400;
      }
      $test_flag2 = 'OK';
      if(!$yo_flag){echo '入力された「名前」、「キャンセル用パスワード」または「キャンセル用ID」が違います。';}
    }
  }
}
$ys2 = new MTSSB_Yosaku2();
add_shortcode('yo_saku2', array($ys2, 'yoyaku_sakujo2'));

つづく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください