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; }
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; }
?> <?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, '', '&'); 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