コード例 #1
0
ファイル: cruises.php プロジェクト: alikris/OTA
 function get_cruise_min_price($cruise_id, $cabin_type_id = 0, $date = null)
 {
     global $wpdb;
     $cruise_obj = new byt_cruise(intval($cruise_id));
     $cruise_id = $cruise_obj->get_base_id();
     if ($cabin_type_id > 0) {
         $cabin_type_obj = new byt_cabin_type(intval($cabin_type_id));
         $cabin_type_id = $cabin_type_obj->get_base_id();
     }
     if (!isset($date)) {
         $date = date('Y-m-d', time());
     }
     $table_name_schedule = BOOKYOURTRAVEL_CRUISE_SCHEDULE_TABLE;
     $sql = "SELECT MIN(schedule.price) \r\n\t\t\t\tFROM {$table_name_schedule} schedule \r\n\t\t\t\tWHERE cruise_id=%d ";
     if ($cabin_type_id > 0) {
         $sql .= $wpdb->prepare(" AND cabin_type_id=%d ", $cabin_type_id);
     }
     if ($cruise_obj->get_type_is_repeated() == 0) {
         // this cruise is a one off and is not repeated. If start date is missed, person cannot participate.
         $sql .= $wpdb->prepare(" AND start_date > %s ", $date);
     } else {
         // daily, weekly, weekdays cruises are recurring which means start date is important only in the sense that cruise needs to have become valid before we can get min price.
     }
     $sql = $wpdb->prepare($sql, $cruise_id);
     $min_price = $wpdb->get_var($sql);
     if (!$min_price) {
         $min_price = 0;
     }
     if ($cabin_type_id == 0) {
         $this->sync_cruise_min_price($cruise_id, $min_price);
     }
     return $min_price;
 }
 function handle_form_submit()
 {
     global $byt_cruises_post_type, $byt_cabin_types_post_type;
     if (isset($_POST['insert']) && check_admin_referer('cruise_schedule_entry_form')) {
         $cruise_id = wp_kses($_POST['cruises_select'], '');
         $cruise_obj = new byt_cruise(intval($cruise_id));
         $cruise_id = $cruise_obj->get_base_id();
         $cabin_type_id = isset($_POST['cabin_types_select']) ? wp_kses($_POST['cabin_types_select'], '') : 0;
         $cabin_type_obj = new byt_cabin_type(intval($cabin_type_id));
         $cabin_type_id = $cabin_type_obj->get_base_id();
         $cabin_count = isset($_POST['cabin_count']) ? intval(wp_kses($_POST['cabin_count'], '')) : 1;
         $is_price_per_person = $cruise_obj->get_is_price_per_person();
         $cruise_type_is_repeated = $cruise_obj->get_type_is_repeated();
         $start_date = wp_kses($_POST['start_date'], '');
         $duration_days = intval(wp_kses($_POST['duration_days'], ''));
         $price = floatval(wp_kses($_POST['price'], ''));
         $price_child = floatval(wp_kses(isset($_POST['price_child']) ? $_POST['price_child'] : 0, ''));
         $end_date = isset($_POST['end_date']) ? wp_kses($_POST['end_date'], '') : null;
         $error = '';
         if (empty($cruise_id)) {
             $error = __('You must select an cruise', 'bookyourtravel');
         } else {
             if ($cabin_type_id <= 0) {
                 $error = __('You must select a cabin type', 'bookyourtravel');
             } else {
                 if (empty($cabin_count) || $cabin_count === 0) {
                     $error = __('You must provide a valid cabin count', 'bookyourtravel');
                 } else {
                     if (empty($start_date)) {
                         $error = __('You must select a schedule date', 'bookyourtravel');
                     } else {
                         if (empty($duration_days) || $duration_days === 0) {
                             $error = __('You must provide a duration in days', 'bookyourtravel');
                         } else {
                             if (empty($price) || $price === 0) {
                                 $error = __('You must provide a valid price', 'bookyourtravel');
                             }
                         }
                     }
                 }
             }
         }
         if (!empty($error)) {
             echo '<div class="error" id="message" onclick="this.parentNode.removeChild(this)">';
             echo '<p>' . $error . '</p>';
             echo '</div>';
         } else {
             $byt_cruises_post_type->create_cruise_schedule($cruise_id, $cabin_type_id, $cabin_count, $start_date, $duration_days, $price, $price_child, $end_date);
             echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
             echo '<p>' . __('Successfully inserted new cruise schedule entry!', 'bookyourtravel') . '</p>';
             echo '</div>';
         }
     } else {
         if (isset($_POST['update']) && check_admin_referer('cruise_schedule_entry_form')) {
             $cruise_id = wp_kses($_POST['cruises_select'], '');
             $cruise_obj = new byt_cruise(intval($cruise_id));
             $cruise_id = $cruise_obj->get_base_id();
             $cabin_type_id = isset($_POST['cabin_types_select']) ? wp_kses($_POST['cabin_types_select'], '') : 0;
             $cabin_type_obj = new byt_cabin_type(intval($cabin_type_id));
             $cabin_type_id = $cabin_type_obj->get_base_id();
             $is_price_per_person = $cruise_obj->get_is_price_per_person();
             $cabin_count = isset($_POST['cabin_count']) ? intval(wp_kses($_POST['cabin_count'], '')) : 1;
             $cruise_type_is_repeated = $cruise_obj->get_type_is_repeated();
             $start_date = wp_kses($_POST['start_date'], '');
             $duration_days = intval(wp_kses($_POST['duration_days'], ''));
             $price = floatval(wp_kses($_POST['price'], ''));
             $price_child = floatval(wp_kses(isset($_POST['price_child']) ? $_POST['price_child'] : 0, ''));
             $end_date = isset($_POST['end_date']) ? wp_kses($_POST['end_date'], '') : null;
             $error = '';
             if (empty($cruise_id)) {
                 $error = __('You must select an cruise', 'bookyourtravel');
             } else {
                 if ($cabin_type_id <= 0) {
                     $error = __('You must select a cabin type', 'bookyourtravel');
                 } else {
                     if (empty($cabin_count) || $cabin_count === 0) {
                         $error = __('You must provide a valid cabin count', 'bookyourtravel');
                     } else {
                         if (empty($start_date)) {
                             $error = __('You must select a schedule date', 'bookyourtravel');
                         } else {
                             if (empty($duration_days) || $duration_days === 0) {
                                 $error = __('You must provide a duration in days', 'bookyourtravel');
                             } else {
                                 if (empty($price) || $price === 0) {
                                     $error = __('You must provide a valid price', 'bookyourtravel');
                                 }
                             }
                         }
                     }
                 }
             }
             if (!empty($error)) {
                 echo '<div class="error" id="message" onclick="this.parentNode.removeChild(this)">';
                 echo '<p>' . $error . '</p>';
                 echo '</div>';
             } else {
                 $schedule_id = absint($_POST['schedule_id']);
                 $byt_cruises_post_type->update_cruise_schedule($schedule_id, $cruise_id, $cabin_type_id, $cabin_count, $start_date, $duration_days, $price, $price_child, $end_date);
                 echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
                 echo '<p>' . __('Successfully updated cruise schedule entry!', 'bookyourtravel') . '</p>';
                 echo '</div>';
             }
         } else {
             if (isset($_POST['delete_schedule'])) {
                 $schedule_id = absint($_POST['delete_schedule']);
                 $byt_cruises_post_type->delete_cruise_schedule($schedule_id);
                 echo '<div class="updated" id="message" onclick="this.parentNode.removeChild(this)">';
                 echo '<p>' . __('Successfully deleted cruise schedule entry!', 'bookyourtravel') . '</p>';
                 echo '</div>';
             }
         }
     }
 }