Ejemplo n.º 1
0
 function wpdev_booking_activate()
 {
     update_bk_option('booking_version_num', WP_BK_VERSION_NUM);
     $version = get_bk_version();
     $is_demo = wpdev_bk_is_this_demo();
     load_bk_Translation();
     // set execution time to 15 minutes, its not worked if we have SAFE MODE ON at PHP
     if (function_exists('set_time_limit')) {
         if (!in_array(ini_get('safe_mode'), array('1', 'On'))) {
             set_time_limit(900);
         }
     }
     add_bk_option('booking_admin_cal_count', $is_demo ? '3' : '2');
     add_bk_option('booking_skin', '/css/skins/traditional.css');
     add_bk_option('bookings_num_per_page', '10');
     add_bk_option('booking_sort_order', '');
     add_bk_option('booking_default_toolbar_tab', 'filter');
     add_bk_option('bookings_listing_default_view_mode', 'vm_calendar');
     //,'vm_listing');
     if ($version == 'free') {
         add_bk_option('booking_view_days_num', '90');
     } else {
         add_bk_option('booking_view_days_num', '30');
     }
     // Month view for several resources
     //add_bk_option( 'booking_sort_order_direction', 'ASC');
     add_bk_option('booking_max_monthes_in_calendar', '1y');
     add_bk_option('booking_client_cal_count', '1');
     add_bk_option('booking_start_day_weeek', '0');
     add_bk_option('booking_title_after_reservation', sprintf(__('Thank you for your online booking. %s We will send confirmation of your booking as soon as possible.', 'wpdev-booking'), ''));
     add_bk_option('booking_title_after_reservation_time', '7000');
     add_bk_option('booking_type_of_thank_you_message', 'message');
     add_bk_option('booking_thank_you_page_URL', '/thank-you');
     add_bk_option('booking_is_use_autofill_4_logged_user', $is_demo ? 'On' : 'Off');
     add_bk_option('booking_date_format', get_option('date_format'));
     add_bk_option('booking_date_view_type', 'short');
     // short / wide
     add_bk_option('booking_is_delete_if_deactive', $is_demo ? 'On' : 'Off');
     // check
     add_bk_option('booking_dif_colors_approval_pending', 'On');
     add_bk_option('booking_is_use_hints_at_admin_panel', 'On');
     add_bk_option('booking_is_not_load_bs_script_in_client', 'Off');
     add_bk_option('booking_is_not_load_bs_script_in_admin', 'Off');
     // Set the type of days selections based on the previous saved data ....
     $booking_type_of_day_selections = 'multiple';
     //'single';
     if (get_bk_option('booking_multiple_day_selections') == 'On') {
         $booking_type_of_day_selections = 'multiple';
     }
     if (get_bk_option('booking_range_selection_is_active') == 'On') {
         $booking_type_of_day_selections = 'range';
     }
     if ($is_demo) {
         $booking_type_of_day_selections = 'multiple';
     }
     add_bk_option('booking_type_of_day_selections', $booking_type_of_day_selections);
     add_bk_option('booking_form_is_using_bs_css', 'On');
     add_bk_option('booking_form_format_type', 'vertical');
     add_bk_option('booking_form_field_active1', 'On');
     add_bk_option('booking_form_field_required1', 'On');
     add_bk_option('booking_form_field_label1', 'First Name');
     add_bk_option('booking_form_field_active2', 'On');
     add_bk_option('booking_form_field_required2', 'On');
     add_bk_option('booking_form_field_label2', 'Last Name');
     add_bk_option('booking_form_field_active3', 'On');
     add_bk_option('booking_form_field_required3', 'On');
     add_bk_option('booking_form_field_label3', 'Email');
     add_bk_option('booking_form_field_active4', 'On');
     add_bk_option('booking_form_field_required4', 'Off');
     add_bk_option('booking_form_field_label4', 'Phone');
     add_bk_option('booking_form_field_active5', 'On');
     add_bk_option('booking_form_field_required5', 'Off');
     add_bk_option('booking_form_field_label5', 'Details');
     add_bk_option('booking_unavailable_days_num_from_today', '0');
     add_bk_option('booking_unavailable_day0', 'Off');
     add_bk_option('booking_unavailable_day1', 'Off');
     add_bk_option('booking_unavailable_day2', 'Off');
     add_bk_option('booking_unavailable_day3', 'Off');
     add_bk_option('booking_unavailable_day4', 'Off');
     add_bk_option('booking_unavailable_day5', 'Off');
     add_bk_option('booking_unavailable_day6', 'Off');
     if ($is_demo) {
         add_bk_option('booking_user_role_booking', 'subscriber');
         add_bk_option('booking_user_role_addbooking', 'subscriber');
         add_bk_option('booking_user_role_resources', 'subscriber');
         add_bk_option('booking_user_role_settings', 'subscriber');
     } else {
         add_bk_option('booking_user_role_booking', 'editor');
         add_bk_option('booking_user_role_addbooking', 'editor');
         add_bk_option('booking_user_role_resources', 'editor');
         add_bk_option('booking_user_role_settings', 'administrator');
     }
     $blg_title = get_option('blogname');
     $blg_title = str_replace('"', '', $blg_title);
     $blg_title = str_replace("'", '', $blg_title);
     add_bk_option('booking_email_reservation_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_reservation_from_adress', '[visitoremail]');
     //htmlspecialchars('"Booking system" <' .get_option('admin_email').'>'));
     add_bk_option('booking_email_reservation_subject', __('New booking', 'wpdev-booking'));
     add_bk_option('booking_email_reservation_content', htmlspecialchars(sprintf(__('You need to approve a new booking %s for: %s Person detail information:%s Currently a new booking is waiting for approval. Please visit the moderation panel%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]<br/><br/>', '<br/> [content]<br/><br/>', ' [moderatelink]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_email_approval_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_approval_subject', __('Your booking has been approved', 'wpdev-booking'));
     if ($this->wpdev_bk_personal !== false) {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your reservation %s for: %s has been approved.%sYou can edit the booking on this page: %s Thank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     } else {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been approved.%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     }
     add_bk_option('booking_email_deny_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_deny_subject', __('Your booking has been declined', 'wpdev-booking'));
     add_bk_option('booking_email_deny_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been  canceled. %sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[denyreason]<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_is_email_reservation_adress', 'On');
     add_bk_option('booking_is_email_approval_adress', 'On');
     add_bk_option('booking_is_email_deny_adress', 'On');
     add_bk_option('booking_widget_title', __('Booking form', 'wpdev-booking'));
     add_bk_option('booking_widget_show', 'booking_form');
     add_bk_option('booking_widget_type', '1');
     add_bk_option('booking_widget_calendar_count', '1');
     add_bk_option('booking_widget_last_field', '');
     add_bk_option('booking_wpdev_copyright_adminpanel', 'On');
     add_bk_option('booking_is_show_powered_by_notice', 'On');
     add_bk_option('booking_is_use_captcha', 'Off');
     add_bk_option('booking_is_show_legend', 'Off');
     add_bk_option('booking_legend_is_show_item_available', 'On');
     add_bk_option('booking_legend_text_for_item_available', __('Available', 'wpdev-booking'));
     add_bk_option('booking_legend_is_show_item_pending', 'On');
     add_bk_option('booking_legend_text_for_item_pending', __('Pending', 'wpdev-booking'));
     add_bk_option('booking_legend_is_show_item_approved', 'On');
     add_bk_option('booking_legend_text_for_item_approved', __('Booked', 'wpdev-booking'));
     if (class_exists('wpdev_bk_biz_s')) {
         add_bk_option('booking_legend_is_show_item_partially', 'On');
         add_bk_option('booking_legend_text_for_item_partially', __('Partially booked', 'wpdev-booking'));
     }
     // Create here tables which is needed for using plugin
     global $wpdb;
     $charset_collate = '';
     //if ( $wpdb->has_cap( 'collation' ) ) {
     if (!empty($wpdb->charset)) {
         $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
     }
     if (!empty($wpdb->collate)) {
         $charset_collate .= " COLLATE {$wpdb->collate}";
     }
     //}
     $wp_queries = array();
     if (!$this->is_table_exists('booking')) {
         // Cehck if tables not exist yet
         $simple_sql = "CREATE TABLE {$wpdb->prefix}booking (\n                     booking_id bigint(20) unsigned NOT NULL auto_increment,\n                     form text ,\n                     booking_type bigint(10) NOT NULL default 1,\n                     PRIMARY KEY  (booking_id)\n                    ) {$charset_collate};";
         $wpdb->query($simple_sql);
     } elseif ($this->is_field_in_table_exists('booking', 'form') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD form TEXT AFTER booking_id";
     }
     if ($this->is_field_in_table_exists('booking', 'modification_date') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD modification_date datetime AFTER booking_id";
     }
     if ($this->is_field_in_table_exists('booking', 'sort_date') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sort_date datetime AFTER booking_id";
     }
     if ($this->is_field_in_table_exists('booking', 'status') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD status varchar(200) NOT NULL default '' AFTER booking_id";
     }
     if ($this->is_field_in_table_exists('booking', 'is_new') == 0) {
         $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD is_new bigint(10) NOT NULL default 1 AFTER booking_id";
     }
     if (!$this->is_table_exists('bookingdates')) {
         // Cehck if tables not exist yet
         $simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (\n                     booking_id bigint(20) unsigned NOT NULL,\n                     booking_date datetime NOT NULL default '0000-00-00 00:00:00',\n                     approved bigint(20) unsigned NOT NULL default 0\n                    ) {$charset_collate}";
         $wpdb->query($simple_sql);
         if ($this->wpdev_bk_personal == false) {
             $wp_queries[] = "INSERT INTO {$wpdb->prefix}booking ( form, modification_date ) VALUES (\n                     'text^name1^Jony~text^secondname1^Smith~text^email1^example-free@wpbookingcalendar.com~text^phone1^8(038)458-77-77~textarea^details1^Reserve a room with sea view', NOW() );";
         }
     }
     if (!class_exists('wpdev_bk_biz_l')) {
         if ($this->is_index_in_table_exists('bookingdates', 'booking_id_dates') == 0) {
             $simple_sql = "CREATE UNIQUE INDEX booking_id_dates ON {$wpdb->prefix}bookingdates (booking_id, booking_date);";
             $wpdb->query($simple_sql);
         }
     } else {
         if ($this->is_index_in_table_exists('bookingdates', 'booking_id_dates') != 0) {
             $simple_sql = "DROP INDEX booking_id_dates ON  {$wpdb->prefix}bookingdates ;";
             $wpdb->query($simple_sql);
         }
     }
     if (count($wp_queries) > 0) {
         foreach ($wp_queries as $wp_q) {
             $wpdb->query($wp_q);
         }
         if ($this->wpdev_bk_personal == false) {
             $temp_id = $wpdb->insert_id;
             $wp_queries_sub = "INSERT INTO {$wpdb->prefix}bookingdates (\n                         booking_id,\n                         booking_date\n                        ) VALUES\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 2 day ),\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 3 day ),\n                        ( " . $temp_id . ", CURDATE()+ INTERVAL 4 day );";
             $wpdb->query($wp_queries_sub);
         }
     }
     // if( $this->wpdev_bk_personal !== false )  $this->wpdev_bk_personal->pro_activate();
     make_bk_action('wpdev_booking_activation');
     // Examples in demos
     if ($is_demo) {
         $this->createExamples4Demo();
     }
     /*
             // Fill Development server by initial bookings
             if (  $_SERVER['HTTP_HOST'] === 'dev'  ) {  
                 for ($i = 0; $i < 5; $i++) {
                     //if (!class_exists('wpdev_bk_personal')) 
                     $this->createExamples4Demo( array(1,2,3,4,5,6,7,8,9,10,11,12) ); 
                 }
             }
             $this->setDefaultInitialValues();/**/
     $this->reindex_booking_db();
 }
function wpbc_sync_gcal_activate()
{
    add_bk_option('booking_gcal_feed', '');
    add_bk_option('booking_gcal_events_from', 'month-start');
    add_bk_option('booking_gcal_events_from_offset', '');
    add_bk_option('booking_gcal_events_from_offset_type', '');
    add_bk_option('booking_gcal_events_until', 'any');
    add_bk_option('booking_gcal_events_until_offset', '');
    add_bk_option('booking_gcal_events_until_offset_type', '');
    add_bk_option('booking_gcal_events_max', '25');
    add_bk_option('booking_gcal_api_key', '');
    add_bk_option('booking_gcal_timezone', '');
    add_bk_option('booking_gcal_is_send_email', 'Off');
    add_bk_option('booking_gcal_auto_import_is_active', 'Off');
    add_bk_option('booking_gcal_auto_import_time', '24');
    add_bk_option('booking_gcal_events_form_fields', 'a:3:{s:5:"title";s:9:"text^name";s:11:"description";s:12:"text^details";s:5:"where";s:5:"text^";}');
}
function wpbc_settings_emails()
{
    if (isset($_POST['email_reservation_adress'])) {
        $email_reservation_adress = htmlspecialchars(str_replace('\\"', '"', $_POST['email_reservation_adress']));
        $email_reservation_from_adress = htmlspecialchars(str_replace('\\"', '"', $_POST['email_reservation_from_adress']));
        $email_reservation_subject = htmlspecialchars(str_replace('\\"', '"', $_POST['email_reservation_subject']));
        $email_reservation_content = str_replace('\\"', '"', $_POST['email_reservation_content']);
        $email_reservation_adress = str_replace("\\'", "'", $email_reservation_adress);
        $email_reservation_from_adress = str_replace("\\'", "'", $email_reservation_from_adress);
        $email_reservation_subject = str_replace("\\'", "'", $email_reservation_subject);
        $email_reservation_content = str_replace("\\'", "'", $email_reservation_content);
        if (isset($_POST['is_email_reservation_adress'])) {
            $is_email_reservation_adress = 'On';
        } else {
            $is_email_reservation_adress = 'Off';
        }
        update_bk_option('booking_is_email_reservation_adress', $is_email_reservation_adress);
        if (get_bk_option('booking_email_reservation_adress') !== false) {
            update_bk_option('booking_email_reservation_adress', $email_reservation_adress);
        } else {
            add_bk_option('booking_email_reservation_adress', $email_reservation_adress);
        }
        if (get_bk_option('booking_email_reservation_from_adress') !== false) {
            update_bk_option('booking_email_reservation_from_adress', $email_reservation_from_adress);
        } else {
            add_bk_option('booking_email_reservation_from_adress', $email_reservation_from_adress);
        }
        if (get_bk_option('booking_email_reservation_subject') !== false) {
            update_bk_option('booking_email_reservation_subject', $email_reservation_subject);
        } else {
            add_bk_option('booking_email_reservation_subject', $email_reservation_subject);
        }
        if (get_bk_option('booking_email_reservation_content') !== false) {
            update_bk_option('booking_email_reservation_content', $email_reservation_content);
        } else {
            add_bk_option('booking_email_reservation_content', $email_reservation_content);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $email_approval_adress = htmlspecialchars(str_replace('\\"', '"', $_POST['email_approval_adress']));
        $email_approval_subject = htmlspecialchars(str_replace('\\"', '"', $_POST['email_approval_subject']));
        $email_approval_content = str_replace('\\"', '"', $_POST['email_approval_content']);
        $email_approval_adress = str_replace("\\'", "'", $email_approval_adress);
        $email_approval_subject = str_replace("\\'", "'", $email_approval_subject);
        $email_approval_content = str_replace("\\'", "'", $email_approval_content);
        if (isset($_POST['is_email_approval_adress'])) {
            $is_email_approval_adress = 'On';
        } else {
            $is_email_approval_adress = 'Off';
        }
        update_bk_option('booking_is_email_approval_adress', $is_email_approval_adress);
        if (isset($_POST['is_email_approval_send_copy_to_admin'])) {
            $is_email_approval_send_copy_to_admin = 'On';
        } else {
            $is_email_approval_send_copy_to_admin = 'Off';
        }
        update_bk_option('booking_is_email_approval_send_copy_to_admin', $is_email_approval_send_copy_to_admin);
        if (get_bk_option('booking_email_approval_adress') !== false) {
            update_bk_option('booking_email_approval_adress', $email_approval_adress);
        } else {
            add_bk_option('booking_email_approval_adress', $email_approval_adress);
        }
        if (get_bk_option('booking_email_approval_subject') !== false) {
            update_bk_option('booking_email_approval_subject', $email_approval_subject);
        } else {
            add_bk_option('booking_email_approval_subject', $email_approval_subject);
        }
        if (get_bk_option('booking_email_approval_content') !== false) {
            update_bk_option('booking_email_approval_content', $email_approval_content);
        } else {
            add_bk_option('booking_email_approval_content', $email_approval_content);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $email_newbookingbyperson_adress = htmlspecialchars(str_replace('\\"', '"', $_POST['email_newbookingbyperson_adress']));
        $email_newbookingbyperson_subject = htmlspecialchars(str_replace('\\"', '"', $_POST['email_newbookingbyperson_subject']));
        $email_newbookingbyperson_content = str_replace('\\"', '"', $_POST['email_newbookingbyperson_content']);
        $email_newbookingbyperson_adress = str_replace("\\'", "'", $email_newbookingbyperson_adress);
        $email_newbookingbyperson_subject = str_replace("\\'", "'", $email_newbookingbyperson_subject);
        $email_newbookingbyperson_content = str_replace("\\'", "'", $email_newbookingbyperson_content);
        if (isset($_POST['is_email_newbookingbyperson_adress'])) {
            $is_email_newbookingbyperson_adress = 'On';
        } else {
            $is_email_newbookingbyperson_adress = 'Off';
        }
        update_bk_option('booking_is_email_newbookingbyperson_adress', $is_email_newbookingbyperson_adress);
        if (get_bk_option('booking_email_newbookingbyperson_adress') !== false) {
            update_bk_option('booking_email_newbookingbyperson_adress', $email_newbookingbyperson_adress);
        } else {
            add_bk_option('booking_email_newbookingbyperson_adress', $email_newbookingbyperson_adress);
        }
        if (get_bk_option('booking_email_newbookingbyperson_subject') !== false) {
            update_bk_option('booking_email_newbookingbyperson_subject', $email_newbookingbyperson_subject);
        } else {
            add_bk_option('booking_email_newbookingbyperson_subject', $email_newbookingbyperson_subject);
        }
        if (get_bk_option('booking_email_newbookingbyperson_content') !== false) {
            update_bk_option('booking_email_newbookingbyperson_content', $email_newbookingbyperson_content);
        } else {
            add_bk_option('booking_email_newbookingbyperson_content', $email_newbookingbyperson_content);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        $email_deny_adress = htmlspecialchars(str_replace('\\"', '"', $_POST['email_deny_adress']));
        $email_deny_subject = htmlspecialchars(str_replace('\\"', '"', $_POST['email_deny_subject']));
        $email_deny_content = str_replace('\\"', '"', $_POST['email_deny_content']);
        $email_deny_adress = str_replace("\\'", "'", $email_deny_adress);
        $email_deny_subject = str_replace("\\'", "'", $email_deny_subject);
        $email_deny_content = str_replace("\\'", "'", $email_deny_content);
        if (isset($_POST['is_email_deny_adress'])) {
            $is_email_deny_adress = 'On';
        } else {
            $is_email_deny_adress = 'Off';
        }
        update_bk_option('booking_is_email_deny_adress', $is_email_deny_adress);
        if (isset($_POST['is_email_deny_send_copy_to_admin'])) {
            $is_email_deny_send_copy_to_admin = 'On';
        } else {
            $is_email_deny_send_copy_to_admin = 'Off';
        }
        update_bk_option('booking_is_email_deny_send_copy_to_admin', $is_email_deny_send_copy_to_admin);
        if (get_bk_option('booking_email_deny_adress') !== false) {
            update_bk_option('booking_email_deny_adress', $email_deny_adress);
        } else {
            add_bk_option('booking_email_deny_adress', $email_deny_adress);
        }
        if (get_bk_option('booking_email_deny_subject') !== false) {
            update_bk_option('booking_email_deny_subject', $email_deny_subject);
        } else {
            add_bk_option('booking_email_deny_subject', $email_deny_subject);
        }
        if (get_bk_option('booking_email_deny_content') !== false) {
            update_bk_option('booking_email_deny_content', $email_deny_content);
        } else {
            add_bk_option('booking_email_deny_content', $email_deny_content);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    }
    $email_reservation_adress = get_bk_option('booking_email_reservation_adress');
    $email_reservation_from_adress = get_bk_option('booking_email_reservation_from_adress');
    $email_reservation_subject = get_bk_option('booking_email_reservation_subject');
    $email_reservation_content = get_bk_option('booking_email_reservation_content');
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $email_newbookingbyperson_adress = get_bk_option('booking_email_newbookingbyperson_adress');
    $email_newbookingbyperson_subject = get_bk_option('booking_email_newbookingbyperson_subject');
    $email_newbookingbyperson_content = get_bk_option('booking_email_newbookingbyperson_content');
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $email_approval_adress = get_bk_option('booking_email_approval_adress');
    $email_approval_subject = get_bk_option('booking_email_approval_subject');
    $email_approval_content = get_bk_option('booking_email_approval_content');
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $email_deny_adress = get_bk_option('booking_email_deny_adress');
    $email_deny_subject = get_bk_option('booking_email_deny_subject');
    $email_deny_content = get_bk_option('booking_email_deny_content');
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    $is_email_reservation_adress = get_bk_option('booking_is_email_reservation_adress');
    $is_email_newbookingbyperson_adress = get_bk_option('booking_is_email_newbookingbyperson_adress');
    $is_email_approval_adress = get_bk_option('booking_is_email_approval_adress');
    $is_email_approval_send_copy_to_admin = get_bk_option('booking_is_email_approval_send_copy_to_admin');
    $is_email_deny_adress = get_bk_option('booking_is_email_deny_adress');
    $is_email_deny_send_copy_to_admin = get_bk_option('booking_is_email_deny_send_copy_to_admin');
    // Replace <br> to  <br> with  new line
    $email_reservation_content = preg_replace(array("@(&lt;|<)br/?(&gt;|>)(\r\n)?@", "/\\[bookingtype\\]/"), array("<br/>", ""), $email_reservation_content);
    $email_newbookingbyperson_content = preg_replace(array("@(&lt;|<)br/?(&gt;|>)(\r\n)?@", "/\\[bookingtype\\]/"), array("<br/>", ""), $email_newbookingbyperson_content);
    $email_approval_content = preg_replace(array("@(&lt;|<)br/?(&gt;|>)(\r\n)?@", "/\\[bookingtype\\]/"), array("<br/>", ""), $email_approval_content);
    $email_deny_content = preg_replace(array("@(&lt;|<)br/?(&gt;|>)(\r\n)?@", "/\\[bookingtype\\]/"), array("<br/>", ""), $email_deny_content);
    ?>
    <div class="clear" style="height:0px;"></div>
    <div id="ajax_working"></div>
    <div id="poststuff0" class="metabox-holder">
        <form  name="post_settings_email_templates" action="" method="post" id="post_settings_email_templates" >

            <div id="visibility_container_email_new_to_admin" class="visibility_container" style="display:block;">

                <div class='meta-box'> <div <?php 
    $my_close_open_win_id = 'bk_settings_emails_to_admin';
    ?>
  id="<?php 
    echo $my_close_open_win_id;
    ?>
" class="postbox <?php 
    if ('1' == get_user_option('booking_win_' . $my_close_open_win_id)) {
        echo 'closed';
    }
    ?>
" > <div title="<?php 
    _e('Click to toggle', 'booking');
    ?>
" class="handlediv"  onclick="javascript:verify_window_opening(<?php 
    echo get_bk_current_user_id();
    ?>
, '<?php 
    echo $my_close_open_win_id;
    ?>
');" ><br></div>
                      <h3 class='hndle'><span><?php 
    _e('Email to "Admin" after a new booking', 'booking');
    ?>
</span></h3> <div class="inside">

                    <table class="form-table email-table0" >
                        <tbody>
                            <tr>
                                <th scope="row"><?php 
    _e('Status', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_reservation_adress">
                                            <input id="is_email_reservation_adress" name="is_email_reservation_adress" type="checkbox" 
                                                <?php 
    if ($is_email_reservation_adress == 'On') {
        echo "checked";
    }
    ?>
  
                                                value="<?php 
    echo $is_email_reservation_adress;
    ?>
" 
                                                onchange="document.getElementById('booking_is_email_reservation_adress_dublicated').checked=this.checked;"
                                                />
                                            <?php 
    _e('Active', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>
                            <tr valign="top">
                                <th scope="row"><label for="email_reservation_adress" ><?php 
    _e('To', 'booking');
    ?>
:</label></th>
                                <td><input id="email_reservation_adress"  name="email_reservation_adress" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_reservation_adress;
    ?>
" />
                                    <span class="description"><?php 
    printf(__('Type default %sadmin email%s for booking confirmation', 'booking'), '<b>', '</b>');
    ?>
</span>
                                </td>
                            </tr>

                            <tr valign="top">
                                <th scope="row"><label for="email_reservation_from_adress" ><?php 
    _e('From', 'booking');
    ?>
:</label></th>
                                <td><input id="email_reservation_from_adress" name="email_reservation_from_adress" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_reservation_from_adress;
    ?>
" />
                                    <span class="description"><?php 
    printf(__('Type the default %sadmin email%s sending the booking confimation. You can use this %s shortcode.', 'booking'), '<b>', '</b>', '<code>[visitoremail]</code>');
    ?>
</span>
                                </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_reservation_subject" ><?php 
    _e('Subject', 'booking');
    ?>
:</label></th>
                                    <td><input id="email_reservation_subject" name="email_reservation_subject"  class="regular-text code" type="text" size="45" value="<?php 
    echo $email_reservation_subject;
    ?>
" />
                                        <span class="description"><?php 
    printf(__('Type your email %ssubject%s for the booking confimation message.', 'booking'), '<b>', '</b>');
    ?>
</span>
                                    </td>
                            </tr>

                            <tr valign="top">
                                <th scope="row"><label for="email_reservation_content" ><?php 
    _e('Content', 'booking');
    ?>
:</label></th>
                                <td>     <?php 
    /**/
    wp_editor($email_reservation_content, 'email_reservation_content', array('wpautop' => false, 'media_buttons' => false, 'textarea_name' => 'email_reservation_content', 'textarea_rows' => 10, 'editor_class' => 'wpbc-textarea-tinymce', 'teeny' => true, 'drag_drop_upload' => false));
    /*
                                                      <textarea id="email_reservation_content" name="email_reservation_content" style="width:100%;" rows="10"><?php echo ($email_reservation_content); ?></textarea> /**/
    ?>
                                      <p class="description"><?php 
    printf(__('Type your %semail message content for checking booking%s in. ', 'booking'), '<b>', '</b>');
    ?>
</p>
                                </td>
                            </tr>
                            <tr><td></td>
                                <td>
                                      <?php 
    $skip_shortcodes = array('denyreason', 'paymentreason', 'visitorbookingediturl', 'visitorbookingcancelurl', 'visitorbookingpayurl', 'cost', 'bookingtype', 'check_in_date', 'check_out_date', 'dates_count');
    email_help_section($skip_shortcodes, sprintf(__('For example: "You have a new reservation %s on the following date(s): %s Contact information: %s You can approve or cancel this booking at: %s Thank you, Reservation service."', 'booking'), '', '[dates]&lt;br/&gt;&lt;br/&gt;', '&lt;br/&gt; [content]&lt;br/&gt;&lt;br/&gt;', htmlentities(' <a href="[moderatelink]">' . __('here', 'booking') . '</a> ') . '&lt;br/&gt;&lt;br/&gt; '));
    ?>
                                                      
                                </td>
                            </tr>
                        </tbody>
                    </table>

                </div> </div> </div>

            </div>


            <div id="visibility_container_email_new_to_visitor" class="visibility_container" style="display:none;">

                <div class='meta-box'> <div <?php 
    $my_close_open_win_id = 'bk_settings_emails_to_person_after_new';
    ?>
  id="<?php 
    echo $my_close_open_win_id;
    ?>
" class="postbox <?php 
    if ('1' == get_user_option('booking_win_' . $my_close_open_win_id)) {
        echo 'closed';
    }
    ?>
" > <div title="<?php 
    _e('Click to toggle', 'booking');
    ?>
" class="handlediv"  onclick="javascript:verify_window_opening(<?php 
    echo get_bk_current_user_id();
    ?>
, '<?php 
    echo $my_close_open_win_id;
    ?>
');" ><br></div>
                      <h3 class='hndle'><span><?php 
    _e('Email to "Person" after they make a new reservation', 'booking');
    ?>
</span></h3> <div class="inside">


                    <table class="form-table email-table0" >
                        <tbody>
                            <tr>
                                <th scope="row"><?php 
    _e('Status', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_newbookingbyperson_adress">
                                            <input id="is_email_newbookingbyperson_adress" name="is_email_newbookingbyperson_adress" 
                                                   type="checkbox" <?php 
    if ($is_email_newbookingbyperson_adress == 'On') {
        echo "checked";
    }
    ?>
  
                                                   value="<?php 
    echo $is_email_newbookingbyperson_adress;
    ?>
" 
                                                   onchange="document.getElementById('booking_is_email_newbookingbyperson_adress_dublicated').checked=this.checked;"  
                                                   />
                                            <?php 
    _e('Active', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>
                            <tr valign="top">
                                <th scope="row"><label for="email_newbookingbyperson_adress" ><?php 
    _e('From', 'booking');
    ?>
:</label></th>
                                <td><input id="email_newbookingbyperson_adress"  name="email_newbookingbyperson_adress" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_newbookingbyperson_adress;
    ?>
" />
                                    <span class="description"><?php 
    printf(__('Type the default %sadmin email%s sending the booking confimation', 'booking'), '<b>', '</b>');
    ?>
</span>
                                </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_newbookingbyperson_subject" ><?php 
    _e('Subject', 'booking');
    ?>
:</label></th>
                                    <td><input id="email_newbookingbyperson_subject"  name="email_newbookingbyperson_subject" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_newbookingbyperson_subject;
    ?>
" />
                                        <span class="description"><?php 
    printf(__('Type email subject for %svisitor after creating a new reservation%s.', 'booking'), '<b>', '</b>');
    ?>
</span>
                                    </td>
                            </tr>

                            <tr valign="top">
                                <th scope="row">
                                    <label for="email_newbookingbyperson_content" ><?php 
    _e('Content', 'booking');
    ?>
:</label></th>
                                <td>     <?php 
    /**/
    wp_editor($email_newbookingbyperson_content, 'email_newbookingbyperson_content', array('wpautop' => false, 'media_buttons' => false, 'textarea_name' => 'email_newbookingbyperson_content', 'textarea_rows' => 10, 'editor_class' => 'wpbc-textarea-tinymce', 'teeny' => true, 'drag_drop_upload' => false));
    /*
                                                      <textarea id="email_newbookingbyperson_content" name="email_newbookingbyperson_content" style="width:100%;" rows="10"><?php echo ($email_newbookingbyperson_content); ?></textarea> /**/
    ?>
                                      <p class="description"><?php 
    printf(__('Type your %semail message for visitor after creating a new reservation%s', 'booking'), '<b>', '</b>');
    ?>
</p>
                                </td>
                            </tr>
                            <tr><td></td>
                                <td>                                                      <?php 
    $skip_shortcodes = array('moderatelink', 'denyreason', 'paymentreason', 'visitorbookingpayurl', 'cost', 'bookingtype', 'check_in_date', 'check_out_date', 'dates_count');
    email_help_section($skip_shortcodes, sprintf(__('For example: "Your reservation %s on these date(s): %s is processing now! We will send confirmation by email. %s Thank you, Reservation service."', 'booking'), '', '[dates]', '&lt;br/&gt;&lt;br/&gt;[content]&lt;br/&gt;&lt;br/&gt;'));
    ?>
                            </td></tr>
                        </tbody>
                    </table>

                </div> </div> </div>

            </div>


            <div id="visibility_container_email_approved" class="visibility_container" style="display:none;">

                <div class='meta-box'> <div <?php 
    $my_close_open_win_id = 'bk_settings_emails_to_person_after_approval';
    ?>
  id="<?php 
    echo $my_close_open_win_id;
    ?>
" class="postbox <?php 
    if ('1' == get_user_option('booking_win_' . $my_close_open_win_id)) {
        echo 'closed';
    }
    ?>
" > <div title="<?php 
    _e('Click to toggle', 'booking');
    ?>
" class="handlediv"  onclick="javascript:verify_window_opening(<?php 
    echo get_bk_current_user_id();
    ?>
, '<?php 
    echo $my_close_open_win_id;
    ?>
');" ><br></div>
                      <h3 class='hndle'><span><?php 
    _e('Email to "Person" after booking is approved', 'booking');
    ?>
</span></h3> <div class="inside">

                    <table class="form-table email-table0" >
                        <tbody>
                            <tr>    
                                <th scope="row"><?php 
    _e('Status', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_approval_adress">
                                            <input id="is_email_approval_adress" name="is_email_approval_adress" type="checkbox" 
                                                   <?php 
    if ($is_email_approval_adress == 'On') {
        echo "checked";
    }
    ?>
  
                                                   value="<?php 
    echo $is_email_approval_adress;
    ?>
" 
                                                   onchange="document.getElementById('booking_is_email_approval_adress_dublicated').checked=this.checked;" 
                                                   />
                                            <?php 
    _e('Active', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>
                            <tr>
                                <th scope="row"><?php 
    _e('Send to Admin', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_approval_send_copy_to_admin">
                                            <input id="is_email_approval_send_copy_to_admin" name="is_email_approval_send_copy_to_admin" 
                                                   type="checkbox" <?php 
    if ($is_email_approval_send_copy_to_admin == 'On') {
        echo "checked";
    }
    ?>
  
                                                   value="<?php 
    echo $is_email_approval_send_copy_to_admin;
    ?>
"                                                                    
                                                   />
                                            <?php 
    _e('Check this box to send copy of this email to Admin', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>                                            
                            <tr valign="top">
                                <th scope="row"><label for="email_approval_adress" ><?php 
    _e('From', 'booking');
    ?>
:</label></th>
                                <td><input id="email_approval_adress"  name="email_approval_adress" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_approval_adress;
    ?>
" />
                                    <span class="description"><?php 
    printf(__('Type the default %sadmin email%s sending the booking confimation', 'booking'), '<b>', '</b>');
    ?>
</span>
                                </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_approval_subject" ><?php 
    _e('Subject', 'booking');
    ?>
:</label></th>
                                    <td><input id="email_approval_subject"  name="email_approval_subject" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_approval_subject;
    ?>
" />
                                        <span class="description"><?php 
    printf(__('Type your email subject for the %sapproved booking%s.', 'booking'), '<b>', '</b>');
    ?>
</span>
                                    </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_approval_content" ><?php 
    _e('Content', 'booking');
    ?>
:</label></th>
                                    <td>     <?php 
    /**/
    wp_editor($email_approval_content, 'email_approval_content', array('wpautop' => false, 'media_buttons' => false, 'textarea_name' => 'email_approval_content', 'textarea_rows' => 10, 'editor_class' => 'wpbc-textarea-tinymce', 'teeny' => true, 'drag_drop_upload' => false));
    /*
                                                      <textarea id="email_approval_content" name="email_approval_content" style="width:100%;" rows="10"><?php echo ($email_approval_content); ?></textarea> /**/
    ?>
                                      <p class="description"><?php 
    printf(__('Type your %semail message for the approved booking%s from the website', 'booking'), '<b>', '</b>');
    ?>
</p>
                                    </td>
                            </tr>
                            <tr valign="top"><td></td>
                                <td>
                                      <?php 
    $skip_shortcodes = array('moderatelink', 'denyreason', 'paymentreason', 'visitorbookingpayurl', 'cost', 'bookingtype', 'check_in_date', 'check_out_date', 'dates_count');
    email_help_section($skip_shortcodes, sprintf(__('For example: "Your reservation %s on these date(s): %s has been approved.%s Thank you, Reservation service."', 'booking'), '', '[dates]', '&lt;br/&gt;&lt;br/&gt;[content]&lt;br/&gt;&lt;br/&gt;'));
    ?>
                                </td>
                            </tr>
                        </tbody>
                    </table>

                </div> </div> </div>

            </div>

            
            <div id="visibility_container_email_declined" class="visibility_container" style="display:none;">

                <div class='meta-box'> <div <?php 
    $my_close_open_win_id = 'bk_settings_emails_to_person_after_deny';
    ?>
  id="<?php 
    echo $my_close_open_win_id;
    ?>
" class="postbox <?php 
    if ('1' == get_user_option('booking_win_' . $my_close_open_win_id)) {
        echo 'closed';
    }
    ?>
" > <div title="<?php 
    _e('Click to toggle', 'booking');
    ?>
" class="handlediv"  onclick="javascript:verify_window_opening(<?php 
    echo get_bk_current_user_id();
    ?>
, '<?php 
    echo $my_close_open_win_id;
    ?>
');" ><br></div>
                      <h3 class='hndle'><span><?php 
    _e('Email to "Person" after their booking has been denied', 'booking');
    ?>
</span></h3> <div class="inside">


                    <table class="form-table email-table0" >
                        <tbody>

                            <tr>    
                                <th scope="row"><?php 
    _e('Status', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_deny_adress">
                                            <input id="is_email_deny_adress" name="is_email_deny_adress" type="checkbox" 
                                                <?php 
    if ($is_email_deny_adress == 'On') {
        echo "checked";
    }
    ?>
  
                                                   value="<?php 
    echo $is_email_deny_adress;
    ?>
" 
                                                   onchange="document.getElementById('booking_is_email_declined_adress_dublicated').checked=this.checked;"  />
                                            <?php 
    _e('Active', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>
                            <tr>
                                <th scope="row"><?php 
    _e('Send to Admin', 'booking');
    ?>
:</th>
                                <td>
                                    <fieldset>
                                        <label for="is_email_deny_send_copy_to_admin">
                                            <input id="is_email_deny_send_copy_to_admin" name="is_email_deny_send_copy_to_admin" 
                                                   type="checkbox" <?php 
    if ($is_email_deny_send_copy_to_admin == 'On') {
        echo "checked";
    }
    ?>
  
                                                   value="<?php 
    echo $is_email_deny_send_copy_to_admin;
    ?>
" 
                                                   />
                                            <?php 
    _e('Check this box to send copy of this email to Admin', 'booking');
    ?>
                                        </label>
                                    </fieldset>   
                                </td>
                            </tr>                                            

                            <tr valign="top">
                                <th scope="row"><label for="email_deny_adress" ><?php 
    _e('From', 'booking');
    ?>
:</label></th>
                                <td><input id="email_deny_adress"  name="email_deny_adress" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_deny_adress;
    ?>
" />
                                    <span class="description"><?php 
    printf(__('Type the default %sadmin email%s sending the booking confimation', 'booking'), '<b>', '</b>');
    ?>
</span>
                                </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_deny_subject" ><?php 
    _e('Subject', 'booking');
    ?>
:</label></th>
                                    <td><input id="email_deny_subject"  name="email_deny_subject" class="regular-text code" type="text" size="45" value="<?php 
    echo $email_deny_subject;
    ?>
" />
                                        <span class="description"><?php 
    printf(__('Type your email subject for the %sdenied booking%s.', 'booking'), '<b>', '</b>');
    ?>
</span>
                                    </td>
                            </tr>

                            <tr valign="top">
                                    <th scope="row"><label for="email_deny_content" ><?php 
    _e('Content', 'booking');
    ?>
:</label></th>
                                    <td>     <?php 
    /**/
    wp_editor($email_deny_content, 'email_deny_content', array('wpautop' => false, 'media_buttons' => false, 'textarea_name' => 'email_deny_content', 'textarea_rows' => 10, 'editor_class' => 'wpbc-textarea-tinymce', 'teeny' => true, 'drag_drop_upload' => false));
    /*
                                                      <textarea id="email_deny_content" name="email_deny_content" style="width:100%;" rows="10"><?php echo ($email_deny_content); ?></textarea> /**/
    ?>
                                        <p class="description"><?php 
    printf(__('Type your %semail message for the denied booking%s from the website', 'booking'), '<b>', '</b>');
    ?>
</p>
                                    </td>
                            </tr>

                            <tr valign="top"><td></td>
                                <td>
                                      <?php 
    $skip_shortcodes = array('moderatelink', 'paymentreason', 'visitorbookingpayurl', 'visitorbookingediturl', 'visitorbookingcancelurl', 'cost', 'bookingtype', 'check_in_date', 'check_out_date', 'dates_count');
    email_help_section($skip_shortcodes, sprintf(__('For example: "Your reservation %s on these date(s): %s has been canceled. Please contact us for more information. %s Thank you, Reservation service."', 'booking'), '', '[dates]', '&lt;br/&gt;&lt;br/&gt;[denyreason]&lt;br/&gt;&lt;br/&gt;[content]&lt;br/&gt;&lt;br/&gt;'));
    ?>

                                </td>
                            </tr>
                        </tbody>
                    </table>

                </div> </div> </div>

            </div>
            <span class="wpdevbk">
                <div <?php 
    $my_close_open_alert_id = 'bk_alert_settings_email_in_free';
    ?>
                    class="alert alert-block alert-info <?php 
    if ('1' == get_user_option('booking_win_' . $my_close_open_alert_id)) {
        echo 'closed';
    }
    ?>
"                             
                    id="<?php 
    echo $my_close_open_alert_id;
    ?>
">
                  <a class="close tooltip_left" rel="tooltip" title="Don't show the message anymore" data-dismiss="alert" href="javascript:void(0)"
                     onclick="javascript:verify_window_opening(<?php 
    echo get_bk_current_user_id();
    ?>
, '<?php 
    echo $my_close_open_alert_id;
    ?>
');"
                     >&times;</a>
                  <strong class="alert-heading">Note!</strong>
                      Check how in <a href="http://wpbookingcalendar.com/demo/" target="_blank" style="text-decoration:underline;">other versions of Booking Calendar</a> possible to customize email templates with new additional shortcodes</em>
                </div>
            </span>        
        <input class="button-primary button" style="float:right;" type="submit" value="<?php 
    _e('Save Changes', 'booking');
    ?>
" name="Submit"/>
        <div class="clear" style="height:10px;"></div>

        </form>
    </div>
    <?php 
}
 function wpdev_booking_activate()
 {
     load_bk_Translation();
     // set execution time to 15 minutes, its not worked if we have SAFE MODE ON at PHP
     if (function_exists('set_time_limit')) {
         if (!in_array(ini_get('safe_mode'), array('1', 'On'))) {
             set_time_limit(900);
         }
     }
     if (wpdev_bk_is_this_demo()) {
         add_bk_option('booking_admin_cal_count', '3');
     } else {
         add_bk_option('booking_admin_cal_count', '2');
     }
     add_bk_option('booking_skin', WPDEV_BK_PLUGIN_URL . '/css/skins/traditional.css');
     add_bk_option('bookings_num_per_page', '10');
     add_bk_option('booking_sort_order', '');
     add_bk_option('booking_default_toolbar_tab', 'filter');
     //add_bk_option( 'booking_sort_order_direction', 'ASC');
     add_bk_option('booking_max_monthes_in_calendar', '1y');
     add_bk_option('booking_client_cal_count', '1');
     add_bk_option('booking_start_day_weeek', '0');
     add_bk_option('booking_title_after_reservation', sprintf(__('Thank you for your online booking. %s We will send confirmation of your booking as soon as possible.', 'wpdev-booking'), ''));
     add_bk_option('booking_title_after_reservation_time', '7000');
     add_bk_option('booking_type_of_thank_you_message', 'message');
     add_bk_option('booking_thank_you_page_URL', site_url());
     add_bk_option('booking_is_use_autofill_4_logged_user', 'On');
     add_bk_option('booking_date_format', get_option('date_format'));
     add_bk_option('booking_date_view_type', 'short');
     // short / wide
     if (wpdev_bk_is_this_demo()) {
         add_bk_option('booking_is_delete_if_deactive', 'On');
     } else {
         add_bk_option('booking_is_delete_if_deactive', 'Off');
     }
     // check
     add_bk_option('booking_dif_colors_approval_pending', 'On');
     add_bk_option('booking_is_use_hints_at_admin_panel', 'On');
     add_bk_option('booking_is_not_load_bs_script_in_client', 'Off');
     add_bk_option('booking_is_not_load_bs_script_in_admin', 'Off');
     add_bk_option('booking_multiple_day_selections', 'On');
     add_bk_option('booking_unavailable_days_num_from_today', '0');
     add_bk_option('booking_unavailable_day0', 'Off');
     add_bk_option('booking_unavailable_day1', 'Off');
     add_bk_option('booking_unavailable_day2', 'Off');
     add_bk_option('booking_unavailable_day3', 'Off');
     add_bk_option('booking_unavailable_day4', 'Off');
     add_bk_option('booking_unavailable_day5', 'Off');
     add_bk_option('booking_unavailable_day6', 'Off');
     if (wpdev_bk_is_this_demo()) {
         add_bk_option('booking_user_role_booking', 'subscriber');
         add_bk_option('booking_user_role_addbooking', 'subscriber');
         add_bk_option('booking_user_role_resources', 'subscriber');
         add_bk_option('booking_user_role_settings', 'subscriber');
     } else {
         add_bk_option('booking_user_role_booking', 'editor');
         add_bk_option('booking_user_role_addbooking', 'editor');
         add_bk_option('booking_user_role_resources', 'editor');
         add_bk_option('booking_user_role_settings', 'administrator');
     }
     $blg_title = get_option('blogname');
     $blg_title = str_replace('"', '', $blg_title);
     $blg_title = str_replace("'", '', $blg_title);
     add_bk_option('booking_email_reservation_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_reservation_from_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_reservation_subject', __('New booking', 'wpdev-booking'));
     add_bk_option('booking_email_reservation_content', htmlspecialchars(sprintf(__('You need to approve new booking %s for: %s Person detail information:%s Currently new booking is waiting for approval. Please visit the moderation panel%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]<br/><br/>', '<br/> [content]<br/><br/>', ' [moderatelink]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_email_approval_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_approval_subject', __('Your booking has been approved', 'wpdev-booking'));
     if ($this->wpdev_bk_personal !== false) {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been approved.%sYou can edit this booking at this page: %s Thank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     } else {
         add_bk_option('booking_email_approval_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been approved.%sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     }
     add_bk_option('booking_email_deny_adress', htmlspecialchars('"Booking system" <' . get_option('admin_email') . '>'));
     add_bk_option('booking_email_deny_subject', __('Your booking has been declined', 'wpdev-booking'));
     add_bk_option('booking_email_deny_content', htmlspecialchars(sprintf(__('Your booking %s for: %s has been  canceled. %sThank you, %s', 'wpdev-booking'), '[bookingtype]', '[dates]', '<br/><br/>[denyreason]<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]')));
     add_bk_option('booking_is_email_reservation_adress', 'On');
     add_bk_option('booking_is_email_approval_adress', 'On');
     add_bk_option('booking_is_email_deny_adress', 'On');
     add_bk_option('booking_widget_title', __('Booking form', 'wpdev-booking'));
     add_bk_option('booking_widget_show', 'booking_form');
     add_bk_option('booking_widget_type', '1');
     add_bk_option('booking_widget_calendar_count', '1');
     add_bk_option('booking_widget_last_field', '');
     add_bk_option('booking_wpdev_copyright', 'Off');
     add_bk_option('booking_is_show_powered_by_notice', 'On');
     add_bk_option('booking_is_use_captcha', 'Off');
     add_bk_option('booking_is_show_legend', 'Off');
     // Create here tables which is needed for using plugin
     global $wpdb;
     $charset_collate = '';
     //if ( $wpdb->has_cap( 'collation' ) ) {
     if (!empty($wpdb->charset)) {
         $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
     }
     if (!empty($wpdb->collate)) {
         $charset_collate .= " COLLATE {$wpdb->collate}";
     }
     //}
     if (!$this->is_table_exists('booking')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "booking (\r\n                            booking_id bigint(20) unsigned NOT NULL auto_increment,\r\n                            firstname varchar(50) NOT NULL,\r\n                            lastname varchar(50),\r\n                            referrer varchar(50),\r\n                            created_by varchar(20) NOT NULL,\r\n                            created_date datetime NOT NULL,\r\n                            last_updated_by varchar(20) NOT NULL,\r\n                            last_updated_date datetime NOT NULL,\r\n                            PRIMARY KEY (booking_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('bookingresources')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "bookingresources (\r\n                            resource_id bigint(20) unsigned NOT NULL auto_increment,\r\n                            name varchar(50) NOT NULL,\r\n                            parent_resource_id bigint(20) unsigned,\r\n                            resource_type varchar(10) NOT NULL,\r\n                            room_type varchar(2),\r\n                            created_by varchar(20) NOT NULL,\r\n                            created_date datetime NOT NULL,\r\n                            last_updated_by varchar(20) NOT NULL,\r\n                            last_updated_date datetime NOT NULL,\r\n                            PRIMARY KEY (resource_id),\r\n                            FOREIGN KEY (parent_resource_id) REFERENCES " . $wpdb->prefix . "bookingresources(resource_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('mv_resources_by_path')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "mv_resources_by_path (\r\n                            resource_id bigint(20) unsigned NOT NULL,\r\n                            name varchar(50) NOT NULL,\r\n                            parent_resource_id bigint(20) unsigned,\r\n                            path varchar(100) NOT NULL,\r\n                            resource_type varchar(10) NOT NULL,\r\n                            room_type varchar(2),\r\n                            level int(10) unsigned NOT NULL,\r\n                            number_children int(10) unsigned NOT NULL,\r\n                            capacity int(10) unsigned NOT NULL,\r\n                            PRIMARY KEY (resource_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('resource_properties')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "resource_properties (\r\n                            property_id bigint(20) unsigned NOT NULL,\r\n                            description varchar(20) NOT NULL,\r\n                            PRIMARY KEY (property_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
         $simple_sql = "INSERT INTO " . $wpdb->prefix . "resource_properties (property_id, description)\r\n                               VALUES(%d, %s)";
         $wpdb->query($wpdb->prepare($simple_sql, 1, '4-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 2, '8-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 3, '10-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 4, '12-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 5, '14-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 6, '16-Bed Dorm'));
         $wpdb->query($wpdb->prepare($simple_sql, 7, 'Twin Room'));
         $wpdb->query($wpdb->prepare($simple_sql, 8, 'Double Room'));
         $wpdb->query($wpdb->prepare($simple_sql, 9, 'Double Deluxe Room'));
     }
     if (!$this->is_table_exists('resource_properties_map')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "resource_properties_map (\r\n                            resource_id bigint(20) unsigned NOT NULL,\r\n                            property_id bigint(20) unsigned NOT NULL,\r\n                            FOREIGN KEY (resource_id) REFERENCES " . $wpdb->prefix . "bookingresources(resource_id),\r\n                            FOREIGN KEY (property_id) REFERENCES " . $wpdb->prefix . "resource_properties(property_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('bookingcomment')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "bookingcomment (\r\n                            comment_id bigint(20) unsigned NOT NULL auto_increment,\r\n                            booking_id bigint(20) unsigned NOT NULL,\r\n                            comment TEXT NOT NULL,\r\n                            comment_type varchar(10) NOT NULL,\r\n                            created_by varchar(20) NOT NULL,\r\n                            created_date datetime NOT NULL,\r\n                            PRIMARY KEY (comment_id),\r\n                            FOREIGN KEY (booking_id) REFERENCES " . $wpdb->prefix . "booking(booking_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('allocation')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "allocation (\r\n                            allocation_id bigint(20) unsigned NOT NULL auto_increment,\r\n                            booking_id bigint(20) unsigned NOT NULL,\r\n                            resource_id bigint(20) unsigned NOT NULL,\r\n                            guest_name varchar(50) NOT NULL,\r\n                            gender varchar(1) NOT NULL,\r\n                            created_by varchar(20) NOT NULL,\r\n                            created_date datetime NOT NULL,\r\n                            last_updated_by varchar(20) NOT NULL,\r\n                            last_updated_date datetime NOT NULL,\r\n                            PRIMARY KEY (allocation_id),\r\n                            FOREIGN KEY (booking_id) REFERENCES " . $wpdb->prefix . "booking(booking_id),\r\n                            FOREIGN KEY (resource_id) REFERENCES " . $wpdb->prefix . "bookingresources(resource_id) \r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('bookingdates')) {
         $simple_sql = "CREATE TABLE " . $wpdb->prefix . "bookingdates (\r\n                            allocation_id bigint(20) unsigned NOT NULL,\r\n                            booking_date date NOT NULL,\r\n                            status varchar(10) NOT NULL,\r\n                            checked_out varchar(1) NULL,\r\n                            created_by varchar(20) NOT NULL,\r\n                            created_date datetime NOT NULL,\r\n                            last_updated_by varchar(20) NOT NULL,\r\n                            last_updated_date datetime NOT NULL,\r\n                            FOREIGN KEY (allocation_id) REFERENCES " . $wpdb->prefix . "allocation(allocation_id)\r\n                        ) {$charset_collate};";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_routine_exists('walk_tree_path')) {
         $simple_sql = "CREATE FUNCTION walk_tree_path(p_resource_id BIGINT(20) UNSIGNED) RETURNS VARCHAR(255)\r\n                    -- walks the wp_bookingresources table from the given resource_id down to the root\r\n                    -- returns the path walked delimited with /\r\n                    BEGIN\r\n                        DECLARE last_id BIGINT(20) UNSIGNED;\r\n                        DECLARE parent_id BIGINT(20) UNSIGNED;\r\n                        DECLARE return_val VARCHAR(255);\r\n                        \r\n                        SET return_val = p_resource_id;\r\n                        SET parent_id = p_resource_id;\r\n                    \r\n                        WHILE parent_id IS NOT NULL DO\r\n                        \r\n                            SELECT parent_resource_id INTO parent_id\r\n                            FROM wp_bookingresources\r\n                            WHERE resource_id = parent_id;\r\n                    \r\n                            SET return_val = CONCAT(IFNULL(parent_id, ''), '/', return_val);\r\n                    \r\n                        END WHILE;\r\n                        \r\n                        RETURN return_val;\r\n                    \r\n                    END;";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('v_resources_sub1')) {
         $simple_sql = "CREATE OR REPLACE VIEW " . $wpdb->prefix . "v_resources_sub1 AS\r\n                        SELECT resource_id, name, parent_resource_id, walk_tree_path(resource_id) AS path, resource_type, room_type\r\n                        FROM " . $wpdb->prefix . "bookingresources";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('v_resources_by_path')) {
         $simple_sql = "CREATE OR REPLACE VIEW " . $wpdb->prefix . "v_resources_by_path AS\r\n                        SELECT resource_id, name, parent_resource_id, path, resource_type, room_type,\r\n                               LENGTH(path) - LENGTH(REPLACE(path, '/', '')) AS level,\r\n                               (SELECT COUNT(*) FROM wp_v_resources_sub1 s1 WHERE s1.path LIKE CAST(CONCAT(s.path, '/%') AS CHAR) AND resource_type = 'bed') AS number_children,\r\n                               (SELECT COUNT(*) FROM wp_v_resources_sub1 s1 WHERE (s1.path LIKE CAST(CONCAT(s.path, '/%') AS CHAR) OR s1.path = s.path) AND resource_type = 'bed') AS capacity\r\n                          FROM " . $wpdb->prefix . "v_resources_sub1 s\r\n                         ORDER BY path";
         // FIXME: remove number_children, rename capacity ==> number_beds
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('v_booked_capacity')) {
         $simple_sql = "CREATE OR REPLACE VIEW " . $wpdb->prefix . "v_booked_capacity (booking_date, resource_id, used_capacity) AS\r\n                        SELECT bd.booking_date, alloc.resource_id, COUNT(*) used_capacity\r\n                          FROM " . $wpdb->prefix . "bookingdates bd\r\n                          JOIN " . $wpdb->prefix . "allocation alloc ON bd.allocation_id = alloc.allocation_id\r\n                         GROUP BY bd.booking_date, alloc.resource_id";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_table_exists('v_resource_availability')) {
         $simple_sql = "CREATE OR REPLACE VIEW " . $wpdb->prefix . "v_resource_availability (booking_date, resource_id, resource_name, path, capacity, used_capacity, avail_capacity) AS\r\n                        SELECT bc.booking_date, \r\n                               rp.resource_id, \r\n                               rp.name AS resource_name,\r\n                               rp.path, \r\n                               rp.capacity, \r\n                               bc.used_capacity,\r\n                               CAST(rp.capacity - IFNULL(bc.used_capacity, 0) AS SIGNED) AS avail_capacity \r\n                          FROM " . $wpdb->prefix . "mv_resources_by_path rp\r\n                          LEFT OUTER JOIN " . $wpdb->prefix . "v_booked_capacity bc ON rp.resource_id = bc.resource_id\r\n                         WHERE rp.number_children = 0\r\n                         ORDER BY bc.booking_date, rp.path";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_trigger_exists('trg_enforce_availability')) {
         $simple_sql = "CREATE TRIGGER " . $wpdb->prefix . "trg_enforce_availability\r\n                    -- this will raise an error by selecting from a non-existent table\r\n                    -- in order to enforce availability for a particular resource/date\r\n                    BEFORE INSERT ON " . $wpdb->prefix . "bookingdates FOR EACH ROW\r\n                    BEGIN\r\n                        DECLARE p_avail_capacity INT;\r\n                        SELECT avail_capacity INTO p_avail_capacity\r\n                        FROM " . $wpdb->prefix . "v_resource_availability ra\r\n                        JOIN " . $wpdb->prefix . "allocation alloc ON ra.resource_id = alloc.resource_id\r\n                        WHERE ra.booking_date = NEW.booking_date\r\n                        AND alloc.allocation_id = NEW.allocation_id;\r\n                        \r\n                        IF p_avail_capacity <= 0 THEN\r\n                            SELECT 'Reservation conflicts with an existing reservation' INTO p_avail_capacity \r\n                            FROM SANITY_CHECK_RESERVATION_CONFLICT_FOUND\r\n                            WHERE SANITY_CHECK_RESERVATION_CONFLICT_FOUND.id = NEW.allocation_id;\r\n                        END IF;\r\n                    END";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_trigger_exists('trg_mv_resources_by_path_ins')) {
         $simple_sql = "CREATE TRIGGER " . $wpdb->prefix . "trg_mv_resources_by_path_ins\r\n                    -- this will update the materialized view\r\n                    -- whenever an insert is made on the underlying table\r\n                    AFTER INSERT ON " . $wpdb->prefix . "bookingresources FOR EACH ROW \r\n                    BEGIN\r\n                        INSERT INTO " . $wpdb->prefix . "mv_resources_by_path\r\n                        SELECT * FROM " . $wpdb->prefix . "v_resources_by_path\r\n                         WHERE resource_id = NEW.resource_id;\r\n                    END";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_trigger_exists('trg_mv_resources_by_path_upd')) {
         $simple_sql = "CREATE TRIGGER " . $wpdb->prefix . "trg_mv_resources_by_path_upd\r\n                    -- this will update the materialized view\r\n                    -- whenever an update is made on the underlying table\r\n                    AFTER UPDATE ON " . $wpdb->prefix . "bookingresources FOR EACH ROW \r\n                    BEGIN\r\n                        DELETE FROM " . $wpdb->prefix . "mv_resources_by_path\r\n                         WHERE resource_id = OLD.resource_id;\r\n\r\n                        INSERT INTO " . $wpdb->prefix . "mv_resources_by_path\r\n                        SELECT * FROM " . $wpdb->prefix . "v_resources_by_path\r\n                         WHERE resource_id = NEW.resource_id;\r\n                    END";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     if (!$this->is_trigger_exists('trg_mv_resources_by_path_del')) {
         $simple_sql = "CREATE TRIGGER " . $wpdb->prefix . "trg_mv_resources_by_path_del\r\n                    -- this will update the materialized view\r\n                    -- whenever a delete is made on the underlying table\r\n                    AFTER DELETE ON " . $wpdb->prefix . "bookingresources FOR EACH ROW \r\n                    BEGIN\r\n                        DELETE FROM " . $wpdb->prefix . "mv_resources_by_path\r\n                         WHERE resource_id = OLD.resource_id;\r\n                    END";
         $wpdb->query($wpdb->prepare($simple_sql));
     }
     // if( $this->wpdev_bk_personal !== false )  $this->wpdev_bk_personal->pro_activate();
     make_bk_action('wpdev_booking_activation');
     //$this->setDefaultInitialValues();
 }