PluginProbe
Booking Calendar / 10.1.3
Booking Calendar v10.1.3
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 / class / wpbc-class-welcome.php

wpbc-class-welcome.php in Booking Calendar 10.1.3, at core/class/wpbc-class-welcome.php

1,386 lines 77.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Welcome Page Class
4 * Shows a feature overview for the new version (major).
5 * Adapted from code in EDD (Copyright (c) 2012, Pippin Williamson) and WP.
6 * @version 2.0.0
7 */
8
9 // Exit if accessed directly
10 if ( !defined( 'ABSPATH' ) ) exit;
11
12 require_once WPBC_PLUGIN_DIR . '/core/class/welcome_current.php';
13 require_once WPBC_PLUGIN_DIR . '/core/class/welcome_old.php';
14
15
16 class WPBC_Welcome {
17
18 public $minimum_capability = 'read'; //'manage_options';
19
20 public $asset_path = 'https://wpbookingcalendar.com/assets/';
21 //public $asset_path = 'http://beta/assets/';
22
23
24 public function __construct() {
25 add_action( 'admin_menu', array( $this, 'admin_menus' ) );
26 //add_action( 'admin_head', array( $this, 'admin_head' ) ); //FixIn: 8.5.1.2
27 add_action( 'admin_init', array( $this, 'welcome' ) );
28
29 add_action( 'wpbc_premium_content_overview', array( $this, 'content_premium' ) );
30
31 add_action( 'load-dashboard_page_wpbc-about', array( $this, 'wpbc_define_page_title_about' ) ); //FixIn: 9.6.2.12
32 add_action( 'load-dashboard_page_wpbc-getting-started', array( $this, 'wpbc_define_page_title_started' ) );
33 add_action( 'load-dashboard_page_wpbc-about-premium', array( $this, 'wpbc_define_page_title_premium' ) );
34 }
35
36 public function wpbc_define_page_title_about() { //FixIn: 9.6.2.12
37 global $title;
38 if ( ! isset( $title ) ) {
39 $title = 'Welcome to Booking Calendar';
40 }
41 }
42 public function wpbc_define_page_title_started() { //FixIn: 9.6.2.12
43 global $title;
44 if ( ! isset( $title ) ) {
45 $title = 'Get Started - Booking Calendar';
46 }
47 }
48 public function wpbc_define_page_title_premium() { //FixIn: 9.6.2.12
49 global $title;
50 if ( ! isset( $title ) ) {
51 $title = 'Get Premium - Booking Calendar';
52 }
53 }
54
55 private function css() {
56
57 ?><style type="text/css">
58 .feature-section.three-col,
59 .feature-section.two-col {
60 display: flex;
61 flex-direction: row;
62 justify-content: space-between;
63 align-items: flex-start;
64 }
65 .feature-section.two-col .col.col-1{
66 width:100%;
67 }
68 .feature-section.two-col .col.col-2{
69 width: 70%;
70 padding: 0 0 0 7%;
71 box-sizing: border-box;
72 }
73 @media (max-width: 782px) {
74 /* iPad mini and all iPhones and other Mobile Devices */
75 .feature-section.three-col,
76 .feature-section.two-col {
77 display: block;
78 }
79 }
80
81 /* Welcome Page ***************************************************************/
82 .wpbc-welcome-page .about-text {
83 margin-right:0px;
84 margin-bottom:0px;
85 min-height: 50px;
86 }
87 .wpbc-welcome-page .wpbc-section-image {
88 border:none;
89 box-shadow: 0 1px 3px #777777;
90 }
91 .wpbc-welcome-page .versions {
92 color: #999999;
93 font-size: 12px;
94 font-style: normal;
95 margin: 0;
96 text-align: right;
97 text-shadow: 0 -1px 0 #EEEEEE;
98 }
99 .wpbc-welcome-page .versions a,
100 .wpbc-welcome-page .versions a:hover{
101 color: #999;
102 text-decoration:none;
103 }
104 .wpbc-welcome-page .update-nag {
105 border-color: #E3C58E;
106 border-radius: 5px;
107 -moz-border-radius: 5px;
108 -webkit-border-radius: 5px;
109 box-shadow: 0 1px 3px #EEEEEE;
110 color: #998877;
111 font-size: 12px;
112 font-weight: 600;
113 margin: 15px 0 0;
114 width:90%;
115 }
116 .wpbc-welcome-page .feature-section {
117 margin-top:20px;
118 border:none;
119 }
120 .wpbc-welcome-page .feature-section div {
121 line-height: 1.5em;
122 }
123 .about-wrap.wpbc-welcome-page .feature-section .last-feature {
124 margin-right:0;
125 }
126 .about-wrap.wpbc-welcome-page .changelog {
127 margin-bottom: 10px;
128 }
129 .about-wrap.wpbc-welcome-page .feature-section h4 {
130 font-size: 1.2em;
131 margin-bottom: 0.6em;
132 margin-left: 0;
133 margin-right: 0;
134 margin-top: 1.4em;
135 }
136 .about-wrap.wpbc-welcome-page .feature-section {
137 overflow-x: hidden;
138 overflow-y: hidden;
139 padding-bottom: 20px;
140 }
141 .about-wrap.wpbc-welcome-page [class$="-col"]{
142 align-items: initial;
143 }
144 @media (max-width: 782px) { /* iPad mini and all iPhones and other Mobile Devices */
145 .wpbc-welcome-page .feature-section.one-col > div,
146 .wpbc-welcome-page .feature-section.three-col > div,
147 .wpbc-welcome-page .feature-section.two-col > div {
148 border-bottom: none;
149 margin:0px !important;
150 }
151 .wpbc-welcome-page .feature-section img{
152 /*width:98% !important;*/
153 /*margin:0 1% !important;*/
154 margin:0!important;
155 width: auto !important;
156 max-height: 285px;
157 overflow: hidden;
158 }
159 .about-wrap.wpbc-welcome-page .feature-section div.col {
160 display:block;
161 float:none;
162 width: 100% !important;
163 padding: 0;
164 }
165 }
166 .wpbc-welcome-page li.big_numbers::marker{
167 font-size:1.2em;
168 font-weight: 600;
169 line-height: 2.1em;
170 }
171
172 </style><?php
173 }
174 // SUPPORT /////////////////////////////////////////////////////////////////
175
176 public function show_separator() {
177 ?><div class="clear" style="height:1px;border-bottom:1px solid #DFDFDF;"></div><?php
178 }
179
180
181 public function show_header( $text = '' , $header_type = 'h3', $style = '' ) {
182 echo '<' , $header_type ;
183 if ( ! empty($style) )
184 echo " style='{$style}'";
185 echo '>';
186 echo wpbc_replace_to_strong_symbols( $text );
187 echo '</' , $header_type , '>' ;
188 }
189
190
191 public function show_col_section( $sections_array = array( ) ) {
192
193 $columns_num = count( $sections_array );
194
195 if ( isset($sections_array['h3'] ) )
196 $columns_num--;
197 if ( isset($sections_array['h2'] ) )
198 $columns_num--;
199 ?>
200 <div class="changelog"><?php
201
202 if ( isset( $sections_array[ 'h3' ] ) ) {
203 echo "<h3>" . wpbc_replace_to_strong_symbols( $sections_array[ 'h3' ] ) . "</h3>";
204 unset($sections_array[ 'h3' ]);
205 }
206 if ( isset( $sections_array[ 'h2' ] ) ) {
207 echo "<h2>" . wpbc_replace_to_strong_symbols( $sections_array[ 'h2' ] ) . "</h2>";
208 unset($sections_array[ 'h2' ]);
209 }
210
211 ?><div class="feature-section <?php
212 if ( $columns_num == 2 ) {
213 echo ' two-col';
214 } if ( $columns_num == 3 ) {
215 echo ' three-col';
216 } ?>">
217 <?php
218 foreach ( $sections_array as $section_key => $section ) {
219 $col_num = ( $section_key + 1 );
220 if ( $columns_num == $col_num )
221 $is_last_feature = ' last-feature ';
222 else
223 $is_last_feature = '';
224
225 echo "<div class='col col-{$col_num}{$is_last_feature}'>";
226
227 if ( isset( $section[ 'header' ] ) )
228 echo "<h4>" . wpbc_replace_to_strong_symbols( $section[ 'header' ] ) . "</h4>";
229
230 if ( isset( $section[ 'h4' ] ) )
231 echo "<h4>" . wpbc_replace_to_strong_symbols( $section[ 'h4' ] ) . "</h4>";
232
233 if ( isset( $section[ 'h3' ] ) )
234 echo "<h3>" . wpbc_replace_to_strong_symbols( $section[ 'h3' ] ) . "</h3>";
235
236 if ( isset( $section[ 'h2' ] ) )
237 echo "<h2>" . wpbc_replace_to_strong_symbols( $section[ 'h2' ] ) . "</h2>";
238
239 if ( isset( $section[ 'text' ] ) )
240 echo wpbc_replace_to_strong_symbols( $section[ 'text' ] );
241
242 if ( isset( $section[ 'img' ] ) ) {
243
244 $is_full_link = strpos( $section[ 'img' ], 'http' );
245 if ( false === $is_full_link ) {
246 echo '<img src="' . $this->asset_path . $section['img'] . '" ';
247 } else {
248 echo '<img src="' . $section[ 'img' ] . '" ';
249 }
250 if ( isset( $section[ 'img_style' ] ) )
251 echo ' style="'. $section[ 'img_style' ] .'" ';
252 echo ' class="wpbc-section-image" />' ;
253 }
254
255 echo "</div>";
256 }
257 ?>
258 </div>
259 </div>
260 <?php
261 }
262
263
264 public function get_img( $img, $img_style = '' ) {
265
266 $is_full_link = strpos( $img, 'http' );
267 if ( false === $is_full_link ) {
268 $img_result = '<img src="' . $this->asset_path . $img . '" ';
269 } else {
270 $img_result = '<img src="' . $img . '" ';
271 }
272
273 if ( ! empty( $img_style ) )
274 $img_result .= ' style="'. $img_style .'" ';
275 $img_result .= ' class="wpbc-section-image" />' ;
276
277 return $img_result;
278 }
279 ////////////////////////////////////////////////////////////////////////////
280
281 // Menu
282 public function admin_menus() {
283 // What's New
284 add_dashboard_page(
285 sprintf( 'Welcome to Booking Calendar' ),
286 sprintf( 'What\'s New' ),
287 $this->minimum_capability, 'wpbc-about',
288 array( $this, 'content_whats_new' )
289 );
290 // Getted Started
291 add_dashboard_page(
292 sprintf( 'Get Started - Booking Calendar' ),
293 sprintf( 'Get Started' ),
294 $this->minimum_capability, 'wpbc-getting-started',
295 array( $this, 'content_getted_started' )
296 );
297 // Pro
298 add_dashboard_page(
299 sprintf( 'Get Premium - Booking Calendar' ),
300 sprintf( 'Get Premium' ),
301 $this->minimum_capability, 'wpbc-about-premium',
302 array( $this, 'content_premium' )
303 );
304 //FixIn: 8.5.1.2
305 remove_submenu_page( 'index.php', 'wpbc-about' );
306 remove_submenu_page( 'index.php', 'wpbc-getting-started' );
307 remove_submenu_page( 'index.php', 'wpbc-about-premium' );
308 }
309
310 // Head
311 public function admin_head() {
312 remove_submenu_page( 'index.php', 'wpbc-about' );
313 remove_submenu_page( 'index.php', 'wpbc-getting-started' );
314 remove_submenu_page( 'index.php', 'wpbc-about-premium' );
315 }
316
317 // Title
318 public function title_section() {
319 list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
320 ?>
321 <h1><?php printf( 'Welcome to Booking Calendar %s', $display_version ); ?></h1>
322 <div class="about-text"><?php
323 //echo('Thank you for updating to the latest version!');
324 // printf( '%s is more polished, powerful and easy to use than ever before.' , ' Booking Calendar ' . $display_version );
325 // printf( '%s has become more powerful and flexible in configuration and easy to use than ever before.' , '<br/>Booking Calendar ');
326 printf( 'Booking Calendar is ready to receive and manage bookings from your visitors!' );
327 ?></div>
328
329
330 <h2 class="nav-tab-wrapper">
331 <?php
332 $is_about_tab_active = $is_about_premium_tab_active = $is_getting_started_tab_active = '';
333 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-about' ) )
334 $is_about_tab_active = ' nav-tab-active ';
335 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-about-premium' ) )
336 $is_about_premium_tab_active = ' nav-tab-active ';
337 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-getting-started' ) )
338 $is_getting_started_tab_active = ' nav-tab-active ';
339 ?>
340 <a class="nav-tab<?php echo $is_about_tab_active; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array(
341 'page' => 'wpbc-about' ), 'index.php' ) ) ); ?>">
342 <?php echo( "What's New" ); ?>
343 <a class="nav-tab<?php echo $is_getting_started_tab_active; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array(
344 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>">
345 <?php echo( "Get Started" ); ?>
346 </a><a class="nav-tab<?php echo $is_about_premium_tab_active; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array(
347 'page' => 'wpbc-about-premium' ), 'index.php' ) ) ); ?>">
348 <?php echo( "Get even more functionality" ); // echo( "Even more Premium Features" ); ?>
349 </a>
350 </h2>
351 <?php
352 }
353
354 // Maintence section
355 public function maintence_section() {
356
357 if ( !( ( defined( 'WP_BK_MINOR_UPDATE' )) && (WP_BK_MINOR_UPDATE) ) )
358 return;
359
360 list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
361 ?>
362 <div class="changelog point-releases" style="margin-top: 45px;">
363 <h3><?php echo( "Maintenance Release" ); ?></h3>
364 <p><strong><?php printf( 'Version %s',
365 $display_version ); ?></strong> <?php printf( 'addressed some minor issues and improvement in functionality',
366 '' ); ?>.
367 <?php printf( 'For more information, see %sthe release notes%s',
368 '<a href="https://wpbookingcalendar.com/changelog/" target="_blank">',
369 '</a>' ) ?>.
370 </p>
371 </div>
372 <?php
373 }
374
375 // Start
376 public function welcome() {
377
378 $booking_activation_process = get_bk_option( 'booking_activation_process' );
379 if ( $booking_activation_process == 'On' )
380 return;
381
382 // Bail if no activation redirect transient is set
383 if ( ! get_transient( '_booking_activation_redirect' ) )
384 return;
385
386 // Delete the redirect transient
387 delete_transient( '_booking_activation_redirect' );
388
389 // Bail if DEMO or activating from network, or bulk, or within an iFrame
390 if ( wpbc_is_this_demo() || is_network_admin() || isset( $_GET[ 'activate-multi' ] ) || defined( 'IFRAME_REQUEST' ) )
391 return;
392
393 // Set mark, that we already redirected to About screen //FixIn: 5.4.5
394 $redirect_for_version = get_bk_option( 'booking_activation_redirect_for_version' );
395 if ( $redirect_for_version == WP_BK_VERSION_NUM )
396 return;
397 else
398 update_bk_option( 'booking_activation_redirect_for_version', WP_BK_VERSION_NUM );
399
400 wp_safe_redirect( admin_url( 'index.php?page=wpbc-about' ) );
401 exit;
402 }
403
404
405 // CONTENT /////////////////////////////////////////////////////////////////
406
407 public function content_whats_new() {
408
409 //$this->css();
410 if(0){
411 ?>
412 <style type="text/css">
413 .feature-section.two-col {
414 display: flex;
415 flex-direction: row;
416 justify-content: space-between;
417 align-items: flex-start;
418 }
419 .feature-section.two-col .col.col-1{
420 width:100%;
421 }
422 .feature-section.two-col .col.col-2{
423 width: 70%;
424 padding: 0 0 0 7%;
425 box-sizing: border-box;
426 }
427 @media (max-width: 782px) {
428 /* iPad mini and all iPhones and other Mobile Devices */
429 .feature-section.two-col {
430 display: block;
431 }
432 }
433
434 .wpbc-changelog-list ul {
435 list-style: outside;
436 }
437 .wpbc-changelog-list ul li{
438 margin-bottom: 0.5em;
439 line-height: 1.5em;
440 }
441 .wpbc-changelog-list ul li strong{
442 padding:0 5px;
443 }
444 .wpbc_expand_section_link,
445 a.wpbc_expand_section_link:hover,
446 a.wpbc_expand_section_link:focus {
447 color:#21759b;
448 cursor: pointer;
449 outline: 0;
450 border:none;
451 border-bottom:1px dashed #21759B;
452 text-decoration: none;
453 }
454 </style><?php
455 }
456 ?>
457 <div class="wrap about-wrap wpbc-welcome-page">
458
459 <?php $this->title_section(); ?>
460
461 <table class="about-text" style="margin-bottom:-40px;height:auto;font-size:1em;width:100%;" >
462 <tr>
463 <td>
464 <?php list( $display_version ) = explode( '-', WPDEV_BK_VERSION ); ?>
465 <!--Thank you for updating to the latest version. <strong><code><?php echo $display_version; ?></code></strong>
466 <br/>Booking Calendar has become more polished, powerful and easy to use than ever before.-->
467 </td>
468 <td style="width:10%">
469 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>"
470 style="float: right; height: 36px; line-height: 34px;"
471 class="button-primary"
472 >&nbsp;<strong>Get Started</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
473 </a>
474 </td>
475 </tr>
476 </table>
477 <?php
478
479 $this->maintence_section();
480
481 $this->section_9_8_css();
482
483 wpbc_welcome_section_10_1( $this );
484
485 wpbc_welcome_section_10_0( $this );
486
487 wpbc_welcome_section_9_9( $this );
488
489 wpbc_welcome_section_9_8( $this );
490
491 if (0) {
492 wpbc_welcome_section_9_7( $this );
493
494 wpbc_welcome_section_9_6( $this );
495
496 wpbc_welcome_section_9_5( $this );
497
498 wpbc_welcome_section_9_4( $this );
499
500 wpbc_welcome_section_9_3( $this );
501
502 wpbc_welcome_section_9_2( $this );
503
504 wpbc_welcome_section_9_1( $this );
505
506 wpbc_welcome_section_9_0( $this );
507
508 wpbc_welcome_section_8_9( $this );
509
510 wpbc_welcome_section_8_8( $this );
511
512 wpbc_welcome_section_8_7( $this );
513
514 wpbc_welcome_section_8_6( $this );
515
516 wpbc_welcome_section_8_5( $this );
517
518 wpbc_welcome_section_8_4( $this );
519
520 wpbc_welcome_section_8_3( $this );
521
522 wpbc_welcome_section_8_2( $this );
523
524 wpbc_welcome_section_8_1( $this );
525
526 wpbc_welcome_section_8_0( $this );
527
528 wpbc_welcome_section_7_1_7_2( $this );
529 }
530
531 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
532 // Footer
533 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
534 ?>
535 <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
536 <tr>
537 <td>
538
539 </td>
540 <td style="width:10%">
541 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>"
542 style="float: right; height: 36px; line-height: 34px;"
543 class="button-primary"
544 >&nbsp;<strong>Get Started</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
545 </a>
546 </td>
547 </tr>
548 </table>
549
550 </div><?php
551 }
552
553 function expand_section_start( $section_param_arr ){
554
555 ?><div class="clear" style="margin-top:20px;"></div><?php
556
557 if( $section_param_arr['show_expand'] ) {
558
559 ?><a id="wpbc_show_advanced_section_link_show"
560 class="wpbc_expand_section_link"
561 href="javascript:void(0)"
562 onclick="javascript:jQuery( '.version_update_<?php echo str_replace( array( '.', ' ' ), '_', $section_param_arr['version_num'] ); ?>' ).toggle();"
563 >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;"><?php echo $section_param_arr['version_num']; ?></span>
564 </a>
565 <div class="version_update_<?php echo str_replace( array( '.', ' ' ), '_', $section_param_arr['version_num'] ); ?>" style="display:none;">
566 <?php
567
568 }
569
570 ?><h2 style='font-size: 1.9em;text-align:left;'>What's New in Booking Calendar <span style="font-size: 1.1em;font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;"
571 ><?php echo $section_param_arr['version_num']; ?></span></h2><?php
572
573 }
574
575 function expand_section_end( $section_param_arr ){
576 if( $section_param_arr['show_expand'] ) {
577 ?></div><?php
578 }
579 }
580
581
582 function section_img_url( $relative_path_to_img ) {
583 return esc_url( $this->asset_path . $relative_path_to_img );
584 }
585
586 // =================================================================================================================
587
588 function section_9_8_css(){
589
590 ?><style type="text/css">
591 .about-wrap.wpbc-welcome-page {
592 position: relative;
593 margin: 25px 40px 0 20px;
594 max-width: 1050px;
595 font-size: 15px;
596 clear: both;
597 }
598 .wpbc_wn_container{
599 margin: 24px auto;
600 overflow: hidden;
601 }
602 .wpbc_wn_section{
603 display: flex;
604 flex-flow: row wrap;
605 justify-content: space-between;
606 align-content: flex-start;
607 align-items: flex-start;
608 font-size: 1.05em;
609 line-height: 2rem;
610 margin: 1em 0;
611 }
612 .wpbc_wn_col{
613 flex: 1 1 50%;
614 padding: 1.5em 2em;
615 box-sizing: border-box;
616 }
617 @media screen and (max-width: 782px) {
618 .wpbc_wn_col{
619 flex: 1 1 100%;
620 }
621 }
622 .wpbc_wn_separator{
623 flex: 1 1 100%;
624 }
625 .wpbc_wn_col * {
626 margin: 0;
627 line-height: 2.2em;
628 }
629 .wpbc_wn_section > h2,
630 .wpbc_wn_section > h3{
631 margin: 0 0 0.25em;
632 font-size: 2em;
633 line-height: 2.16em;
634 font-weight: 600;
635 flex: 1 1 100%;
636 text-align: center;
637 padding:0 1.5em;
638 }
639 .wpbc_wn_section h3 {
640 font-size: 1.25em;
641 text-align: left;
642 margin: 0.25em 0 0.5em;
643 }
644 .wpbc_wn_section img{
645 border-radius: 2px;
646 box-shadow: none;
647 width: 99%;
648 margin: 0.5em 0 auto;
649 padding: 3px;
650 background: #fff;
651 border: 1px solid #ccc;
652 }
653 .wpbc_wn_container .wpbc_hr_dots {
654 height: 1px;
655 border:none;
656 border-bottom: 0.5rem dotted #a9a9a9;
657 width: 3rem;
658 margin:0 auto;
659 clear: both:;
660 display: block;
661 position: relative;
662 }
663 </style>
664 <?php
665 }
666
667
668
669 // =================================================================================================================
670
671 function section_1_0_example(){
672
673 $section_param_arr = array( 'version_num' => '7.0', 'show_expand' => true );
674 $this->expand_section_start( $section_param_arr );
675
676 // Content here
677
678 $this->show_separator();
679 $this->expand_section_end( $section_param_arr );
680 }
681
682
683
684 public function content_getted_started() {
685
686 $this->css();
687
688 list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
689 ?>
690 <div class="wrap about-wrap wpbc-welcome-page">
691
692 <?php $this->title_section(); ?>
693
694 <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
695 <tr>
696 <td>
697 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about' ), 'index.php' ) ) ); ?>"
698 style="float: left; height: 36px; line-height: 34px;"
699 class="button-primary"
700 >&nbsp;<span style="font-size: 20px;line-height: 18px;padding-right: 5px;">&lsaquo;&lsaquo;&lsaquo;</span> <strong>What's New</strong>
701 </a>
702 </td>
703 <td style="width:50%">
704 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about-premium' ), 'index.php' ) ) ); ?>"
705 style="float: right; height: 36px; line-height: 34px;"
706 class="button-primary"
707 >&nbsp;<strong>Premium Features</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
708 </a>
709 </td>
710 </tr>
711 </table>
712
713 <h2 style='font-size: 2.1em;'>Get Started</h2>
714 <?php
715
716 ?><div style="text-align: center;"><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLabuVtqCh9dwLA5cpz1p2RrZOitLuVupR&amp;start=28&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
717
718 //$this->show_separator();
719
720 $this->show_col_section( array(
721 array( 'h4' => sprintf( 'Add booking form to your post or page' ),
722 'text' => '<ul style="margin:0px;">'
723 . '<li>' . sprintf( 'Open exist or add new %spost%s or %spage%s'
724 , '<a href="' . admin_url( 'edit.php' ) . '">', '</a>'
725 , '<a href="' . admin_url( 'edit.php?post_type=page' ) . '">', '</a>' ) . '</li>'
726 . '<li>' . sprintf( ' Click on Booking Calendar icon *(button with calendar icon at toolbar)*' ) . '</li>'
727 . '<li>' . sprintf( ' In popup dialog select your options, and insert shortcode' ) . '</li>'
728 . '<li>' . sprintf( ' Publish or update page' ) . '</li>'
729 . '<li>' . sprintf( ' Now your visitors can see and make bookings at the booking form' ) . '</li>'
730 . '</ul>'
731 )
732 , array( 'img' => 'get-started/booking-calendar-insert-form.png', 'img_style'=>'margin: 20px;width:75%;float:right;' )
733 )
734 );
735 $this->show_col_section( array(
736
737 array(
738 'text' =>
739 '<p class="">'
740 . sprintf( 'Or add Booking Calendar %s**widget**%s to your sidebar.', '<a href="' . admin_url( 'widgets.php' ) . '">', '</a>' )
741 . '</p>'
742 . '<p>' . sprintf( 'If you need to add shortcode manually, you can read how to add it %shere%s.',
743 '<a href="https://wpbookingcalendar.com/faq/booking-calendar-shortcodes/">', '</a>')
744 . '</p>'
745 . '<p>' . sprintf( '* **Note.** You can add new booking(s) also from the admin panel (Booking > Add booking page).*' )
746 . '</p>'
747 )
748 , array( 'img' => 'get-started/booking-calendar-add-widget.png', 'img_style'=>'margin:0 20px;width:75%;float:right;' )
749
750 ) );
751
752 ?>
753 <div class="feature-section two-col">
754 <div class="col col-1 last-feature" style="margin-top: 0px;width:59%">
755 <h4><?php printf( 'Check and manage your bookings' ); ?></h4>
756 <p><?php echo wpbc_replace_to_strong_symbols( 'After email notification about new booking(s), you can check and **approve** or **decline** your **booking(s)** in **responsive**, modern and **easy to use Booking Admin Panel**.'); ?></p>
757
758 </div>
759 </div>
760 <img src="<?php echo $this->asset_path; ?>get-started/booking-listing_350.png" style="float:left;border:none;box-shadow: 0 1px 3px #777777;margin:1% 2%;width:72.3%;" />
761 <img src="<?php echo $this->asset_path; ?>get-started/booking-listing-mobile_350.png" style="float:left;border:none;box-shadow: 0 1px 3px #777777;margin: 1% 1% 1% 0;width:19.1%;" />
762 <div class="clear"></div>
763
764 <p style="text-align:center;"><?php echo wpbc_replace_to_strong_symbols( 'or get clear view to **all your bookings in** stylish **Calendar Overview** mode, that looks great on any device'); ?></p>
765 <img src="<?php echo $this->asset_path; ?>get-started/booking-calendar-overview.png" style="border:none;box-shadow: 0 1px 3px #777777;margin: 2%;width:94%;display:block;" />
766 <div class="clear"></div>
767
768
769 <h2 style='font-size: 2.1em;margin-top:50px;'><?php printf( 'Next Steps' ); ?></h2>
770 <?php
771
772 $this->show_separator();
773
774 $this->show_col_section( array(
775 array( 'h4' => sprintf( 'Configure different settings' ),
776 'text' => '<ul style="margin:0px;">'
777
778 . '<li>' . sprintf( 'Select your calendar skin, for natively fit to your website design.' ) . '</li>'
779 . '<li>' . sprintf( 'Configure number of month(s) in calendar.' ) . '</li>'
780 . '<li>' . sprintf( 'Set single or multiple days selection mode.' ) . '</li>'
781 . '<li>' . sprintf( 'Set specific weekday(s) as unavailable.' ) . '</li>'
782 . '<li>' . sprintf( 'Customize calendar legend.' ) . '</li>'
783 . '<li>' . sprintf( 'Enable CAPTCHA.' ) . '</li>'
784 . '<li>' . sprintf( 'Set redirection to the "Thank you" page, after the booking process.' ) . '</li>'
785 . '<li>' . sprintf( 'Configure different settings for your booking admin panel.' ) . '</li>'
786 . '<li>' . sprintf( 'And much more ...' ) . '</li>'
787
788 . '</ul>'
789 )
790 , array( 'img' => 'get-started/settings-general.png', 'img_style'=>'margin: 20px;width:75%;float:right;' )
791 )
792 );
793
794 ?><div clas="clear"></div><?php
795
796 $this->show_col_section( array(
797 array( 'h4' => sprintf( 'Customize booking form fields and email templates' ),
798 'text' => '<ul style="margin:0px;">'
799
800 . '<li>' . sprintf( 'Activate or deactivate specific form fields in your booking form.' ) . '</li>'
801 . '<li>' . sprintf( 'Configure labels in your booking form near form fields.' ) . '</li>'
802 . '<li>' . sprintf( 'Set specific form fields as required.' ) . '</li>'
803 . '<li style="margin-top:30px;">' . sprintf( 'Activate or deactivate specific email(s).' ) . '</li>'
804 . '<li>' . sprintf( 'Customize your email templates.' ) . '</li>'
805 . '<li style="margin-top:30px;">' . sprintf( 'Or even activate and configure <strong>import</strong> of <strong>Google Calendar Events</strong>.' ) . '</li>'
806 . '<li style="margin-top:30px;">' . sprintf( 'And much more ...' ) . '</li>'
807
808 . '</ul>'
809 // . '<h4>' . sprintf( 'Or even activate importing events from Google Calendar' ) . '</h4>'
810
811 )
812 , array( 'img' => 'get-started/settings-fields.png', 'img_style'=>'margin: 20px;width:75%;float:right;' )
813 )
814 );
815
816 ?>
817
818 <h2 style='font-size: 2.1em;;margin-top:20px;'><?php printf( 'Have a questions?' ); ?></h2>
819 <?php
820
821 $this->show_separator();
822
823 $this->show_col_section( array(
824 array(
825 'text' => '<span>' . sprintf( 'Check out our %sHelp%s', '<a href="https://wpbookingcalendar.com/help/" target="_blank" >', '</a>' ) . '</span>'
826 . '<p>' . sprintf( 'See %sFAQ%s', '<a href="https://wpbookingcalendar.com/faq/" target="_blank">', '</a>' ) . '</p>'
827 )
828 , array(
829 'text' => '<strong>' . sprintf( 'Still having questions?' ) . '</strong>'
830 . '<p>' . sprintf( 'Check our %sForum%s or contact %sSupport%s', '<a href="https://wpbookingcalendar.com/support/" target="_blank">', '</a>', '<a href="https://wpbookingcalendar.com/contact/" target="_blank">', '</a>' ) . '</p>'
831 )
832 , array(
833 'text' => '<strong>' . sprintf( 'Need even more functionality?' ) . '</strong>'
834 . '<p>' . sprintf( ' Check %shigher versions%s of Booking Calendar', '<a href="https://wpbookingcalendar.com/features/" target="_blank">', '</a>' ) . '</p>'
835
836 )
837
838 )
839 );
840
841 ?>
842 <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
843 <tr>
844 <td>
845 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about' ), 'index.php' ) ) ); ?>"
846 style="float: left; height: 36px; line-height: 34px;"
847 class="button-primary"
848 >&nbsp;<span style="font-size: 20px;line-height: 18px;padding-right: 5px;">&lsaquo;&lsaquo;&lsaquo;</span> <strong>What's New</strong>
849 </a>
850 </td>
851 <td style="width:50%">
852 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about-premium' ), 'index.php' ) ) ); ?>"
853 style="float: right; height: 36px; line-height: 34px;"
854 class="button-primary"
855 >&nbsp;<strong>Premium Features</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
856 </a>
857 </td>
858 </tr>
859 </table>
860
861 </div>
862 <?php
863 }
864
865
866 public function content_premium() {
867
868 $this->css();
869
870 list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
871
872 // $upgrade_link = esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-about-premium' ), 'index.php' ) ) );
873
874 ?>
875 <div class="wrap about-wrap wpbc-welcome-page">
876
877 <?php $this->title_section(); ?>
878
879 <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
880 <tr>
881 <td>
882 <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>"
883 style="float: left; height: 36px; line-height: 34px;"
884 class="button-primary"
885 >&nbsp;<span style="font-size: 20px;line-height: 18px;padding-right: 5px;">&lsaquo;&lsaquo;&lsaquo;</span> <strong>Get Started</strong>
886 </a>
887 </td>
888 <td style="width:50%">
889 <a class="button button-primary" style="font-weight: 600;float: right; height: 36px; line-height: 34px;" href="<?php echo wpbc_up_link(); ?>" target="_blank">&nbsp;<?php if ( wpbc_get_ver_sufix() == '' ) { _e('Purchase' ,'booking'); } else { _e('Upgrade Now' ,'booking'); } ?>&nbsp;&nbsp;</a>
890 </td>
891 </tr>
892 </table>
893 <?php
894
895 echo '<div style="color: #999;font-size: 24px;margin-top: 0px;text-align: center;width: 100%;">';
896 echo 'Get even more functionality with premium versions...';
897 echo '</div>';
898
899
900
901 // echo '<div class="clear" style="height:30px;"></div>';
902 ?><div style="text-align: center;margin:20px 0;"><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLabuVtqCh9dyc_EO8L_1FKJyLpBuIv21_&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
903
904 $this->show_header('Booking Calendar Personal version'
905 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://personal.wpbookingcalendar.com/admin-panel/" target="_blank"'
906 . '> **Live Demo** *Admin Panel*</a>'
907 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://personal.wpbookingcalendar.com/" target="_blank"'
908 . '> **Live Demo** *Front End*</a><div class="clear"></div>'
909 , 'h2', 'line-height: 1.5em;padding:5px 15px 5px 0;font-weight: 600;font-size: 2em;background: none;color: #444;' );
910
911
912 echo $this->get_img( 'premium/admin-panel-calendar-overvew4.png', 'margin:15px auto; width: 98%;' );
913
914 $this->show_separator();
915
916 $this->show_col_section( array(
917 array( 'h4' => 'Unlimited number of **Booking Resources**',
918 'text' =>
919 '<p>Booking resources - it\'s your **services** or **properties** *(like houses, cars, tables, etc...)*, that can be booked by visitors of your website.</p>'
920 . '<p>Each booking resource have own unique calendar *(with booking form)*, which will **prevent of double bookings** for the same date(s).</p>'
921 . '<p>It\'s means that you can **receive bookings and show unavailable, booked dates** in different calendars **for different booking resources** *(services or properties)*.</p>'
922
923 . $this->get_img( 'premium/2-booking-forms.png', 'margin:0 0 10px 0; width: 97%;' )
924
925 .'<p>You can add/delete/modify your booking resources at the Booking > Resource page.
926 You can define the calendar *(booking form)* to the specific booking resources,
927 at the popup configuration dialog, during inserting booking shortcode into post or page.</p>'
928
929 )
930 , array( 'img' => 'premium/booking-resources.png', 'img_style'=>'margin-top:40px;width:95%;' )
931 )
932 );
933
934
935
936 $this->show_col_section( array(
937
938 array( 'h4' => 'Configure Booking Form and Email Templates',
939 'text' =>
940 '**Booking Form**<br />'
941 . '<p>Configure any format and view of your booking form *(for example two columns view, with calendar in left column and form fields at right side, etc...)*</p>'
942 . '<p>Add **any number of new form fields** *(text fields, drop down lists, radio-buttons, check-boxes or textarea elements, etc...)*</p>'
943 . '<br />**Email Templates**<br />'
944 . '<p>You can activate and configure email templates for the different booking actions with shortcodes for any exist form fields and some other system shortcodes *(like inserting address of the page (or user IP), where user made this action)*.</p>'
945 )
946 , array( 'img' => 'premium/booking-form-fields.png', 'img_style'=>'margin-top:20px;width:95%;' )
947 )
948 );
949
950 $this->show_col_section( array(
951 array( 'h4' => 'Manage Bookings',
952 'text' =>
953 //'You can edit the exist bookings, add notes to the bookings, print and export bookings to the CSV format, etc...'
954 '<ul>
955 <li style="margin-left: 1em;">**Edit** your bookings by changing details or dates of specific booking</li>
956 <li style="margin-left: 1em;">**Duplicate** booking in other booking resource</li>
957 <li style="margin-left: 1em;">**Change resource** for exist booking</li>
958 <li style="margin-left: 1em;">Add **notes** to bookings for do not forget important info</li>
959 <li style="margin-left: 1em;">**Print** booking listings</li>
960 <li style="margin-left: 1em;">**Export** bookings to the **CSV format**</li>
961 <li style="margin-left: 1em;">**Import** bookings from **Google Calendar**</li>
962 <li style="margin-left: 1em;">**Sync bookings via .ics feeds**, as well</li>
963 <li style="margin-left: 1em;">And much more...</li>
964 </ul>'
965 )
966 , array( 'img' => 'premium/booking-actions-buttons.png', 'img_style'=>'margin-top:20px;width:95%;' )
967 )
968 );
969
970 $this->show_separator();
971
972 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.95em;font-style:italic;text-align:right;margin:5px 0 10px;">Check many other nice features in Booking Calendar Personal version at <a target="_blank" href="https://wpbookingcalendar.com/features/">features list</a> and test <a target="_blank" href="https://wpbookingcalendar.com/demo/">live demo</a>.</div>' );
973
974 ?><div class="clear" style="height:30px;"></div><?php
975
976 $this->show_header('Booking Calendar Business Small version'
977 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bs.wpbookingcalendar.com/admin-panel/" target="_blank"'
978 . '> **Live Demo** *Admin Panel*</a>'
979 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bs.wpbookingcalendar.com/" target="_blank"'
980 . '> **Live Demo** *Front End*</a><div class="clear"></div>'
981 , 'h2', 'line-height: 1.5em;padding:5px 15px 5px 0;font-weight: 600;font-size: 2em;background: none;color: #444;' );
982
983
984 $this->show_separator();
985
986 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.85em;font-style: italic;margin: 5px 0 0 10px;">**Note!** This version support **all functionality** from the Booking Calendar **Personal** version.</div>' );
987
988
989 $this->show_col_section( array(
990 array( 'h4' => 'Advanced Hourly Bookings',
991 'text' =>
992 '<p>Add ability to make bookings for specific **times** *(in addition to timeslots bookings, the bookings for specific start time and time duration or start time and end time, as well)*.</p>'
993 . '<p>Configure selections or entering any times interval *(several hours or few minutes)* at the Booking > Settings > Fields page:'
994 .'<ul>
995 <li style="margin-left: 1em;">Start time and end **time entering** in *"time text fields"*</li>
996 <li style="margin-left: 1em;">Selections **start time and end time**</li>
997 <li style="margin-left: 1em;">Selections **start time and duration** of time</li>
998 <li style="margin-left: 1em;">Selections specific time in **timeslot** list</li>
999 </ul></p>'
1000
1001 .'<p>**Please note**, if you will make the booking for specific timeslot, this timeslot become unavailable for the other visitors for this selected date.</p>'
1002
1003 .'<p>You can even activate booking of same timeslot in the several selected dates during the same booking session.</p>'
1004 )
1005 , array( 'img' => 'premium/time-slots-booking.png', 'img_style'=>'margin:20px 25% auto;width:50%;' )
1006 )
1007 );
1008
1009 $this->show_col_section( array(
1010 array( 'h4' => 'Online Payments',
1011 'text' =>
1012 '<p>' . 'You can set cost per specific booking resource and activate online payments' . '</p>'
1013 . '<p>' . 'Suport Payment Gateways:'
1014 .'<ul>
1015 <li style="margin-left: 1em;">**Stripe**</li>
1016 <li style="margin-left: 1em;">PayPal Standard</li>
1017 <li style="margin-left: 1em;">PayPal Pro Hosted Solution *(note, its doesn\'t PayPal Pro)*</li>
1018 <li style="margin-left: 1em;">Authorize.Net *(Server Integration Method (SIM))*</li>
1019 <li style="margin-left: 1em;">Sage Pay</li>
1020 <li style="margin-left: 1em;">iDEAL via Buckaroo (former Sisow)</li>
1021 <li style="margin-left: 1em;">iPay88</li>
1022 <li style="margin-left: 1em;">Direct/wire bank transfer</li>
1023 <li style="margin-left: 1em;">Cash payments</li>
1024 </ul></p>'
1025 .'<p>' . 'You can activate and configure these gateways at Booking > Settings > Payment page.' . '</p>'
1026 .'<p>' . '*You can even send payment request by email for specific booking*.' . '</p>'
1027 )
1028 , array( 'img' => 'premium/payment-buttons1.png', 'img_style'=>'margin:20px 0;width:99%;' )
1029 )
1030 );
1031
1032
1033
1034 $this->show_col_section( array(
1035 array( 'h4' => 'Change over days',
1036 'text' =>
1037 '<p>' . 'You can use the **same date** as **"check in/out"** for **different bookings**.' . '</p>'
1038
1039 . '<p>' . 'These **half booked days** will mark by vertical line *(as in <a href="http://bm.wpbookingcalendar.com/" targe="_blank">this live demo</a>)*.' . '</p>'
1040
1041 . '<p>' . 'It\'s means that your visitors can start new booking on the same date, where some old bookings was ending.' . '</p>'
1042
1043 . '<p>' . 'To activate this feature you need select *range days selection* or *multiple days selections* mode on the *General Booking Settings* page in calendar section.'
1044 . ' After this you can activate the *"Use check in/out time"* option and configure the check in/out times. For example, check in time as 14:00 and check out time as 12:00.' . '</p>'
1045
1046 . '<p>' . '**Tip**. You can also activate to show change-over days as triangles (diagonal lines), instead of showing them via vertical lines.' . '</p>'
1047 )
1048 , array( 'img' => 'premium/change-over-days2.png', 'img_style'=>'margin:20px 0;width:99%;' )
1049 )
1050
1051 );
1052
1053 $this->show_col_section( array(
1054 array( 'h4' => 'Range days selection',
1055 'text' =>
1056 '<p>' . 'Activate **several days selection with 1 or 2 mouse clicks** *(by selecting check in and check out dates, all middle days will be selected automatically)*.' . '</p>'
1057 . '<p>' . 'Its means that you can set only **week(s) selections** or any other number of days selections.' . '</p>'
1058 . '<p>' . 'Configure **specific number of days** selections for *range days selection with one mouse click*. '
1059 . 'Or set **minimum and maximum number of days** selections (or even several specific number of days) for *range days selection with two mouse clicks*.' . '</p>'
1060 . '<p>' . 'In addition you can **set start day(s)** selections for only **specific week days**.' . '</p>'
1061 )
1062 , array( 'img' => 'premium/range-days-settings.png', 'img_style'=>'margin:20px 0;width:99%;' )
1063 )
1064 );
1065
1066
1067
1068 $this->show_col_section( array(
1069 array( 'h4' => 'Auto Cancellation / Auto Approval',
1070 'text' =>
1071 '<p>' . 'You can activate **auto cancellation of all pending booking(s)**, which have no successfully paid status, after specific amount of time, when booking(s) was making.' . '</p>'
1072 . '<p>' . 'This feature will set dates again available for new booking(s) to other visitors.' . '</p>'
1073 . '<p>' . 'You can even activate sending of emails to the visitors, during such cancelation.' . '</p>'
1074 . '<p>' . 'Or you can activate **auto approval of all incoming bookings**.' . '</p>'
1075 )
1076 , array( 'img' => 'premium/auto-cancelation-settings.png', 'img_style'=>'margin:20px 0;width:99%;' )
1077 )
1078 );
1079
1080
1081
1082
1083 $this->show_separator();
1084
1085 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.95em;font-style:italic;text-align:right;margin:5px 0 10px;">Check many other nice features in Booking Calendar Business Small version at <a target="_blank" href="https://wpbookingcalendar.com/features/">features list</a> and test <a target="_blank" href="https://wpbookingcalendar.com/demo/">live demo</a>.</div>' );
1086
1087 ?><div class="clear" style="height:30px;"></div><?php
1088
1089 $this->show_header('Booking Calendar Business Medium version'
1090 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bm.wpbookingcalendar.com/admin-panel/" target="_blank"'
1091 . '> **Live Demo** *Admin Panel*</a>'
1092 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bm.wpbookingcalendar.com/" target="_blank"'
1093 . '> **Live Demo** *Front End*</a><div class="clear"></div>'
1094 , 'h2', 'line-height: 1.5em;padding:5px 15px 5px 0;font-weight: 600;font-size: 2em;background: none;color: #444;' );
1095
1096
1097 $this->show_separator();
1098
1099 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.85em;font-style: italic;margin: 5px 0 0 10px;">**Note!** This version support **all functionality** from the Booking Calendar **Business Small** version.</div>' );
1100
1101 $this->show_col_section( array(
1102 array( 'h4' => 'Season Availability',
1103 'text' =>
1104 '<p>' . 'You can set as **unavailable days** in your booking resources **for specific seasons**.' . '</p>'
1105 . '<p>' . 'Its useful, when you need to **block days for holidays** or any other seasons during a year.' . '</p>'
1106 . '<p>' . 'You can set days as conditional seasons filters *(for example, only weekends during summer)* or simply select range of days for specific seasons.' . '</p>'
1107 . '<p>' . 'Note, instead of definition days as unavailable, you can set all days unavailable and only days from specific season filer as available.' . '</p>'
1108 . '<p>' . '* **Configuration.** You can create season filters at the Booking > Resources > Filters page and then at the Booking > Resources > **Availability** page set days from specific season as unavailable for the specific booking resources.*' . '</p>'
1109 )
1110 , array( 'img' => 'premium/season-filters.png', 'img_style'=>'margin:20px 0;width:99%;' )
1111 )
1112 );
1113
1114 $this->show_col_section( array(
1115 array( 'h4' => 'Set available days interval depending from today date',
1116 'text' =>
1117 '<p>' . '**Limit available days from today** - defining specific number of available days, that start from today. All other future days will be unavailable. Also in any versions of Booking Calendar possible to define **Unavailable days from today** - defining specific number of unavailable days in calendar start from today. Its means that with these 2 options you can set interval of available days, that depending from today date.' . '</p>'
1118 )
1119 , array( 'h4' => 'Set unavailable minutes/hours/days before or after booking date/time',
1120 'text' =>
1121 '<p>' . 'This option is useful, if you need to define some unavailable time/days for cleaning or any other srvices before or after booking.' . '</p>'
1122 . '<p>' . 'Important! This feature is applying only for bookings for specific timeslots, or if activated change-over days feature. Its does not work for full booked days.' . '</p>'
1123 )
1124 )
1125 );
1126
1127
1128 $this->show_col_section( array(
1129 array( 'h4' => 'Set Rates for different Seasons',
1130 'text' =>
1131 '<p>' . 'Set different **daily cost (rates) for** different **seasons**.' . '</p>'
1132 . '<p>' . '*For example, you can have higher cost for the "High Season" or at weekends.*' . '</p>'
1133 . '<p>' . 'You can set rates as **fixed cost per day** (night) **or as percent** from original cost of booking resource.' . '</p>'
1134 . '<p>' . '* **Configuration.** You can set rates for your booking resources at Booking > Resources > **Cost and rates** page by clicking on **Rate** button.*' . '</p>'
1135 )
1136 , array( 'img' => 'premium/season-rates.png', 'img_style'=>'margin:20px 0;width:99%;' )
1137 )
1138 );
1139
1140 $this->show_col_section( array(
1141 array( 'h4' => 'Cost depends from number of selected days',
1142 'text' =>
1143 '<p>' . 'You can configure **different cost** for different **number of selected days**.' . '</p>'
1144 . '<p>' . '*For example, cost of second selected week, can be lower then cost of first week.*' . '</p>'
1145 . '<p>' . 'You can set **cost per day(s)** or **percentage** from the original cost:'
1146 .'<ul>
1147 <li style="margin-left: 2em;">**For** specific selected day number</li>
1148 <li style="margin-left: 2em;">**From** one day number **to** other selected day number</li>
1149 </ul>'
1150 . 'or you can set the **total cost** of booking for **all days**:'
1151 .'<ul>
1152 <li style="margin-left: 2em;">If selected, exactly specific number of days *(term "**Together**")*</li>
1153 </ul></p>'
1154 . '<p>' . 'In addition, you can even set applying this cost only, if the "Check In" day in specific season filter.' . '</p>'
1155 . '<p>' . '* **Configuration.** You can set rates for your booking resources at Booking > Resources > **Cost and rates** page by clicking on "**Valuation days**" button.*' . '</p>'
1156 )
1157 , array( 'img' => 'premium/valuation-days.png', 'img_style'=>'margin:20px 0;width:99%;' )
1158 )
1159 );
1160
1161
1162 $this->show_col_section( array(
1163 array( 'h4' => 'Early booking / Last minute booking discounts',
1164 'text' =>
1165 '<p>' . '**Last minute booking discounts.**' . '</p>'
1166 . '<p>' . 'Set discount, if difference between "today" and "check in" day **LESS** than N days.' . '</p>'
1167 . '<p>' . '**Early booking discount.**' . '</p>'
1168 . '<p>' . 'Set discount, if difference between "today" and "check in" day **MORE** than N days.' . '</p>'
1169 . '<p>' . 'You can set discounts as fixed cost or as percent from original cost of booking resource.' . '</p>'
1170 . '<p>' . '* **Configuration.** You can set these discounts for your booking resources at Booking > Resources > **Cost and rates** page by clicking on **Early / Late** button.*' . '</p>'
1171 )
1172 , array( 'img' => 'https://wpbookingcalendar.com/wp-content/uploads/2018/06/booking-calendar-early-booking-last-minute-discounts.png', 'img_style'=>'margin:20px 0;width:99%;' )
1173 )
1174 );
1175 $this->show_col_section( array(
1176 array( 'h4' => 'Cost depends from selection options in booking form',
1177 'text' =>
1178 '<p>' . 'You can set additional costs, like tax or some other additional charges *(cleaning, breakfast, etc...)*, or just increase the cost of booking depends from the visitor number selection in your booking form.' . '</p>'
1179 . '<p>' . 'Its means that you can set additional cost for any selected option(s) in select-boxes or checkboxes at your booking form.' . '</p>'
1180 . '<p>' . 'You can set fixed cost or percentage from the total booking cost or additional cost per each selected day or night.' . '</p>'
1181 . '<p>' . '* **Configuration.** Firstly you need to configure options selection in select-boxes or checkboxes in your booking form at Booking > Settings > Fields page, then you be able to configure additional cost for each such option at the Booking > Resources > **Advanced cost** page .*' . '</p>'
1182 . '<p>' . '* **Tip & Trick.** ' . 'You can **show cost hints** separately for the each items, that have additional cost *at Booking > Resources > Advanced cost page*.
1183 <br>For example, if you have configured additional cost for **my_tax** option at **Advanced cost page**,
1184 then in booking form you can use this shortcode <code>[my_tax_hint]</code> to show additional cost of this specific option.
1185 <br>Add **"_hint"** term to name of shortcode for creation hint shortcode. *'
1186 .'</p>'
1187 )
1188 , array( 'img' => 'premium/advanced-cost.png', 'img_style'=>'margin:20px 0;width:99%;' )
1189 )
1190 );
1191
1192 $this->show_col_section( array(
1193 array( 'h4' => 'Deposit payments',
1194 'text' =>
1195 '<p>' . 'You can activate ability to **pay deposit (part of the booking cost)**, after visitor made the booking. ' . '</p>'
1196 . '<p>' . 'It\'s possible to set fixed deposit value or percent from the original cost for the specific booking resource.' . '</p>'
1197 . '<p>' . 'You can even activate to show deposit payment form, only when the difference between *"today"* and *"check in"* days more than specific number of days. Or if *"check in"* day inside of specific season.' . '</p>'
1198 . '<p>' . '* **Configuration.** You can activate and configure **deposit** value for specific booking resources at the Booking > Resources > **Cost and rates** page by clicking on "**Deposit amount**" button.*' . '</p>'
1199 )
1200 , array( 'img' => 'premium/deposit-settings.png', 'img_style'=>'margin:20px 0;width:99%;' )
1201 )
1202 );
1203
1204
1205 $this->show_col_section( array(
1206 array( 'h4' => 'Multiple Custom Booking Forms',
1207 'text' =>
1208 '<p>' . 'You can create **several custom forms** configurations.' . '</p>'
1209 . '<p>' . 'Its means that you can have the different booking forms *(which have the different form fields)* for different booking resources.' . '</p>'
1210 . '<p>' . 'You can also set specific custom form as **default booking form to** each of your **booking resources** at Booking > Resources page.' . '</p>'
1211 . '<p>' . '* **Configuration.** You can create several custom booking forms at the Booking > Settings > **Fields** page by clicking on **"Add new Custom Form"** button.*' . '</p>'
1212 )
1213 , array( 'img' => 'https://wpbookingcalendar.com/wp-content/uploads/2018/01/custom-booking-forms.png', 'img_style'=>'margin:20px 0;width:99%;' )
1214 )
1215 );
1216
1217
1218 $this->show_col_section( array(
1219 array( 'h4' => 'Advanced days selection',
1220 'text' =>
1221 '<p>' . 'Specify that on **specific week days** (or during certain seasons), the specific minimum (or fixed) **number of days** must be booked.'
1222 . '<br/>*For example: visitor can select only 3 days starting at Friday and Saturday, 4 days – Friday, 5 days – Monday, 7 days – Saturday, etc...*' . '</p>'
1223
1224 . '<p>' . 'Also, you can define **specific week day(s) as start day** in calendar selection for the **specific season**.'
1225 . '<br/>*For example, in "High Season", you can allow start day selection only at Friday in the "Low Season" to start day selection from any weekday.*' . '</p>'
1226
1227 . '<p>' . '*Read more about this configuration <a href="https://wpbookingcalendar.com/faq/booking-calendar-shortcodes/" targe="_blank">here</a> (at **options** parameter section).*' . '</p>'
1228
1229 )
1230
1231 , array( 'h4' => 'Different time slots for different days',
1232 'text' =>
1233 '<p>' . 'This feature provide ability to use the **different time slots selections** in the booking form **for different selected week days or seasons**.' . '</p>'
1234 . '<p>' . 'Each week day (day of specific season filter) can have different time slots list.' . '</p>'
1235
1236 . '<p>' . 'You can check more info about this configuration at <a href="https://wpbookingcalendar.com/faq/different-time-slots-selections-for-different-days/" targe="_blank">this page</a>.' . '</p>'
1237 . '<p>' . '**Note.** In the same way you can configure showing any different form fields, not only timeslots.' . '</p>'
1238 )
1239 )
1240 );
1241
1242 $this->show_separator();
1243
1244 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.95em;font-style:italic;text-align:right;margin:5px 0 10px;">Check many other nice features in Booking Calendar Business Medium version at <a target="_blank" href="https://wpbookingcalendar.com/features/">features list</a> and test <a target="_blank" href="https://wpbookingcalendar.com/demo/">live demo</a>.</div>' );
1245
1246 ?><div class="clear" style="height:30px;"></div><?php
1247
1248 $this->show_header('Booking Calendar Business Large version'
1249 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bl.wpbookingcalendar.com/admin-panel/" target="_blank"'
1250 . '> **Live Demo** *Admin Panel*</a>'
1251 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://bl.wpbookingcalendar.com/" target="_blank"'
1252 . '> **Live Demo** *Front End*</a><div class="clear"></div>'
1253 , 'h2', 'line-height: 1.5em;padding:5px 15px 5px 0;font-weight: 600;font-size: 2em;background: none;color: #444;' );
1254
1255
1256 $this->show_separator();
1257
1258 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.85em;font-style: italic;margin: 5px 0 0 10px;">**Note!** This version support **all functionality** from the Booking Calendar **Business Medium** version.</div>' );
1259
1260 $this->show_col_section( array(
1261 array( 'h4' => 'Capacity and Availability',
1262 'text' =>
1263 '<p>' . 'You can receive **several specific number of bookings per same days**. ' . '</p>'
1264 .'<p>' . 'Define **capacity** for your **booking resource(s)**,
1265 and then **dates** in calendar will be **available until number of bookings less than capacity** of the booking resource.' . '</p>'
1266
1267 .'<p>' . '**Note!** Its possible to make reservation only for **entire date(s)**, not a time slots
1268 *(data about time slots for booking resources with capacity higher than one, will be record into your DB, but do not apply to availability)*.' . '</p>'
1269 . '<p>' . '* **Configuration.** Set capacity of booking resources at Booking > **Resources** page. You can read more info about configurations of booking resources, capacity and availability at <a href="https://wpbookingcalendar.com/faq/booking-resource/" target="_blank">this page</a>.*' . '</p>'
1270 )
1271 , array( 'img' => 'premium/capacity3.png', 'img_style'=>'margin:20px 0;width:99%;' )
1272 )
1273 );
1274
1275
1276 $this->show_col_section( array(
1277 array( 'h4' => 'Search Availability',
1278 'text' =>
1279 '<p>' . 'Your visitors can even **search available booking resources** (properties or services) **for specific dates** *(like in this <a href="http://bl.wpbookingcalendar.com/search/" target="_blank">live demo</a>)*.' . '</p>'
1280 .'<p>' . 'Beside standard parameters: **check in** and **check out** dates, number of **visitors**, you can define **additional parameters** for your search form *(for example, searching property with specific amenities)*.
1281 <br />You can read more about this configurations at <a href="https://wpbookingcalendar.com/faq/selecting-tags-in-search-form/" target="_blank">FAQ</a>.' . '</p>'
1282 .'<p>' . '**Note!** Plugin will search only among pages with booking forms for *<a href="https://wpbookingcalendar.com/faq/booking-resource/" target="_blank">single or parent</a>* booking resources. You need to insert one booking form per page.' . '</p>'
1283 . '<p>' . '* **Configuration.** Customize your **search form** and **search results** at Booking > Settings > **Search** page.
1284 After that you can <a href="https://wpbookingcalendar.com/faq/booking-calendar-shortcodes/" target="_blank">insert search form</a> shortcode into page and test.*' . '</p>'
1285
1286 )
1287 , array( 'img' => 'premium/search-results2.png', 'img_style'=>'margin:20px 0;width:99%;' )
1288 )
1289 );
1290
1291 $this->show_col_section( array(
1292 array( 'h4' => 'Coupons for Discounts',
1293 'text' =>
1294 '<p>' . 'You can provide **discounts for bookings** to your visitors. Your visitors can **enter coupon codes** in booking form to **get discount** for booking(s).' . '</p>'
1295 .'<p>' . 'Its possible to create coupon code(s), which will apply to all or specific booking resources.
1296 You can set **expiration date** of coupon code and **minimum cost** of booking, where this coupon code will apply.
1297 <br/>You can define discount as **fixed cost** or as **percentage** from the total cost of booking.
1298 ' . '</p>'
1299 . '<p>' . '* **Configuration.** Create your coupons codes for discounts at Booking > Resources > **Coupons** page.
1300 Then insert <a href="https://wpbookingcalendar.com/faq/booking-form-fields/" target="_blank">coupon text field</a> into your booking form at Booking > Settings > Fields page.*' . '</p>'
1301
1302 )
1303 , array( 'img' => 'premium/coupons.png', 'img_style'=>'margin:2px 0;width:99%;' )
1304 )
1305 );
1306
1307 $this->show_col_section( array(
1308 array( 'h4' => 'Automatic cancellation of pending bookings',
1309 'text' =>
1310 // '<p>' . 'Set **pending days as available** in booking form to prevent from SPAM bookings.' . '</p>'
1311 '<p>' . 'Activate **automatic cancelation** of **pending bookings** for specific date(s), if you **approved booking** on these date(s) at same booking resource.' . '</p>'
1312 . '<p>' . '*You can activate this feature at the General Booking Settings page in "Advanced" section.*' . '</p>'
1313 )
1314 , array( 'img' => 'premium/pending-available.png', 'img_style'=>'margin:40px 0;width:99%;' )
1315 )
1316 );
1317
1318
1319
1320 $this->show_separator();
1321
1322 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.95em;font-style:italic;text-align:right;margin:5px 0 10px;">Check many other nice features in Booking Calendar Business Large version at <a target="_blank" href="https://wpbookingcalendar.com/features/">features list</a> and test <a target="_blank" href="https://wpbookingcalendar.com/demo/">live demo</a>.</div>' );
1323
1324 ?><div class="clear" style="height:30px;"></div><?php
1325
1326 $this->show_header('Booking Calendar MultiUser version'
1327 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://multiuser.wpbookingcalendar.com/admin-panel/" target="_blank"'
1328 . '> **Live Demo** *Admin Panel*</a>'
1329 . '<a class="button-secondary" style="float: right; height: 36px; line-height: 34px;margin:6px 1em;" href="http://multiuser.wpbookingcalendar.com/" target="_blank"'
1330 . '> **Live Demo** *Front End*</a><div class="clear"></div>'
1331 , 'h2', 'line-height: 1.5em;padding:5px 15px 5px 0;font-weight: 600;font-size: 2em;background: none;color: #444;' );
1332
1333
1334 $this->show_separator();
1335
1336 echo wpbc_replace_to_strong_symbols( '<div style="font-size: 0.85em;font-style: italic;margin: 5px 0 0 10px;">**Note!** This version support **all functionality** from the Booking Calendar **Business Large** version.</div>' );
1337
1338 $this->show_col_section( array(
1339 array( 'h4' => 'Separate Booking Admin Panels for your Users',
1340 'text' =>
1341 '<p>' . 'You can activate **independent booking admin panels** for each registered wordpress **users of your website** *(withing one website)*. ' . '</p>'
1342 . '<p>' . 'Such users *(**owners**)* can **see and manage only own bookings** and booking resources.
1343 Other active users *(owners)* will not see the bookings from this owner, they can see only own bookings.' . '</p>'
1344
1345 . '<p>' . 'Each *owner* can **configure own booking form** and **own email templates**, activate and configure payment gateways to **own payment account**.
1346 <br />Such users will receive notifications about new bookings to own emails and can approve or decline such bookings.
1347 ' . '</p>'
1348
1349 . '<p>' . 'There are 2 types of the users: **super booking admin** and **regular users**.
1350 Super booking admins can see and manage the bookings and booking resources from any users. Super booking admin can activate and manage status of other users.' . '</p>'
1351
1352 . '<p>' . 'You can read more about the initial configuration at <a href="https://wpbookingcalendar.com/faq/multiuser-version-init-config/" target="_blank">FAQ</a>.' . '</p>'
1353
1354 )
1355 , array( 'img' => 'premium/users2.png', 'img_style'=>'margin-top:20px;width:95%;' )
1356 )
1357 );
1358
1359 $this->show_separator();
1360
1361 ?><div class="clear" style="height:30px;"></div><?php
1362
1363
1364 ?>
1365 <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1.1em;width:100%;" >
1366 <tr>
1367 <td>
1368 <?php
1369 printf( 'Start using %scurrent version%s of Booking Calendar or upgrade to higher version'
1370 , '<a class="button-secondary" style="height: 36px; line-height: 32px;font-size:15px;margin-top: -3px;" href="'
1371 . wpbc_get_bookings_url() .'" >'
1372 , '</a>'
1373 );
1374 ?>
1375 <a class="button button-primary" style="font-weight: 600; height: 36px; line-height: 32px;font-size:15px;margin-top: -3px;" href="<?php echo wpbc_up_link(); ?>" target="_blank">&nbsp;<?php if ( wpbc_get_ver_sufix() == '' ) { _e('Purchase' ,'booking'); } else { _e('Upgrade Now' ,'booking'); } ?>&nbsp;&nbsp;</a>
1376 </td>
1377 </tr>
1378 </table>
1379
1380 </div>
1381 <?php
1382 }
1383
1384 }
1385
1386 $wpbc_welcome = new WPBC_Welcome();