/** * * @since 1.1.3 * */ static function get_cart_item_total($key, $cart_item) { $number = $cart_item['number']; $selected_equipments = $cart_item['data']['selected_equipments']; $check_in_timestamp = $cart_item['data']['check_in_timestamp']; $check_out_timestamp = $cart_item['data']['check_out_timestamp']; $time = STCars::get_date_diff($check_in_timestamp, $check_out_timestamp); if (!$time) { $time = 1; } $info_price = STCars::get_info_price($key); $cars_price = $info_price['price']; $total_price = $cars_price * $time; if (!empty($selected_equipments)) { foreach ($selected_equipments as $v) { switch ($v->price_unit) { case "day": case "per_day": $day = STCars::get_date_diff($check_in_timestamp, $check_out_timestamp, $v->price_unit); $total_price += $v->price * $day; break; case "hour": case "per_hour": $hour = STCars::get_date_diff($check_in_timestamp, $check_out_timestamp, $v->price_unit); $total_price += $v->price * $hour; break; default: $total_price += $v->price; break; } } } return $total_price * $number; }
if (!$pick_up_date) { $pick_up_date = date('m/d/Y', strtotime("now")); } $drop_off_date = TravelHelper::convertDateFormat(STInput::request('drop-off-date')); if (!$drop_off_date) { $drop_off_date = date('m/d/Y', strtotime("+1 day")); } $pick_up_time = STInput::request('pick-up-time', '12:00 PM'); $drop_off_time = STInput::request('drop-off-time', '12:00 PM'); $pick_up = STInput::request('pick-up'); $drop_off = STInput::request('drop-off'); $start = $pick_up_date . ' ' . $pick_up_time; $start = strtotime($start); $end = $drop_off_date . ' ' . $drop_off_time; $end = strtotime($end); $time = STCars::get_date_diff($start, $end); $data_price_tmp = $cars_price * $time; $data = array('price_cars' => $cars_price, "pick_up" => $pick_up, "drop_off" => $drop_off, 'date_time' => array("pick_up_date" => $pick_up_date, "pick_up_time" => $pick_up_time, "drop_off_date" => $drop_off_date, "drop_off_time" => $drop_off_time, "total_time" => $time)); ?> <input type="hidden" name="time" value='<?php echo esc_attr($time); ?> '> <input type="hidden" name="data_price_total" class="data_price_total" value='<?php echo esc_html($data_price_tmp); ?> '> <input type="hidden" name="item_id" value='<?php echo get_the_ID(); ?> '>
if (isset($item_id) and $item_id) { $item = STCart::find_item($item_id); $data_price_cars = $item['data']['data_price_cars']; $selected_equipments = isset($item['data']['selected_equipments']) ? $item['data']['selected_equipments'] : false; $pick_up_date = $data_price_cars->date_time->pick_up_date; $pick_up_time = $data_price_cars->date_time->pick_up_time; $drop_off_date = $data_price_cars->date_time->drop_off_date; $drop_off_time = $data_price_cars->date_time->drop_off_time; $total_time = $data_price_cars->date_time->total_time; $date = new DateTime($pick_up_date); $start = $date->format('m/d/Y') . ' ' . $pick_up_time; $start = strtotime($start); $date = new DateTime($drop_off_date); $end = $date->format('m/d/Y') . ' ' . $drop_off_time; $end = strtotime($end); $day = STCars::get_date_diff($start, $end); if (!empty($item['data']['discount'])) { $count_sale = $item['data']['discount']; $price_old = $item['data']['price_old']; } $price_car = $data_price_cars->price_cars; $total_price_items = 0; $data_price_items = array(); $html_item = ''; if ($selected_equipments and !empty($selected_equipments)) { foreach ($selected_equipments as $e_k => $e_v) { $title = ' (' . TravelHelper::format_money($e_v->price) . '/' . st_car_price_unit_title($e_v->price_unit) . ')'; $html_item .= '<li> <p class="booking-item-payment-price-title">' . $e_v->title . $title . '</p> <p class="booking-item-payment-price-amount">' . TravelHelper::format_money(STCars::get_equipment_line_item($e_v->price, $e_v->price_unit, $start, $end)) . '</p> </li>';
function _add_booking() { if (!check_admin_referer('shb_action', 'shb_field')) { die; } $data = $this->check_validate(); if (is_array($data) && count($data)) { extract($data); $order = array('post_title' => __('Order', ST_TEXTDOMAIN) . ' - ' . date(get_option('date_format')) . ' @ ' . date(get_option('time_format')), 'post_type' => 'st_order', 'post_status' => 'publish'); $order_id = wp_insert_post($order); if ($order_id) { $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)); } } update_post_meta($order_id, 'payment_method', 'st_submit_form'); $id_user = get_current_user_id(); update_post_meta($order_id, 'id_user', $id_user); $item_price = floatval(get_post_meta($item_id, 'cars_price', true)); $unit = st()->get_option('cars_price_unit', 'day'); /*if($unit == 'day'){ $numberday = ceil(($check_out_timestamp - $check_in_timestamp) / (60 * 60 * 24)); }elseif($unit == 'hour'){ $numberday = ceil(($check_out_timestamp - $check_in_timestamp) / (60 * 60)); }*/ $numberday = STCars::get_date_diff($check_in_timestamp, $check_out_timestamp, $unit); $selected_equipments = $_POST['item_equipment']; $price_equipment = STPrice::getPriceEuipmentCarAdmin($selected_equipments); $data_equipment = STPrice::convertEquipmentToOject($selected_equipments); $origin_price = $item_price * $numberday; $sale_price = STPrice::getSaleCarPrice($item_id, $item_price, $check_in_timestamp, $check_out_timestamp); $price_with_tax = STPrice::getPriceWithTax($sale_price + $price_equipment); $coupon_price = 0; $deposit_money['data'] = array(); $deposit_money = STPrice::getDepositData($item_id, $deposit_money); $deposit_price = STPrice::getDepositPrice($deposit_money['data']['deposit_money'], $price_with_tax, 0); if (isset($deposit_money['data']['deposit_money'])) { $total_price = $deposit_price; } else { $total_price = $price_with_tax - $coupon_price; } $data_prices = array('origin_price' => $origin_price, 'sale_price' => $sale_price, 'coupon_price' => 0, 'price_with_tax' => $price_with_tax, 'total_price' => $total_price, 'deposit_price' => $deposit_price, 'unit' => $unit, 'price_equipment' => $price_equipment); $item_data = array('item_id' => $item_id, 'item_number' => 1, 'total_price' => $total_price, 'item_price' => $item_price, 'check_in' => $check_in, 'check_in_timestamp' => $check_in_timestamp, 'check_out' => $check_out, 'check_out_timestamp' => $check_out_timestamp, 'st_booking_id' => $item_id, 'check_in_time' => $check_in_time, 'check_out_time' => $check_out_time, 'pick_up' => get_the_title($location_id_pick_up), 'location_id_pick_up' => $location_id_pick_up, 'drop_off' => get_the_title($location_id_drop_off), 'location_id_drop_off' => $location_id_drop_off, 'deposit_money' => $deposit_money, 'booking_by' => 'admin', 'st_tax' => STPrice::getTax(), 'st_tax_percent' => STPrice::getTax(), 'status' => $_POST['status'], 'currency' => TravelHelper::get_current_currency('symbol'), 'currency_rate' => TravelHelper::get_current_currency('rate'), 'data_equipment' => $data_equipment, 'data_prices' => $data_prices, 'commission' => TravelHelper::get_commission()); foreach ($item_data as $val => $value) { update_post_meta($order_id, $val, $value); } if (TravelHelper::checkTableDuplicate('st_cars')) { global $wpdb; $table = $wpdb->prefix . 'st_order_item_meta'; $g_post = get_post($item_id); $partner_id = $g_post ? $g_post->post_author : ''; global $sitepress; if ($sitepress) { $post_type = get_post_type($st_booking_id); if ($post_type == 'st_hotel') { $post_type = 'hotel_room'; $id = $room_id; } else { $id = $st_booking_id; } $lang_code = $sitepress->get_default_language(); $origin_id = icl_object_id($id, $post_type, true, $lang_code); } else { $origin_id = $st_booking_id; } $data = array('order_item_id' => $order_id, 'type' => 'normal_booking', 'st_booking_post_type' => 'st_cars', 'check_in' => date('m/d/Y', strtotime($check_in)), 'check_out' => date('m/d/Y', strtotime($check_out)), 'st_booking_id' => $item_id, 'check_in_timestamp' => $check_in_timestamp, 'check_out_timestamp' => $check_out_timestamp, 'user_id' => $id_user, 'status' => $_POST['status'], 'wc_order_id' => $order_id, 'partner_id' => $partner_id, 'created' => get_the_date('Y-m-d', $order_id), 'total_order' => $total_price, 'commission' => TravelHelper::get_commission(), 'origin_id' => $origin_id); $wpdb->insert($table, $data); } //Check email $user_name = STInput::post('st_email'); $user_id = username_exists($user_name); if (!$user_id and email_exists($user_name) == false) { $random_password = wp_generate_password($length = 12, $include_standard_special_chars = false); $userdata = array('user_login' => $user_name, 'user_pass' => $random_password, 'user_email' => $user_name, 'first_name' => STInput::post('st_first_name'), 'last_name' => STInput::post('st_last_name')); $user_id = wp_insert_user($userdata); wp_new_user_notification($user_id); } STCart::send_mail_after_booking($order_id, true); STCart::send_email_confirm($order_id); do_action('st_booking_success', $order_id); wp_safe_redirect(self::$booking_page); } } }
/** * * * @since 1.1.3 * */ static function get_equipment_line_item($price, $unit, $start_timestamp, $end_timestamp) { switch ($unit) { case "per_day": $diff = STCars::get_date_diff($start_timestamp, $end_timestamp); if (!$diff) { $diff = 1; } return (double) $price * $diff; break; case "per_hour": $diff = STCars::get_date_diff($start_timestamp, $end_timestamp); if (!$diff) { $diff = 1; } return (double) $price * $diff * 24; break; default: return (double) $price; break; } }
* Cars cart item html * * Created by ShineTheme * */ if (isset($item_id) and $item_id) { $item = STCart::find_item($item_id); $item_price = floatval($item['data']['item_price']); $selected_equipments = $item['data']['data_equipment']; $price_equipment = floatval($item['data']['price_equipment']); $check_in = $item['data']['check_in']; $check_out = $item['data']['check_out']; $check_in_timestamp = $item['data']['check_in_timestamp']; $check_out_timestamp = $item['data']['check_out_timestamp']; $unit = st()->get_option('cars_price_unit', 'day'); $numberday = STCars::get_date_diff($check_in_timestamp, $check_out_timestamp, $unit); ///// get Price $info_price = STCars::get_info_price($item['data']['st_booking_id'], $check_in_timestamp, $check_out_timestamp); $cars_price = $info_price['price']; $count_sale = $info_price['discount']; $price_origin = $info_price['price_origin']; $list_price = $info_price['list_price']; ?> <header class="clearfix"> <?php if (get_post_status($item_id)) { ?> <a class="booking-item-payment-img" href="#"> <?php echo get_the_post_thumbnail($item_id, array(98, 74, 'bfi_thumb' => true)); ?>