/** * Validate if order is available to show booking infomation * * @since 1.0.8 * * */ function success_page_validate() { $order_code = STInput::get('order_code'); $order_token_code = STInput::get('order_token_code'); if ($order_token_code) { $order_code = STOrder::get_order_id_by_token($order_token_code); } $status = get_post_meta($order_code, 'status', true); $result = true; if ($status == 'incomplete') { // try to check payment complete $paypal = new STPaypal(); $r = $paypal->check_completePurchase($order_code); if ($r) { if (isset($r['status'])) { if ($r['status']) { $result = true; update_post_meta($order_code, 'status', 'complete'); $status = 'complete'; //do_action('st_email_after_booking',$order_code); //do_action('st_booking_submit_form_success',$order_code); STCart::send_mail_after_booking($order_code, true); STCart::send_email_confirm($order_code); do_action('st_booking_change_status', 'complete', $order_code, 'normal_booking'); } elseif (isset($r['message']) and $r['message']) { $result = false; STTemplate::set_message($r['message'], 'danger'); } if (isset($r['redirect_url']) and $r['redirect_url']) { echo "<script>window.location.href='" . $r['redirect_url'] . "'</script>"; die; } } } } if ($status == 'incomplete') { $result = false; STTemplate::set_message(__("Sorry! Your payment is incomplete.", ST_TEXTDOMAIN)); } return $result; }
/** * from 1.1.7 */ static function review_check($item_id = null) { wp_reset_postdata(); if (!$item_id) { return; } if (!is_user_logged_in() and st()->get_option('review_without_login') == "off") { return "must_login"; } if (!self::comments_open($item_id)) { return "need_open"; } if (self::check_reviewed($item_id) and st()->get_option('review_once') == "on") { return "reviewed"; } if (st()->get_option('review_need_booked') == 'on') { $st_orders = new STOrder(); $user_id = get_current_user_id(); if (!$st_orders->check_user_booked2($user_id, $item_id)) { return "need_booked"; } if (!$st_orders->check_booked_date($item_id, $user_id)) { return "wait_check_out_date"; } } return "true"; }
<?php /** * @package WordPress * @subpackage Traveler * @since 1.0 * * Cars success payment item row * * Created by ShineTheme * */ $order_token_code = STInput::get('order_token_code'); if ($order_token_code) { $order_code = STOrder::get_order_id_by_token($order_token_code); } $object_id = $key; $total = 0; $check_in = get_post_meta($order_code, 'check_in', true); $check_in_timestamp = get_post_meta($order_code, 'check_in_timestamp', true); $check_out = get_post_meta($order_code, 'check_out', true); $check_out_timestamp = get_post_meta($order_code, 'check_out_timestamp', true); $price = get_post_meta($order_code, 'item_price', true); $price_total = get_post_meta($order_code, 'total_price', true); $item_id = get_post_meta($order_code, 'item_id', true); $selected_equipments = get_post_meta($order_code, 'data_equipment', true); $data_prices = get_post_meta($order_code, 'data_prices', true); $format = TravelHelper::getDateFormat(); ?> <tr> <td><?php
$where = ''; $join = ''; switch ($post_type) { default: $where .= " and {$wpdb->postmeta}.meta_key='item_id' and {$wpdb->postmeta}.meta_value={$item_id}"; break; } $query = "SELECT count({$wpdb->posts}.ID) as total from {$wpdb->posts}\r\n join {$wpdb->postmeta} on {$wpdb->posts}.ID={$wpdb->postmeta}.post_id\r\n join {$wpdb->postmeta} as tbl2 on tbl2.post_id={$wpdb->posts}.ID\r\n {$join}\r\n where 1=1"; $query .= " and `post_type`='st_order' "; $query .= " and {$wpdb->posts}.post_status='publish'\r\n and {$wpdb->postmeta}.meta_key='item_id'\r\n\r\n "; $query .= $where; $query .= " and tbl2.meta_key='id_user'\r\n AND tbl2.meta_value='{$user_id}'"; $count = $wpdb->get_var($query); return $count; } function init_metabox() { //Room $this->metabox[] = array('id' => 'order_metabox', 'title' => __('Order Setting', ST_TEXTDOMAIN), 'desc' => '', 'pages' => array('st_order'), 'context' => 'normal', 'priority' => 'high', 'fields' => array(array('label' => __('General', ST_TEXTDOMAIN), 'id' => 'order_reneral_tab', 'type' => 'tab'), array('label' => __('Total Price', ST_TEXTDOMAIN), 'id' => 'total_price', 'type' => 'text'), array('label' => __('Customer', ST_TEXTDOMAIN), 'id' => 'id_user', 'type' => 'user_select_ajax'), array('label' => __('Request Booking', ST_TEXTDOMAIN), 'id' => 'st_o_note', 'type' => 'textarea_simple'), array('label' => __('Payment Method', ST_TEXTDOMAIN), 'id' => 'payment_method', 'type' => 'select', 'choices' => array(array('label' => __('Paypal', ST_TEXTDOMAIN), 'value' => 'paypal'), array('label' => __('Submit Form', ST_TEXTDOMAIN), 'value' => 'submit_form')), 'std' => 'submit_form'))); } static function get_order_id_by_token($token) { global $wpdb; $query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='order_token_code' AND meta_value=%s LIMIT 0,1"; $r = $wpdb->get_var($wpdb->prepare($query, $token)); return $r; } } $a = new STOrder(); $a->init(); }
static function user_booked($post_id = false) { if (!$post_id) { $post_id = get_the_ID(); } if (!is_user_logged_in()) { return false; } $post_type = get_post_type($post_id); $user_id = get_current_user_id(); $allow_review = true; switch ($post_type) { case "st_hotel": //Search Order By Customer ID $order = new STOrder(); $count = $order->check_user_booked($user_id, $post_id, $post_type); if ($count < 1) { $allow_review = FALSE; } break; case "st_rental": //Search Order By Customer ID $order = new STOrder(); $count = $order->check_user_booked($user_id, $post_id, $post_type); if ($count < 1) { $allow_review = FALSE; } break; case "st_cars": //$allow_review= True; $order = new STOrder(); if ($count < 1) { $allow_review = FALSE; } break; case "st_tours": case "st_activity": //Search Order By Customer ID $order = new STOrder(); $count = $order->check_user_booked($user_id, $post_id, $post_type); if ($count < 1) { $allow_review = FALSE; } break; break; default: $allow_review = FALSE; break; } return $allow_review; }