function book_cruise_ajax_request() { global $byt_cruises_post_type, $byt_theme_globals, $byt_theme_woocommerce; $enc_key = $byt_theme_globals->get_enc_key(); $add_captcha_to_forms = $byt_theme_globals->add_captcha_to_forms(); if (isset($_REQUEST)) { $nonce = $_REQUEST['nonce']; if (wp_verify_nonce($nonce, 'byt-ajax-nonce')) { $first_name = isset($_REQUEST['first_name']) ? wp_kses($_REQUEST['first_name'], '') : ''; $last_name = isset($_REQUEST['last_name']) ? wp_kses($_REQUEST['last_name'], '') : ''; $email = isset($_REQUEST['email']) ? wp_kses($_REQUEST['email'], '') : ''; $phone = isset($_REQUEST['phone']) ? wp_kses($_REQUEST['phone'], '') : ''; $address = isset($_REQUEST['address']) ? wp_kses($_REQUEST['address'], '') : ''; $town = isset($_REQUEST['town']) ? wp_kses($_REQUEST['town'], '') : ''; $zip = isset($_REQUEST['zip']) ? wp_kses($_REQUEST['zip'], '') : ''; $adults = isset($_REQUEST['adults']) ? wp_kses($_REQUEST['adults'], '') : ''; $adults = $adults ? intval($adults) : 1; $children = isset($_REQUEST['children']) ? wp_kses($_REQUEST['children'], '') : ''; $children = $children ? intval($children) : 0; $country = isset($_REQUEST['country']) ? wp_kses($_REQUEST['country'], '') : ''; $special_requirements = isset($_REQUEST['requirements']) ? wp_kses($_REQUEST['requirements'], '') : ''; $cruise_start_date = isset($_REQUEST['cruise_start_date']) ? wp_kses($_REQUEST['cruise_start_date'], '') : null; $cruise_schedule_id = isset($_REQUEST['cruise_schedule_id']) ? intval(wp_kses($_REQUEST['cruise_schedule_id'], '')) : 0; $c_val_s = isset($_REQUEST['c_val_s']) ? intval(wp_kses($_REQUEST['c_val_s'], '')) : -1; $c_val_1 = isset($_REQUEST['c_val_1']) ? intval(BYT_Theme_Utils::decrypt(wp_kses($_REQUEST['c_val_1'], ''), $enc_key)) : 0; $c_val_2 = isset($_REQUEST['c_val_2']) ? intval(BYT_Theme_Utils::decrypt(wp_kses($_REQUEST['c_val_2'], ''), $enc_key)) : 0; // nonce passed ok $cruise_schedule = $byt_cruises_post_type->get_cruise_schedule($cruise_schedule_id); if ($cruise_schedule != null) { if ($add_captcha_to_forms && $c_val_s != $c_val_1 + $c_val_2) { echo 'captcha_error'; die; } else { $cruise_id = $cruise_schedule->cruise_id; $cruise_obj = new byt_cruise(intval($cruise_id)); $cruise = get_post($cruise_id); $cruise_is_price_per_person = $cruise_obj->get_is_price_per_person(); $current_user = wp_get_current_user(); $total_price_adults = 0; $total_price_children = 0; if ($cruise_is_price_per_person) { $total_price_children = $cruise_schedule->price_child * $children; $total_price_adults = $cruise_schedule->price * $adults; } else { $total_price_adults = $cruise_schedule->price; } $total_price = $total_price_adults + $total_price_children; $start_date = date('Y-m-d', strtotime($cruise_start_date)); $cruise_name = $cruise_obj->get_title(); $booking_id = $byt_cruises_post_type->create_cruise_booking($first_name, $last_name, $email, $phone, $address, $town, $zip, $country, $special_requirements, $adults, $children, $cruise_schedule_id, $current_user->ID, $total_price_adults, $total_price_children, $total_price, $start_date); $is_reservation_only = get_post_meta($cruise_id, 'cruise_is_reservation_only', true); $use_woocommerce_for_checkout = $byt_theme_globals->use_woocommerce_for_checkout(); if (BYT_Theme_Utils::is_woocommerce_active() && !$is_reservation_only) { if ($use_woocommerce_for_checkout) { $product_id = $byt_theme_woocommerce->woocommerce_create_product($cruise_obj->get_title(), '', 'ACC_' . $cruise_id . '_', $booking_id, $total_price, BOOKYOURTRAVEL_WOO_PRODUCT_CAT_CRUISES); echo $product_id; } } else { echo $booking_id; } if (!$use_woocommerce_for_checkout || !BYT_Theme_Utils::is_woocommerce_active()) { $admin_email = get_bloginfo('admin_email'); $admin_name = get_bloginfo('name'); $headers = "From: {$admin_name} <{$admin_email}>\n"; $subject = __('New cruise booking', 'bookyourtravel'); $message = __("New cruise booking: \n\nFirst name: %s \n\nLast name: %s \n\nEmail: %s \n\nPhone: %s \n\nAddress: %s \n\nTown: %s \n\nZip: %s \n\nCountry: %s \n\nSpecial requirements: %s \n\nAdults: %d \n\nChildren: %d \n\nCruise name: %s \n\nStart date: %s \n\nTotal price: %d \n", 'bookyourtravel'); $message = sprintf($message, $first_name, $last_name, $email, $phone, $address, $town, $zip, $country, $special_requirements, $adults, $children, $cruise_name, $start_date, $total_price); wp_mail($email, $subject, $message, $headers); $contact_email = get_post_meta($cruise_id, 'cruise_contact_email', true); $contact_emails = explode(';', $contact_email); if (empty($contact_email)) { $contact_emails = array($admin_email); } foreach ($contact_emails as $e) { if (!empty($e)) { wp_mail($e, $subject, $message, $headers); } } } } } } } // Always die in functions echoing ajax content die; }
?> ; window.cruiseId = <?php echo $cruise_obj->get_id(); ?> ; window.cruiseIsPricePerPerson = <?php echo $cruise_obj->get_is_price_per_person(); ?> ; window.cruiseDateFrom = <?php echo json_encode($cruise_date_from); ?> ; window.cruiseTitle = <?php echo json_encode($cruise_obj->get_title()); ?> ; window.currentMonth = <?php echo date('n'); ?> ; window.currentYear = <?php echo date('Y'); ?> ; window.currentDay = <?php echo date('j'); ?> ; window.cruiseIsReservationOnly = <?php
$current_date = date('Y-m-d', time()); $cruise_min_price = $byt_cruises_post_type->get_cruise_min_price($cruise_id, 0, $current_date); if (empty($display_mode) || $display_mode == 'card') { ?> <!--cruise item--> <article class="cruise_item <?php echo $cruise_class; ?> "> <div> <figure> <a href="<?php echo esc_url($cruise_obj->get_permalink()); ?> " title="<?php echo esc_attr($cruise_obj->get_title()); ?> "> <img src="<?php echo esc_url($cruise_image); ?> " alt="<?php echo esc_attr($cruise_obj->get_title()); ?> " /> </a> </figure> <div class="details"> <h2><?php echo $cruise_obj->get_title(); ?>