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;
 }
Esempio n. 2
0
    ?>
;
			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();
    ?>