Exemplo n.º 1
0
 function trav_acc_booking_before()
 {
     global $trav_options, $def_currency;
     // prevent direct access
     if (!isset($_REQUEST['booking_data'])) {
         do_action('trav_acc_booking_wrong_data');
         exit;
     }
     // init booking data : array( 'accommodation_id', 'room_type_id', 'date_from', 'date_to', 'rooms', 'adults', 'kids', 'child_ages' );
     $raw_booking_data = '';
     parse_str($_REQUEST['booking_data'], $raw_booking_data);
     //verify nonce
     if (!isset($raw_booking_data['_wpnonce']) || !wp_verify_nonce($raw_booking_data['_wpnonce'], 'post-' . $raw_booking_data['accommodation_id'])) {
         do_action('trav_acc_booking_wrong_data');
         exit;
     }
     // init booking_data fields
     $booking_fields = array('accommodation_id', 'room_type_id', 'date_from', 'date_to', 'rooms', 'adults', 'kids', 'child_ages');
     $booking_data = array();
     foreach ($booking_fields as $field) {
         if (!isset($raw_booking_data[$field])) {
             do_action('trav_acc_booking_wrong_data');
             exit;
         } else {
             $booking_data[$field] = $raw_booking_data[$field];
         }
     }
     // date validation
     if (trav_strtotime($booking_data['date_from']) >= trav_strtotime($booking_data['date_to'])) {
         do_action('trav_acc_booking_wrong_data');
         exit;
     }
     // make an array for redirect url generation
     $query_args = array('date_from' => $booking_data['date_from'], 'date_to' => $booking_data['date_to'], 'rooms' => $booking_data['rooms'], 'adults' => $booking_data['adults'], 'kids' => $booking_data['kids'], 'child_ages' => $booking_data['child_ages']);
     // get price data
     $room_price_data = trav_acc_get_room_price_data($booking_data['accommodation_id'], $booking_data['room_type_id'], $booking_data['date_from'], $booking_data['date_to'], $booking_data['rooms'], $booking_data['adults'], $booking_data['kids'], $booking_data['child_ages']);
     $acc_url = get_permalink($booking_data['accommodation_id']);
     $edit_url = add_query_arg($query_args, $acc_url);
     // redirect if $room_price_data is not valid
     if (!$room_price_data || !is_array($room_price_data)) {
         $query_args['error'] = 1;
         wp_redirect($edit_url);
     }
     // calculate tax and total price
     $tax_rate = get_post_meta($booking_data['accommodation_id'], 'trav_accommodation_tax_rate', true);
     $tax = 0;
     if (!empty($tax_rate)) {
         $tax = $tax_rate * $room_price_data['total_price'] / 100;
     }
     $total_price_incl_tax = $room_price_data['total_price'] + $tax;
     $booking_data['room_price'] = $room_price_data['total_price'];
     $booking_data['tax'] = $tax;
     $booking_data['total_price'] = $booking_data['room_price'] + $booking_data['tax'];
     // calculate deposit payment
     $deposit_rate = get_post_meta($booking_data['accommodation_id'], 'trav_accommodation_security_deposit', true);
     // if woocommerce enabled change currency_code and exchange rate as default
     if (!empty($deposit_rate) && trav_is_woo_enabled()) {
         $booking_data['currency_code'] = $def_currency;
         $booking_data['exchange_rate'] = 1;
     } else {
         if (!isset($_SESSION['exchange_rate'])) {
             trav_init_currency();
         }
         $booking_data['currency_code'] = trav_get_user_currency();
         $booking_data['exchange_rate'] = $_SESSION['exchange_rate'];
     }
     // if payment enabled set deposit price field
     $is_payment_enabled = !empty($deposit_rate) && trav_is_payment_enabled();
     if ($is_payment_enabled) {
         $booking_data['deposit_price'] = $deposit_rate / 100 * $booking_data['total_price'] * $booking_data['exchange_rate'];
     }
     // initialize session values
     $transaction_id = mt_rand(100000, 999999);
     $_SESSION['booking_data'][$transaction_id] = $booking_data;
     //'accommodation_id', 'room_type_id', 'date_from', 'date_to', 'rooms', 'adults', 'kids', 'child_ages', room_price, tax, total_price, currency_code, exchange_rate, deposit_price
     $review = get_post_meta(trav_acc_org_id($booking_data['accommodation_id']), 'review', true);
     $review = !empty($review) ? round($review, 1) : 0;
     // thank you page url
     $acc_book_conf_url = '';
     if (!empty($trav_options['acc_booking_confirmation_page'])) {
         $acc_book_conf_url = trav_get_permalink_clang($trav_options['acc_booking_confirmation_page']);
     } else {
         // thank you page is not set
     }
     global $trav_booking_page_data;
     $trav_booking_page_data['transaction_id'] = $transaction_id;
     $trav_booking_page_data['review'] = $review;
     $trav_booking_page_data['acc_url'] = $acc_url;
     $trav_booking_page_data['edit_url'] = $edit_url;
     $trav_booking_page_data['booking_data'] = $booking_data;
     $trav_booking_page_data['room_price_data'] = $room_price_data;
     $trav_booking_page_data['is_payment_enabled'] = $is_payment_enabled;
     $trav_booking_page_data['acc_book_conf_url'] = $acc_book_conf_url;
     $trav_booking_page_data['tax'] = $tax;
     $trav_booking_page_data['tax_rate'] = $tax_rate;
 }
Exemplo n.º 2
0
 function trav_tour_booking_before()
 {
     global $trav_options, $def_currency;
     // init booking_data fields
     $booking_fields = array('tour_id', 'st_id', 'tour_date', 'adults');
     $booking_data = array();
     foreach ($booking_fields as $field) {
         if (!isset($_REQUEST[$field])) {
             do_action('trav_tour_booking_wrong_data');
             exit;
         } else {
             $booking_data[$field] = $_REQUEST[$field];
         }
     }
     if (isset($_REQUEST['kids'])) {
         $booking_data['kids'] = $_REQUEST['kids'];
     }
     //verify nonce
     if (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], 'post-' . $_REQUEST['tour_id'])) {
         do_action('trav_tour_booking_wrong_data');
         exit;
     }
     $schedule_data = trav_tour_get_price_data($booking_data);
     $tour_url = get_permalink($booking_data['tour_id']);
     // redirect if $schedule_data is not valid
     if (empty($schedule_data) || empty($schedule_data['success'])) {
         wp_redirect(add_query_arg(array('error' => 1), $tour_url));
     }
     if (!isset($_SESSION['exchange_rate'])) {
         trav_init_currency();
     }
     $deposit_rate = get_post_meta($booking_data['tour_id'], 'trav_tour_security_deposit', true);
     $booking_data['total_price'] = $schedule_data['price'];
     // if woocommerce enabled change currency_code and exchange rate as default
     if (!empty($deposit_rate) && trav_is_woo_enabled()) {
         $booking_data['currency_code'] = $def_currency;
         $booking_data['exchange_rate'] = 1;
     } else {
         $booking_data['currency_code'] = trav_get_user_currency();
         $booking_data['exchange_rate'] = $_SESSION['exchange_rate'];
     }
     // if payment enabled set deposit price field
     $is_payment_enabled = !empty($deposit_rate) && trav_is_payment_enabled();
     if ($is_payment_enabled) {
         $booking_data['deposit_price'] = $deposit_rate / 100 * $booking_data['total_price'] * $booking_data['exchange_rate'];
     }
     $price_data = $schedule_data['price_data'];
     // initialize session values
     $transaction_id = mt_rand(100000, 999999);
     $_SESSION['booking_data'][$transaction_id] = $booking_data;
     //'tour_id', 'st_id', 'date_from', 'date_to', 'rooms', 'adults', 'kids', price, currency_code, exchange_rate, deposit_price
     $multi_book = get_post_meta($booking_data['tour_id'], 'trav_tour_multi_book', true);
     // thank you page url
     $tour_book_conf_url = '';
     if (!empty($trav_options['tour_booking_confirmation_page'])) {
         $tour_book_conf_url = trav_get_permalink_clang($trav_options['tour_booking_confirmation_page']);
     } else {
         // thank you page is not set
     }
     global $trav_booking_page_data;
     $trav_booking_page_data['transaction_id'] = $transaction_id;
     $trav_booking_page_data['tour_url'] = $tour_url;
     $trav_booking_page_data['booking_data'] = $booking_data;
     $trav_booking_page_data['price_data'] = $price_data;
     $trav_booking_page_data['multi_book'] = $multi_book;
     $trav_booking_page_data['is_payment_enabled'] = $is_payment_enabled;
     $trav_booking_page_data['tour_book_conf_url'] = $tour_book_conf_url;
 }
Exemplo n.º 3
0
?>
				<?php 
if (trav_is_multi_currency()) {
    ?>
					<li class="ribbon">
						<a href="#" title=""><?php 
    echo esc_html(trav_get_user_currency());
    ?>
</a>
						<ul class="menu mini">
							<?php 
    $all_currencies = trav_get_all_available_currencies();
    if (!empty($all_currencies)) {
        foreach (array_filter($trav_options['site_currencies']) as $key => $content) {
            $class = "";
            if (trav_get_user_currency() == $key) {
                $class = ' class="active"';
            }
            $params = $_GET;
            $params['selected_currency'] = $key;
            $paramString = http_build_query($params, '', '&amp;');
            echo '<li' . wp_kses_post($class) . '><a href="' . esc_url(strtok($_SERVER['REQUEST_URI'], '?') . '?' . $paramString) . '" title="' . esc_attr($all_currencies[$key]) . '">' . esc_html(strtoupper($key)) . '</a></li>';
        }
    }
    ?>
						</ul>
					</li>
				<?php 
}
?>
				<?php