public function _check_validate() { $data = array(); $order_item_id = STInput::request('order_item_id', ''); $st_first_name = STInput::request('st_first_name', ''); if (empty($st_first_name)) { STAdmin::set_message(__('The firstname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_last_name = STInput::request('st_last_name', ''); if (empty($st_last_name)) { STAdmin::set_message(__('The lastname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_email = STInput::request('st_email', ''); if (empty($st_email)) { STAdmin::set_message(__('The email field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_phone = STInput::request('st_phone', ''); if (empty($st_phone)) { STAdmin::set_message(__('The phone field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } if (STInput::request('section', '') != 'edit_order_item') { $item_id = intval(STInput::request('item_id', '')); if ($item_id <= 0 || get_post_type($item_id) != 'st_rental') { STAdmin::set_message(__('The rental field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_in = STInput::request('check_in', ''); if (empty($check_in)) { STAdmin::set_message(__('Date is invalid', ST_TEXTDOMAIN), 'danger'); return false; } $check_out = STInput::request('check_out', ''); if (empty($check_out)) { STAdmin::set_message(__('Date is invalid', ST_TEXTDOMAIN), 'danger'); return false; } if (STInput::request('adult_number', '') == "") { STAdmin::set_message(__('The No. adults field is not empty', ST_TEXTDOMAIN), 'danger'); return false; } $adult_number = intval(STInput::request('adult_number', '')); if ($adult_number <= 0) { $adult_number = 1; } if (STInput::request('child_number', '') == "") { STAdmin::set_message(__('The No. children field is not empty', ST_TEXTDOMAIN), 'danger'); return false; } $child_number = intval(STInput::request('child_number', '')); if ($child_number <= 0) { $child_number = 0; } if (strtotime($check_out) - strtotime($check_in) <= 0) { STAdmin::set_message(__('The check-out is later than the check-in.', ST_TEXTDOMAIN), 'danger'); return false; } $adult = intval(get_post_meta($item_id, 'rental_max_adult', true)); $children = intval(get_post_meta($item_id, 'rental_max_children', true)); if ($adult_number > $adult) { STAdmin::set_message(__('Number of adults in the room are incorrect.', ST_TEXTDOMAIN), 'danger'); return false; } if ($child_number > $children) { STAdmin::set_message(__('Number of children in the room are incorrect.', ST_TEXTDOMAIN), 'danger'); return false; } $today = date('m/d/Y'); $period = TravelHelper::dateDiff($today, $check_in); $compare = TravelHelper::dateCompare($today, $check_in); $booking_period = get_post_meta($item_id, 'rentals_booking_period', true); if (empty($booking_period) || $booking_period <= 0) { $booking_period = 0; } if ($compare < 0) { STAdmin::set_message(__('You can not set check-in date in the past', ST_TEXTDOMAIN), 'danger'); return false; } if ($period < $booking_period) { STAdmin::set_message(sprintf(__('This rental allow minimum booking is %d day(s)', ST_TEXTDOMAIN), $booking_period), 'danger'); return false; } $checkin_ymd = date('Y-m-d', strtotime($check_in)); $checkout_ymd = date('Y-m-d', strtotime($check_out)); if (!RentalHelper::check_day_cant_order($item_id, $checkin_ymd, $checkout_ymd, 1)) { STAdmin::set_message(sprintf(__('This rental is not available from %s to %s.', ST_TEXTDOMAIN), $checkin_ymd, $checkout_ymd), 'danger'); $pass_validate = FALSE; return false; } if (!RentalHelper::_check_room_available($item_id, $checkin_ymd, $checkout_ymd, 1)) { STAdmin::set_message(__('This rental is not available.', ST_TEXTDOMAIN), 'danger'); $pass_validate = FALSE; return false; } $data = array('order_item_id' => $order_item_id, 'item_id' => $item_id, 'type' => 'normal_booking', 'check_in' => $check_in, 'check_out' => $check_out, 'st_booking_post_type' => 'st_rental', 'st_booking_id' => $item_id, 'adult_number' => $adult_number, 'child_number' => $child_number, 'room_num_search' => 1, 'check_in_timestamp' => strtotime($check_in), 'check_out_timestamp' => strtotime($check_out), 'status' => $_POST['status']); } return $data; }
function _save_booking($order_id) { if (!check_admin_referer('shb_action', 'shb_field')) { die('shb_action'); } //Update Order $orderitem = array('item_number', 'item_id', 'item_price', 'check_in', 'check_out'); $data = wp_parse_args($_POST, $orderitem); foreach ($orderitem as $val) { if ($val == 'check_in' or $val == 'check_out') { update_post_meta($order_id, $val, date('Y-m-d', strtotime($data[$val]))); } else { update_post_meta($order_id, $val, $data[$val]); } } //Update User $order_parent = $order_id; $id_user = isset($_POST['id_user']) ? $_POST['id_user'] : false; if ($order_parent and $id_user) { update_post_meta($order_parent, 'id_user', $id_user); } $check_out_field = STCart::get_checkout_fields(); if (!empty($check_out_field)) { foreach ($check_out_field as $field_name => $field_desc) { update_post_meta($order_id, $field_name, STInput::post($field_name)); } } $user_fields = array('status' => '', 'st_tax' => ''); $data = wp_parse_args($_POST, $user_fields); if ($order_parent) { foreach ($user_fields as $val => $value) { update_post_meta($order_parent, $val, $data[$val]); } } STAdmin::set_message('Update Success', 'updated'); }
function _check_validate() { $data = array(); $order_item_id = STInput::request('order_item_id', ''); $st_first_name = STInput::request('st_first_name', ''); if (empty($st_first_name)) { STAdmin::set_message(__('The firstname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_last_name = STInput::request('st_last_name', ''); if (empty($st_last_name)) { STAdmin::set_message(__('The lastname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_email = STInput::request('st_email', ''); if (empty($st_email)) { STAdmin::set_message(__('The email field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_phone = STInput::request('st_phone', ''); if (empty($st_phone)) { STAdmin::set_message(__('The phone field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } if (STInput::request('section', '') != 'edit_order_item') { $item_id = intval(STInput::request('item_id', '')); if ($item_id <= 0 || get_post_type($item_id) != 'st_holidays') { STAdmin::set_message(__('The holiday field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $type_holiday = get_post_meta($item_id, 'type_holiday', true); $today = date('Y-m-d'); $check_in = STInput::request('check_in', ''); $check_out = STInput::request('check_out', ''); if (!$check_in || !$check_out) { STAdmin::set_message(__('Select a holiday in the calendar above.', ST_TEXTDOMAIN), 'danger'); $pass_validate = FALSE; return false; } $compare = TravelHelper::dateCompare($today, $check_in); if ($compare < 0) { STAdmin::set_message(__('This holiday has expired', ST_TEXTDOMAIN), 'danger'); $pass_validate = false; return false; } $duration = ($type_holiday = 'daily_holiday') ? get_post_meta($item_id, 'duration_day', true) : ''; $booking_period = intval(get_post_meta($item_id, 'holidays_booking_period', true)); $period = TravelHelper::dateDiff($today, $check_in); if ($period < $booking_period) { STAdmin::set_message(sprintf(__('This holiday allow minimum booking is %d day(s)', ST_TEXTDOMAIN), $booking_period), 'danger'); $pass_validate = false; return false; } $adult_number = intval(STInput::request('adult_number', 1)); $child_number = intval(STInput::request('child_number', 0)); $infant_number = intval(STInput::request('infant_number', 0)); $max_number = intval(get_post_meta($item_id, 'max_people', true)); if ($adult_number + $child_number + $infant_number > $max_number) { STAdmin::set_message(sprintf(__('Max of people for this holiday is %d people', ST_TEXTDOMAIN), $max_number), 'danger'); return false; } $holiday_available = HolidayHelper::checkAvailableHoliday($item_id, strtotime($check_in), strtotime($check_out)); if (!$holiday_available) { STAdmin::set_message(__('The check in, check out day is not invalid or this holiday not available.', ST_TEXTDOMAIN), 'danger'); $pass_validate = FALSE; return false; } $free_people = intval(get_post_meta($item_id, 'max_people', true)); $result = HolidayHelper::_get_free_peple($item_id, strtotime($check_in), strtotime($check_out), $order_item_id); if (is_array($result) && count($result)) { $free_people = intval($result['free_people']); } if ($free_people > $max_number) { STAdmin::set_message(sprintf(__('This holiday only vacant %d people', ST_TEXTDOMAIN), $free_people), 'danger'); $pass_validate = FALSE; return false; } $data['order_item_id'] = $order_item_id; $data['item_id'] = $item_id; $data['check_in'] = date('m/d/Y', strtotime($check_in)); $data['check_out'] = date('m/d/Y', strtotime($check_out)); $data['adult_number'] = $adult_number; $data['child_number'] = $child_number; $data['infant_number'] = $infant_number; $data['type_holiday'] = $type_holiday; $data['duration'] = $duration; $people_price = STPrice::getPeoplePrice($item_id, strtotime($check_in), strtotime($check_out)); $data = wp_parse_args($data, $people_price); } return $data; }
function check_validate() { $data = array(); $order_item_id = STInput::request('order_item_id', ''); $st_first_name = STInput::request('st_first_name', ''); if (empty($st_first_name)) { STAdmin::set_message(__('The firstname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_last_name = STInput::request('st_last_name', ''); if (empty($st_last_name)) { STAdmin::set_message(__('The lastname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_email = STInput::request('st_email', ''); if (empty($st_email)) { STAdmin::set_message(__('The email field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_phone = STInput::request('st_phone', ''); if (empty($st_phone)) { STAdmin::set_message(__('The phone field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } if (STInput::request('section', '') != 'edit_order_item') { $item_id = intval(STInput::request('item_id', '')); if ($item_id <= 0 || get_post_type($item_id) != 'st_cars') { STAdmin::set_message(__('The car field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $pick_up = STInput::request('pick_up', ''); $drop_off = STInput::request('drop_off', ''); if (!empty($pick_up) && !empty($drop_off)) { $pickup_country = get_post_meta($pick_up, 'location_country', true); if (!$pickup_country) { STAdmin::set_message(__('The \'country\' field not set for the \'\'', ST_TEXTDOMAIN) . get_the_title($pick_up), 'danger'); $pass_validate = false; return false; } $dropoff_country = get_post_meta($drop_off, 'location_country', true); if (!$dropoff_country) { STAdmin::set_message(__('The \'country\' field not set for the \'\'', ST_TEXTDOMAIN) . get_the_title($drop_off), 'danger'); $pass_validate = false; return false; } if ($pickup_country != $dropoff_country) { STAdmin::set_message(__('The country is not same', ST_TEXTDOMAIN), 'danger'); $pass_validate = false; return false; } } $check_in = STInput::request('check_in', ''); if (empty($check_in)) { STAdmin::set_message(__('The check in field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_in_time = STInput::request('check_in_time', ''); if (empty($check_in_time)) { STAdmin::set_message(__('The check in time field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_out = STInput::request('check_out', ''); if (empty($check_out)) { STAdmin::set_message(__('The check out field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_out_time = STInput::request('check_out_time', ''); if (empty($check_out_time)) { STAdmin::set_message(__('The check out time field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_in_full = $check_in . ' ' . strtoupper($check_in_time); $check_out_full = $check_out . ' ' . strtoupper($check_out_time); $check_in_timestamp = strtotime($check_in_full); $check_out_timestamp = strtotime($check_out_full); $today = date('m/d/Y'); $period = TravelHelper::dateDiff($today, $check_in); $compare = TravelHelper::dateCompare($today, $check_out); $booking_period = intval(get_post_meta($item_id, 'cars_booking_period', true)); if ($booking_period <= 0) { $booking_period = 0; } if ($check_in_timestamp - $check_out_timestamp >= 0) { STAdmin::set_message(__('The drop off datetime is later than the pick up datetime.', ST_TEXTDOMAIN), 'danger'); $pass_validate = false; return false; } if ($compare < 0) { STAdmin::set_message(__('You can not set check-in date in the past', ST_TEXTDOMAIN), 'danger'); $pass_validate = false; return false; } if ($period < $booking_period) { STAdmin::set_message(sprintf(__('This car allow minimum booking is %d day(s)', ST_TEXTDOMAIN), $booking_period), 'danger'); $pass_validate = false; return false; } if (!CarHelper::_get_car_cant_order_by_id($item_id, $check_in_timestamp, $check_out_timestamp, $order_item_id)) { STAdmin::set_message(__('This car is full order', ST_TEXTDOMAIN), 'danger'); $pass_validate = false; return false; } $data = array('order_item_id' => $order_item_id, 'item_id' => $item_id, 'location_id_pick_up' => $pick_up, 'location_id_drop_off' => $drop_off, 'check_in' => date('Y-m-d', strtotime($check_in)), 'check_out' => date('Y-m-d', strtotime($check_out)), 'check_in_timestamp' => $check_in_timestamp, 'check_out_timestamp' => $check_out_timestamp, 'st_booking_post_type' => 'st_cars', 'st_booking_id' => $item_id, 'check_in_time' => $check_in_time, 'check_out_time' => $check_out_time); } return $data; }
function _save_booking($order_id) { if (!check_admin_referer('shb_action', 'shb_field')) { die; } //Update Order $orderitem = array('item_number' => '', 'item_id' => '', 'item_price' => '', 'check_in' => '', 'check_in_time' => '', 'check_out' => '', 'check_out_time' => '', 'item_equipment' => '', 'pick_up' => '', 'drop_off' => '', 'driver_age' => '', 'driver_name' => ''); $data = wp_parse_args($_POST, $orderitem); foreach ($orderitem as $val) { if ($val == 'check_in' or $val == 'check_out') { update_post_meta($order_id, $val, date('Y-m-d', strtotime($data[$val]))); } else { if ($val == 'item_equipment') { $items = $data[$val]; $list_items = array(); if (!empty($items)) { foreach ($items as $k => $v) { $tmp = explode("|", $v); $list_items[$tmp[1]] = $tmp[0]; } } update_post_meta($order_id, $val, json_encode($list_items)); } else { if (isset($data[$val])) { update_post_meta($order_id, $val, $data[$val]); } } } } //Update User $order_parent = $order_id; $id_user = isset($_POST['id_user']) ? $_POST['id_user'] : FALSE; if ($order_parent and $id_user) { update_post_meta($order_parent, 'id_user', $id_user); } $check_out_field = STCart::get_checkout_fields(); if (!empty($check_out_field)) { foreach ($check_out_field as $field_name => $field_desc) { update_post_meta($order_id, $field_name, STInput::post($field_name)); } } $user_fields = array('status' => '', 'st_tax' => ''); $data = wp_parse_args($_POST, $user_fields); if ($order_parent) { foreach ($user_fields as $val => $value) { update_post_meta($order_parent, $val, $data[$val]); } } STAdmin::set_message('Update Success', 'updated'); }
function check_validate() { $data = array(); $order_item_id = STInput::request('order_item_id', ''); $st_first_name = STInput::request('st_first_name', ''); if (empty($st_first_name)) { STAdmin::set_message(__('The firstname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_last_name = STInput::request('st_last_name', ''); if (empty($st_last_name)) { STAdmin::set_message(__('The lastname field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_email = STInput::request('st_email', ''); if (empty($st_email)) { STAdmin::set_message(__('The email field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $st_phone = STInput::request('st_phone', ''); if (empty($st_phone)) { STAdmin::set_message(__('The phone field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } if (STInput::request('section', '') != 'edit_order_item') { $item_id = intval(STInput::request('item_id', '')); if ($item_id <= 0 || get_post_type($item_id) != 'st_activity') { STAdmin::set_message(__('The activity field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $type_activity = STInput::request('type_activity', 'daily_activity'); $today = date('Y-m-d'); $check_in = STInput::request('check_in', ''); if (empty($check_in)) { STAdmin::set_message(__('The check in field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_in = date('Y-m-d', strtotime($check_in)); $check_out = STInput::request('check_out', ''); if (empty($check_out)) { STAdmin::set_message(__('The check out field is not empty.', ST_TEXTDOMAIN), 'danger'); return false; } $check_out = date('Y-m-d', strtotime($check_out)); $adult_number = intval(STInput::request('adult_number', 1)); $child_number = intval(STInput::request('child_number', 0)); $infant_number = intval(STInput::request('infant_number', 0)); $max_number = intval(get_post_meta($item_id, 'max_people', true)); if ($adult_number + $child_number + $infant_number > $max_number) { STAdmin::set_message(sprintf(__('Max of people for this activity is %d people', ST_TEXTDOMAIN), $max_number), 'danger'); return false; } if ($type_activity == 'daily_activity') { $booking_period = intval(get_post_meta($item_id, 'activity_booking_period', true)); $period = TravelHelper::dateDiff($today, $check_in); $compare = TravelHelper::dateCompare($today, $check_in); if ($compare < 0) { STAdmin::set_message(__('You can not set check-in date in the past', ST_TEXTDOMAIN), 'danger'); return false; } if ($booking_period && $booking_period > $period) { STAdmin::set_message(sprintf(__('This activity allow minimum booking is %d day(s)', ST_TEXTDOMAIN), $booking_period), 'danger'); return false; } $people = $adult_number + $child_number + $infant_number; $result = ActivityHelper::_get_free_peple_daily($item_id, $check_in, $order_item_id); $free_people = intval(get_post_meta($item_id, 'max_people', true)); if (is_array($result) && count($result)) { $free_people = intval($result['free_people']); } if ($free_people < $people) { STAdmin::set_message(sprintf(__('This activity only vacant %d people', ST_TEXTDOMAIN), $free_people), 'danger'); return false; } $duration = get_post_meta($item_id, 'duration', true); $data['duration'] = $duration; } elseif ($type_activity == 'specific_date') { $compare = TravelHelper::dateCompare($today, $check_in); if ($compare < 0) { STAdmin::set_message(__('This activity has expired', ST_TEXTDOMAIN), 'danger'); return false; } $people = $adult_number + $child_number + $infant_number; $result = ActivityHelper::_get_free_peple_special($item_id, $check_in, $check_out, $order_item_id); $free_people = intval(get_post_meta($item_id, 'max_people', true)); if (is_array($result) && count($result)) { $free_people = intval($result['free_people']); } if ($free_people < $people) { STAdmin::set_message(sprintf(__('This activity only vacant %d people', ST_TEXTDOMAIN), $free_people), 'danger'); return false; } } $data['item_id'] = $item_id; $data['order_item_id'] = $order_item_id; $data['check_in'] = date('m/d/Y', strtotime($check_in)); $data['check_out'] = date('m/d/Y', strtotime($check_out)); $data['adult_number'] = $adult_number; $data['child_number'] = $child_number; $data['infant_number'] = $infant_number; $data['type_activity'] = $type_activity; $data['adult_price'] = floatval(get_post_meta($item_id, 'adult_price', true)); $data['child_price'] = floatval(get_post_meta($item_id, 'child_price', true)); $data['infant_price'] = floatval(get_post_meta($item_id, 'infant_price', true)); } return $data; }