PluginProbe
Booking Calendar / 11.6
Booking Calendar v11.6
11.8.3 11.8.2 11.8.1 11.8 11.7 11.6.1 11.6 11.5 11.4.3 11.4.2 11.4.1 11.4 11.3 11.2.1 11.2 11.1 11.0 10.15.7 10.15.6 10.1.3 10.10 10.10.1 10.10.2 10.11 10.11.2 All 203 releases
booking / core / wpbc-activation.php

wpbc-activation.php in Booking Calendar 11.6, at core/wpbc-activation.php

1,350 lines 76.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @version 1.0
4 * @package Booking Calendar
5 * @subpackage Activation / Deactivation
6 * @category Functions
7 * @author wpdevelop
8 *
9 * @web-site https://wpbookingcalendar.com/
10 * @email info@wpbookingcalendar.com
11 * @modified 2016-03-17
12 */
13
14 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
15
16
17 /** Activation & Deactivation of Booking Calendar */
18 class WPBC_BookingInstall extends WPBC_Install {
19
20 /**
21 * Overload Booking Calendar option names and some other parameters
22 *
23 * //FixIn: 7.0.1.12
24 * Important! for correct loading of trasnaltions later, we must do not use here loacale of plugin. So here will be untranslated strings!!!
25 *
26 */
27 public function get_init_option_names() {
28
29 add_bk_action( 'wpdev_booking_activate_user', array( $this, 'wpbc_activate') ); // Hook for MU User activation
30
31 $links = array(
32 'option-version_num' => 'booking_version_num'
33 , 'option-is_delete_if_deactive' => 'booking_is_delete_if_deactive'
34 , 'option-activation_process' => 'booking_activation_process'
35 , 'transient-wpbc_activation_redirect' => '_booking_activation_redirect'
36 , 'message-delete_data' => '<strong>' . 'Warning!' . '</strong> '
37 . 'All booking data will be deleted when the plugin is deactivated.'
38 . '<br />'
39 . sprintf( 'If you want to save your booking data, please uncheck the %s"Delete booking data"%s at the'
40 , '<strong>', '</strong>')
41 . '<a href="' . esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-settings' ), 'admin.php' ) ) )
42 . '&scroll_to_section=wpbc_general_settings_uninstall_tab"> ' . 'settings page' . '.'
43 . ' </a>'
44 , 'link_settings' => '<a class="wpbc_plugins_links__settings" href="' . esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-settings' ), 'admin.php' ) ) )
45 . '">'. "Settings" .'</a>'
46 , 'link_whats_new' => '<a title="'. "Check new functionality in this plugin update." .'" href="'
47 . esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about' ), 'index.php' ) ) )
48 .'">'. "What's New".'</a>'
49 , 'link_faq' => '<a title="FAQ" href="https://wpbookingcalendar.com/faq/">FAQ</a>'
50 , 'link_up' => '<a title="Check Pro functionality" href="https://wpbookingcalendar.com/features/#link_up" style="color: rgb(0, 163, 42);font-weight:700;">Get Pro</a>'
51 , 'link_upgrade' => '<a title="Upgrade to higher version" href="'
52 . esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-settings', 'tab' => 'upgrade' ), 'admin.php' ) ) )
53 . '" style="color: rgb(0, 163, 42);font-weight:700;">Get More</a>'
54 );
55
56 return $links;
57
58 }
59
60 /** Check if was updated from lower to high version */
61 public function is_update_from_lower_to_high_version() {
62
63 $is_make_activation = false;
64
65 // Check conditions for different version about Upgrade
66 if ( ( class_exists( 'wpdev_bk_personal' ) ) && ( ! wpbc_is_table_exists( 'bookingtypes' ) ) ) {
67 $is_make_activation = true;
68 }
69 if ( ( ! $is_make_activation ) && ( class_exists( 'wpdev_bk_biz_s' ) ) && ( wpbc_is_field_in_table_exists( 'booking', 'pay_request' ) == 0 ) ) {
70 $is_make_activation = true;
71 }
72 // FixIn: 9.9.0.13.
73 if ( ( ! $is_make_activation ) && ( class_exists( 'wpdev_bk_biz_m' ) ) && ( ! wpbc_is_table_exists( 'booking_seasons' ) ) ) {
74 $is_make_activation = true;
75 }
76 if ( ( ! $is_make_activation ) && ( class_exists( 'wpdev_bk_biz_m' ) ) && ( wpbc_is_field_in_table_exists( 'booking_seasons', 'season_color' ) == 0 ) ) {
77 $is_make_activation = true;
78 }
79 if ( ( ! $is_make_activation ) && ( class_exists( 'wpdev_bk_biz_l' ) ) && ( ! wpbc_is_table_exists( 'booking_coupons' ) ) ) {
80 $is_make_activation = true;
81 }
82 if ( ( ! $is_make_activation ) && ( class_exists( 'wpdev_bk_multiuser' ) ) && ( wpbc_is_field_in_table_exists( 'booking_coupons', 'users' ) == 0 ) ) {
83 $is_make_activation = true;
84 }
85
86 return $is_make_activation;
87 }
88
89 }
90
91
92
93
94 // <editor-fold defaultstate="collapsed" desc=" Support & Maintence " >
95
96 /** Reindex DataBase to have "date key field" for be able to sort by dates. */
97 function wpbc_reindex_booking_db(){ global $wpdb;
98 $is_show_messages = false;
99 // if ( ( wpbc_is_settings_page('QUERY_STRING') ) && ( strpos($_SERVER[ 'QUERY_STRING' ],'reindex_sort_data=1') !== false ) )
100 // $is_show_messages = true;
101
102
103 if ($is_show_messages) {
104 // Hide all settings
105 // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet
106 ?><style type="text/css" rel="stylesheet" >
107 #post_option .meta-box {
108 display:none;
109 }
110 #post_option .button-primary {
111 display:none;
112 }
113 #post_option .technical-booking-section {
114 display:block;
115 }
116 </style>
117 <?php
118 }
119
120 if (wpbc_is_field_in_table_exists('booking','sort_date') == 0) {
121 $simple_sql = "ALTER TABLE {$wpdb->prefix}booking ADD COLUMN sort_date datetime"; // FixIn: 10.12.1.5.
122 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
123 $wpdb->query( $simple_sql );
124 }
125
126 // Refill the sort date index.
127 if (wpbc_is_field_in_table_exists('booking','sort_date') != 0) {
128
129 $bookings_res = array();
130
131 // 1. Select all bookings ID, where sort_date is NULL in wp_booking.
132 $sql = " SELECT booking_id as id FROM {$wpdb->prefix}booking as bk WHERE sort_date IS NULL";
133
134 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter, WordPress.DB.PreparedSQL.InterpolatedNotPrepared
135 $bookings_res = $wpdb->get_results( $sql );
136
137 if ( $is_show_messages ) {
138 /* translators: 1: ... */
139 echo esc_html( sprintf( __( '%1$s Found %2$s not indexed bookings %3$s', 'booking' ), ' ', count( $bookings_res ), '<br/>' ) );
140 }
141
142
143 if ( count( $bookings_res ) > 0 ) {
144 $id_string = '';
145 foreach ($bookings_res as $value) { $id_string .= $value->id . ','; }
146 $id_string = substr($id_string,0,-1);
147
148 //2. Select all (FIRST ??) booking_date, where booking_id = booking_id from #1 in wp_bookingdates
149 $sql = " SELECT booking_id as id, booking_date as date" ;
150 $sql .= " FROM {$wpdb->prefix}bookingdates as bdt" ;
151 $sql .= " WHERE booking_id IN ( ". $id_string ." ) GROUP BY bdt.booking_id ORDER BY bdt.booking_date " ;
152
153 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
154 $sort_date_array = $wpdb->get_results( $sql );
155
156 if ( $is_show_messages ) {
157 /* translators: 1: ... */
158 echo esc_html( sprintf( __( '%1$s Finish getting sort dates. %2$s', 'booking' ), ' ', '<br/>' ) );
159 }
160
161 //3. Insert that firtst date into the bookings in wp_booking
162 $ii=0;
163 foreach ($sort_date_array as $value) { $ii++;
164 $sql = "UPDATE {$wpdb->prefix}booking ";
165 $sql .= " SET sort_date = '".$value->date. "' WHERE booking_id = ". $value->id . " ";
166 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
167 $wpdb->query( $sql );
168
169 if ( $is_show_messages ) {
170 /* translators: 1: ... */
171 echo esc_html( sprintf( __( 'Updated booking: %s', 'booking' ), $value->id . ' [' . $ii . ' / ' . count( $bookings_res ) . '] <br/>' ) );
172 }
173 }
174 }
175
176 }
177
178
179 }
180
181 // </editor-fold>
182
183
184
185 ////////////////////////////////////////////////////////////////////////////////
186 // A c t i v a t e & D e a c t i v a t e
187 ////////////////////////////////////////////////////////////////////////////////
188
189 /** Activation */
190 function wpbc_booking_activate() {
191
192 wpbc_load_translation();
193
194 $is_new_install = (
195 false === get_option( 'booking_version_num', false )
196 && ! wpbc_is_table_exists( 'booking' )
197 );
198
199 make_bk_action( 'wpbc_before_activation' );
200
201
202
203 $version = wpbc_get_plugin_version_type();
204 $is_demo = wpbc_is_this_demo();
205
206 // -----------------------------------------------------------------------------------------------------------------
207 // Options
208 // -----------------------------------------------------------------------------------------------------------------
209 $default_options_to_add = wpbc_get_default_options();
210 // Existing installations retain their saved value; add_bk_option() never overwrites it during upgrades.
211 if ( $is_new_install ) {
212 $default_options_to_add['booking_form_accent_enabled'] = 'On';
213 }
214 // TODO: for Import / Export options, we can use this function to get all option_names and then just get the real values from the wp_options table.
215 make_bk_action( 'wpbc_before_activation__add_options', $default_options_to_add ); // FixIn: 9.6.2.11.
216
217 foreach ( $default_options_to_add as $default_option_name => $default_option_value ) {
218 add_bk_option( $default_option_name, $default_option_value );
219 }
220
221
222 // -----------------------------------------------------------------------------------------------------------------
223 // DB Tables
224 // -----------------------------------------------------------------------------------------------------------------
225 if ( true ){
226
227 global $wpdb;
228
229 // ----------------------------------------------------------------------------
230 // Charset / Collation
231 // ----------------------------------------------------------------------------
232 $charset_collate = '';
233 if ( ! empty( $wpdb->charset ) ) {
234 $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
235 }
236 if ( ! empty( $wpdb->collate ) ) {
237 $charset_collate .= " COLLATE {$wpdb->collate}";
238 }
239
240 // ----------------------------------------------------------------------------
241 // Table name
242 // ----------------------------------------------------------------------------
243 $table_name = $wpdb->prefix . 'booking';
244
245 // ----------------------------------------------------------------------------
246 // Queries queue for upgrades only
247 // ----------------------------------------------------------------------------
248 $wp_queries = array();
249
250 // ----------------------------------------------------------------------------
251 // 1) First install: CREATE booking TABLE.
252 // ----------------------------------------------------------------------------
253 if ( ! wpbc_is_table_exists( 'booking' ) ) {
254
255 $create_sql = "CREATE TABLE {$table_name} (
256 booking_id bigint(20) unsigned NOT NULL auto_increment,
257 booking_type bigint(10) NOT NULL default 1,
258
259 form TEXT,
260 hash TEXT,
261 booking_options TEXT,
262 status varchar(200) NOT NULL default '',
263
264 is_new bigint(10) NOT NULL default 1,
265 sync_gid varchar(200) NOT NULL default '',
266 trash bigint(10) NOT NULL default 0,
267 is_trash datetime,
268
269 sort_date datetime,
270 modification_date datetime,
271 creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
272
273 PRIMARY KEY (booking_id)
274 ) {$charset_collate};";
275
276 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
277 $wpdb->query( $create_sql );
278
279 // ----------------------------------------------------------------------------
280 // 2) Upgrade path: only add missing columns (your current logic)
281 // ----------------------------------------------------------------------------
282 } else {
283
284 if ( wpbc_is_field_in_table_exists( 'booking', 'form' ) == 0 ) {
285 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN form TEXT";
286 }
287
288 if ( wpbc_is_field_in_table_exists( 'booking', 'modification_date' ) == 0 ) {
289 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN modification_date datetime";
290 }
291
292 // FixIn: 9.2.3.3.
293 if ( wpbc_is_field_in_table_exists( 'booking', 'creation_date' ) == 0 ) {
294 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP";
295 }
296
297 if ( wpbc_is_field_in_table_exists( 'booking', 'sort_date' ) == 0 ) {
298 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN sort_date datetime";
299 }
300
301 if ( wpbc_is_field_in_table_exists( 'booking', 'status' ) == 0 ) {
302 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN status varchar(200) NOT NULL default ''";
303 }
304
305 if ( wpbc_is_field_in_table_exists( 'booking', 'is_new' ) == 0 ) {
306 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN is_new bigint(10) NOT NULL default 1";
307 }
308
309 // Version: 5.2 - Google ID for Sync
310 if ( wpbc_is_field_in_table_exists( 'booking', 'sync_gid' ) == 0 ) {
311 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN sync_gid varchar(200) NOT NULL default ''";
312 }
313
314 // FixIn: 9.2.3.5.
315 if ( wpbc_is_field_in_table_exists( 'booking', 'is_trash' ) == 0 ) {
316 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN is_trash datetime";
317 }
318
319 // FixIn: 6.1.1.10.
320 if ( wpbc_is_field_in_table_exists( 'booking', 'trash' ) == 0 ) {
321 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN trash bigint(10) NOT NULL default 0";
322 }
323
324 // FixIn: 9.1.2.12.
325 if ( wpbc_is_field_in_table_exists( 'booking', 'booking_options' ) == 0 ) {
326 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN booking_options TEXT";
327 }
328
329 if ( wpbc_is_field_in_table_exists( 'booking', 'hash' ) == 0 ) {
330 $wp_queries[] = "ALTER TABLE {$table_name} ADD COLUMN hash TEXT";
331
332 // Update hash value only in last 100 bookings.
333 $sql_check_table = "SELECT booking_id as id FROM {$wpdb->prefix}booking ORDER BY booking_id DESC LIMIT 0, 100";
334
335 $res = $wpdb->get_results( $sql_check_table ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
336 foreach ( $res as $l ) {
337 $wp_queries[] = "UPDATE {$wpdb->prefix}booking SET hash = MD5('" . time() . '_' . wp_rand( 1000, 1000000 ) . "') WHERE booking_id = " . $l->id; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
338 }
339 }
340 }
341
342 // ----------------------------------------------------------------------------
343 // Execute queued upgrade queries (only runs on upgrades, not new install)
344 // ----------------------------------------------------------------------------
345 if ( ! empty( $wp_queries ) ) {
346 foreach ( $wp_queries as $sql ) {
347 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
348 $wpdb->query( $sql );
349 }
350 }
351
352
353 $is_insert_test_bookings = false;
354
355 // ----------------------------------------------------------------------------
356 // 2. Install: CREATE bookingdate TABLE.
357 // ----------------------------------------------------------------------------
358
359 if ( ! wpbc_is_table_exists( 'bookingdates' ) ) {
360 // Check if tables not exist yet.
361 $simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (
362 booking_dates_id bigint(20) unsigned NOT NULL auto_increment,
363 booking_id bigint(20) unsigned NOT NULL,
364 booking_date datetime NOT NULL default '0000-00-00 00:00:00',
365 approved bigint(20) unsigned NOT NULL default 0,
366 PRIMARY KEY (booking_dates_id)
367 ) {$charset_collate}";
368
369 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
370 $wpdb->query( $simple_sql );
371
372 if ( ! class_exists( 'wpdev_bk_personal' ) ) {
373 $is_insert_test_bookings = true;
374 }
375 }
376
377 if ( 0 === wpbc_is_index_in_table_exists( 'bookingdates', 'booking_id_dates' ) ) {
378 // If we remove this index, so then its can significant impact to the speed of page loading at the Booking Listing and Timelines.
379 // Index for SPEED opening Booking Listing and Timeline with thousands of Bookings, otherwise, without this index, speed will be TOO SLOW...
380 $simple_sql = "CREATE UNIQUE INDEX booking_id_dates ON {$wpdb->prefix}bookingdates ( booking_id, booking_date);";
381 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
382 $wpdb->query( $simple_sql );
383 }
384
385 // ----------------------------------------------------------------------------
386 // 3. Insert test bookings.
387 // ----------------------------------------------------------------------------
388
389 if ( $is_insert_test_bookings ) {
390 // -- Test Booking #1 --
391 $is_appr = 1;
392 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}booking ( form, modification_date ) VALUES (
393 'text^name1^John~text^secondname1^Smith~text^email1^example-free@wpbookingcalendar.com~text^phone1^458-77-77~textarea^details1^This is a test booking showing booking for several days.', " . wpbc_sql_date_math_expr_explicit('', 'now') . " );";
394 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
395
396 $temp_id = $wpdb->insert_id;
397 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}bookingdates ( booking_id, booking_date, approved ) VALUES
398 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 2 DAY", 'curdate' ) . " ," . $is_appr . " ),
399 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 3 DAY", 'curdate' ) . " ," . $is_appr . " ),
400 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 4 DAY", 'curdate' ) . " ," . $is_appr . " );";
401 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
402
403 // -- Test Booking #2 --
404 $is_appr = 0;
405 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}booking ( form, modification_date ) VALUES (
406 'text^name1^Emma~text^secondname1^Robinson~text^email1^example-free@wpbookingcalendar.com~text^phone1^999-77-77~textarea^details1^This is a test booking showing booking for several days.', " . wpbc_sql_date_math_expr_explicit('', 'now') . " );";
407 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
408
409 $temp_id = $wpdb->insert_id;
410 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}bookingdates ( booking_id, booking_date, approved ) VALUES
411 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 28 DAY", 'curdate' ) . " ," . $is_appr . " ),
412 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 29 DAY", 'curdate' ) . " ," . $is_appr . " ),
413 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL 30 DAY", 'curdate' ) . " ," . $is_appr . " );";
414 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
415
416
417 // -- Test Booking #3 --
418 $is_appr = 1;
419 $start_time = '10:00';
420 $end_time = '10:30';
421 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}booking ( form, modification_date, is_new ) VALUES (
422 'selectbox^rangetime1^".$start_time." - ".$end_time."~text^name1^Sophia~text^secondname1^Robinson~text^email1^example-free@wpbookingcalendar.com~text^phone1^458-77-77~textarea^details1^This is a test booking showing a one day time slot booking.', " . wpbc_sql_date_math_expr_explicit('', 'now') . ", 0 );";
423 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
424
425 $temp_id = $wpdb->insert_id;
426
427 $start_time_arr = explode( ':', $start_time );
428 $end_time_arr = explode( ':', $end_time );
429 $wp_queries_sub = "INSERT INTO {$wpdb->prefix}bookingdates ( booking_id, booking_date, approved ) VALUES
430 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL '" . ( ( 8 * 24 ) + intval( $start_time_arr[0] ) ) . ':' . $start_time_arr[1] . ":01' HOUR_SECOND", 'curdate' ) . " ," . $is_appr . " ),
431 ( " . $temp_id . ", " . wpbc_sql_date_math_expr_explicit( "+ INTERVAL '" . ( ( 8 * 24 ) + intval( $end_time_arr[0] ) ) . ':' . $end_time_arr[1] . ":02' HOUR_SECOND", 'curdate' ) . " ," . $is_appr . " );";
432 $wpdb->query( $wp_queries_sub ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
433 }
434 }
435
436 make_bk_action( 'wpbc_free_version_activation' );
437
438 do_action( 'wpbc_free_version_activation' );
439
440 // -----------------------------------------------------------------------------------------------------------------
441 // Other versions Activation
442 // -----------------------------------------------------------------------------------------------------------------
443 make_bk_action( 'wpbc_other_versions_activation' );
444
445 do_action( 'wpbc_pro_versions_activation' );
446
447 wpbc_reindex_booking_db();
448
449 make_bk_action( 'wpbc_after_activation' );
450
451 do_action( 'wpbc_after_activation' );
452 }
453 add_bk_action( 'wpbc_activation', 'wpbc_booking_activate' );
454
455
456 /**
457 * Determine whether the commercial registration data must survive full data removal.
458 *
459 * Demo sites need to retain the validated commercial registration payload so that
460 * resetting demo booking data does not expose the order-number registration form.
461 * Requiring both the established demo check and the official domain prevents this
462 * exception from changing cleanup behavior on customer, local, or beta websites.
463 *
464 * @return bool True when registration data must be preserved; otherwise false.
465 */
466 function wpbc_deactivation__should_preserve_registration_data() {
467
468 if ( ! function_exists( 'wpbc_is_this_demo' ) || ! wpbc_is_this_demo() ) {
469 return false;
470 }
471
472 $site_host = wp_parse_url( home_url( '/' ), PHP_URL_HOST );
473
474 if ( ! is_string( $site_host ) || '' === $site_host ) {
475 return false;
476 }
477
478 $site_host = strtolower( rtrim( $site_host, '.' ) );
479 $official_demo_host = 'wpbookingcalendar.com';
480 $official_demo_suffix = '.' . $official_demo_host;
481
482 if ( $official_demo_host === $site_host ) {
483 return true;
484 }
485
486 return strlen( $site_host ) > strlen( $official_demo_suffix )
487 && $official_demo_suffix === substr( $site_host, -strlen( $official_demo_suffix ) );
488 }
489
490
491 /**
492 * Delete every site option and transient owned by Booking Calendar.
493 *
494 * The historical deactivation path deletes options returned by
495 * wpbc_get_default_options(). Runtime modules also create version markers,
496 * setup state, caches, and transients outside that registry. This final pass
497 * runs after all module callbacks so those callbacks can still read their
498 * settings while removing tables and other data.
499 *
500 * @return void
501 */
502 function wpbc_deactivation__delete_all_plugin_options() {
503
504 global $wpdb;
505
506 $option_name_patterns = array(
507 $wpdb->esc_like( 'booking_' ) . '%',
508 $wpdb->esc_like( 'wpbc_' ) . '%',
509 $wpdb->esc_like( '_transient_' ) . '%' . $wpdb->esc_like( 'booking_' ) . '%',
510 $wpdb->esc_like( '_transient_' ) . '%' . $wpdb->esc_like( 'wpbc_' ) . '%',
511 $wpdb->esc_like( '_site_transient_' ) . '%' . $wpdb->esc_like( 'booking_' ) . '%',
512 $wpdb->esc_like( '_site_transient_' ) . '%' . $wpdb->esc_like( 'wpbc_' ) . '%',
513 );
514
515 $sql = $wpdb->prepare(
516 "SELECT option_name
517 FROM {$wpdb->options}
518 WHERE option_name LIKE %s
519 OR option_name LIKE %s
520 OR option_name LIKE %s
521 OR option_name LIKE %s
522 OR option_name LIKE %s
523 OR option_name LIKE %s",
524 $option_name_patterns
525 );
526
527 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared
528 $option_names = $wpdb->get_col( $sql );
529 $option_names = is_array( $option_names ) ? array_unique( $option_names ) : array();
530
531 if ( ! wpbc_deactivation__should_preserve_registration_data() ) {
532 $option_names[] = 'bk_version_data';
533 }
534
535 foreach ( $option_names as $option_name ) {
536 delete_option( $option_name );
537 }
538 }
539
540
541
542 // Deactivate.
543 function wpbc_booking_deactivate() {
544
545 // -----------------------------------------------------------------------------------------------------------------
546 // Options
547 // -----------------------------------------------------------------------------------------------------------------
548 $default_options_to_add = wpbc_get_default_options();
549 foreach ( $default_options_to_add as $default_option_name => $default_option_value) {
550
551 delete_bk_option( $default_option_name );
552 }
553
554
555 // -----------------------------------------------------------------------------------------------------------------
556 // Widgets
557 // -----------------------------------------------------------------------------------------------------------------
558 delete_bk_option( 'widget_bookingwidget' );
559 delete_bk_option( 'widget_bookingsearchwidget' );
560 delete_bk_option( 'widget_bookingselectwidget' );
561 delete_bk_option( 'booking_activation_redirect_for_version' );
562
563 // -----------------------------------------------------------------------------------------------------------------
564 // DB Tables
565 // -----------------------------------------------------------------------------------------------------------------
566 global $wpdb;
567 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter, WordPress.DB.DirectDatabaseQuery.SchemaChange
568 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}booking" );
569 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter, WordPress.DB.DirectDatabaseQuery.SchemaChange
570 $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}bookingdates" );
571
572 // Delete all Booking Calendar user options, listing state, and dismissed notices.
573 $booking_meta_pattern = '%' . $wpdb->esc_like( 'booking_' ) . '%';
574 $wpbc_meta_pattern = '%' . $wpdb->esc_like( 'wpbc_' ) . '%';
575 $user_meta_delete_sql = $wpdb->prepare(
576 "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE %s OR meta_key LIKE %s",
577 $booking_meta_pattern,
578 $wpbc_meta_pattern
579 );
580 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
581 if ( false === $wpdb->query( $user_meta_delete_sql ) ) {
582 debuge_error('Error during deleting user meta at DB',__FILE__,__LINE__);
583 die();
584 }
585
586 // Delete or Drafts and Pending from demo sites
587 if ( wpbc_is_this_demo() ) { // Delete all temp posts at the demo sites: (post_status = pending || draft) && ( post_type = post ) && (post_author != 1)
588 // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter,
589 $postss = $wpdb->get_results( "SELECT * FROM {$wpdb->posts} WHERE ( post_status = 'pending' OR post_status = 'draft' OR post_status = 'auto-draft' OR post_status = 'trash' OR post_status = 'inherit' ) AND ( post_type='post' OR post_type='revision') AND post_author != 1" );
590 foreach ( $postss as $pp ) {
591 wp_delete_post( $pp->ID, true );
592 }
593 }
594 make_bk_action( 'wpbc_free_version_deactivation' );
595 ////////////////////////////////////////////////////////////////////////////
596 // Other versions Deactivation
597 ////////////////////////////////////////////////////////////////////////////
598 make_bk_action( 'wpbc_other_versions_deactivation' );
599
600 wpbc_deactivation__delete_all_plugin_options();
601 }
602 add_bk_action( 'wpbc_deactivation', 'wpbc_booking_deactivate' );
603
604
605 /**
606 * Default Options
607 *
608 * Exmaple of getting options for deleting in MU:
609 *
610 * $option_name = '';
611 * $is_get_multiuser_general_options = true;
612 * $options_for_delete = wpbc_get_default_options( $option_name, $is_get_multiuser_general_options );
613 */
614 function wpbc_get_default_options( $option_name = '', $is_get_multiuser_general_options = false ) {
615
616 $is_demo = wpbc_is_this_demo();
617 $is_free_version = ! class_exists( 'wpdev_bk_personal' );
618 $blg_title = str_replace( array( '"', "'" ), '', get_option( 'blogname' ) );
619
620 $default_options = array();
621
622 // If this option here, then system get this option from "Super Admin" options configuration for "Regular" users.
623 $mu_option4delete = array();
624
625 // FixIn: 9.6.3.5.
626 $default_options['booking_setup_wizard_page_steps_is_done'] = '';
627 $mu_option4delete[]='booking_setup_wizard_page_steps_is_done';
628
629 $default_options['booking_admin_cal_count'] = ($is_demo) ? '3' : '2';
630 $mu_option4delete[]='booking_admin_cal_count'; // $multiuser_general_option[] = implode( '', array_keys( array_slice( $default_options, -1 ) ) );
631 $default_options['booking_skin'] = '/css/skins/25_5__square_1.css'; // FixIn: 10.11.4.2.
632 $mu_option4delete[]='booking_skin';
633 // FixIn: 9.6.3.5.
634 $default_options['booking_listing_default_view_mode'] = 'vm_booking_listing'; // 'vm_calendar'; // FixIn: 9.6.3.5.
635 $mu_option4delete[]='booking_listing_default_view_mode';
636
637 $default_options['booking_view_days_num'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '90' : '30' );
638 $mu_option4delete[]='booking_view_days_num';
639 // FixIn: 8.9.4.3.
640 $default_options['booking_calendar_overview__day_mode__days_number_show'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '7' : '7' );
641 $mu_option4delete[]='booking_calendar_overview__day_mode__days_number_show';
642 $default_options['booking_timeline__month_mode__days_number_show'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '7' : '7' );
643 $mu_option4delete[]='booking_timeline__month_mode__days_number_show';
644 // FixIn: 8.6.1.13.
645 $default_options['booking_max_monthes_in_calendar'] = '2y';
646 $mu_option4delete[]='booking_max_monthes_in_calendar';
647 $default_options['booking_client_cal_count'] = '1';
648 $mu_option4delete[]='booking_client_cal_count';
649 $default_options['booking_start_day_weeek'] = '0';
650 $mu_option4delete[]='booking_start_day_weeek';
651 $default_options['booking_title_after_reservation'] = ( ! class_exists( 'wpdev_bk_biz_s' ) )
652 ? __( 'Your booking is received. We will confirm it soon. Many thanks!', 'booking' )
653 : __( 'Your booking is received. Please proceed with payment to confirm it. Many thanks!', 'booking' );
654 $mu_option4delete[]='booking_title_after_reservation';
655 // $default_options['booking_title_after_reservation_time'] = '7000';
656 //$mu_option4delete[]='booking_title_after_reservation_time';
657 $default_options['booking_type_of_thank_you_message'] = 'message';
658 $mu_option4delete[]='booking_type_of_thank_you_message';
659 $default_options['booking_thank_you_page_URL'] = '/thank-you';
660 $mu_option4delete[]='booking_thank_you_page_URL';
661 $default_options['booking_is_use_autofill_4_logged_user'] = ($is_demo) ? 'On' : 'Off';
662 $mu_option4delete[]='booking_is_use_autofill_4_logged_user';
663
664 // FixIn: 10.13.1.5.
665 $default_options['booking_is_use_phone_validation'] = 'Off';
666 $mu_option4delete[]='booking_is_use_phone_validation';
667 $default_options['booking_date_format'] = get_option( 'date_format' );
668 $mu_option4delete[]='booking_date_format';
669 $default_options['booking_time_format'] = get_option( 'time_format' ); //'H:i';
670 $mu_option4delete[]='booking_time_format';
671
672 //FixIn:10.2.0.1 ------------------------------------------------------------------------------------------------
673 // Confirmation section:
674 $default_options['booking_confirmation_header_enabled'] = 'On';
675 /* translators: 1: ... */
676 $default_options['booking_confirmation_header'] = sprintf( __( 'Your booking id: %s', 'booking' ), '<strong>[booking_id]</strong>' );
677 $mu_option4delete[] = 'booking_confirmation_header_enabled';
678 $mu_option4delete[] = 'booking_confirmation_header';
679
680 $default_options['booking_confirmation__personal_info__header_enabled'] = 'On';
681 $default_options['booking_confirmation__personal_info__title'] = __( 'Personal information', 'booking' );
682 $default_options['booking_confirmation__personal_info__content'] = '[content]';
683 $mu_option4delete[] = 'booking_confirmation__personal_info__header_enabled';
684 $mu_option4delete[] = 'booking_confirmation__personal_info__title';
685 $mu_option4delete[] = 'booking_confirmation__personal_info__content';
686
687 $default_options['booking_confirmation__booking_details__header_enabled'] = 'On';
688 $default_options['booking_confirmation__booking_details__title'] = __( 'Booking details', 'booking' );
689 $default_options['booking_confirmation__booking_details__content'] = ( class_exists( 'wpdev_bk_personal' ) )
690 ? "<h4>[resource_title]</h4>[readable_dates][readable_times]\n[add_to_google_cal_button]\n" . '<a href="[visitorbookingediturl]">Edit Booking</a> | <a href="[visitorbookingcancelurl]">Cancel Booking</a>'
691 : "[readable_dates][readable_times]\n[add_to_google_cal_button]";
692
693 $mu_option4delete[] = 'booking_confirmation__booking_details__header_enabled';
694 $mu_option4delete[] = 'booking_confirmation__booking_details__title';
695 $mu_option4delete[] = 'booking_confirmation__booking_details__content';
696 //FixIn:10.2.0.1 End --------------------------------------------------------------------------------------------
697
698 $default_options['booking_date_view_type'] = 'short';
699 $mu_option4delete[]='booking_date_view_type';
700 $default_options['booking_is_delete_if_deactive'] = ($is_demo) ? 'On' : 'Off';
701 $mu_option4delete[]='booking_is_delete_if_deactive';
702 $default_options['booking_dif_colors_approval_pending'] = 'On'; // Depricated
703 $default_options['booking_is_use_hints_at_admin_panel'] = 'On';
704 $mu_option4delete[]='booking_is_use_hints_at_admin_panel';
705 $default_options['booking_is_load_js_css_on_specific_pages'] = 'Off';
706 $mu_option4delete[]='booking_is_nonce_at_front_end'; // FixIn: 10.1.1.2.
707 $default_options['booking_is_nonce_at_front_end'] = 'Off';
708 // FixIn: 9.8.6.2.
709 $mu_option4delete[]='booking_load_balancer_max_threads';
710 $default_options['booking_load_balancer_max_threads'] = ( $is_demo ) ? '1' : '3';
711
712
713 //FixIn: 7.2.1.15
714 $mu_option4delete[]='booking_is_show_system_debug_log';
715 $default_options['booking_is_show_system_debug_log'] = 'Off';
716
717
718 $mu_option4delete[]='booking_is_load_js_css_on_specific_pages';
719 $default_options['booking_pages_for_load_js_css'] = '';
720 $mu_option4delete[]='booking_pages_for_load_js_css';
721 $default_options['booking_type_of_day_selections'] = $is_free_version
722 ? 'range'
723 : ( ( get_bk_option( 'booking_range_selection_is_active' ) == 'On' ) && ( ! $is_demo ) ? 'range' : 'multiple' );
724 $mu_option4delete[]='booking_type_of_day_selections';
725
726 // FixIn: 8.7.11.10.
727 $default_options['booking_timeslot_picker'] = 'On';
728 $mu_option4delete[]= 'booking_timeslot_picker';
729 $default_options['booking_timeslot_picker_skin'] = '/css/time_picker_skins/form_style.css';
730 $mu_option4delete[]= 'booking_timeslot_picker_skin';
731
732 $default_options['booking_disable_timeslots_in_tooltip'] = 'Off'; //FixIn: 9.5.0.2.2
733 $mu_option4delete[]='booking_disable_timeslots_in_tooltip';
734
735 $default_options['booking_highlight_timeslot_word'] = __( 'Booked Times:', 'booking' ); // FixIn: 9.4.3.1.
736 $mu_option4delete[]='booking_highlight_timeslot_word';
737
738 $default_options['booking_form_is_using_bs_css'] = 'Off';
739 $mu_option4delete[]='booking_form_is_using_bs_css';
740 $default_options['booking_form_format_type'] = 'vertical';
741 $mu_option4delete[]='booking_form_format_type';
742
743 // Does not exist in MU
744 $default_options['booking_form_field_active1'] = 'On';
745 $default_options['booking_form_field_required1'] = 'On';
746 $default_options['booking_form_field_label1'] = 'First Name';
747 $default_options['booking_form_field_active2'] = 'On';
748 $default_options['booking_form_field_required2'] = 'On';
749 $default_options['booking_form_field_label2'] = 'Last Name';
750 $default_options['booking_form_field_active3'] = 'On';
751 $default_options['booking_form_field_required3'] = 'On';
752 $default_options['booking_form_field_label3'] = 'Email';
753 $default_options['booking_form_field_active4'] = 'On';
754 $default_options['booking_form_field_required4'] = 'Off';
755 $default_options['booking_form_field_label4'] = 'Phone';
756 $default_options['booking_form_field_active5'] = 'On';
757 $default_options['booking_form_field_required5'] = 'Off';
758 $default_options['booking_form_field_label5'] = 'Details';
759 $default_options['booking_form_field_active6'] = 'Off';
760 $default_options['booking_form_field_required6'] = 'Off';
761 $default_options['booking_form_field_label6'] = 'Visitors';
762 $default_options['booking_form_field_values6'] = "1\n2\n3\n4";
763
764
765 $default_options['booking_is_days_always_available'] = 'Off';
766 $mu_option4delete[]='booking_is_days_always_available';
767
768 // FixIn: 8.3.2.2.
769 $default_options['booking_is_show_pending_days_as_available'] = 'Off';
770 $mu_option4delete[]='booking_is_show_pending_days_as_available';
771
772 $default_options['booking_unavailable_days_num_from_today'] = '0';
773 $mu_option4delete[]='booking_unavailable_days_num_from_today';
774 $default_options['booking_unavailable_day0'] = 'Off';
775 $mu_option4delete[]='booking_unavailable_day0';
776 $default_options['booking_unavailable_day1'] = 'Off';
777 $mu_option4delete[]='booking_unavailable_day1';
778 $default_options['booking_unavailable_day2'] = 'Off';
779 $mu_option4delete[]='booking_unavailable_day2';
780 $default_options['booking_unavailable_day3'] = 'Off';
781 $mu_option4delete[]='booking_unavailable_day3';
782 $default_options['booking_unavailable_day4'] = 'Off';
783 $mu_option4delete[]='booking_unavailable_day4';
784 $default_options['booking_unavailable_day5'] = 'Off';
785 $mu_option4delete[]='booking_unavailable_day5';
786 $default_options['booking_unavailable_day6'] = 'Off';
787 $mu_option4delete[]='booking_unavailable_day6';
788
789 // Working Time defaults. Keep disabled by default on fresh activation/reinstall.
790 $default_options['booking_working_time_enabled'] = 'Off';
791 $mu_option4delete[]='booking_working_time_enabled';
792 $default_options['booking_working_time_rules'] = function_exists( 'wpbc_working_time__get_default_settings' ) ? wpbc_working_time__get_default_settings() : array(
793 'enabled' => 'Off',
794 'default' => array(
795 'weekdays' => array(),
796 ),
797 'resources' => array(),
798 );
799 $mu_option4delete[]='booking_working_time_rules';
800
801 $default_options['booking_menu_position'] = ( $is_demo ) ? 'top' : 'top';
802 $mu_option4delete[]='booking_menu_position';
803 $default_options['booking_translation_load_from'] = 'wp.org';
804 $mu_option4delete[]='booking_translation_load_from';
805
806 // FixIn: 10.14.12.1.
807 $default_options['booking_user_role_booking'] = 'editor';
808 $mu_option4delete[]='booking_user_role_booking';
809 $default_options['booking_user_role_availability'] = 'editor';
810 $mu_option4delete[]='booking_user_role_availability';
811 $default_options['booking_user_role_addbooking'] = 'editor';
812 $mu_option4delete[]='booking_user_role_addbooking';
813 $default_options['booking_user_role_resources'] = 'editor';
814 $mu_option4delete[]='booking_user_role_resources';
815 $default_options['booking_user_role_settings'] = 'editor';
816 $mu_option4delete[]='booking_user_role_settings';
817 //FixIn: 9.8.15.2.6
818 if ( class_exists( 'wpdev_bk_biz_m' ) ) {
819 $default_options['booking_user_role_prices'] = 'editor';
820 $mu_option4delete[]='booking_user_role_prices';
821 }
822
823 // New admin ///////////////////////////////////////////////////////////////
824
825 $default_options['booking_is_email_reservation_adress'] = 'On';
826 $default_options['booking_email_reservation_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
827 $default_options['booking_email_reservation_from_adress'] = '[visitoremail]';
828 $default_options['booking_email_reservation_subject'] = __( 'New booking', 'booking' );
829 /* translators: 1: ... */
830 $default_options['booking_email_reservation_content'] = htmlspecialchars( sprintf( __( 'You need to approve a new booking %1$s for: %2$s Person detail information:%3$s Currently a new booking is waiting for approval. Please visit the moderation panel%4$sThank you, %5$s', 'booking' ), '[bookingtype]', '[dates]<br/><br/>', '<br/> [content]<br/><br/>', ' [moderatelink]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
831
832 // New Visitor /////////////////////////////////////////////////////////////
833
834 $default_options['booking_is_email_newbookingbyperson_adress'] = 'Off';
835 $default_options['booking_email_newbookingbyperson_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
836 $default_options['booking_email_newbookingbyperson_subject'] = __( 'New booking', 'booking' );
837 if ( class_exists( 'wpdev_bk_personal' ) )
838 /* translators: 1: ... */
839 $default_options['booking_email_newbookingbyperson_content'] = htmlspecialchars( sprintf( __( 'Your reservation %1$s for: %2$s is processing now! We will send confirmation by email. %3$sYou can edit this booking at this page: %4$s Thank you, %5$s', 'booking' ), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
840 else
841 /* translators: 1: ... */
842 $default_options['booking_email_newbookingbyperson_content'] = htmlspecialchars( sprintf( __( 'Your reservation %1$s for: %2$s is processing now! We will send confirmation by email. %3$s Thank you, %4$s', 'booking' ), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
843
844 // Approval ////////////////////////////////////////////////////////////////
845
846 $default_options['booking_is_email_approval_adress'] = 'On';
847 $default_options['booking_is_email_approval_send_copy_to_admin'] = 'Off';
848 $default_options['booking_email_approval_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
849 $default_options['booking_email_approval_subject'] = __( 'Your booking has been approved', 'booking' );
850 if ( class_exists( 'wpdev_bk_personal' ) ) {
851 /* translators: 1: ... */
852 $default_options['booking_email_approval_content'] = htmlspecialchars( sprintf( __( 'Your reservation %1$s for: %2$s has been approved.%3$sYou can edit the booking on this page: %4$s Thank you, %5$s', 'booking' ), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
853 } else {
854 /* translators: 1: ... */
855 $default_options['booking_email_approval_content'] = htmlspecialchars( sprintf( __( 'Your booking %1$s for: %2$s has been approved.%3$sThank you, %4$s', 'booking' ), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
856 }
857
858 // Decline /////////////////////////////////////////////////////////////////
859
860 $default_options['booking_is_email_deny_adress'] = 'On';
861 $default_options['booking_is_email_deny_send_copy_to_admin'] = 'Off';
862 $default_options['booking_email_deny_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
863 $default_options['booking_email_deny_subject'] = __( 'Your booking has been declined', 'booking' );
864 /* translators: 1: ... */
865 $default_options['booking_email_deny_content'] = htmlspecialchars( sprintf( __( 'Your booking %1$s for: %2$s has been canceled. %3$sThank you, %4$s', 'booking' ), '[bookingtype]', '[dates]', '<br/>[denyreason]<br/><br/>[content]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
866
867 // -----------------------------------------------------------------------------------------------------------------
868 $default_options['booking_widget_title'] = __( 'Booking form', 'booking' );
869 $default_options['booking_widget_show'] = 'booking_form';
870 $default_options['booking_widget_type'] = '1';
871 $default_options['booking_widget_calendar_count'] = '1';
872 $default_options['booking_widget_last_field'] = '';
873
874 $default_options['booking_wpdev_copyright_adminpanel'] = 'On';
875 $mu_option4delete[]='booking_wpdev_copyright_adminpanel';
876 $default_options['booking_is_show_powered_by_notice'] = ( WPBC_IS_PLAYGROUND ) ? 'Off' : 'On';
877 $mu_option4delete[]='booking_is_show_powered_by_notice';
878 $default_options['booking_form_theme'] = '';
879 $mu_option4delete[]='booking_form_theme';
880 $default_options['booking_form_style'] = 'light_bordered';
881 $mu_option4delete[]='booking_form_style';
882 $default_options['booking_form_accent_enabled'] = 'Off';
883 $mu_option4delete[]='booking_form_accent_enabled';
884 $default_options['booking_form_accent_color'] = WPBC_DEFAULT_FORM_ACCENT_COLOR;
885 $mu_option4delete[]='booking_form_accent_color';
886 $default_options['booking_form_appearance_preset'] = 'bordered';
887 $mu_option4delete[]='booking_form_appearance_preset';
888 $default_options['booking_form_appearance_background_color'] = '#ffffff';
889 $mu_option4delete[]='booking_form_appearance_background_color';
890 $default_options['booking_form_appearance_border_color'] = '#cccccc';
891 $mu_option4delete[]='booking_form_appearance_border_color';
892 $default_options['booking_form_appearance_border_width'] = '1px';
893 $mu_option4delete[]='booking_form_appearance_border_width';
894 $default_options['booking_form_appearance_border_radius'] = '2px';
895 $mu_option4delete[]='booking_form_appearance_border_radius';
896 $default_options['booking_form_appearance_padding'] = '10px 30px';
897 $mu_option4delete[]='booking_form_appearance_padding';
898 $default_options['booking_form_custom_background_color'] = '#ffffff';
899 $mu_option4delete[]='booking_form_custom_background_color';
900 $default_options['booking_form_custom_border_color'] = '#cccccc';
901 $mu_option4delete[]='booking_form_custom_border_color';
902 $default_options['booking_form_custom_border_width'] = '1px';
903 $mu_option4delete[]='booking_form_custom_border_width';
904 $default_options['booking_form_custom_border_radius'] = '2px';
905 $mu_option4delete[]='booking_form_custom_border_radius';
906 $default_options['booking_form_custom_padding_vertical'] = '10px';
907 $mu_option4delete[]='booking_form_custom_padding_vertical';
908 $default_options['booking_form_custom_padding_horizontal'] = '30px';
909 $mu_option4delete[]='booking_form_custom_padding_horizontal';
910 $default_options['booking_form_custom_text_color'] = '#1d2327';
911 $mu_option4delete[]='booking_form_custom_text_color';
912 $default_options['booking_form_custom_field_background_color'] = '#ffffff';
913 $mu_option4delete[]='booking_form_custom_field_background_color';
914 $default_options['booking_form_custom_field_text_color'] = '#3c434a';
915 $mu_option4delete[]='booking_form_custom_field_text_color';
916 $default_options['booking_form_custom_field_border_color'] = '#cccccc';
917 $mu_option4delete[]='booking_form_custom_field_border_color';
918 $default_options['booking_form_custom_button_background_color'] = '#066aab';
919 $mu_option4delete[]='booking_form_custom_button_background_color';
920 $default_options['booking_form_custom_button_text_color'] = '#ffffff';
921 $mu_option4delete[]='booking_form_custom_button_text_color';
922 $default_options['booking_form_custom_button_border_color'] = '#066aab';
923 $mu_option4delete[]='booking_form_custom_button_border_color';
924 $default_options['booking_form_custom_button_hover_background_color'] = '#055589';
925 $mu_option4delete[]='booking_form_custom_button_hover_background_color';
926 $default_options['booking_form_custom_button_hover_text_color'] = '#ffffff';
927 $mu_option4delete[]='booking_form_custom_button_hover_text_color';
928 $default_options['booking_form_custom_button_hover_border_color'] = '#055589';
929 $mu_option4delete[]='booking_form_custom_button_hover_border_color';
930 $default_options['booking_form_custom_secondary_button_background_color'] = '#fdfdfd';
931 $mu_option4delete[]='booking_form_custom_secondary_button_background_color';
932 $default_options['booking_form_custom_secondary_button_text_color'] = '#444444';
933 $mu_option4delete[]='booking_form_custom_secondary_button_text_color';
934 $default_options['booking_form_custom_secondary_button_border_color'] = '#eeeeee';
935 $mu_option4delete[]='booking_form_custom_secondary_button_border_color';
936 $default_options['booking_form_custom_secondary_button_hover_background_color'] = '#fdfdfd';
937 $mu_option4delete[]='booking_form_custom_secondary_button_hover_background_color';
938 $default_options['booking_form_custom_secondary_button_hover_text_color'] = '#444444';
939 $mu_option4delete[]='booking_form_custom_secondary_button_hover_text_color';
940 $default_options['booking_form_custom_secondary_button_hover_border_color'] = '#4d91cd';
941 $mu_option4delete[]='booking_form_custom_secondary_button_hover_border_color';
942 $default_options['booking_form_custom_button_border_width'] = '1px';
943 $mu_option4delete[]='booking_form_custom_button_border_width';
944 $default_options['booking_form_custom_button_border_radius'] = '3px';
945 $mu_option4delete[]='booking_form_custom_button_border_radius';
946 $default_options['booking_is_use_captcha'] = 'Off';
947 $mu_option4delete[]='booking_is_use_captcha';
948 $default_options['booking_frontend_messages'] = array( 'version' => 1, 'messages' => array(), 'enabled' => array() );
949 $mu_option4delete[]='booking_frontend_messages';
950 $default_options['booking_is_show_legend'] = 'On';
951 $mu_option4delete[]='booking_is_show_legend';
952 $default_options['booking_send_button_title'] = __( 'Send', 'booking' ); // FixIn: 8.8.1.14.
953 $mu_option4delete[]='booking_send_button_title';
954 $default_options['booking_legend_is_show_item_available'] = 'On';
955 $mu_option4delete[]='booking_legend_is_show_item_available';
956 $default_options['booking_legend_text_for_item_available'] = __( 'Available', 'booking' );
957 $mu_option4delete[]='booking_legend_text_for_item_available';
958 $default_options['booking_legend_is_show_item_pending'] = 'On';
959 $mu_option4delete[]='booking_legend_is_show_item_pending';
960 $default_options['booking_legend_text_for_item_pending'] = __( 'Pending', 'booking' );
961 $mu_option4delete[]='booking_legend_text_for_item_pending';
962 $default_options['booking_legend_is_show_item_approved'] = 'On';
963 $mu_option4delete[]='booking_legend_is_show_item_approved';
964 $default_options['booking_legend_text_for_item_approved'] = __( 'Booked', 'booking' );
965 $mu_option4delete[]='booking_legend_text_for_item_approved';
966 // FixIn: 9.9.0.5.
967 $default_options['booking_legend_is_show_item_unavailable'] = 'Off';
968 $mu_option4delete[]='booking_legend_is_show_item_unavailable';
969 $default_options['booking_legend_text_for_item_unavailable'] = __( 'Unavailable', 'booking' );
970 $mu_option4delete[]='booking_legend_text_for_item_unavailable';
971
972 // FixIn: 10.1.5.5.
973 $default_options['booking_legend_is_show_item_partially'] = ( ( class_exists( 'wpdev_bk_personal' ) ) && ( ! class_exists( 'wpdev_bk_biz_s' ) ) ) ? 'Off' : 'On';
974 $mu_option4delete[]='booking_legend_is_show_item_partially';
975 $default_options['booking_legend_text_for_item_partially'] = __( 'Partially booked', 'booking' );
976 $mu_option4delete[]='booking_legend_text_for_item_partially';
977
978 $default_options['booking_legend_is_show_numbers'] = 'On'; //FixIn:6.0.1.4 // FixIn: 8.1.3.8.
979 $mu_option4delete[]='booking_legend_is_show_numbers';
980 $default_options['booking_legend_is_vertical'] = 'Off'; // FixIn: 9.4.3.6.
981 $mu_option4delete[]='booking_legend_is_vertical';
982
983 /*
984 Import previous (old version) Email templates
985 or get defult values from Email Classes, if the emails was not saved
986 if the emails was saved, in this case - return empty array(), Useful for the Email Settings page to loading data from DB, during activation Mail API class.
987 So if we get empty array for values, in this case, we need to get this optiosn from DB.
988 */
989 // Get NEW Email Templates default data or Import previous saved
990 $emails_init = wpbc_import6_email__new_admin__get_fields_array_for_activation();
991 $emails_init = array_merge( $emails_init, wpbc_import6_email__new_visitor__get_fields_array_for_activation() );
992 $emails_init = array_merge( $emails_init, wpbc_import6_email__approved__get_fields_array_for_activation() );
993 $emails_init = array_merge( $emails_init, wpbc_import6_email__deleted__get_fields_array_for_activation() );
994 $emails_init = array_merge( $emails_init, wpbc_import6_email__deny__get_fields_array_for_activation() );
995 $emails_init = array_merge( $emails_init, wpbc_import6_email__trash__get_fields_array_for_activation() );
996 if ( class_exists( 'wpdev_bk_personal' ) )
997 $emails_init = array_merge( $emails_init, wpbc_import6_email__modification__get_fields_array_for_activation() );
998 if ( class_exists( 'wpdev_bk_personal' ) && function_exists( 'wpbc_customer_verification_email_get_initial_values' ) )
999 $emails_init = array_merge( $emails_init, wpbc_customer_verification_email_get_initial_values() );
1000 if ( class_exists( 'wpdev_bk_biz_s' ) )
1001 $emails_init = array_merge( $emails_init, wpbc_import6_email__payment_request__get_fields_array_for_activation() );
1002 foreach ( $emails_init as $email_key_name => $email_values ) {
1003
1004 if ( ! empty( $email_values ) ) $default_options[ $email_key_name ] = $email_values;
1005 else $default_options[ $email_key_name ] = get_bk_option( $email_key_name );
1006 }
1007
1008
1009 $mu_option4delete[]='booking_gcal_auto_import_is_active'; // Creation in wpbc-gcal.php file
1010 $mu_option4delete[]='booking_gcal_auto_import_time';
1011 $mu_option4delete[]='booking_cron'; // Creation in wpbc-cron.php
1012
1013 // FixIn: 8.0.1.6.
1014 //$default_options['booking_form_structure_type'] = 'vertical';
1015 // $default_options['booking_form_structure_type'] = 'form_right'; // FixIn: 10.3.0.6.
1016 $default_options['booking_form_structure_type'] = 'wizard_services_a'; // FixIn: 10.11.4.3.
1017 $default_options['booking_menu_go_pro'] = ( WPBC_IS_PLAYGROUND ) ? 'hide' : 'show'; // show | hide
1018
1019 // $default_options['booking_form_layout_width'] = '440';
1020 // $default_options['booking_form_layout_width_px_pr'] = 'px';
1021 // $default_options['booking_form_layout_max_cols'] = 1;
1022
1023 // FixIn: 10.11.4.3.
1024 $default_options['booking_form_layout_width'] = '100';
1025 $default_options['booking_form_layout_width_px_pr'] = '%';
1026 $default_options['booking_form_layout_max_cols'] = 2;
1027
1028
1029 // -----------------------------------------------------------------------------------------------------------------
1030 // PS
1031 // -----------------------------------------------------------------------------------------------------------------
1032 if ( class_exists( 'wpdev_bk_personal' ) ) {
1033
1034
1035 $default_options['booking_is_use_codehighlighter_booking_form'] = 'On'; // FixIn: 8.4.7.18.
1036 $mu_option4delete[]='booking_is_use_codehighlighter_booking_form';
1037
1038 $default_options['booking_url_bookings_edit_by_visitors'] = site_url();
1039 $mu_option4delete[]='booking_url_bookings_edit_by_visitors';
1040
1041 $default_options['booking_url_bookings_listing_by_customer'] = site_url(); //FixIn: 8.1.3.5.1
1042 $mu_option4delete[]='booking_url_bookings_listing_by_customer';
1043
1044 $default_options['booking_default_booking_resource'] = ''; // All resources
1045 $mu_option4delete[]='booking_default_booking_resource';
1046 $default_options['booking_is_change_hash_after_approvement'] = 'On'; // FixIn: 10.10.1.1.
1047 $mu_option4delete[]='booking_is_change_hash_after_approvement';
1048 $default_options['booking_email_modification_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
1049 $default_options['booking_email_modification_subject'] = __( 'The reservation has been modified', 'booking' );
1050 /* translators: 1: ... */
1051 $default_options['booking_email_modification_content'] = htmlspecialchars( sprintf( __( 'The reservation %1$s for: %2$s has been modified. %3$sYou can edit this booking on this page: %4$s Thank you, %5$s', 'booking' ), '[bookingtype]', '[dates]', '<br/><br/>[content]<br/><br/>', '[visitorbookingediturl]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
1052 $default_options['booking_is_email_modification_adress'] = 'On';
1053 $default_options['booking_is_email_modification_send_copy_to_admin'] = 'Off';
1054 $default_options['booking_resourses_num_per_page'] = '10';
1055 $mu_option4delete[]='booking_resourses_num_per_page';
1056 $default_options['booking_default_title_in_day_for_calendar_view_mode'] = '[id]: [name] [secondname]';
1057 $mu_option4delete[]='booking_default_title_in_day_for_calendar_view_mode';
1058
1059 // FixIn: 8.1.3.31.
1060 $default_options['booking_calendar_overview_start_time'] = '0';
1061 $mu_option4delete[]='booking_calendar_overview_start_time';
1062 $default_options['booking_calendar_overview_end_time'] = '24';
1063 $mu_option4delete[]='booking_calendar_overview_end_time';
1064
1065 $default_options['booking_default_title_in_day_for_timeline_front_end'] = '[name] [secondname]';
1066 $mu_option4delete[]='booking_default_title_in_day_for_timeline_front_end';
1067 // FixIn: 10.14.10.1.
1068 $default_options['booking_is_show_popover_in_timeline_front_end'] = 'Off';
1069 $mu_option4delete[]='booking_is_show_popover_in_timeline_front_end';
1070 // FixIn: 9.6.3.5.
1071
1072 $default_options['booking_send_emails_off_addbooking'] = 'Off'; // FixIn: 8.4.5.4.
1073 $mu_option4delete[]='booking_send_emails_off_addbooking';
1074
1075 // FixIn: 9.6.3.5.
1076
1077 $default_options['booking_change_resource_skip_checking'] = 'Off'; // FixIn: 8.4.5.4.
1078 $mu_option4delete[]='booking_change_resource_skip_checking';
1079
1080 $default_options['booking_log_booking_actions'] = 'On'; // FixIn: 8.6.1.10.
1081 $mu_option4delete[]='booking_log_booking_actions';
1082
1083
1084 }
1085
1086 // FixIn: 8.5.1.1.
1087 // $default_options['booking_ics_force_import'] = 'Off'; // FixIn: 8.4.7.1.
1088 $default_options['booking_ics_force_trash_before_import'] = 'Off'; // FixIn: 8.4.7.12.
1089 //$mu_option4delete[]='booking_ics_force_trash_before_import'; // No need to delete ^
1090 $default_options['booking_ics_import_append_checkout_day'] = 'Off'; //FixIn: 9.6.2.7 // FixIn: 9.5.4.1.
1091 //$mu_option4delete[]='booking_ics_import_append_checkout_day'; // No need to delete ^
1092
1093 $default_options['booking_ics_import_append_extra_checkout_day'] = 'Off';
1094 //$mu_option4delete[]='booking_ics_import_append_extra_checkout_day'; // No need to delete ^
1095
1096 // FixIn: 9.8.15.8.
1097 $default_options['booking_condition_import_only_new'] = ( get_bk_option( 'booking_ics_force_import' ) === 'On' ) ? 'Off' : 'On';
1098 $default_options['booking_condition_import_if_available'] = 'Off';
1099
1100 // FixIn: 10.1.5.4.
1101 $default_options['booking_recurrent_time'] = ( class_exists( 'wpdev_bk_personal' ) ) ? 'Off' : 'On';
1102 $mu_option4delete[]='booking_recurrent_time';
1103
1104 $default_options['booking_calendar_allow_several_months_on_mobile'] = 'Off';
1105 $mu_option4delete[]='booking_calendar_allow_several_months_on_mobile';
1106
1107 // -----------------------------------------------------------------------------------------------------------------
1108 // BS
1109 // -----------------------------------------------------------------------------------------------------------------
1110 if ( class_exists( 'wpdev_bk_biz_s' ) ) {
1111
1112 //$mu_option4delete[]='booking_paypal_price_period'; // No need to delete, this option, because different users can have different settings. During init defined at ../booking/inc/gateways/page-gateways.php
1113
1114 $default_options['booking_gateways_order'] = 'stripe_v3,paypal_std_co,paypal,authorizenet,sage,redsys,bank_transfer,pay_cash,ipay88,ideal'; // Default Original Payment Gateways
1115 //$mu_option4delete[]='booking_gateways_order'; // No need to delete ^
1116
1117 // FixIn: 8.1.3.29.
1118 $default_options['booking_ics_import_add_change_over_time'] = 'On';
1119 //$mu_option4delete[]='booking_ics_import_add_change_over_time'; // No need to delete ^
1120
1121 // FixIn: 8.5.2.3.
1122 $default_options['booking_is_ics_export_only_approved'] = 'Off';
1123 //$mu_option4delete[]='booking_is_ics_export_only_approved'; // No need to delete ^
1124 $default_options['booking_is_ics_export_imported_bookings'] = ''; // FixIn: 8.8.3.19.
1125
1126
1127 $default_options['booking_auto_approve_new_bookings_is_active'] = 'Off';
1128 $mu_option4delete[]='booking_auto_approve_new_bookings_is_active';
1129
1130 // FixIn: 8.1.3.27.
1131 $default_options['booking_auto_approve_bookings_when_import'] = 'Off';
1132 $mu_option4delete[]='booking_auto_approve_bookings_when_import';
1133 $default_options['booking_auto_approve_bookings_when_zero_cost'] = 'Off';
1134 $mu_option4delete[]='booking_auto_approve_bookings_when_zero_cost';
1135 $default_options['booking_auto_approve_bookings_if_added_in_admin_panel'] = 'Off';
1136 $mu_option4delete[]='booking_auto_approve_bookings_if_added_in_admin_panel';
1137
1138 $default_options['booking_auto_cancel_pending_unpaid_bk_is_active'] = 'Off';
1139 $mu_option4delete[]='booking_auto_cancel_pending_unpaid_bk_is_active';
1140 $default_options['booking_auto_cancel_pending_unpaid_bk_time'] = '24';
1141 $mu_option4delete[]='booking_auto_cancel_pending_unpaid_bk_time';
1142 $default_options['booking_auto_cancel_pending_unpaid_bk_is_send_email'] = 'On';
1143 $mu_option4delete[]='booking_auto_cancel_pending_unpaid_bk_is_send_email';
1144 $default_options['booking_auto_cancel_pending_unpaid_bk_email_reason'] = __( 'This booking canceled because we did not receive payment and the administrator did not approve it.', 'booking' );
1145 $mu_option4delete[]='booking_auto_cancel_pending_unpaid_bk_email_reason';
1146 // Start every edition with the unrestricted two-click range.
1147 // Business Small+ users can opt into a fixed one-click range later.
1148 $default_options['booking_range_selection_type'] = 'dynamic';
1149 $mu_option4delete[]='booking_range_selection_type';
1150 $default_options['booking_range_selection_days_count'] = '3';
1151 $mu_option4delete[]='booking_range_selection_days_count';
1152 $default_options['booking_range_selection_days_max_count_dynamic'] = 30;
1153 $mu_option4delete[]='booking_range_selection_days_max_count_dynamic';
1154 $default_options['booking_range_selection_days_specific_num_dynamic'] = '';
1155 $mu_option4delete[]='booking_range_selection_days_specific_num_dynamic';
1156 $default_options['booking_range_start_day'] = '-1';
1157 $mu_option4delete[]='booking_range_start_day';
1158 $default_options['booking_range_selection_days_count_dynamic'] = '1';
1159 $mu_option4delete[]='booking_range_selection_days_count_dynamic';
1160 $default_options['booking_range_start_day_dynamic'] = '-1';
1161 $mu_option4delete[]='booking_range_start_day_dynamic';
1162 $default_options['booking_range_selection_time_is_active'] = 'Off';
1163 $mu_option4delete[]='booking_range_selection_time_is_active';
1164 $default_options['booking_range_selection_start_time'] = '12:00';
1165 $mu_option4delete[]='booking_range_selection_start_time';
1166 $default_options['booking_range_selection_end_time'] = '10:00';
1167 $mu_option4delete[]='booking_range_selection_end_time';
1168 $default_options['booking_change_over_days_triangles'] = 'On'; // FixIn: 7.0.1.24.
1169
1170 $mu_option4delete[]='booking_last_checkout_day_available';
1171 $default_options['booking_last_checkout_day_available'] = 'Off'; // FixIn: 8.1.3.28.
1172
1173 $mu_option4delete[]='booking_change_over_days_triangles';
1174
1175 $mu_option4delete[]='booking_change_over__is_excerpt_on_pages';
1176 $default_options['booking_change_over__is_excerpt_on_pages'] = 'Off'; // FixIn: 8.9.4.10.
1177 $mu_option4delete[]='booking_change_over__excerpt_on_pages';
1178 $default_options['booking_change_over__excerpt_on_pages'] = ''; // FixIn: 8.9.4.10.
1179 $mu_option4delete[]='booking_change_over__excerpt_bk_resources';
1180 $default_options['booking_change_over__excerpt_bk_resources'] = ''; // FixIn: 10.16.4.1.
1181
1182
1183 $default_options['booking_email_payment_request_adress'] = htmlspecialchars( '"Booking system" <' . get_option( 'admin_email' ) . '>' );
1184 $default_options['booking_email_payment_request_subject'] = __( 'You need to make payment for this reservation', 'booking' );
1185 /* translators: 1: ... */
1186 $default_options['booking_email_payment_request_content'] = htmlspecialchars( sprintf( __( 'You need to make payment %1$s for reservation %2$s at %3$s. %4$s Please make payment on this page: %5$s Thank you, %6$s', 'booking' ), '[cost]', '[bookingtype]', '[dates]', '<br/><br/>[paymentreason]<br/><br/>[content]<br/><br/>', '[visitorbookingpayurl]<br/><br/>', $blg_title . '<br/>[siteurl]' ) );
1187 $default_options['booking_is_email_payment_request_adress'] = 'On';
1188 $default_options['booking_is_email_payment_request_send_copy_to_admin'] = 'Off';
1189 }
1190
1191
1192 // -----------------------------------------------------------------------------------------------------------------
1193 // BM
1194 // -----------------------------------------------------------------------------------------------------------------
1195 if ( class_exists( 'wpdev_bk_biz_m' ) ) {
1196
1197 // FixIn: 8.1.3.15.
1198 $default_options['booking_is_show_booked_data_in_tooltips'] = 'Off';
1199 $mu_option4delete[]='booking_is_show_booked_data_in_tooltips';
1200 $default_options['booking_booked_data_in_tooltips'] = '[name] [secondname]';
1201 $mu_option4delete[]='booking_booked_data_in_tooltips';
1202
1203 $default_options['booking_number_for_pre_checkin_date_hint'] = '14'; // FixIn: 10.0.0.31.
1204 $mu_option4delete[]='booking_number_for_pre_checkin_date_hint';
1205 $default_options['booking_available_days_num_from_today'] = '';
1206 $mu_option4delete[]='booking_available_days_num_from_today';
1207 $default_options['booking_unavailable_extra_in_out'] = '';
1208 $mu_option4delete[]='booking_unavailable_extra_in_out';
1209 $default_options['booking_unavailable_extra_minutes_in'] = '';
1210 $mu_option4delete[]='booking_unavailable_extra_minutes_in';
1211 $default_options['booking_unavailable_extra_minutes_out'] = '';
1212 $mu_option4delete[]='booking_unavailable_extra_minutes_out';
1213 $default_options['booking_unavailable_extra_days_in'] = '';
1214 $mu_option4delete[]='booking_unavailable_extra_days_in';
1215 $default_options['booking_unavailable_extra_days_out'] = '';
1216 $mu_option4delete[]='booking_unavailable_extra_days_out';
1217
1218 $default_options['booking_advanced_costs_values'] = serialize( array() );
1219 $default_options['booking_is_resource_deposit_payment_active'] = 'On';
1220 $mu_option4delete[]='booking_is_resource_deposit_payment_active';
1221 $default_options['booking_advanced_costs_calc_fixed_cost_with_procents'] = 'Off';
1222 $default_options['booking_is_show_cost_in_tooltips'] = 'Off';
1223 $mu_option4delete[]='booking_is_show_cost_in_tooltips';
1224 $default_options['booking_highlight_cost_word'] = __( 'Cost: ', 'booking' );
1225 $mu_option4delete[]='booking_highlight_cost_word';
1226 $default_options['booking_is_show_cost_in_date_cell'] = 'Off';
1227 $mu_option4delete[]='booking_is_show_cost_in_date_cell';
1228 $default_options['booking_cost_in_date_cell_currency'] = '&#36;';
1229 $mu_option4delete[]='booking_cost_in_date_cell_currency';
1230 $default_options['booking_visitor_number_rate'] = '0'; //Depricated
1231 $default_options['booking_visitor_number_rate_type'] = '%'; //Depricated
1232 }
1233
1234
1235 // -----------------------------------------------------------------------------------------------------------------
1236 // BL
1237 // -----------------------------------------------------------------------------------------------------------------
1238 if ( class_exists( 'wpdev_bk_biz_l' ) ) {
1239
1240 // Get Key of Last added item to "$default_options" array
1241 // $multiuser_general_option[] = implode( '', array_keys( array_slice( $default_options, -1 ) ) );
1242
1243 $default_options['booking_check_out_available_for_parents'] = 'On';
1244 $mu_option4delete[]='booking_check_out_available_for_parents';
1245 $default_options['booking_check_in_available_for_parents'] = 'Off';
1246 $mu_option4delete[]='booking_check_in_available_for_parents';
1247 $default_options['booking_is_show_pending_days_as_available'] = 'Off';
1248 $mu_option4delete[]='booking_is_show_pending_days_as_available';
1249 $default_options['booking_auto_cancel_pending_bookings_for_approved_date'] = 'Off';
1250 $mu_option4delete[]='booking_auto_cancel_pending_bookings_for_approved_date';
1251
1252 $default_options['booking_quantity_control'] = ( get_bk_option( 'booking_is_use_visitors_number_for_availability') == 'On' ) ? 'On' : 'Off';
1253 $mu_option4delete[]='booking_quantity_control';
1254 $default_options['booking_capacity_field'] = ( get_bk_option( 'booking_is_use_visitors_number_for_availability') == 'On' ) ? 'select^visitors' : '';
1255 $mu_option4delete[]='booking_capacity_field';
1256
1257 $default_options['booking_is_show_availability_in_tooltips'] = 'On'; // FixIn: 8.1.3.8.
1258 $mu_option4delete[]='booking_is_show_availability_in_tooltips';
1259 $default_options['booking_highlight_availability_word'] = __( 'Available: ', 'booking' );
1260 $mu_option4delete[]='booking_highlight_availability_word';
1261
1262 $default_options['booking_is_show_availability_in_date_cell'] = 'Off'; // FixIn: 10.6.4.1.
1263 $mu_option4delete[]='booking_is_show_availability_in_date_cell';
1264 $default_options['booking_highlight_availability_word_in_date_cell'] = __( 'available', 'booking' );
1265 $mu_option4delete[]='booking_highlight_availability_word_in_date_cell';
1266
1267
1268 $default_options['booking_is_dissbale_booking_for_different_sub_resources'] = 'Off';
1269 $mu_option4delete[]='booking_is_dissbale_booking_for_different_sub_resources';
1270 // FixIn: 10.10.1.2 $default_options['booking_is_resource_no_update__during_editing'] = 'On'; // FixIn: 9.4.2.3.
1271 // FixIn: 10.10.1.2 $mu_option4delete[]='booking_is_resource_no_update__during_editing';
1272 $default_options['booking_search_form_show'] = str_replace( '\\n\\r', "\n", wpbc_get_default_search_form_template( 'standard_search_form' ) ); //FixIn:6.1.0.1 // FixIn: 8.5.2.11.
1273 $mu_option4delete[]='booking_search_form_show';
1274 $default_options['booking_found_search_item'] = str_replace( '\\n\\r', "\n", wpbc_get_default_search_results_template( 'advanced_search_results' ) ); //FixIn:6.1.0.1 // FixIn: 8.5.2.11.
1275 $mu_option4delete[]='booking_found_search_item';
1276 $default_options['booking_cache_expiration'] = '2d';
1277 $mu_option4delete[]='booking_cache_expiration';
1278 $default_options['booking_search_results_order'] = 'prioritet'; // FixIn: 8.4.7.8.
1279 $mu_option4delete[]='booking_search_results_order';
1280 $default_options['booking_search_form_dates_format'] = 'yy-mm-dd'; // FixIn: 8.6.1.21.
1281 $mu_option4delete[]='booking_search_form_dates_format';
1282 $default_options['booking_search_results_days_select'] = 'Off'; // FixIn: 8.8.2.3.
1283 $mu_option4delete[]='booking_search_results_days_select';
1284 $default_options['booking_from_search_scroll_to_calendar'] = 'On'; // FixIn: 9.4.4.6.
1285 $mu_option4delete[]='booking_from_search_scroll_to_calendar';
1286
1287 $default_options['booking_search_from_auto_open_checkout_cal'] = 'On'; // FixIn: 10.0.0.39.
1288 $mu_option4delete[]='booking_search_from_auto_open_checkout_cal';
1289 $default_options['booking_search_from__search_header'] = '[result_count] ' . __('Result(s) Found','booking'); // FixIn: 10.0.0.41.
1290 $mu_option4delete[]='booking_search_from__search_header';
1291 $default_options['booking_search_from__search_header_advanced'] = __( 'Extended Search Results', 'booking' ); // FixIn: 10.0.0.41.
1292 $mu_option4delete[]='booking_search_from__search_header_advanced';
1293 $default_options['booking_search_from__search_nothing_found'] = __('Nothing Found','booking');
1294 $mu_option4delete[]='booking_search_from__search_nothing_found';
1295
1296 $default_options['booking_search_form__dates_required_enabled'] = 'Off';
1297 $mu_option4delete[]='booking_search_form__dates_required_enabled';
1298 $default_options['booking_search_form__dates_required_warning'] = __('Please select check-in and check-out dates to perform the search.','booking');
1299 $mu_option4delete[]='booking_search_form__dates_required_warning';
1300
1301
1302 // Updated during regeneration seacrh cache
1303 //$default_options['booking_cache_content']='';
1304 $mu_option4delete[]='booking_cache_content';
1305 //$default_options['booking_cache_created']=wpbc_datetime_localized( date ('Y-m-d H:i:s'), 'Y-m-d H:i:s' );
1306 $mu_option4delete[]='booking_cache_created';
1307 $mu_option4delete[]='booking_resources_search_options'; // FixIn: 10.0.0.18.
1308 }
1309
1310
1311 // -----------------------------------------------------------------------------------------------------------------
1312 // MU
1313 // -----------------------------------------------------------------------------------------------------------------
1314 if ( class_exists( 'wpdev_bk_multiuser' ) ) {
1315
1316 // FixIn: 8.1.3.19.
1317 $default_options['booking_is_custom_forms_for_regular_users'] = 'Off';
1318 $mu_option4delete[]='booking_is_custom_forms_for_regular_users';
1319
1320 // FixIn: 9.2.3.8.
1321 $default_options['booking_super_admin_receive_regular_user_payments'] = 'Off';
1322 $mu_option4delete[]='booking_super_admin_receive_regular_user_payments';
1323 }
1324
1325
1326 if ( ! $is_get_multiuser_general_options ) {
1327
1328 if ( ! empty( $option_name ) ) {
1329
1330 if (isset( $default_options[ $option_name ] ))
1331 return $default_options[ $option_name ]; // Return 1 option
1332 else
1333 return false; // Option does NOT exist
1334
1335 } else {
1336 return $default_options; // Return ALL
1337 }
1338
1339 } else
1340 return $mu_option4delete; // Get options for MU
1341 }
1342
1343
1344 // <editor-fold defaultstate="collapsed" desc=" Update Deprecated Options " >
1345 function wpbc_after_activation__update_deprecated_options() {
1346 update_bk_option( 'booking_form_is_using_bs_css', 'Off' );
1347 }
1348 add_bk_action( 'wpbc_after_activation', 'wpbc_after_activation__update_deprecated_options' );
1349 // </editor-fold>
1350