PluginProbe
Booking Calendar / 11.8.4
Booking Calendar v11.8.4
11.8.4 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 All 204 releases
← All changes | core/class/wpbc-class-welcome.php +265 -1181 10.1.311.8.4 View file →
@@ -5,347 +5,206 @@
5 5 * Adapted from code in EDD (Copyright (c) 2012, Pippin Williamson) and WP.
6 6 * @version 2.0.0
7 7 */
8 8
9 -// Exit if accessed directly
10 -if ( !defined( 'ABSPATH' ) ) exit;
9 +// Exit if accessed directly.
10 +if ( ! defined( 'ABSPATH' ) ) {
11 + exit;
12 +}
11 13
12 14 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 {
15 17
16 -class WPBC_Welcome {
18 + /**
19 + * Minimum capability, such as 'read' or 'manage_options'
20 + * @var string
21 + */
22 + public $minimum_capability = 'read';
17 23
18 - public $minimum_capability = 'read'; //'manage_options';
19 -
20 - public $asset_path = 'https://wpbookingcalendar.com/assets/';
21 - //public $asset_path = 'http://beta/assets/';
24 + /**
25 + * Path to images.
26 + * @var string
27 + */
28 + public $asset_path = ( true ) ? 'https://wpbookingcalendar.com/assets/' : 'http://beta/assets/';
22 29
30 + /**
31 + * Constructor
32 + */
33 + public function __construct() {
23 34
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' ) );
35 + add_action( 'admin_menu', array( $this, 'admin_menus' ) );
28 36
29 - add_action( 'wpbc_premium_content_overview', array( $this, 'content_premium' ) );
37 + add_action( 'admin_init', array( $this, 'welcome' ) );
30 38
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 - }
39 + add_action( 'load-dashboard_page_wpbc-about', array( $this, 'wpbc_define_page_title_about' ) );
40 + }
35 41
36 - public function wpbc_define_page_title_about() { //FixIn: 9.6.2.12
42 + public function wpbc_define_page_title_about() { // FixIn: 9.6.2.12.
37 43 global $title;
38 44 if ( ! isset( $title ) ) {
39 45 $title = 'Welcome to Booking Calendar';
40 46 }
41 47 }
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';
48 +
49 + public function show_separator() {
50 + echo '<div class="clear" style="height:1px;border-bottom:1px solid #DFDFDF;"></div>';
51 + }
52 +
53 + public function show_header( $text = '', $header_type = 'h3', $style = '' ) {
54 + echo '<', esc_attr( $header_type );
55 + if ( ! empty( $style ) ) {
56 + echo " style='" . esc_attr( $style ) . "'";
46 57 }
58 + echo '>';
59 + echo wp_kses_post( wpbc_replace_to_strong_symbols( $text ) );
60 + echo '</', esc_attr( $header_type ), '>';
47 61 }
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';
62 +
63 + public function show_col_section( $sections_array = array() ) {
64 +
65 + $columns_num = count( $sections_array );
66 +
67 + if ( isset( $sections_array['h3'] ) ) {
68 + $columns_num --;
52 69 }
53 - }
70 + if ( isset( $sections_array['h2'] ) ) {
71 + $columns_num --;
72 + }
73 + ?>
74 + <div class="changelog"><?php
54 75
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;
76 + if ( isset( $sections_array['h3'] ) ) {
77 + echo "<h3>" . wp_kses_post( wpbc_replace_to_strong_symbols( $sections_array['h3'] ) ) . "</h3>";
78 + unset( $sections_array['h3'] );
64 79 }
65 - .feature-section.two-col .col.col-1{
66 - width:100%;
80 + if ( isset( $sections_array['h2'] ) ) {
81 + echo "<h2>" . wp_kses_post( wpbc_replace_to_strong_symbols( $sections_array['h2'] ) ) . "</h2>";
82 + unset( $sections_array['h2'] );
67 83 }
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 84
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;
85 + ?>
86 + <div class="feature-section <?php
87 + if ( $columns_num == 2 ) {
88 + echo ' two-col';
143 89 }
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 - }
90 + if ( $columns_num == 3 ) {
91 + echo ' three-col';
92 + } ?>">
93 + <?php
94 + foreach ( $sections_array as $section_key => $section ) {
95 + $col_num = ( $section_key + 1 );
96 + if ( $columns_num == $col_num ) {
97 + $is_last_feature = ' last-feature ';
98 + } else {
99 + $is_last_feature = '';
100 + }
171 101
172 - </style><?php
173 - }
174 - // SUPPORT /////////////////////////////////////////////////////////////////
102 + // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
103 + echo "<div class='col col-{$col_num}{$is_last_feature}'>";
175 104
176 - public function show_separator() {
177 - ?><div class="clear" style="height:1px;border-bottom:1px solid #DFDFDF;"></div><?php
178 - }
105 + if ( isset( $section['header'] ) ) {
106 + echo "<h4>" . wp_kses_post( wpbc_replace_to_strong_symbols( $section['header'] ) ) . "</h4>";
107 + }
108 + if ( isset( $section['h4'] ) ) {
109 + echo "<h4>" . wp_kses_post( wpbc_replace_to_strong_symbols( $section['h4'] ) ) . "</h4>";
110 + }
111 + if ( isset( $section['h3'] ) ) {
112 + echo "<h3>" . wp_kses_post( wpbc_replace_to_strong_symbols( $section['h3'] ) ) . "</h3>";
113 + }
114 + if ( isset( $section['h2'] ) ) {
115 + echo "<h2>" . wp_kses_post( wpbc_replace_to_strong_symbols( $section['h2'] ) ) . "</h2>";
116 + }
117 + if ( isset( $section['text'] ) ) {
118 + echo wp_kses_post( wpbc_replace_to_strong_symbols( $section['text'] ) );
119 + }
120 + if ( isset( $section['img'] ) ) {
179 121
122 + $is_full_link = strpos( $section['img'], 'http' );
123 + if ( false === $is_full_link ) {
124 + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
125 + echo '<img src="' . esc_url( $this->asset_path . $section['img'] ) . '" ';
126 + } else {
127 + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
128 + echo '<img src="' . esc_url( $section['img'] ) . '" ';
129 + }
130 + if ( isset( $section['img_style'] ) ) {
131 + echo ' style="' . esc_attr( $section['img_style'] ) . '" ';
132 + }
133 + echo ' class="wpbc-section-image" />';
134 + }
180 135
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 - }
136 + echo "</div>";
137 + }
138 + ?>
139 + </div>
140 + </div>
141 + <?php
142 + }
189 143
144 + public function get_img( $img, $img_style = '' ) {
190 145
191 - public function show_col_section( $sections_array = array( ) ) {
146 + $is_full_link = strpos( $img, 'http' );
147 + if ( false === $is_full_link ) {
148 + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
149 + $img_result = '<img src="' . esc_url( $this->asset_path . $img ) . '" ';
150 + } else {
151 + // phpcs:ignore PluginCheck.CodeAnalysis.ImageFunctions.NonEnqueuedImage
152 + $img_result = '<img src="' . esc_url( $img ) . '" ';
153 + }
192 154
193 - $columns_num = count( $sections_array );
155 + if ( ! empty( $img_style ) ) {
156 + $img_result .= ' style="' . esc_attr( $img_style ) . '" ';
157 + }
158 + $img_result .= ' class="wpbc-section-image" />';
194 159
195 - if ( isset($sections_array['h3'] ) )
196 - $columns_num--;
197 - if ( isset($sections_array['h2'] ) )
198 - $columns_num--;
199 - ?>
200 - <div class="changelog"><?php
160 + return $img_result;
161 + }
201 162
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 - }
163 + // -----------------------------------------------------------------------------------------------------------------
164 + // Menu
165 + public function admin_menus() {
166 + // What's New.
167 + add_dashboard_page( sprintf( 'Welcome to Booking Calendar' ), sprintf( 'What\'s New' ), $this->minimum_capability, 'wpbc-about', array( $this, 'content_whats_new' ) );
168 + remove_submenu_page( 'index.php', 'wpbc-about' );
169 + }
210 170
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 = '';
171 + // Head.
172 + public function admin_head() {
173 + remove_submenu_page( 'index.php', 'wpbc-about' );
174 + }
224 175
225 - echo "<div class='col col-{$col_num}{$is_last_feature}'>";
176 + // Title
177 + public function title_section() {
226 178
227 - if ( isset( $section[ 'header' ] ) )
228 - echo "<h4>" . wpbc_replace_to_strong_symbols( $section[ 'header' ] ) . "</h4>";
179 + list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
180 + //$display_version = WP_BK_VERSION_NUM;
181 + ?>
182 + <h1><?php echo wp_kses_post( sprintf( 'Welcome to Booking Calendar %s', $display_version ) ); ?></h1>
183 + <div class="about-text"><?php
184 + echo ( 'Booking Calendar is ready to receive and manage bookings from your visitors!' );
185 + ?></div>
229 186
230 - if ( isset( $section[ 'h4' ] ) )
231 - echo "<h4>" . wpbc_replace_to_strong_symbols( $section[ 'h4' ] ) . "</h4>";
232 187
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 188 <h2 class="nav-tab-wrapper">
331 189 <?php
332 190 $is_about_tab_active = $is_about_premium_tab_active = $is_getting_started_tab_active = '';
191 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
333 192 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-about' ) )
334 193 $is_about_tab_active = ' nav-tab-active ';
194 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
335 195 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-about-premium' ) )
336 196 $is_about_premium_tab_active = ' nav-tab-active ';
197 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
337 198 if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc-getting-started' ) )
338 199 $is_getting_started_tab_active = ' nav-tab-active ';
339 200 ?>
340 - <a class="nav-tab<?php echo $is_about_tab_active; ?>" href="<?php echo esc_url( admin_url( add_query_arg( array(
201 + <a class="nav-tab<?php echo esc_attr( $is_about_tab_active ); ?>" href="<?php echo esc_url( admin_url( add_query_arg( array(
341 202 'page' => 'wpbc-about' ), 'index.php' ) ) ); ?>">
342 203 <?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' ) ) ); ?>">
204 + <a class="nav-tab<?php echo esc_attr( $is_getting_started_tab_active ); ?>" href="https://wpbookingcalendar.com/faq/#using">
345 205 <?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' ) ) ); ?>">
206 + </a><a class="nav-tab<?php echo esc_attr( $is_about_premium_tab_active ); ?>" href="https://wpbookingcalendar.com/features/">
348 207 <?php echo( "Get even more functionality" ); // echo( "Even more Premium Features" ); ?>
349 208 </a>
350 209 </h2>
351 210 <?php
@@ -350,28 +209,32 @@
350 209 </h2>
351 210 <?php
352 211 }
353 212
354 - // Maintence section
355 - public function maintence_section() {
213 + /**
214 + * Maintenance section
215 + */
216 + public function maintence_section() {
356 217
357 - if ( !( ( defined( 'WP_BK_MINOR_UPDATE' )) && (WP_BK_MINOR_UPDATE) ) )
358 - return;
218 + if ( ! ( ( defined( 'WP_BK_MINOR_UPDATE' ) ) && ( WP_BK_MINOR_UPDATE ) ) ) {
219 + return;
220 + }
359 221
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 - }
222 + list( $display_version ) = explode( '-', WPDEV_BK_VERSION );
223 + ?>
224 + <div class="changelog point-releases" style="margin: 40px 0 50px;">
225 + <h3><?php
226 + echo( "Maintenance Release" ); ?></h3>
227 + <p><strong><?php
228 + echo wp_kses_post( sprintf( 'Version %s', $display_version ) ); ?></strong> <?php
229 + echo 'addressed some minor issues and improvement in functionality'; ?>.
230 + <?php
231 + echo wp_kses_post( sprintf( 'For more information, see %sthe release notes%s', '<a href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>' ) ); ?>
232 + .
233 + </p>
234 + </div>
235 + <?php
236 + }
374 237
375 238 // Start
376 239 public function welcome() {
377 240
@@ -379,15 +242,18 @@
379 242 if ( $booking_activation_process == 'On' )
380 243 return;
381 244
382 245 // Bail if no activation redirect transient is set
383 - if ( ! get_transient( '_booking_activation_redirect' ) )
384 - return;
246 + if ( ! get_transient( '_booking_activation_redirect' ) ) { // $.
247 + return;
248 + }
385 249
386 250 // Delete the redirect transient
387 251 delete_transient( '_booking_activation_redirect' );
388 252
389 - // Bail if DEMO or activating from network, or bulk, or within an iFrame
253 + // Bail if DEMO or activating from network, or bulk, or within an iFrame.
254 +
255 + // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.NonceVerification.Missing
390 256 if ( wpbc_is_this_demo() || is_network_admin() || isset( $_GET[ 'activate-multi' ] ) || defined( 'IFRAME_REQUEST' ) )
391 257 return;
392 258
393 259 // Set mark, that we already redirected to About screen //FixIn: 5.4.5
@@ -402,189 +268,125 @@
402 268 }
403 269
404 270
405 271 // CONTENT /////////////////////////////////////////////////////////////////
406 -
407 - public function content_whats_new() {
408 272
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;
273 + public function show_go_links() {
274 + ?>
275 + <div style="display: flex;flex-flow: row wrap;justify-content: center;gap: 2em;margin: 3em 0 1em;">
276 + <a class="button button-primary"
277 + href="<?php
278 + echo esc_url( wpbc_get_bookings_url() . '&tab=vm_booking_listing' ); ?>"
279 + style="font-size: 20px;padding: 0 1em;height: 44px;line-height: 40px;"><?php
280 + esc_html_e( 'Go to Booking Admin Panel', 'booking' ); ?></a>
281 + <?php
282 + $wpbc_starter_pages = function_exists( 'wpbc_get_published_activation_booking_pages' ) ? wpbc_get_published_activation_booking_pages() : array();
283 + if ( ! empty( $wpbc_starter_pages ) ) {
284 + foreach ( $wpbc_starter_pages as $wpbc_starter_page ) {
285 + ?>
286 + <a class="button button-secondary"
287 + style="font-size: 20px;padding: 0 1em;height: 44px;line-height: 40px;"
288 + href="<?php
289 + echo esc_url( $wpbc_starter_page['url'] ); ?>"
290 + ><?php
291 + echo esc_html( $wpbc_starter_page['button_title'] ); ?></a>
292 + <?php
431 293 }
432 - }
294 + } else {
295 + $wp_post_booking_absolute = false;
296 + if ( ! empty( $wp_post_booking_absolute ) ) {
297 + ?>
298 + <a class="button button-secondary"
299 + style="font-size: 20px;padding: 0 1em;height: 44px;line-height: 40px;"
300 + href="<?php
301 + echo esc_url( $wp_post_booking_absolute ); ?>"
302 + ><?php
303 + esc_html_e( 'Go to page with booking form', 'booking' ); ?></a>
304 + <?php
305 + }
306 + } ?>
307 + </div>
308 + <?php
309 + }
433 310
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">
311 + public function content_whats_new() {
458 312
459 - <?php $this->title_section(); ?>
313 + echo '<div class="wrap about-wrap wpbc-welcome-page">';
460 314
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
315 + $this->title_section();
478 316
479 - $this->maintence_section();
317 + $this->show_go_links();
480 318
481 - $this->section_9_8_css();
319 + $this->maintence_section();
482 320
483 - wpbc_welcome_section_10_1( $this );
321 + $this->section_9_8_css();
484 322
485 - wpbc_welcome_section_10_0( $this );
323 + wpbc_welcome_section_11_8_1( $this );
324 + wpbc_welcome_section_11_8( $this );
325 + wpbc_welcome_section_11_7( $this );
326 + wpbc_welcome_section_11_6( $this );
327 + wpbc_welcome_section_11_5( $this );
328 + wpbc_welcome_section_11_4( $this );
329 + wpbc_welcome_section_11_3( $this );
330 + wpbc_welcome_section_11_2( $this );
331 + wpbc_welcome_section_11_1( $this );
332 + wpbc_welcome_section_11_0( $this );
333 + wpbc_welcome_section_10_15( $this );
334 + wpbc_welcome_section_10_14( $this );
335 + wpbc_welcome_section_10_13( $this );
486 336
487 - wpbc_welcome_section_9_9( $this );
337 + $this->show_go_links();
488 338
489 - wpbc_welcome_section_9_8( $this );
339 + echo '<div';
340 + }
490 341
491 -if (0) {
492 - wpbc_welcome_section_9_7( $this );
493 342
494 - wpbc_welcome_section_9_6( $this );
343 + function expand_section_start( $section_param_arr ) {
495 344
496 - wpbc_welcome_section_9_5( $this );
345 + ?>
346 + <div class="clear" style="margin-top:20px;"></div><?php
497 347
498 - wpbc_welcome_section_9_4( $this );
348 + if ( $section_param_arr['show_expand'] ) {
499 349
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"
350 + ?><a id="wpbc_show_advanced_section_link_show"
560 351 class="wpbc_expand_section_link"
561 352 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
353 + onclick="javascript:jQuery( '.version_update_<?php
354 + echo esc_attr( str_replace( array(
355 + '.', ' ',
356 + ), '_', $section_param_arr['version_num'] ) ); ?>' ).toggle();"
357 + >+ Show changes in version update <span
358 + style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;"><?php
359 + echo esc_html( $section_param_arr['version_num'] ); ?></span>
360 + </a>
361 + <div class="version_update_<?php
362 + echo esc_attr( str_replace( array(
363 + '.', ' ',
364 + ), '_', $section_param_arr['version_num'] ) ); ?>" style="display:none;">
365 + <?php
567 366
568 - }
367 + }
569 368
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
369 + ?><h2 style='font-size: 1.9em;text-align:left;'>What's New in Booking Calendar <span
370 + style="font-size: 1.1em;font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;"
371 + ><?php
372 + echo esc_html( $section_param_arr['version_num'] ); ?></span></h2><?php
572 373
573 - }
374 + }
574 375
575 - function expand_section_end( $section_param_arr ){
576 - if( $section_param_arr['show_expand'] ) {
577 - ?></div><?php
578 - }
376 +
377 + function expand_section_end( $section_param_arr ) {
378 + if ( $section_param_arr['show_expand'] ) {
379 + ?></div><?php
579 380 }
381 + }
580 382
581 383
582 384 function section_img_url( $relative_path_to_img ) {
385 +
583 386 return esc_url( $this->asset_path . $relative_path_to_img );
584 387 }
585 388
586 - // =================================================================================================================
587 389
588 390 function section_9_8_css(){
589 391
590 392 ?><style type="text/css">
@@ -662,725 +464,7 @@
662 464 }
663 465 </style>
664 466 <?php
665 467 }
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 468 }
1385 469
1386 -$wpbc_welcome = new WPBC_Welcome();
470 +$wpbc_welcome = new WPBC_Welcome();