Booking Calendar - Version 9.3

Version Description

  • Changes in all versions:
    • New. Edit bookings in Booking Calendar Free version. Ability to update booking details or reselect booking dates for existing bookings. (9.2.3.4)
    • Under Hood. Added 'hash' field to the booking table in all versions of Booking Calendar (9.2.3.3)
    • Under Hood. Added 'creation_date' field to the booking table (9.2.3.3)
    • Under Hood. Added 'is_trash' field to the booking table, which define date, when booking was trashed (9.2.3.5)
    • Fix. Scroll issue during showing warnings or showing payment forms. Scroll to exact elements, which we need to show. (9.2.3.9)
  • Changes in Personal / Business Small / Business Medium / Business Large / MultiUser versions:
    • New. Simulate regular user login from "super booking admin" account to change settings of such regular activated user in Booking Calendar MultiUser version. (9.2.4.1) (MultiUser)
    • Fix. Notice: Undefined index: select_booking_form in ../core/any/class-admin-settings-api.php on line 1457 (9.2.4.2)
    • Fix. Issue of missed decimal digits in Stripe payment (9.2.4.3)
    • Fix. Issue in Stripe showing warning payment method bacs_debit requires payment_intent_data[setup_future_usage] to be set to off_session (9.2.4.4)
    • Fix. Error: "Warning! Number of check in !
Download this release

Release Info

Developer wpdevelop
Plugin Icon 128x128 Booking Calendar
Version 9.3
Comparing to
See all releases

Code changes from version 9.2.2 to 9.3

Files changed (44) hide show
  1. core/admin/page-email-approved.php +4 -4
  2. core/admin/page-email-deleted.php +4 -4
  3. core/admin/page-email-deny.php +4 -4
  4. core/admin/page-email-new-admin.php +4 -4
  5. core/admin/page-email-new-visitor.php +4 -4
  6. core/admin/page-email-trash.php +4 -4
  7. core/admin/page-form-free.php +84 -8
  8. core/admin/page-ics-import.php +1 -1
  9. core/admin/page-settings.php +10 -0
  10. core/admin/wpbc-class-listing.php +1 -1
  11. core/admin/wpbc-toolbars.php +2 -2
  12. core/any/class-admin-settings-api.php +8 -6
  13. core/class/wpbc-class-welcome.php +1521 -1550
  14. core/lang/wpbc_all_translations.php +6 -6
  15. core/lang/wpbc_all_translations1.php +6 -6
  16. core/lang/wpbc_all_translations2.php +41 -1
  17. core/lib/wpbc-ajax.php +1 -1
  18. core/lib/wpbc-booking-new.php +41 -15
  19. core/lib/wpdev-booking-class.php +160 -130
  20. core/sync/wpbc-gcal-class.php +2 -2
  21. core/timeline/v2/wpbc-class-timeline_v2.php +34 -4
  22. core/wpbc-activation.php +41 -4
  23. core/wpbc-constants.php +1 -12
  24. core/wpbc-dates.php +1 -1
  25. core/wpbc-debug.php +34 -22
  26. core/wpbc-functions.php +120 -53
  27. core/wpbc-include.php +8 -0
  28. core/wpbc.php +48 -1
  29. css/admin.css +2 -1
  30. includes/_booking_hash/booking_hash.php +152 -0
  31. includes/_feedback/feedback_01.css +79 -0
  32. includes/_feedback/feedback_01.js +187 -0
  33. includes/_feedback/feedback_01.php +460 -0
  34. includes/_toolbar_ui/toolbar_ui.php +13 -13
  35. includes/page-availability/availability__page.php +382 -0
  36. includes/page-bookings/bookings__actions.php +58 -33
  37. includes/page-bookings/bookings__listing.php +121 -7
  38. includes/page-bookings/bookings__page.php +3 -2
  39. includes/page-bookings/bookings__sql.php +24 -6
  40. js/client.js +118 -8
  41. js/wpbc_form_summary.js +1 -1
  42. js/wpbc_times.js +2 -1
  43. readme.txt +28 -5
  44. wpdev-booking.php +26 -22
core/admin/page-email-approved.php CHANGED
@@ -1003,9 +1003,8 @@ function wpbc__get_replace_shortcodes__email_approved( $booking_id, $bktype, $fo
1003
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1004
 
1005
  // Cost ////////////////////////////////////////////////////////////////////
1006
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
1007
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
1008
-
1009
  // Other ///////////////////////////////////////////////////////////////////
1010
  $replace[ 'booking_id' ] = $booking_id;
1011
  $replace[ 'id' ] = $replace[ 'booking_id' ];
@@ -1018,7 +1017,8 @@ function wpbc__get_replace_shortcodes__email_approved( $booking_id, $bktype, $fo
1018
 
1019
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1020
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1021
- $replace[ 'cost' ] = $booking_cost;
 
1022
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1023
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1024
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
1003
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1004
 
1005
  // Cost ////////////////////////////////////////////////////////////////////
1006
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
1007
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
1008
  // Other ///////////////////////////////////////////////////////////////////
1009
  $replace[ 'booking_id' ] = $booking_id;
1010
  $replace[ 'id' ] = $replace[ 'booking_id' ];
1017
 
1018
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1019
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1020
+ $replace['cost'] = $booking_cost;
1021
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
1022
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1023
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1024
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-email-deleted.php CHANGED
@@ -1000,9 +1000,8 @@ function wpbc__get_replace_shortcodes__email_deleted( $booking_id, $bktype, $for
1000
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1001
 
1002
  // Cost ////////////////////////////////////////////////////////////////////
1003
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
1004
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
1005
-
1006
  // Other ///////////////////////////////////////////////////////////////////
1007
  $replace[ 'booking_id' ] = $booking_id;
1008
  $replace[ 'id' ] = $replace[ 'booking_id' ];
@@ -1015,7 +1014,8 @@ function wpbc__get_replace_shortcodes__email_deleted( $booking_id, $bktype, $for
1015
 
1016
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1017
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1018
- $replace[ 'cost' ] = $booking_cost;
 
1019
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1020
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1021
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
1000
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1001
 
1002
  // Cost ////////////////////////////////////////////////////////////////////
1003
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
1004
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
1005
  // Other ///////////////////////////////////////////////////////////////////
1006
  $replace[ 'booking_id' ] = $booking_id;
1007
  $replace[ 'id' ] = $replace[ 'booking_id' ];
1014
 
1015
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1016
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1017
+ $replace['cost'] = $booking_cost;
1018
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
1019
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1020
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1021
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-email-deny.php CHANGED
@@ -1000,9 +1000,8 @@ function wpbc__get_replace_shortcodes__email_deny( $booking_id, $bktype, $formda
1000
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1001
 
1002
  // Cost ////////////////////////////////////////////////////////////////////
1003
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
1004
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
1005
-
1006
  // Other ///////////////////////////////////////////////////////////////////
1007
  $replace[ 'booking_id' ] = $booking_id;
1008
  $replace[ 'id' ] = $replace[ 'booking_id' ];
@@ -1015,7 +1014,8 @@ function wpbc__get_replace_shortcodes__email_deny( $booking_id, $bktype, $formda
1015
 
1016
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1017
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1018
- $replace[ 'cost' ] = $booking_cost;
 
1019
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1020
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1021
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
1000
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1001
 
1002
  // Cost ////////////////////////////////////////////////////////////////////
1003
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
1004
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
1005
  // Other ///////////////////////////////////////////////////////////////////
1006
  $replace[ 'booking_id' ] = $booking_id;
1007
  $replace[ 'id' ] = $replace[ 'booking_id' ];
1014
 
1015
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1016
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1017
+ $replace['cost'] = $booking_cost;
1018
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
1019
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1020
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1021
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-email-new-admin.php CHANGED
@@ -1045,9 +1045,8 @@ function wpbc__get_replace_shortcodes__email_new_admin( $booking_id, $bktype, $f
1045
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1046
 
1047
  // Cost ////////////////////////////////////////////////////////////////////
1048
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
1049
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
1050
-
1051
  // Other ///////////////////////////////////////////////////////////////////
1052
  $replace[ 'booking_id' ] = $booking_id;
1053
  $replace[ 'id' ] = $replace[ 'booking_id' ];
@@ -1059,7 +1058,8 @@ function wpbc__get_replace_shortcodes__email_new_admin( $booking_id, $bktype, $f
1059
  $replace[ 'check_out_only_date' ] = $my_check_out_onlydate;
1060
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1061
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1062
- $replace[ 'cost' ] = $booking_cost;
 
1063
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1064
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1065
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
1045
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1046
 
1047
  // Cost ////////////////////////////////////////////////////////////////////
1048
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
1049
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
1050
  // Other ///////////////////////////////////////////////////////////////////
1051
  $replace[ 'booking_id' ] = $booking_id;
1052
  $replace[ 'id' ] = $replace[ 'booking_id' ];
1058
  $replace[ 'check_out_only_date' ] = $my_check_out_onlydate;
1059
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1060
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1061
+ $replace['cost'] = $booking_cost;
1062
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
1063
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1064
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1065
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-email-new-visitor.php CHANGED
@@ -968,9 +968,8 @@ function wpbc__get_replace_shortcodes__email_new_visitor( $booking_id, $bktype,
968
  $my_check_out_minus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " -1 day" ) ) ); //FixIn: 7.2.1.6
969
 
970
  // Cost ////////////////////////////////////////////////////////////////////
971
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
972
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
973
-
974
 
975
 
976
  // Other ///////////////////////////////////////////////////////////////////
@@ -987,7 +986,8 @@ function wpbc__get_replace_shortcodes__email_new_visitor( $booking_id, $bktype,
987
  // $replace[ 'current_date_plus2days'] = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( "+2 days" ) ) );
988
  $replace[ 'check_out_minus1day'] = $my_check_out_minus1day; //FixIn: 7.2.1.6
989
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
990
- $replace[ 'cost' ] = $booking_cost;
 
991
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
992
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
993
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
968
  $my_check_out_minus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " -1 day" ) ) ); //FixIn: 7.2.1.6
969
 
970
  // Cost ////////////////////////////////////////////////////////////////////
971
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
972
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
973
 
974
 
975
  // Other ///////////////////////////////////////////////////////////////////
986
  // $replace[ 'current_date_plus2days'] = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( "+2 days" ) ) );
987
  $replace[ 'check_out_minus1day'] = $my_check_out_minus1day; //FixIn: 7.2.1.6
988
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
989
+ $replace['cost'] = $booking_cost;
990
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
991
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
992
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
993
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-email-trash.php CHANGED
@@ -1005,9 +1005,8 @@ function wpbc__get_replace_shortcodes__email_trash( $booking_id, $bktype, $formd
1005
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1006
 
1007
  // Cost ////////////////////////////////////////////////////////////////////
1008
- $booking_cost = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id );
1009
- $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost );
1010
-
1011
  // Other ///////////////////////////////////////////////////////////////////
1012
  $replace[ 'booking_id' ] = $booking_id;
1013
  $replace[ 'id' ] = $replace[ 'booking_id' ];
@@ -1020,7 +1019,8 @@ function wpbc__get_replace_shortcodes__email_trash( $booking_id, $bktype, $formd
1020
 
1021
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1022
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1023
- $replace[ 'cost' ] = $booking_cost;
 
1024
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1025
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1026
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
1005
  $my_check_out_plus1day = wpbc_change_dates_format( date_i18n( 'Y-m-d H:i:s', strtotime( $my_dates4emeil_check_in_out[ count( $my_dates4emeil_check_in_out ) - 1 ] . " +1 day" ) ) ); //FixIn: 6.0.1.11
1006
 
1007
  // Cost ////////////////////////////////////////////////////////////////////
1008
+ $booking_cost_digits_only = apply_bk_filter( 'get_booking_cost_from_db', '', $booking_id ); //FixIn: 9.2.3.1
1009
+ $booking_cost = wpbc_get_cost_with_currency_for_user( $booking_cost_digits_only );
 
1010
  // Other ///////////////////////////////////////////////////////////////////
1011
  $replace[ 'booking_id' ] = $booking_id;
1012
  $replace[ 'id' ] = $replace[ 'booking_id' ];
1019
 
1020
  $replace[ 'check_out_plus1day'] = $my_check_out_plus1day; //FixIn: 6.0.1.11
1021
  $replace[ 'dates_count' ] = count( $my_dates4emeil_check_in_out );
1022
+ $replace['cost'] = $booking_cost;
1023
+ $replace['cost_digits_only'] = $booking_cost_digits_only;
1024
  $replace[ 'siteurl' ] = htmlspecialchars_decode( '<a href="' . home_url() . '">' . home_url() . '</a>' );
1025
  $replace[ 'resource_title'] = apply_bk_filter( 'wpdev_check_for_active_language', $bk_title );
1026
  $replace[ 'bookingtype' ] = $replace[ 'resource_title'];
core/admin/page-form-free.php CHANGED
@@ -472,7 +472,25 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
472
 
473
  /** Get HTML of booking form based on Visual Structure */
474
  public function get_form_in__html( $my_boook_type = 1 ) {
475
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  $visual_form_structure = $this->get_booking_form_structure_for_visual();
477
  $visual_form_structure = maybe_unserialize( $visual_form_structure );
478
 
@@ -536,13 +554,24 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
536
  $my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge'
537
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
538
  //. ( ( strpos( $form_field['name'], 'phone' ) !== false ) ? ' validate_as_digit' : '' )
539
- .'" />';
 
 
 
 
 
540
 
541
  if ( $form_field['type'] == 'email' )
542
  $my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge wpdev-validates-as-email'
543
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
544
  . ' wpdev-validates-as-required' //FixIn: 7.0.1.22
545
- .'" />';
 
 
 
 
 
 
546
 
547
  if ( $form_field['type'] == 'select' ) {
548
 
@@ -576,7 +605,18 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
576
  $select_option_title = wpbc_time_slot_in_format( $select_option_title );
577
  }
578
  }
579
- $my_form.=' <option value="' . $select_option_val . '">' . $select_option_title . '</option>';
 
 
 
 
 
 
 
 
 
 
 
580
 
581
  // $my_form.=' <option value="' . $select_option . '">' . $select_option . '</option>';
582
  }
@@ -587,10 +627,27 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
587
  if ( $form_field['type'] == 'checkbox' ) {
588
 
589
  $my_form.=' <label for="'. $form_field['name'] . $my_boook_type.'" class="control-label" style="display: inline-block;">';
590
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  $my_form.=' <input type="checkbox" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="wpdev-checkbox '
592
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
593
- .'" style="margin:0 4px 2px;" value="true" />';
 
 
 
594
 
595
  $my_form.= '&nbsp;' . $form_field['label']
596
  . ( ( $form_field['required'] == 'On' ) ? '' : '' )
@@ -603,6 +660,11 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
603
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
604
  . '" >'; //FixIn: 8.1.1.4
605
 
 
 
 
 
 
606
  $my_form.='</textarea>';
607
  }
608
 
@@ -611,8 +673,13 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
611
  }
612
 
613
  $my_form.='<div class="form-group">[captcha]</div>' . "\n";
614
- //FixIn: 8.8.1.14
615
- $submit_button_title = str_replace( '"','', html_entity_decode( esc_js( apply_bk_filter( 'wpdev_check_for_active_language', get_bk_option( 'booking_send_button_title' ) ) ),ENT_QUOTES) );
 
 
 
 
 
616
  $my_form.='<div class="form-group"><button class="btn btn-default" type="button" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" >'
617
  . $submit_button_title
618
  . '</button></div>' . "\n";
@@ -622,6 +689,15 @@ class WPBC_Page_SettingsFormFieldsFree extends WPBC_Page_Structure {
622
  $my_form .= '</div>' . "\n"; // .wpbc_booking_form_structure
623
  $my_form .= '<div class="wpbc_booking_form_footer"></div>';
624
 
 
 
 
 
 
 
 
 
 
625
  return $my_form;
626
  }
627
 
472
 
473
  /** Get HTML of booking form based on Visual Structure */
474
  public function get_form_in__html( $my_boook_type = 1 ) {
475
+
476
+ //FixIn: 9.2.3.4
477
+ $booking_data__parsed_fields = array();
478
+ $booking_data__dates = array();
479
+ if ( isset( $_GET['booking_hash'] ) ) {
480
+
481
+ $booking_id__resource_id = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
482
+
483
+ if ( $booking_id__resource_id != false ) {
484
+
485
+ $booking_data = wpbc_search_booking_by_id( $booking_id__resource_id[0] );
486
+ if ( false !== $booking_data ) {
487
+ $booking_data__parsed_fields = $booking_data->parsed_fields;
488
+ $booking_data__dates = $booking_data->dates;
489
+ }
490
+ }
491
+ }
492
+
493
+
494
  $visual_form_structure = $this->get_booking_form_structure_for_visual();
495
  $visual_form_structure = maybe_unserialize( $visual_form_structure );
496
 
554
  $my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge'
555
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
556
  //. ( ( strpos( $form_field['name'], 'phone' ) !== false ) ? ' validate_as_digit' : '' )
557
+ .'" '
558
+ . ( isset( $booking_data__parsed_fields[ $form_field['name'] ] ) //FixIn: 9.2.3.4
559
+ ? ' value="' . esc_attr( $booking_data__parsed_fields[ $form_field['name'] ] ) . '"'
560
+ : ''
561
+ )
562
+ . '/>';
563
 
564
  if ( $form_field['type'] == 'email' )
565
  $my_form.=' <input type="text" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="input-xlarge wpdev-validates-as-email'
566
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
567
  . ' wpdev-validates-as-required' //FixIn: 7.0.1.22
568
+ .'" '
569
+ . ( isset( $booking_data__parsed_fields[ $form_field['name'] ] ) //FixIn: 9.2.3.4
570
+ ? ' value="' . esc_attr( $booking_data__parsed_fields[ $form_field['name'] ] ) . '"'
571
+ : ''
572
+ )
573
+ . '/>';
574
+
575
 
576
  if ( $form_field['type'] == 'select' ) {
577
 
605
  $select_option_title = wpbc_time_slot_in_format( $select_option_title );
606
  }
607
  }
608
+
609
+ //FixIn: 9.2.3.4
610
+ if (
611
+ ( isset( $booking_data__parsed_fields[ $form_field['name'] ] ) )
612
+ && ( $select_option_val == $booking_data__parsed_fields[ $form_field['name'] ] )
613
+ ){
614
+ $is_option_selected = ' selected="selected" ';
615
+ } else {
616
+ $is_option_selected = '';
617
+ }
618
+
619
+ $my_form .= ' <option value="' . $select_option_val . '" ' . $is_option_selected . '>' . $select_option_title . '</option>';
620
 
621
  // $my_form.=' <option value="' . $select_option . '">' . $select_option . '</option>';
622
  }
627
  if ( $form_field['type'] == 'checkbox' ) {
628
 
629
  $my_form.=' <label for="'. $form_field['name'] . $my_boook_type.'" class="control-label" style="display: inline-block;">';
630
+
631
+ //FixIn: 9.2.3.4
632
+ if (
633
+ ( isset( $booking_data__parsed_fields[ $form_field['name'] ] ) )
634
+ && (
635
+ ( $form_field['value'] == $booking_data__parsed_fields[ $form_field['name'] ] )
636
+ || ( $form_field['label'] == $booking_data__parsed_fields[ $form_field['name'] ] )
637
+ || ( __( 'Yes', 'booking' ) == $booking_data__parsed_fields[ $form_field['name'] ] )
638
+ )
639
+ ){
640
+ $is_option_selected = ' checked="checked" ';
641
+ } else {
642
+ $is_option_selected = '';
643
+ }
644
+
645
  $my_form.=' <input type="checkbox" name="'. $form_field['name'] . $my_boook_type.'" id="'. $form_field['name'] . $my_boook_type.'" class="wpdev-checkbox '
646
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
647
+ . '" style="margin:0 4px 2px;" value="true" '
648
+ . ' value="' . esc_attr( $form_field['label'] ) . '" '
649
+ . $is_option_selected
650
+ . '/>';
651
 
652
  $my_form.= '&nbsp;' . $form_field['label']
653
  . ( ( $form_field['required'] == 'On' ) ? '' : '' )
660
  . ( ( $form_field['required'] == 'On' ) ? ' wpdev-validates-as-required' : '' )
661
  . '" >'; //FixIn: 8.1.1.4
662
 
663
+ $my_form.= ( isset( $booking_data__parsed_fields[ $form_field['name'] ] ) //FixIn: 9.2.3.4
664
+ ? esc_textarea( $booking_data__parsed_fields[ $form_field['name'] ] )
665
+ : ''
666
+ );
667
+
668
  $my_form.='</textarea>';
669
  }
670
 
673
  }
674
 
675
  $my_form.='<div class="form-group">[captcha]</div>' . "\n";
676
+
677
+ if ( ! empty( $booking_data__parsed_fields ) ) {
678
+ $submit_button_title = __( 'Change your Booking', 'booking' ); //FixIn: 9.2.3.4
679
+ } else {
680
+ $submit_button_title = get_bk_option( 'booking_send_button_title' );
681
+ }
682
+ $submit_button_title = str_replace( '"','', html_entity_decode( esc_js( apply_bk_filter( 'wpdev_check_for_active_language', $submit_button_title ) ),ENT_QUOTES) ); //FixIn: 8.8.1.14
683
  $my_form.='<div class="form-group"><button class="btn btn-default" type="button" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" >'
684
  . $submit_button_title
685
  . '</button></div>' . "\n";
689
  $my_form .= '</div>' . "\n"; // .wpbc_booking_form_structure
690
  $my_form .= '<div class="wpbc_booking_form_footer"></div>';
691
 
692
+ if ( ! empty( $booking_data__dates ) ) {
693
+ $my_form .= wpbc_get_dates_selection_js_code( $booking_data__dates, $my_boook_type ); //FixIn: 9.2.3.4
694
+ }
695
+ $admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url( 'admin.php?' ) ), '/' );
696
+ if ( ( strpos( $_SERVER['REQUEST_URI'], $admin_uri ) !== false ) && ( isset( $_SERVER['HTTP_REFERER'] ) ) ) {
697
+ $my_form .= '<input type="hidden" name="wpdev_http_referer" id="wpdev_http_referer" value="' . $_SERVER['HTTP_REFERER'] . '" />';
698
+ }
699
+
700
+
701
  return $my_form;
702
  }
703
 
core/admin/page-ics-import.php CHANGED
@@ -419,7 +419,7 @@ class WPBC_Page_SettingsImportFeeds extends WPBC_Page_Structure {
419
 
420
  ?><div class="wpbc_import_ics_bar" id="wpbc_import_ics_bar"
421
  data-nonce="<?php echo wp_create_nonce( $nonce_name = 'wpbc_import_ics_nonce_actn' ); ?>"
422
- data-user-id="<?php echo get_current_user_id(); ?>"
423
  ><?php
424
 
425
  if ( function_exists( 'wpbc_get_br_as_objects' ) ) {
419
 
420
  ?><div class="wpbc_import_ics_bar" id="wpbc_import_ics_bar"
421
  data-nonce="<?php echo wp_create_nonce( $nonce_name = 'wpbc_import_ics_nonce_actn' ); ?>"
422
+ data-user-id="<?php echo wpbc_get_current_user_id(); ?>"
423
  ><?php
424
 
425
  if ( function_exists( 'wpbc_get_br_as_objects' ) ) {
core/admin/page-settings.php CHANGED
@@ -316,6 +316,16 @@ class WPBC_Page_SettingsGeneral extends WPBC_Page_Structure {
316
 
317
  <?php wpbc_close_meta_box_section(); ?>
318
 
 
 
 
 
 
 
 
 
 
 
319
  </div>
320
  <div class="clear"></div>
321
  <input type="submit" value="<?php _e('Save Changes','booking'); ?>" class="button button-primary wpbc_submit_button" />
316
 
317
  <?php wpbc_close_meta_box_section(); ?>
318
 
319
+ <?php if ( class_exists('wpdev_bk_multiuser') ) { //FixIn: 9.2.3.8 ?>
320
+
321
+ <?php wpbc_open_meta_box_section( 'wpbc_general_settings_multiuser', __('Multiuser options', 'booking') ); ?>
322
+
323
+ <?php $this->settings_api()->show( 'multiuser' ); ?>
324
+
325
+ <?php wpbc_close_meta_box_section(); ?>
326
+
327
+ <?php } ?>
328
+
329
  </div>
330
  <div class="clear"></div>
331
  <input type="submit" value="<?php _e('Save Changes','booking'); ?>" class="button button-primary wpbc_submit_button" />
core/admin/wpbc-class-listing.php CHANGED
@@ -61,7 +61,7 @@ class WPBC_Booking_Listing_Table {
61
  /** Init Paramteres */
62
  private function init_params() {
63
 
64
- $user = wp_get_current_user();
65
  $this->user_id = $user->ID;
66
 
67
  $this->url['listing'] = 'admin.php?page=' . wpbc_get_bookings_url( false, false );
61
  /** Init Paramteres */
62
  private function init_params() {
63
 
64
+ $user = wpbc_get_current_user();
65
  $this->user_id = $user->ID;
66
 
67
  $this->url['listing'] = 'admin.php?page=' . wpbc_get_bookings_url( false, false );
core/admin/wpbc-toolbars.php CHANGED
@@ -123,7 +123,7 @@ function wpbc_bookings_toolbar() {
123
 
124
  ?><div id="actions_toolbar_container" class="visibility_container clearfix-height" style="display:<?php echo ( $selected_tab == 'actions' ) ? 'block' : 'none' ?>;margin-top:-5px;"><?php
125
 
126
- $user = wp_get_current_user();
127
  $user_bk_id = $user->ID;
128
 
129
  wpbc_toolbar_btn__approve_reject( $user_bk_id ); // A p p r o v e | R e j e c t
@@ -457,7 +457,7 @@ function wpbc_bs_dropdown_menu_help() {
457
  /** View Mode - B u t t o n */
458
  function wpbc_toolbar_btn__view_mode() {
459
 
460
- $selected_view_mode = $_REQUEST['view_mode'];
461
 
462
  $bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
463
 
123
 
124
  ?><div id="actions_toolbar_container" class="visibility_container clearfix-height" style="display:<?php echo ( $selected_tab == 'actions' ) ? 'block' : 'none' ?>;margin-top:-5px;"><?php
125
 
126
+ $user = wpbc_get_current_user();
127
  $user_bk_id = $user->ID;
128
 
129
  wpbc_toolbar_btn__approve_reject( $user_bk_id ); // A p p r o v e | R e j e c t
457
  /** View Mode - B u t t o n */
458
  function wpbc_toolbar_btn__view_mode() {
459
 
460
+ $selected_view_mode = ( isset( $_REQUEST['view_mode'] ) ) ? $_REQUEST['view_mode'] : '';
461
 
462
  $bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
463
 
core/any/class-admin-settings-api.php CHANGED
@@ -1450,13 +1450,15 @@ abstract class WPBC_Settings_API {
1450
  public static function validate_text_post_static( $post_key, $post_index = false ) {
1451
 
1452
  $value = false;
 
 
 
 
 
 
 
 
1453
 
1454
- if ( $post_index !== false ) {
1455
- $post_value = $_POST[ $post_key ][ $post_index ];
1456
- } else {
1457
- $post_value = $_POST[ $post_key ];
1458
- }
1459
-
1460
  if ( isset( $post_value ) ) {
1461
 
1462
  $value = wp_kses_post( trim( stripslashes( $post_value ) ) );
1450
  public static function validate_text_post_static( $post_key, $post_index = false ) {
1451
 
1452
  $value = false;
1453
+ //FixIn: 9.2.4.2
1454
+ if ( isset( $_POST[ $post_key ] ) ) {
1455
+ if ( $post_index !== false ) {
1456
+ $post_value = $_POST[ $post_key ][ $post_index ];
1457
+ } else {
1458
+ $post_value = $_POST[ $post_key ];
1459
+ }
1460
+ }
1461
 
 
 
 
 
 
 
1462
  if ( isset( $post_value ) ) {
1463
 
1464
  $value = wp_kses_post( trim( stripslashes( $post_value ) ) );
core/class/wpbc-class-welcome.php CHANGED
@@ -439,788 +439,863 @@ class WPBC_Welcome {
439
 
440
  $this->maintence_section();
441
 
 
442
 
 
443
 
 
444
 
445
- ?><h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
446
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">9.2</span></h2><?php
447
 
448
- ?><div class="feature-section one-col">
449
- <div class="col col-1" style="flex: 1 1 100%;width: 100%;">
450
- <?php echo '<h4>' .wpbc_recheck_strong_symbols( 'New Booking Listing - modern looking & instant working' ) . '</h4>' ;?>
451
- <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_text_searching_long.png"
452
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
453
- class="wpbc-section-image" />
454
- </div>
455
- <div class="col col-2 last-feature" style="flex: 1 1 100%;width: 100%;">
456
- <?php echo
457
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
458
- . '<li>' . wpbc_recheck_strong_symbols( '**New modern toolbar** with handy buttons, dropdown lists and other elements that have been redesigned and rearranged in a new smarter way.' ) . '</li>'
459
- . '<li>' . wpbc_recheck_strong_symbols( '**Refreshed colors** of labels, icons, buttons and other UI elements for modern and clear look.' ) . '</li>'
460
- . '<li>' . wpbc_recheck_strong_symbols( 'Rearranged content of booking details in unified way for all Booking Calendar versions.' ) . '</li>'
461
- . '</ul>';
462
- ?>
463
- </div>
464
- </div><?php
465
 
466
- $this->show_separator();
467
 
468
- ?><div class="feature-section two-col">
469
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
470
- <?php echo
471
- '<h4>' .wpbc_recheck_strong_symbols( 'Instant working without page reloading' ) . '</h4>' .
472
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
473
- . '<li>' . wpbc_recheck_strong_symbols( '**Instant showing booking listing**, using ajax without page reloading when filtering search results. Single page app design.' ) . '</li>'
474
- . '<li>' . wpbc_recheck_strong_symbols( 'Immediate **searching** of bookings for a **specific keyword**. Reservations are displayed just after entering a specific keyword without other user actions.' ) . '</li>'
475
- . '<li>' . wpbc_recheck_strong_symbols( '**Highlighting** certain **keywords** in booking details to make it easier to find specific data when entering keywords.' ) . '</li>'
476
- . '</ul>' ;
477
- ?>
478
- </div>
479
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 70%;">
480
 
481
- <img src="<?php echo $this->asset_path; ?>9.2/screenshot-01_high_res.gif"
482
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
483
- class="wpbc-section-image" />
484
- </div>
485
- </div><?php
486
 
487
- $this->show_separator();
488
 
489
- ?><div class="feature-section two-col">
490
- <div class="col col-1" style="flex: 1 1 75%;width: 100%;">
491
- <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_dates_filtering.png"
492
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
493
- class="wpbc-section-image" />
494
- </div>
495
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
496
- <?php echo
497
- '<h4>' .wpbc_recheck_strong_symbols( 'User Saved Options' ) . '</h4>' .
498
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
499
- . '<li>' . wpbc_recheck_strong_symbols( '**Saving** any choice of **filter options** (select-boxes and other UI toolbar elements), toolbar selection or user options **personally for each user**. User will see last configured search filter parameters each time, when open admin panel.' ) . '</li>'
500
- . '<li>' . wpbc_recheck_strong_symbols( '**Keeping** last selected **filter or actions toolbar**, during each time, when user open booking admin panel. No need to define default state of toolbars in the settings.' ) . '</li>'
501
- . '<li>' . wpbc_recheck_strong_symbols( '**New user options toolbar**, where possible to select "Emails sending" on specific actions or "Show notes" by default (in paid versions).' ) . '</li>'
502
- . '</ul>';
503
- ?>
504
- </div>
505
- </div><?php
506
 
507
- $this->show_separator();
508
 
509
- ?><div class="feature-section two-col">
510
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
511
- <?php echo
512
- '<h4>' .wpbc_recheck_strong_symbols( 'Print functionality' ) . '</h4>' .
513
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
514
- . '<li>' . wpbc_recheck_strong_symbols( 'The new **print feature** is available in the **Free version**.' ) . '</li>'
515
- . '<li>' . wpbc_recheck_strong_symbols( 'New **print layout** displaying the exact content of the booking listing page.' ) . '</li>'
516
- . '<li>' . wpbc_recheck_strong_symbols( '**Print any selected bookings**. Possibility to print all bookings / selected bookings / specific single booking.' ) . '</li>'
517
 
518
- . '</ul>' ;
519
- ?>
520
- </div>
521
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 70%;">
522
 
523
- <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_printing.png"
524
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
525
- class="wpbc-section-image" />
526
- </div>
527
- </div><?php
528
 
529
- $this->show_separator();
530
 
 
531
 
 
 
 
 
 
 
 
532
 
533
- ?><div class="feature-section two-col">
534
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
535
- <?php echo
536
- '<h4>' .wpbc_recheck_strong_symbols( 'Other new features' ) . '</h4>' .
537
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
538
- . '<li>' . wpbc_recheck_strong_symbols( 'Added 2 new filter options **Check in today** and **Check out today** to display bookings on the booking list page' ) . '</li>'
539
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define and **save the locale for each specific booking**. This locale is saved and will exist when the following pages are loaded.' ) . '</li>'
540
- . '<li>' . wpbc_recheck_strong_symbols( '**Show action** buttons when such actions **can be applied to specific bookings**. You need to select bookings to display additional action buttons like "Confirm" or "Reject", etc...' ) . '</li>'
 
 
 
 
 
541
 
542
- . '</ul>' ;
543
- ?>
544
- </div>
545
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
546
- <?php echo
547
- '<h4>' .wpbc_recheck_strong_symbols( 'CSV Export (paid versions)' ) . '</h4>' .
548
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
549
- . '<li>' . wpbc_recheck_strong_symbols( '**New**. Ability to enter **field names to skip** from the export.' ) . '</li>'
550
- . '<li>' . wpbc_recheck_strong_symbols( 'Selection **export of single or all pages** and CSV column separator in pop-up window.' ) . '</li>'
551
- . '</ul>'; ?>
552
- <?php echo
553
- '<h4>' .wpbc_recheck_strong_symbols( 'Improvements and fixes' ) . '</h4>' .
554
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
555
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Smarter structure of request parameters escaping.' ) . '</li>'
556
- . '<li>' . wpbc_recheck_strong_symbols( 'Lots of other improvements and fixes...' ) . '</li>'
557
- . '</ul>'; ?>
558
- </div>
559
- </div><?php
560
 
 
561
 
 
562
 
 
 
 
 
 
 
 
 
563
 
 
564
 
565
- $this->show_separator();
 
566
 
567
- // <editor-fold defaultstate="collapsed" desc=" 9.1 " >
568
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
569
- // 9.1
570
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
571
- ?>
572
- <div class="clear" style="margin-top:20px;"></div>
573
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
574
- onclick="javascript:jQuery( '.version_update_9_1' ).toggle();"
575
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">9.1</span></a>
576
 
577
- <div class="version_update_9_1" style="display:none;">
 
 
 
 
578
 
579
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
580
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">9.1</span></h2><?php
581
 
582
- ?><div class="feature-section two-col">
583
- <div class="col col-1" style="flex: 1 1 75%;width: 100%;">
584
- <img src="<?php echo $this->asset_path; ?>9.1/9.1_new_popovers2.png"
585
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
586
- class="wpbc-section-image" />
587
- </div>
588
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
589
- <?php echo
590
- '<h4>' .wpbc_recheck_strong_symbols( 'New Popover and Tooltips' ) . '</h4>' .
591
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
592
- . '<li>' . wpbc_recheck_strong_symbols( 'Faster and more accurate display of beautiful and informative popovers and tooltips. New script for displaying popover and tooltips in the Booking Calendar.' ) . '</li>'
593
- . '<li>' . wpbc_recheck_strong_symbols( 'For 2 or more bookings on the Timeline and Calendar Overview page, the system displays the title of the bookings exactly near to the specific booking details in popovers' ) . '</li>'
594
- . '<li>' . wpbc_recheck_strong_symbols( 'Avoiding script conflicts regarding popovers and tooltips' ) . '</li>'
595
- . '</ul>';
596
- ?>
597
- <!--span style="font-size:0.8em;padding:1em;">* This feature is available in the Booking Calendar Business Small or higher versions.</span-->
598
- </div>
599
- </div><?php
600
 
601
- $this->show_separator();
 
602
 
603
- ?><div class="feature-section two-col">
604
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
605
- <?php echo
606
- '<h4>' .wpbc_recheck_strong_symbols( 'New UI elements' ) . '</h4>' .
607
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
608
- . '<li>' . wpbc_recheck_strong_symbols( '**Icons for UI elements** in the booking admin panel.' ) . '</li>'
609
- . '<li>' . wpbc_recheck_strong_symbols( '**Booking Calendar Icon** for WordPress side menu.' ) . '</li>'
610
- . '</ul>' .
611
- '<h4>' .wpbc_recheck_strong_symbols( 'Improvements and fixes' ) . '</h4>' .
612
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
613
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Separate library for modal windows to prevent script conflicts' ) . '</li>'
614
- //. '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Removing old Bootstrap library' ) . '</li>'
615
- //. '<li>' . wpbc_recheck_strong_symbols( '**Fix**. issue of showing "Warning! Number of check in != check out times." after import .ics feed with specific start/end time' ) . '</li>'
616
- //. '<li>' . wpbc_recheck_strong_symbols( '**Fix**. issue of not hiding booked time slots after selecting date in calendar, for the bookings that was imported from ics feed with specific timeslots' ) . '</li>'
617
- //. '<li>' . wpbc_recheck_strong_symbols( '**Fix**. issue of unable expand or collapse right side WordPress menu, while opened Booking Calendar pages.' ) . '</li>'
618
- . '<li>' . wpbc_recheck_strong_symbols( 'Lots of other improvements and fixes...' ) . '</li>'
619
- . '</ul>';
620
- ?>
621
- </div>
622
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
623
 
624
- <img src="<?php echo $this->asset_path; ?>9.1/9.1_new_icons2.png"
625
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
626
- class="wpbc-section-image" />
627
- <div style="font-style:italic;font-size:0.75em;padding:1em;text-align: right;">* This picture from paid version of Booking Calendar</div>
628
- </div>
629
- </div><?php
630
 
631
- $this->show_separator();
632
 
633
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
634
- // 9.0
635
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
636
- ?>
637
 
638
- </div><?php
639
 
640
- // </editor-fold>
641
 
642
- // <editor-fold defaultstate="collapsed" desc=" 9.0 " >
643
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
644
- // 9.0
645
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
646
- ?>
647
- <div class="clear" style="margin-top:20px;"></div>
648
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
649
- onclick="javascript:jQuery( '.version_update_9_0' ).toggle();"
650
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">9.0</span></a>
651
 
652
- <div class="version_update_9_0" style="display:none;">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
653
 
654
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
655
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">9.0</span></h2><?php
656
 
657
- ?><div class="feature-section two-col">
658
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
659
- <?php echo
660
- '<h4>' .wpbc_recheck_strong_symbols( 'Time slots' ) . '</h4>' .
661
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
662
- . '<li>' . wpbc_recheck_strong_symbols( 'Showing **time slots as dots** in calendar day cells. Modern and beautiful view of time slots within calendar days.' ) . '</li>'
663
- . '<li>' . wpbc_recheck_strong_symbols( 'Display the **exact number** of booked **time slots** in calendar day cells. System shows **as many dots** (time slots) as many time slots have been booked for a particular day. Your customers can see occupancy by time interval from the beginning of the calendar view.' ) . '</li>'
664
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** CSS styling in all calendar skins. If you have customized a calendar skin before, check the changes in the new calendar skins marked with a number: 8.9.4.13 ' ) . '</li>'
665
- . '</ul>';
666
- ?>
667
- </div>
668
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
 
 
 
 
 
 
669
 
670
- <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-time-slots.png"
671
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
672
- class="wpbc-section-image" />
673
 
674
- </div>
675
- </div><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
676
 
677
- $this->show_separator();
678
 
679
- ?><div class="feature-section two-col">
680
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
681
- <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-co2.png"
682
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
683
- class="wpbc-section-image" />
684
- </div>
685
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
686
- <?php echo
687
- '<h4>' .wpbc_recheck_strong_symbols( 'Change over days' ) . '</h4>' .
688
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
689
- . '<li>' . wpbc_recheck_strong_symbols( 'Accurate clear display of the diagonal change over days line. Now it correctly shows the **diagonal line for any shape of day cells** (square or rectangle). This means that for any calendar size you will see the correct sharp diagonal line.' ) . '</li>'
690
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **diagonal line in dates**, where we have check in/out bookings with the **same status (pending or approved)**. It is useful to see where one booking ends and another begins when both bookings are pending or approved. Previously it was shown just full booked date without diagonal line.' ) . '</li>'
691
- . '<li>' . wpbc_recheck_strong_symbols( 'The ability to use **change over days only on certain pages**. Useful in a situation where you need to make a booking with change over days at on a certain page(s) (check in/out dates with diagonal lines) and make bookings for specific time slots on another page(s). You can define list of pages on which to use this feature at the Booking > Settings General page in "Calendar" section.' ) . '</li>'
692
- . '</ul>';
693
- ?>
694
- <span style="font-size:0.8em;padding:1em;">* This feature is available in the Booking Calendar Business Small or higher versions.</span>
695
- </div>
696
- </div><?php
 
697
 
698
  $this->show_separator();
699
 
700
 
701
- ?><div class="feature-section one-col">
702
- <div class="col col-1" style="flex: 1 1 100%;width: 100%;">
703
- <?php echo '<h4>' .wpbc_recheck_strong_symbols( 'Timeline' ) . '</h4>' ;?>
704
- <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-timeline.png"
705
- style="margin:30px 5px 0;width: 100%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
706
- class="wpbc-section-image" />
707
- </div>
708
- <div class="col col-2 last-feature" style="flex: 1 1 100%;width: 100%;">
 
 
 
 
 
 
709
  <?php echo
710
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
711
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline**. Ability to **define how many days to show in Timeline** at the front-end side, while showing Timeline for one booking resource, and select "**Month view mode**" in shortcode (parameter "view_days_num=30" or this parameter skipped). You can define it at the Booking > Settings General page in "Calendar Overview | Timeline" section.' ) . '</li>'
712
- . '<li>' . wpbc_recheck_strong_symbols( '**Calendar Overview** page. Ability to **define how many days to show** in the Calendar Overview page in the admin panel, while showing Calendar Overview page for one booking resource, and selected "**Day view mode**". You can define it at the Booking > Settings General page in "Calendar Overview | Timeline" section.' ) . '</li>'
713
- . '<li>' . wpbc_recheck_strong_symbols( 'Timeline / Calendar Overview page. Scroll exactly the number of days (for one booking resource, and select "Month view mode" / "Day view mode"), that was defined at option "Days number to show in Month mode in Timeline" / "Days number to show in Day view mode in Calendar Overview page".' ) . '</li>'
714
- . '<li>' . wpbc_recheck_strong_symbols( 'Separate settings sections for "Calendar Overview" | "Timeline" options at the Booking > Settings General page.' ) . '</li>'
715
- . '</ul>';
716
- ?>
717
- </div>
718
- </div><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
719
 
720
  $this->show_separator();
721
 
722
- ?><div class="feature-section two-col">
723
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
724
- <?php echo
725
- '<h4>' .wpbc_recheck_strong_symbols( 'Translations' ) . '</h4>' .
726
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
727
- . '<li>' . wpbc_recheck_strong_symbols( '**New**. Ability to define where firstly plugin tries to use translations from "../wp-content/languages/plugins/", or from "../wp-content/plugins/{Booking Calendar Folder}/languages/" folder. You can change this behavior at the Booking > Settings General page.' ) . '</li>'
728
- . '<li>' . wpbc_recheck_strong_symbols( '**New**. Force plugin translation update. Download and update plugin translations from WordPress translation repository and from wpbookingcalendar.com You can make updates at Booking > Settings General page in Translation section.' ) . '</li>'
729
- . '<li>' . wpbc_recheck_strong_symbols( '**New**. Check translation status at WordPress translation repository and local translation from wpbookingcalendar.com to understand what translation to load. You can check it at the Booking > Settings General page in the Translation section.' ) . '</li>'
730
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Booking Calendar by default does not contain MO and PO translation files. You can force download them at the Booking > Settings General page in the Translation section.' ) . '</li>'
731
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Switching language/locale by using "Globe icon" in the Booking Listing page has higher priority than switching languages by translation plugins.' ) . '</li>'
732
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Optimization structure of country list file for future translations.' ) . '</li>'
733
- . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support WPML 4.5.4' ) . '</li>'
734
- . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support Polylang 3.1.4' ) . '</li>'
735
- . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support qTranslate-X 3.4.6.8 (Currently closed "qTranslate-X", was tested with Booking Calendar in php 5.6)' ) . '</li>'
736
- . '</ul>';
737
- ?>
738
- </div>
739
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
740
 
741
- <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-translations.png"
742
- style="margin:30px 5px 0;width: 62%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
743
- class="wpbc-section-image" />
744
 
745
- </div>
746
- </div><?php
 
 
 
 
 
 
747
 
748
- ?></div><?php
 
 
 
 
 
 
 
 
 
 
 
 
749
 
750
- // </editor-fold>
751
 
752
- // <editor-fold defaultstate="collapsed" desc=" 8.9 " >
753
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
754
- // 8.9
755
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
756
- ?>
757
- <div class="clear" style="margin-top:20px;"></div>
758
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
759
- onclick="javascript:jQuery( '.version_update_8_9' ).toggle();"
760
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.9</span></a>
761
 
762
- <div class="version_update_8_9" style="display:none;">
763
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
764
 
765
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
766
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.9</span></h2><?php
767
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
768
 
769
- ?><div class="feature-section two-col">
770
 
771
- <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
772
- <?php
773
- echo
774
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>' .
775
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
776
- . '<li>' . wpbc_recheck_strong_symbols( 'Show debug cost information of "Daily costs" and "Additional costs" to better understand how costs are working. Activate it at the Booking > Settings > Payment page in the Payment options section. *(Business Medium/Large, MultiUser)*' ) . '</li>'
777
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to calculate the deposit amount based on daily costs only, without additional costs. Activate it at the Booking > Settings > Payment page in the Payment options section. *(Business Medium/Large, MultiUser)*' ) . '</li>'
778
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to export into .ics feeds only bookings, that was created in the Booking Calendar plugin, without any other imported bookings. Activate it at Booking > Settings > Sync > "General" page. Available in Booking Manager update 2.0.20 or newer. ' ) . '</li>'
779
-
780
- . '</ul>'
781
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
782
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
783
- . '<li>' . wpbc_recheck_strong_symbols( 'Show error message, if activated to use CAPTCHA and PHP configuration does not have activated GD library.' ) . '</li>'
784
- . '<li>' . wpbc_recheck_strong_symbols( 'Show help message, about troubleshooting of "Request do not pass security check!" error.' ) . '</li>'
785
- . '<li>' . wpbc_recheck_strong_symbols( 'Showing centered booking form, while using simple booking form configuration.' ) . '</li>'
786
- . '<li>' . wpbc_recheck_strong_symbols( 'The Debug function shows HTML elements during output of strings.' ) . '</li>'
787
- . '<li>' . wpbc_recheck_strong_symbols( 'If we are using the [cost_corrections] shortcode in the booking form for entering our cost at Booking > Add booking page, then we can use in the New booking emails such shortcodes [corrected_total_cost], [corrected_deposit_cost], [corrected_balance_cost]. *(Business Medium/Large, MultiUser)*' ) . '</li>'
788
- . '<li>' . wpbc_recheck_strong_symbols( 'Escape any html tags from the booking resource titles in emails. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
789
-
790
- . '</ul>';
791
 
792
- ?>
793
- </div>
794
- <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
795
- <img src="https://wpbookingcalendar.com/assets/8.9/debug_valuation_days.png"
796
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
797
- class="wpbc-section-image" />
798
- <img src="https://wpbookingcalendar.com/assets/8.9/debug_advanced_costs.png"
799
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
800
- class="wpbc-section-image" />
801
-
802
- <img src="https://wpbookingcalendar.com/assets/8.9/rates_debug_show.png"
803
- style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
804
- class="wpbc-section-image" />
805
- <span style="font-size:0.8em;padding:1em;">* This feature is available in the Booking Calendar Business Medium or higher versions.</span>
806
- </div>
807
 
808
- </div><?php
 
809
 
810
- ?></div><?php
 
 
 
 
 
 
 
 
 
 
 
811
 
812
- // </editor-fold>
 
 
813
 
814
- // <editor-fold defaultstate="collapsed" desc=" 8.8 " >
815
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
816
- // 8.8
817
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
818
- ?>
819
- <div class="clear" style="margin-top:20px;"></div>
820
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
821
- onclick="javascript:jQuery( '.version_update_8_8' ).toggle();"
822
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.8</span></a>
823
 
824
- <div class="version_update_8_8" style="display:none;">
825
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
 
827
- <div class="clear" style="margin-top:20px;"></div>
828
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
829
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.8</span></h2><?php
830
 
831
 
832
- ?><div class="feature-section two-col">
833
- <div class="col col-1" style="flex: 1 1 auto;width: 60%;">
834
- <img src="https://wpbookingcalendar.com/assets/9.0/time-picker-premium-black.png"
835
- style="margin:30px 5px;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
836
- class="wpbc-section-image">
837
- </div>
838
- <div class="col col-2 last-feature" style="flex: 1 1 50%;width: 100%;">
839
- <?php
840
- echo
841
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>' .
842
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
843
- . '<li>' . wpbc_recheck_strong_symbols( '**Time picker** for **times slots selection** in the booking form. Activate it at the Booking > Settings General page in the "Time Slots" section.' ) . '</li>'
844
- . '<li>' . wpbc_recheck_strong_symbols( '**Skins** for **Time picker** available for **times slots selection** in the booking form. Activate it at the Booking > Settings General page in Time Slots section.' ) . '</li>'
845
- . '<li>' . wpbc_recheck_strong_symbols( '**Premium calendar skins** now available in **Booking Calendar Free** version.' ) . '</li>'
846
- . '<li>' . wpbc_recheck_strong_symbols( 'Form template **2 columns with time slots" for showing booking form fields in 2 columns with time slots selection. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
847
-
848
- . '</ul>'
849
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
850
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
851
- . '<li>' . wpbc_recheck_strong_symbols( 'More intuitive adding and editing new fields (during editing in simple booking form mode). Showing the "Save changes" button relative only to active action.' ) . '</li>'
852
- . '</ul>';
853
 
854
- ?>
855
- </div>
856
- </div><?php
857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858
 
859
 
860
- $this->show_col_section( array(
861
- array( 'text' =>
862
- ''
863
- . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
864
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
865
- . '<li>' . wpbc_recheck_strong_symbols( 'Error of correct converting special symbols, like #, %, \', " to URL symbols during clicking on "Export to Google Calendar" button. (8.7.11.4)' ) . '</li>'
866
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of correct showing special symbols, like #, %, \', " in the titles of bookings at Calendar Overview page. (8.7.11.5)' ) . '</li>'
867
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of no ability to book some time slots when activated multiple days selection. (8.7.11.6)' ) . '</li>'
868
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.parseJSON event shorthand is deprecated.' ) . '</li>'
869
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.mousedown() event shorthand is deprecated.' ) . '</li>'
870
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.click() event shorthand is deprecated.' ) . '</li>'
871
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.focus() event shorthand is deprecated.' ) . '</li>'
872
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.change() event shorthand is deprecated.' ) . '</li>'
873
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.isFunction() event shorthand is deprecated.' ) . '</li>'
874
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.bind() event shorthand is deprecated.' ) . '</li>'
875
- . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.removeAttr no longer sets boolean properties: disabled.' ) . '</li>'
876
- . '<li>' . wpbc_recheck_strong_symbols( 'Fixing issue of incorrectly showing booking date in plugin, if visitor was entered end time as 24:00 instead of 23:59. (8.7.11.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
877
- . '<li>' . wpbc_recheck_strong_symbols( 'Fixing issue of incorrectly showing coupon code discount hints, if activated option "Apply discount coupon code directly to days cost". (8.7.11.2) *(Business Large, MultiUser)*' ) . '</li>'
878
- . '<li>' . wpbc_recheck_strong_symbols( 'Select first available option (timeslot) in the dropdown list, that showing based on days conditions , after selection of date in calendar. (8.7.11.3) (Business Medium/Large, MultiUser)*' ) . '</li>'
879
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not sending "approved email", if sending email checkbox was unchecked at the Booking > Add booking page and auto approval for Booking > Add booking page has been activated. (8.7.11.8) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
880
- . '</ul>'
881
- )
882
- , array( 'text' =>
883
-
884
- '<h4>' .wpbc_recheck_strong_symbols( 'Compatibility' ) . '</h4>'
885
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
886
- . '<li>' . wpbc_recheck_strong_symbols( 'Support **WordPress 5.6**.' ) . '</li>'
887
- . '<li>' . wpbc_recheck_strong_symbols( 'Full support of **jQuery 3.5**.' ) . '</li>'
888
- . '</ul>'
889
-
890
- . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
891
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
892
- . '<li>' . wpbc_recheck_strong_symbols( 'Dutch translation by Boris Hoekmeijer.' ) . '</li>'
893
- . '<li>' . wpbc_recheck_strong_symbols( 'Swedish translation by Jimmy Sjølander.' ) . '</li>'
894
- . '<li>' . wpbc_recheck_strong_symbols( 'Norwegian translation by Jimmy Sjølander.' ) . '</li>'
895
- . '<li>' . wpbc_recheck_strong_symbols( 'Spanish translation by Jairo Alzate.' ) . '</li>'
896
- . '</ul>'
897
-
898
- . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
899
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
900
- . '<li>' . wpbc_recheck_strong_symbols( 'Trigger event "wpbc_hook_timeslots_disabled" after disabling times in the booking form. To bind this event use this JS: jQuery( ".booking_form_div" ).on( \'wpbc_hook_timeslots_disabled\', function ( event, bk_type, all_dates ){ ... } );' ) . '</li>'
901
- . '</ul>'
902
 
903
- )
904
- )
905
- );
906
- ?></div><?php
907
- // </editor-fold>
908
 
909
- // <editor-fold defaultstate="collapsed" desc=" 8.7 " >
910
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
911
- // 8.7
912
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
913
- ?>
914
- <div class="clear" style="margin-top:20px;"></div>
915
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
916
- onclick="javascript:jQuery( '.version_update_8_7' ).toggle();"
917
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.7</span></a>
918
 
919
- <div class="version_update_8_7" style="display:none;">
920
 
921
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
922
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.7</span></h2><?php
923
 
924
- ?>
925
- <img src="<?php echo $this->asset_path; ?>8.7/booking-calendar-black2.png" style="border:none;box-shadow: 0 0px 2px #bbb;margin: 2%;width:98%;display:block;" />
926
- <div class="clear"></div>
927
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
928
 
929
- $this->show_col_section( array(
930
- array( 'text' =>
931
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
932
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
933
- . '<li>' . wpbc_recheck_strong_symbols( 'New **Calendar Skin** with dark colors: "**Black 2**"' ) . '</li>'
934
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define using **Pending days as Selectable days** - its means that such days have the colors the same as Pending days, but visitor still can select and submit new booking, until you do not approve some booking. Its useful in case, if you need to show that at some days already exist bookings, but visitors still can submit the booking. Please note, such feature will not work correctly if you will make bookings for specific time-slots (its will show warning). How to Use ? In the page, where you are having Booking Calendar shortcode, you need to define the js, like this: &lt;script type="text/javascript"&gt; wpbc_settings.set_option( "pending_days_selectable", true ); &lt;/script&gt; [booking type=1 nummonths=2] (8.6.1.18)' ) . '</li>'
935
-
936
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define **dates format** for **search availability form** at the Booking > Settings > Search page. (8.6.1.21) *(Business Large, MultiUser)*' ) . '</li>'
937
- . '<li>' . wpbc_recheck_strong_symbols( '**Logging** of approving or set as pending bookings to notes section. You can activate this option "Logging of booking approving or rejection" at the Booking > Settings General page in "Booking Admin panel" section. (8.6.1.10) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
938
- . '<li>' . wpbc_recheck_strong_symbols( 'Updated **iPay88** - Payment Gateway integration v1.6.4 (For Malaysia Only) (8.6.1.3) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
939
- . '</ul>'
940
-
941
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
942
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
943
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to auto fill "nickname" of user, when user logged in, and checked this option "Auto-fill fields". In booking form have to be field with name "nickname". (8.6.1.2)' ) . '</li>'
944
- . '<li>' . wpbc_recheck_strong_symbols( 'Usage of **new Wizard style booking form**, where possible to configure several steps in booking form - **more than 2 steps** (8.6.1.15) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
945
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Use check in/out time", for adding check in/out times to use change over days, when importing events via Google Calendar API (using Google API Key) (8.6.1.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
946
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Append check out day", for adding check out day, when importing events via Google Calendar API (using Google API Key) (8.6.1.4) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
947
- . '<li>' . wpbc_recheck_strong_symbols( 'Disable the edit / cancel / payment request links in the "Booking Customer Listing" view for "Approved bookings", in case, if you have activated this option " Change hash after the booking is approved " at the Booking > Settings General page in Advanced section. (8.6.1.6) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
948
- . '<li>' . wpbc_recheck_strong_symbols( 'Replace non standard symbols (like: . or , or ` ) in options for ability correct saving Advanced cost. Otherwise sometimes was not possible to save "Advanced cost" at Booking > Resources > Advanced cost page. (8.6.1.7) *(Business Medium/Large, MultiUser)*' ) . '</li>'
949
- . '<li>' . wpbc_recheck_strong_symbols( 'Added filter hook "wpbc_booking_resources_selection_class" for controlling CSS class in dropdown element of booking resource selections (8.6.1.9) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
950
- . '<li>' . wpbc_recheck_strong_symbols( 'Update booking hash during moving booking to trash or restore bookings, for do not ability to edit or cancel such bookings by visitor (8.6.1.11) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
951
- . '<li>' . wpbc_recheck_strong_symbols( 'Add ability to use only labels in shortcode for showing one payment method (its works only with these exact options): [select payment-method "All payment methods@@" "Stripe" "PayPal" "Authorize.Net" "Sage Pay" "Bank Transfer" "Pay in Cash" "iPay88" "iDEAL"] (8.6.1.16) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
952
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to activate updating booking cost after editing booking in admin panel, based on new booking data. You can activate this option at the Booking > Settings > Payment page (8.6.1.24) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
953
- . '</ul>'
954
- . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
955
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
956
-
957
- . '<li>' . wpbc_recheck_strong_symbols( 'German translation [99% completed] by Markus Neumann.' ) . '</li>'
958
- . '<li>' . wpbc_recheck_strong_symbols( 'Slovenian translation [99% completed] by Klemen Gaber.' ) . '</li>'
959
- . '</ul>'
960
-
961
- )
962
- , array( 'text' =>
963
-
964
- '<h4>' .wpbc_recheck_strong_symbols( 'Compatibility' ) . '</h4>'
965
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
966
- . '<li>' . wpbc_recheck_strong_symbols( 'Support **WordPress 5.3** - updated styles of booking admin panel.' ) . '</li>'
967
- . '</ul>'
968
-
969
- . '<h4>' .wpbc_recheck_strong_symbols( 'Deprecated' ) . '</h4>'
970
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
971
- . '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Timeline v.1. Currently available only new Flex Timeline (Calendar Overview) (8.6.1.13)' ) . '</li>'
972
- . '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Stripe v.1 integration. Now available only Stripe v.3 integration that support SCA (8.6.1.12) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
973
- . '</ul>'
974
-
975
- . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
976
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
977
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue Undefined index: name in ../core/admin/wpbc-class-timeline.php on line 2137' ) . '</li>'
978
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not ability to enter new value of CAPTCHA without page reloading, if previous entered value was incorrect. (8.6.1.8)' ) . '</li>'
979
- . '<li>' . wpbc_recheck_strong_symbols( 'Order of week days in Arabic translation for calendar' ) . '</li>'
980
- . '<li>' . wpbc_recheck_strong_symbols( 'Show payment description about the booking in Stripe dashboard in Metadata section for Stripe v.3 integration (8.6.1.20) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
981
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of showing negative balance hint, during using deposit feature with zero cost (8.6.1.5) *(Business Medium/Large, MultiUser)*' ) . '</li>'
982
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results in "Advanced search results" (while using the shortcode like this [additional_search "3"] at the Booking > Settings > Search page), and if dates in some resources was marked as unavailable via season filters. (8.6.1.14) *(Business Large, MultiUser)*' ) . '</li>'
983
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results, when searching only for 1 specific day (check in/out dates the same in availability form), and we have booked (as full day), this day in specific booking resource. (8.6.1.19) *(Business Large, MultiUser)*' ) . '</li>'
984
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly disabling end time options in select-box (8.6.1.17) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
985
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of slow loading calendar (executing too many sql requests), when season filter was deleted at the Booking > Resources > Filters page, but reference relative (Rates) still exist at Booking > Resources > Cost and rates page. Its means that the Rates was not updated (re-saved) relative specific booking resource at the Booking > Resources > Cost and rates page. (8.6.1.22) *(Business Medium/Large, MultiUser)*' ) . '</li>'
986
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of possible showing status of Stripe v.3 payment as successful at the Booking Listing page, even when its was not completed yet. (8.6.1.23) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
987
-
988
- . '</ul>'
989
- )
990
- )
991
- );
992
- ?></div><?php
993
 
994
- // </editor-fold>
 
 
 
 
 
 
 
 
995
 
996
- // <editor-fold defaultstate="collapsed" desc=" 8.6 " >
997
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
998
- // 8.6
999
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1000
- ?>
1001
- <div class="clear" style="margin-top:20px;"></div>
1002
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1003
- onclick="javascript:jQuery( '.version_update_8_6' ).toggle();"
1004
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.6</span></a>
1005
 
1006
- <div class="version_update_8_6" style="display:none;">
1007
 
1008
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
1009
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.6</span></h2><?php
1010
  $this->show_separator();
1011
- /*
1012
- $this->show_col_section( array(
1013
 
1014
- array( 'h4' => wpbc_recheck_strong_symbols( 'Different structures of booking forms' ),
1015
- 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1016
- . '<li>' . 'Ability to define different structures of booking forms at Booking > Settings > Form page' . '</li>'
1017
- . '<li style="list-style: disc inside;">' . '**Vertical** - form under calendar' . '</li>'
1018
- . '<li style="list-style: disc inside;">' . '**Side by side** - form at right side of calendar' . '</li>'
1019
- . '<li style="list-style: disc inside;">' . '**Centered** - form and calendar are centered' . '</li>'
1020
- . '<li style="list-style: disc inside;">' . '**Dark** - form for dark background' . '</li>'
1021
- . '</ul>' )
1022
 
1023
- . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in Booking Calendar **Free** version' ) . '</span>'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1024
 
1025
- )
1026
- //, array( 'img' => '8.1/booking-form-structure-2.png', 'img_style'=>'margin-top:20px;width: 85%;' )
1027
- )
1028
- );
1029
- */
1030
- /*
1031
- * This update in memory of my Father - great, very responsible and lovely person, that set right direction in my life. [ SVI 2.19.52 - 8.6.19 ]
1032
- */
1033
- ?>
1034
- <p style="text-align:center;"><?php echo wpbc_recheck_strong_symbols( 'New interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.'); ?></p>
1035
- <img src="<?php echo $this->asset_path; ?>8.6/flex-timeline-single-month-pure-2.png" style="border:none;box-shadow: 0 0px 2px #bbb;margin: 2%;width:98%;display:block;" />
1036
- <div class="clear"></div>
1037
- <?php
1038
 
1039
- $this->show_col_section( array(
1040
- array( 'text' =>
1041
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1042
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1043
- . '<li>' . wpbc_recheck_strong_symbols( 'Updated new interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.' ) . '</li>'
1044
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - mobile friendly look.' ) . '</li>'
1045
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - nicely showing several bookings for the same date(s) (dividing day into several rows). For example during bookings for specific times, while showing Month Timeline view.' ) . '</li>'
1046
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - very handy hints for each day of booking, when mouse over specific booking day.' ) . '</li>'
1047
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - aggregated booking details title marked with different color for easy finding and checking how many bookings in specific date(s).' ) . '</li>'
1048
- . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - ability to restore old Timeline look at Booking > Settings General page in Timeline section.' ) . '</li>'
1049
- . '<li>' . wpbc_recheck_strong_symbols( 'Section "Calendar Overview | Timeline" at Booking > Settings General page (8.5.2.20)' ) . '</li>'
1050
- . '<li>' . wpbc_recheck_strong_symbols( 'Button "**Empty Trash**" at Booking Listing page in Action toolbar to completely delete All bookings from Trash (8.5.2.24)' ) . '</li>'
1051
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to **export only approved bookings into .ics feeds**. Available in Booking Manager plugin since 2.0.11 or newer update. (8.5.2.3)' ) . '</li>'
1052
- . '<li>' . wpbc_recheck_strong_symbols( 'Do not update cost of booking, while editing this booking. (8.5.2.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1053
- . '</ul>'
1054
-
1055
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1056
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1057
- . '<li>' . wpbc_recheck_strong_symbols( 'More clean colors for booking details at the Booking Listing page (8.5.2.5)' ) . '</li>'
1058
- . '<li>' . wpbc_recheck_strong_symbols( 'Added <code>[add_to_google_cal_url]</code> - shortcode in "Approved booking" email template for fast manual adding of booking to Google Calendar (8.5.2.13)' ) . '</li>'
1059
- . '<li>' . wpbc_recheck_strong_symbols( 'New Flex Template for search form - more nice CSS style for search form and search results (8.5.2.11) *(Business Large, MultiUser)*' ) . '</li>'
1060
- . '</ul>'
1061
-
1062
-
1063
- . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hub' ) . '</h4>'
1064
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1065
- . '<li>' . wpbc_recheck_strong_symbols( 'Useful **hook** for **Auto approve** bookings only for **specific booking resources**: <code>apply_filters( \'wpbc_get_booking_resources_arr_to_auto_approve\', $booking_resources_to_approve );</code>.<br> Add code similar to this in your functions.php file in your theme, or in some other php file: <br/><code>function my_wpbc_get_booking_resources_arr_to_auto_approve( $resources_to_approve ) { <br>$resources_to_approve = array( 1, 9, 12, 33 ); <br>return $resources_to_approve; } <br>add_filter( \'wpbc_get_booking_resources_arr_to_auto_approve\', \'my_wpbc_get_booking_resources_arr_to_auto_approve\' );</code> (8.5.2.27)' ) . '</li>'
1066
- . '<li>' . wpbc_recheck_strong_symbols( 'Useful **hook** for Google Adwords Conversion tracking: <code>do_action( \'wpbc_track_new_booking\', $params );</code> Add code similar to this in your functions.php file in your theme, or in some other php file: <code>add_action( \'wpbc_track_new_booking\', \'my_booking_tracking\' ); <br>function my_booking_tracking( $params ){ <br>//*Your Google Code for Booking Conversion Page*<br>}</code> (8.5.2.25)' ) . '</li>'
1067
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define rechecking cost with PayPal tax during response of PayPal IPN. Require of adding function like this: <br/><code>function my_wpbc_paypal_ipn_tax( $paypal_tax_percent ){ return 20; } <br/>add_filter( \'wpbc_paypal_ipn_tax\', \'my_wpbc_paypal_ipn_tax\' );</code> (8.5.2.2) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1068
- . '<li>' . wpbc_recheck_strong_symbols( 'More easy find lost bookings (in booking resource(s) that have been deleted). Now, its show only lost bookings. Use link like this: <br/><code>http://server/wp-admin/admin.php?page=wpbc&wh_booking_type=lost</code> (8.5.2.19) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1069
- . '<li>' . wpbc_recheck_strong_symbols( 'Show only one payment system after booking process, if visitor selected payment system in booking form. Example: of shortcode for showing selection of payment forms: <code>Select payment method: [select payment-method "All payment methods@@" "Stripe@@stripe_v3" "PayPal@@paypal" "Authorize.Net@@authorizenet" "Sage Pay@@sage" "Bank Transfer@@bank_transfer" "Pay in Cash@@pay_cash" "iPay88@@ipay88" "iDEAL@@ideal"]</code> This solution was suggested by "Dan Brown". Thank you. (8.5.2.28) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1070
- . '</ul>'
1071
-
1072
- . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1073
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1074
-
1075
- . '<li>' . wpbc_recheck_strong_symbols( 'French translation [100% completed] by Philippe Nowak and Alain Pruvost' ) . '</li>'
1076
- . '<li>' . wpbc_recheck_strong_symbols( 'Hungarian translation [99% completed] by Vincze István' ) . '</li>'
1077
- . '</ul>'
1078
-
1079
- )
1080
- , array( 'text' =>
1081
-
1082
- '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1083
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1084
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of blocking entire day, if in booking form was used start time and end or duration of time fields and visitor use multiple days selection mode, and all start time options for specific day was booked. In multiple day selection mode its incorrect, because user can start days selection at available day, and finish selection with end time at this partially booked day, where no available start-time. Now system block such dates only during single day selection mode. (8.5.2.4)' ) . '</li>'
1085
- . '<li>' . wpbc_recheck_strong_symbols( 'Disable send button, after submit booking, for prevent of several same bookings (8.5.2.7)' ) . '</li>'
1086
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing bookings that start from \'yesterday\' date at Booking Listing page, when selecting \'Current dates\' in Filter toolbar. (8.5.2.14)' ) . '</li>'
1087
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing bookings that start from \'today\' date at Booking Listing page, when selecting \'Past dates\' in Filter toolbar. (8.5.2.16)' ) . '</li>'
1088
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not ability to submit the booking for additional calendar(s), if used booking form with several calendars and was not selected date(s) in main calendar (8.5.2.26) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1089
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing booking resource in search availability results, if resource was booked for specific time-slot on specific date, where we search availability. (8.5.2.7) *(Business Large, MultiUser)*' ) . '</li>'
1090
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of showing default booking resource instead of "All booking resources" for Regular user in MultiUser version at the Booking Listing and Calendar Overview pages, while was set show "All resources" at the Booking > Settings General page. (8.5.2.8) *(MultiUser)*' ) . '</li>'
1091
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of prevent loading Stripe v.3 at some systems, where PHP version lower than PHP 5.4 (8.5.2.9) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1092
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of "not auto selecting dates" during editing/cancellation of the booking by visitor, and not updating cost / dates hints in some systems. Conflict with "WPBakery Page Builder" plugin. (8.5.2.10) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1093
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing warning message about not checked checkbox, during validation required checkboxes that have several options and one option was checked. (8.5.2.12) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1094
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not submitting booking for additional calendars (if using several calendars and one booking form), if payment form does not show for such bookings (8.5.2.17) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1095
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing as booked dates in calendar, that relative to change-over days, while activated "Allow unlimited bookings per same day(s)" option. (8.5.2.18) *(Business Large, MultiUser)*' ) . '</li>'
1096
- . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing additional cost hints for options, that was defined as percentage at the Booking > Resources > Advanced cost page. (8.5.2.21) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1097
- . '<li>' . wpbc_recheck_strong_symbols( 'Do not send emails, if was empty email field (its possible in situation, when in booking form several email fields for several persons), otherwise was showing error (8.5.2.22) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1098
- . '<li>' . wpbc_recheck_strong_symbols( 'Start using "choozen" library for selection of booking resources just during page loading (because library loaded in head), instead of using after full page loaded. Its prevent issue of showing wide selectbox during page loading. (8.5.2.23)' ) . '</li>'
1099
-
1100
- . '</ul>'
1101
- )
1102
- )
1103
- );
1104
  $this->show_separator();
1105
- ?></div><?php
 
1106
 
1107
- /*
1108
- $this->show_col_section( array(
1109
 
1110
- //array( 'img' => '8.1/booking-calendar-stripe-gateway-2.png', 'img_style'=>'margin-top:20px;width: 85%;' ),
 
1111
 
1112
- array( 'h4' => wpbc_recheck_strong_symbols( '**Stripe** payment system integration' ),
1113
- 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1114
- . '<li>' . 'Integration with **<a target="_blank" href="https://stripe.com/">Stripe</a>** payment gateway.' . '</li>'
1115
- . '<li>' . 'Showing on screen (same page) payment form, with ability to pay by cards.' . '</li>'
1116
- . '<li>' . 'Ability to auto approve or auto decline booking, after successful or failed payment.' . '</li>'
1117
- . '</ul>' )
1118
 
1119
- . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in **Business Small / Business Medium / Business Large / MultiUser** versions' ) . '</span>'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1120
 
1121
- )
1122
- )
1123
- );
1124
- */
1125
 
1126
- // </editor-fold>
1127
 
1128
- // <editor-fold defaultstate="collapsed" desc=" 8.5 " >
1129
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1130
- // 8.5
1131
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1132
- ?>
1133
- <div class="clear" style="margin-top:20px;"></div>
1134
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1135
- onclick="javascript:jQuery( '.version_update_8_5' ).toggle();"
1136
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.5</span></a>
1137
 
1138
- <div class="version_update_8_5" style="display:none;">
1139
 
1140
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
1141
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.5</span></h2><?php
1142
- $this->show_separator();
 
 
1143
 
1144
- $this->show_col_section( array(
1145
- array( 'text' =>
1146
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1147
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1148
- . '<li>' . wpbc_recheck_strong_symbols( '**Highlight code syntax** for **booking form** configuration at Booking > Settings > Form page, and show warnings about possible issues. (8.4.7.18) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1149
- . '<li>' . wpbc_recheck_strong_symbols( '**Highlight code syntax** for **search form** and search results form configuration at Booking > Settings > Search page, and show warnings about possible issues. (8.4.7.18) *(Business Large, MultiUser)*' ) . '</li>'
1150
- . '<li>' . wpbc_recheck_strong_symbols( 'Update of **Stripe** Integration via "**Checkout Server**" method, which use "**Strong Customer Authentication**" (SCA) - a new rule coming into effect on September 14, 2019 as part of PSD2 regulation in Europe, will require changes to how your European customers authenticate online payments. (8.4.7.20)' ) . '</li>'
1151
- . '<li>' . wpbc_recheck_strong_symbols( '**Approve booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2approve]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1152
- . '<li>' . wpbc_recheck_strong_symbols( '**Decline booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2decline]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1153
- . '<li>' . wpbc_recheck_strong_symbols( '**Trash booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2trash]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1154
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define sort **order of search availability results** at the Booking > Settings > Search page. (8.4.7.8) *(Business Large, MultiUser)*' ) . '</li>'
1155
- . '<li>' . wpbc_recheck_strong_symbols( '** Experimental Feature**. Trash all imported bookings before new import. Move all previously imported bookings to trash before new import bookings. Its can **resolve issue of updating deleted and edited events in external sources**. Activate this option at Booking > Settings > Sync > "General" page. Its work only, if you are using one source (.ics feed) for importing into specific booking resource! Work only in update of Booking Manager 2.0.10 or newer. (8.4.7.12)' ) . '</li>'
1156
- . '<li>' . wpbc_recheck_strong_symbols( '**Force import**. Ability to import bookings without checking, if such bookings already have been imported. Activate this option at Booking > Settings > Sync > "General" page. Available in the Booking Manager 2.0.10 or newer. (2.0.10.1)(8.4.7.1)' ) . '</li>'
1157
- . '</ul>'
1158
-
1159
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1160
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1161
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Changed color of "Imported" label for bookings in Booking Listing page (8.4.7.2)' ) . '</li>'
1162
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Show "Do you really want to do this ?" popup, when admin try to Trash or Delete booking in Calendar Overview page (8.4.7.14)' ) . '</li>'
1163
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Show button "Find Lost Bookings" at the Booking Settings General page in Help section, for ability to show all exist bookings, and find possible some lost bookings. (8.4.7.19)' ) . '</li>'
1164
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Booking Calendar does not require jquery-migrate library, as obligatory library anymore. Its means that plugin can work with latest jQuery versions (like 3.4.1) just in strait way, without additional libraries. (8.4.7.23)' ) . '</li>'
1165
-
1166
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Checking for seasonal availability in "child booking resources" during submitting booking for booking resource with specific capacity. If you have set unavailable dates in child booking resource via season filters, system will not save bookings in this child booking resource. (8.4.7.3) *(Business Large, MultiUser)*' ) . '</li>'
1167
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Set as unavailable the end time fields options, depend from selected date with booked timeslots (8.4.7.6) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1168
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Added autocomplete Off to the search form fields, to prevent of showing tooltips in search fields. (8.4.7.7) *(Business Large, MultiUser)*' ) . '</li>'
1169
- . '</ul>'
1170
 
1171
- )
1172
- , array( 'text' =>
1173
- '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1174
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1175
-
1176
- . '<li>' . wpbc_recheck_strong_symbols( 'New Romanian translation by Silviu Nita' ) . '</li>'
1177
- . '<li>' . wpbc_recheck_strong_symbols( 'Update of Slovenian translation by Klemen Gaber' ) . '</li>'
1178
- . '<li>' . wpbc_recheck_strong_symbols( 'Update of Dutch translation by Boris Hoekmeijer' ) . '</li>'
1179
- . '<li>' . wpbc_recheck_strong_symbols( 'Update of German translation by Dominik Ziegler' ) . '</li>'
1180
- . '</ul>'
1181
-
1182
- . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1183
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1184
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not working "Read All" button (issue was exist in updates 8.4.5, 8.4.6. (8.4.7.15)' ) . '</li>'
1185
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of incorrectly showing months scroll in calendar at some iPads (8.4.7.17)' ) . '</li>'
1186
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not showing bookings for "Today" date in Booking Listing page, when bookings was made for entire date. (8.4.7.21)' ) . '</li>'
1187
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of showing bookings, that was made during "Today" date in Booking Listing page. Previously system was show some bookings, that was made yesterday, as well. (8.4.7.22)' ) . '</li>'
1188
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Warnings in PHP 7.2 relative INI directive safe_mode is deprecated since PHP 5.3 and removed since PHP 5.4 (8.4.7.24)' ) . '</li>'
1189
-
1190
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Warning: Invalid argument supplied for foreach() in ..\multiuser.php on line 558 (8.4.7.4) *(MultiUser)*' ) . '</li>'
1191
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing of users in Booking > Settings > Users page in WordPress MU installation (8.4.7.5) *(MultiUser)*' ) . '</li>'
1192
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue with Stripe payment, when "Subject" have too long description with dates to book. (8.4.7.10) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1193
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Translation issue of Completed payment status (8.4.7.11) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1194
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing of showing dates instead of titles of booking resources in Timeline, when some Regular user was logged in and try to scroll timeline (8.4.7.13) *(MultiUser)*' ) . '</li>'
1195
-
1196
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing Notice: Undefined offset: 9 in ../inc/_bl/wpbc-search-availability.php on line 689 (8.4.7.16) *(Business Large, MultiUser)*' ) . '</li>'
1197
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not updating cost by making booking at Booking > Add booking page, while using [cost_correction] shortcode in the booking form (8.4.7.28) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1198
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not showing change over days in calendar for single booking resource (capacity = 1), where maximum number of visitors > 1 (8.4.7.29) *(Business Large, MultiUser)*' ) . '</li>'
1199
-
1200
- . '</ul>'
1201
- )
1202
- )
1203
- );
1204
- $this->show_separator();
1205
- ?></div><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1206
 
1207
- // </editor-fold>
1208
 
1209
- // <editor-fold defaultstate="collapsed" desc=" 8.4 " >
1210
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1211
- // 8.4
1212
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1213
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1214
 
1215
- <div class="clear" style="margin-top:20px;"></div>
1216
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1217
- onclick="javascript:jQuery( '.version_update_8_4' ).toggle();"
1218
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.4</span></a>
 
1219
 
1220
- <div class="version_update_8_4" style="display:none;">
 
1221
 
1222
- <h2 style='font-size: 2.1em;'>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;"
1223
- >8.4</span></h2><?php
1224
  $this->show_separator();
1225
  // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1226
  ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/rpg1kApZCdw?rel=0&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
@@ -1230,929 +1305,825 @@ class WPBC_Welcome {
1230
  '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1231
  ?>
1232
  </div><?php
1233
- ?></div><?php
1234
 
1235
- // </editor-fold>
 
 
 
 
1236
 
1237
- // <editor-fold defaultstate="collapsed" desc=" 8.3 " >
1238
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1239
- // 8.3
1240
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1241
- ?>
1242
- <div class="clear" style="margin-top:20px;"></div>
1243
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1244
- onclick="javascript:jQuery( '.version_update_8_3' ).toggle();"
1245
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.3</span></a>
1246
 
1247
- <div class="version_update_8_3" style="display:none;">
 
 
 
 
 
 
 
 
1248
 
1249
- <h2 style='font-size: 2.1em;'>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;"
1250
- >8.3</span></h2><?php
1251
- $this->show_separator();
1252
- // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1253
- ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/-pOTMiyp6Q8?rel=0&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
1254
- ?><div style="width:100%;font-size:0.8em;margin:2em 1em;text-align: center;">
1255
- <?php
1256
- printf( 'For more information about current update, see %srelease notes%s',
1257
- '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1258
- ?>
1259
- </div><?php
1260
- ?></div><?php
1261
 
1262
- // </editor-fold>
 
 
1263
 
1264
- // <editor-fold defaultstate="collapsed" desc=" 8.2 " >
1265
- ?>
1266
- <div class="clear" style="margin-top:20px;"></div>
1267
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1268
- onclick="javascript:jQuery( '.version_update_8_2' ).toggle();"
1269
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.2</span></a>
1270
 
1271
- <div class="version_update_8_2" style="display:none;">
 
1272
 
1273
- <h2 style='font-size: 2.1em;'>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;"
1274
- >8.2</span></h2><?php
1275
- $this->show_separator();
1276
- // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1277
- ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLabuVtqCh9dzBEZCIqayAfvarrngZuqUl&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
1278
 
1279
- ?><div style="width:100%;font-size:0.8em;margin:2em 1em;text-align: center;">
1280
- <?php
1281
- printf( 'For more information about current update, see %srelease notes%s',
1282
- '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1283
- ?>
1284
- </div><?php
1285
 
1286
- ?></div><?php
1287
 
1288
- // </editor-fold>
 
 
1289
 
1290
- // <editor-fold defaultstate="collapsed" desc=" 8.1 " >
1291
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1292
- // 8.1
1293
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1294
- ?>
1295
- <div class="clear" style="margin-top:20px;"></div>
1296
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1297
- onclick="javascript:jQuery( '.version_update_8_1' ).toggle();"
1298
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.1</span></a>
1299
 
1300
- <div class="version_update_8_1" style="display:none;">
 
1301
 
1302
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
1303
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.1</span></h2><?php
1304
- $this->show_separator();
1305
 
1306
- $this->show_col_section( array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1307
 
1308
- array( 'h4' => wpbc_recheck_strong_symbols( 'Different structures of booking forms' ),
1309
- 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1310
- . '<li>' . 'Ability to define different structures of booking forms at Booking > Settings > Form page' . '</li>'
1311
- . '<li style="list-style: disc inside;">' . '**Vertical** - form under calendar' . '</li>'
1312
- . '<li style="list-style: disc inside;">' . '**Side by side** - form at right side of calendar' . '</li>'
1313
- . '<li style="list-style: disc inside;">' . '**Centered** - form and calendar are centered' . '</li>'
1314
- . '<li style="list-style: disc inside;">' . '**Dark** - form for dark background' . '</li>'
1315
- . '</ul>' )
1316
 
1317
- . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in Booking Calendar **Free** version' ) . '</span>'
 
 
 
 
1318
 
1319
- )
1320
- , array( 'img' => '8.1/booking-form-structure-2.png', 'img_style'=>'margin-top:20px;width: 85%;' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1321
  )
1322
  );
1323
 
 
1324
  $this->show_separator();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1325
 
1326
- $this->show_col_section( array(
1327
 
1328
- array( 'img' => '8.1/booking-calendar-stripe-gateway-2.png', 'img_style'=>'margin-top:20px;width: 85%;' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1329
 
1330
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Stripe** payment system integration' ),
1331
- 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1332
- . '<li>' . 'Integration with **<a target="_blank" href="https://stripe.com/">Stripe</a>** payment gateway.' . '</li>'
1333
- . '<li>' . 'Showing on screen (same page) payment form, with ability to pay by cards.' . '</li>'
1334
- . '<li>' . 'Ability to auto approve or auto decline booking, after successful or failed payment.' . '</li>'
1335
- . '</ul>' )
1336
 
1337
- . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in **Business Small / Business Medium / Business Large / MultiUser** versions' ) . '</span>'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1338
 
1339
- )
1340
- )
1341
- );
1342
 
1343
  $this->show_separator();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1344
 
1345
 
1346
- $this->show_col_section( array(
1347
- array( 'text' =>
1348
- '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1349
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1350
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to insert modification/creation date or (Year, month, day, hours, minutes or seconds) of booking into email templates or in payment summary' ) . '</li>'
1351
- . '<li>' . wpbc_recheck_strong_symbols( '**New.** Shortcode for showing check out date plus one additional day: <code>[check_out_plus1day_hint]</code> at Booking > Settings > Form page. (8.0.2.12) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1352
- . '</ul>'
1353
- . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1354
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1355
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Spanish translation [100% completed] by Martin Romero' ) . '</li>'
1356
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Galician (Spanish) translation [100% completed] by Martin Romero' ) . '</li>'
1357
- . '</ul>'
1358
-
1359
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1360
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1361
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Improve admin UI styles in Chrome browser, by setting more sleek view of UI elements (8.0.2.4/5)' ) . '</li>'
1362
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Do not export to .ics feed bookings, that inside of Trash folder (8.0.2.7)' ) . '</li>'
1363
- . '</ul>'
1364
- )
1365
- , array( 'text' =>
1366
-
1367
- '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1368
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1369
-
1370
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** showing booking listing correctly for "next 1 month" without bookings, that include past ("yesterday day") bookings (8.0.1.1)' ) . '</li>'
1371
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** force to load jquery-migrate in case, if we do not know the version of jQuery which was loaded. (8.0.1.2)' ) . '</li>'
1372
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing warning "parsererror ~ SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data" during import process, when some bookings already was imported (8.0.2.1)' ) . '</li>'
1373
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** add support of Apache 2.4 directives relative captcha saving.' ) . '</li>'
1374
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing warning: "Email different from website DNS, its can be a reason of not delivery emails" at Booking > Settings > Emails page, in case if website DNS starting with "www." ot some other sub-domain. (8.0.2.9)' ) . '</li>'
1375
-
1376
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** showing correctly change-over days (triangles), when inserted only "availability calendar", without booking form (8.0.1.2) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1377
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** ability to use symbol **/** in placeholders in booking form fields shortcodes at Settings Form page (8.0.1.13) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1378
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** correctly showing single and double quotes (\' and ") symbols in textarea during editing booking (8.0.1.3) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1379
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not saving changes during editing, if you try to search some booking resource (or other item), and this booking resource was not at the 1st page (during usual listing) (8.0.1.12) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1380
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of incorrect cost calculation, during editing booking, when selected days from 1 to 9 and used some rates. Issue relative of not using leading 0 in textarea. (8.0.2.2) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1381
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing coupon discount description, does not depend from uppercase or lowercase of entered coupon code (8.0.2.7) *(Business Large, MultiUser)*' ) . '</li>'
1382
- . '</ul>'
1383
- )
1384
- )
1385
- );
1386
- $this->show_separator();
1387
- ?></div><?php
1388
-
1389
- // </editor-fold>
1390
-
1391
- // <editor-fold defaultstate="collapsed" desc=" 8.0 " >
1392
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1393
- // 8.0
1394
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1395
- ?>
1396
- <div class="clear" style="margin-top:20px;"></div>
1397
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1398
- onclick="javascript:jQuery( '.version_update_8_0' ).toggle();"
1399
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">8.0</span></a>
1400
 
1401
- <div class="version_update_8_0" style="display:none;">
1402
 
1403
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar <span style="font-size: 1.1em;
1404
- font-weight: 600;font-family: Consolas,Monaco,monospace;padding-left: 10px;color: #5F5F5F;">8.0</span></h2><?php
1405
  $this->show_separator();
1406
- ?><!--h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'>Changes in all versions</h2--><?php
1407
-
1408
- ?><h2 style='font-size: 1.6em;margin:20px 0 -10px 0;'>Sync bookings between different sources easily via <strong>.ics</strong> feeds</h2><?php
1409
- if(0) {
1410
- ?>
1411
- <span class="wpbc-settings-notice notice notice-info"
1412
- style="text-align: left;border-top: 1px solid #f0f0f0;border-right: 1px solid #f0f0f0;line-height: 2em;padding: 5px 20px;display: block !important;margin: 40px 0 -30px;border-left-color: #00a0d2;"
1413
- >
1414
- <?php
1415
- $message_ics = sprintf(
1416
- __( '.ics - is a file format of iCalendar standard for exchanging calendar and scheduling information between different sources %s Using a common calendar format (.ics), you can keep all your calendars updated and synchronized.', 'booking' )
1417
- , '<br/>' /*
1418
- '<br/><em>(<strong><a href="https://www.airbnb.com/help/article/99/how-do-i-sync-my-airbnb-calendar-with-another-calendar" target="_blank">Airbnb</a></strong>, '
1419
- . '<strong><a href="https://partnersupport.booking.com/hc/en-us/articles/213424709-How-do-I-export-my-calendar-" target="_blank">Booking.com</a></strong>, '
1420
- . '<strong><a href="https://help.homeaway.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">HomeAway</a></strong>, '
1421
- . '<strong><a href="https://rentalsupport.tripadvisor.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">TripAdvisor</a></strong>, '
1422
- . '<strong><a href="https://help.vrbo.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">VRBO</a></strong>, '
1423
- . '<strong><a href="https://helpcenter.flipkey.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">FlipKey</a></strong> '
1424
- . str_replace( array( '.ics', 'iCalendar' ), array( '<strong>.ics</strong>', '<strong>iCalendar</strong>' ),
1425
- __( 'and any other calendar that uses .ics format', 'booking' )
1426
  )
1427
- . ')</em>.<br/>' */
1428
- );
1429
- $message_ics = str_replace( array( '.ics', 'iCalendar' ), array( '<strong>.ics</strong>', '<strong>iCalendar</strong>' ), $message_ics );
1430
- echo $message_ics;
1431
- ?>
1432
- </span>
1433
- <?php
1434
- }
1435
-
1436
- $this->show_col_section( array(
1437
-
1438
- array( 'h4' => wpbc_recheck_strong_symbols( 'Import of **.ics** feeds (files)' ),
1439
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1440
- . '<li>' . wpbc_recheck_strong_symbols( 'Native integration with our **<a target="_blank" href="https://wpbookingcalendar.com/faq/booking-manager/">Booking Manager</a>** plugin for ability to import **.ics** feeds or files' ) . '</li>'
1441
- . '<li>' . wpbc_recheck_strong_symbols( 'Import external **.ics** feeds via shortcodes at pages.
1442
- It gives a great flexibility to import **.ics** feeds from different sources <em>(like ' )
1443
- . '<strong><a href="https://www.airbnb.com/help/article/99/how-do-i-sync-my-airbnb-calendar-with-another-calendar" target="_blank">Airbnb</a></strong>, '
1444
- . '<strong><a href="https://partnersupport.booking.com/hc/en-us/articles/213424709-How-do-I-export-my-calendar-" target="_blank">Booking.com</a></strong>, '
1445
- . '<strong><a href="https://help.homeaway.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">HomeAway</a></strong>, '
1446
- . '<strong><a href="https://rentalsupport.tripadvisor.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">TripAdvisor</a></strong>, '
1447
- . '<strong><a href="https://help.vrbo.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">VRBO</a></strong>, '
1448
- . '<strong><a href="https://helpcenter.flipkey.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">FlipKey</a></strong> '
1449
- . ' or any other calendar that uses .ics format)</em> '
1450
- . ' into same booking resource.'
1451
- . ' <br>Its means that you can import bookings or events from different sources into same resource.'
1452
- . '</li>'
1453
- . '<li>' . wpbc_recheck_strong_symbols( 'Define different parameters in this import shortcode. For example, you can set "start from" and "finish to" date condition or maximum number of items to import or import only events for available dates in exist calendar, etc...' ) . '</li>'
1454
- . '<li>' . wpbc_recheck_strong_symbols( 'Additionally you can configure your server CRON for periodically access these pages and import .ics feeds in automatic way.' ) . '</li>'
1455
-
1456
- . '</ul>'
1457
- )
1458
- , array( 'img' => '8.0/import-ics2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1459
- )
1460
- );
1461
-
1462
- $this->show_separator();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1463
 
1464
- $this->show_col_section( array(
1465
- array( 'img' => '8.0/export-ics.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1466
- , array( 'h4' => wpbc_recheck_strong_symbols( 'Export of **.ics** feeds (files)' ),
1467
- 'text' =>
1468
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1469
- . '<li>' . wpbc_recheck_strong_symbols( 'Native integration with our **<a target="_blank" href="https://wpbookingcalendar.com/faq/booking-manager/">Booking Manager</a>** plugin for ability to export **.ics** feeds' ) . '</li>'
1470
- . '<li>' . wpbc_recheck_strong_symbols( 'Configure specific ULR feed(s) at setting page' ) . '</li>'
1471
- . '<li>' . wpbc_recheck_strong_symbols( 'Use this URL(s) in external websites <em>(like ' )
1472
- . '<strong><a href="https://www.airbnb.com/help/article/99/how-do-i-sync-my-airbnb-calendar-with-another-calendar" target="_blank">Airbnb</a></strong>, '
1473
- . '<strong><a href="https://partnersupport.booking.com/hc/en-us/articles/213424709-How-do-I-export-my-calendar-" target="_blank">Booking.com</a></strong>, '
1474
- . '<strong><a href="https://help.homeaway.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">HomeAway</a></strong>, '
1475
- . '<strong><a href="https://rentalsupport.tripadvisor.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">TripAdvisor</a></strong>, '
1476
- . '<strong><a href="https://help.vrbo.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">VRBO</a></strong>, '
1477
- . '<strong><a href="https://helpcenter.flipkey.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">FlipKey</a></strong> '
1478
- . ' or any other calendar that uses .ics format)</em> '
1479
- . ' for ability to import bookings into these third-party websites.'
1480
- . '<li>' . wpbc_recheck_strong_symbols( 'Or you can simply download .ics file for later use in some application.' ) . '</li>'
1481
- . '</li>'
1482
- . '</ul>'
1483
- )
1484
- )
1485
- );
1486
- $this->show_separator();
1487
-
1488
-
1489
- $this->show_col_section( array(
1490
- array( 'text' =>
1491
- '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1492
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1493
-
1494
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Dutch translation [100% completed] by Boris Hoekmeijer and Alex Rabayev and Iris Schuster' ) . '</li>'
1495
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Finnish translation [98% completed] by Teemu Valkeapää' ) . '</li>'
1496
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Chinese (Taiwan) translation [98% completed] by Howdy Lee' ) . '</li>'
1497
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Norwegian translation [98% completed] by Bjørn Kåre Løland' ) . '</li>'
1498
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Brazilian Portuguese translation [98% completed] by Rafael Rocha' ) . '</li>'
1499
- . '</ul>'
1500
-
1501
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1502
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1503
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** New setting option for activation showing system debug log, for Beta features. Useful in case, if need to find reason, if something was going wrong. You can activate it at the Booking > Settings General page in Advanced section after clicking on "Show advanced settings of JavaScript loading." ( 7.2.1.15 )' ) . '</li>'
1504
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Showing system messages one under other instead of replacing each other in admin panel. Its possible to hide top one and see previous notices (7.2.1.16)' ) . '</li>'
1505
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Show in "New (visitor)" email (that is sending to the visitor after new booking) the date that is one day previous to the last selected day, by using this shortcode: <code>[check_out_minus1day]</code> (7.2.1.6)' ) . '</li>'
1506
-
1507
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Shortcode for showing coupon discount value of the booking: <code>[coupon_discount_hint]</code> at Booking > Settings > Form page. **(Business Large, MultiUser)**' ) . '</li>'
1508
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Discount coupon codes will not depend from symbols lowercase or uppercase. Prevent of saving coupon codes with specific symbols, which can generate issue of not showing discount at payment form. (7.2.1.3) **(Business Large, MultiUser)**' ) . '</li>'
1509
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Show "blank" bookings with different border color at Calendar Overview page. (7.2.1.8) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1510
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Apply "Valuation days" cost settings "For = LAST", even if previous TOGATHER = X% settings was applied. (7.2.1.20) **(Business Medium/Large, MultiUser)**' ) . '</li>'
1511
- . '</ul>'
1512
-
1513
- )
1514
- , array( 'text' =>
1515
- '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1516
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1517
- . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New **API File** <code>/{Booking Calendar Folder}/core/wpbc-dev-api.php</code> - well documented list of functions and hooks that possible to use for third-party integrations.' ) . '</li>'
1518
- . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New column in booking resources table for saving export info (7.2.1.13) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1519
- . '</ul>'
1520
-
1521
- . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1522
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1523
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Correctly load custom jQuery via https (in some servers), if website is using SSL ( 7.2.1.4 )' ) . '</li>'
1524
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Compatibility issue with other plugins, during expand/collapsing sections at settings pages (7.2.1.10)' ) . '</li>'
1525
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Additional checking about $_SERVER variables, for preventing of showing "Warning Notices" at some servers ( 7.2.1.17 )' ) . '</li>'
1526
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Loading correct language, if language was set to English in user profile but in WordPress > General > Settings page was set some other default language ( 7.2.1.21 )' ) . '</li>'
1527
-
1528
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of not showing search results (during searching in same page - ajax request), when using custom fields parameters and selected - "" (which is means "any value") ( 7.2.1.5 ) **(Business Large, MultiUser)**' ) . '</li>'
1529
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of showing correct number of decimal digits depend from cost format, in calendar days cells and mouse-over tooltips ( 7.2.1.11) **(Business Medium/Large, MultiUser)**' ) . '</li>'
1530
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Do not check about required fields, if the fields are hidden (7.2.1.12) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1531
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of not showing links for booking resources in timeline after scrolling, if using (resource_link) parameter with links in timeline shortcode. (7.2.1.14) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1532
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** "Request-URI Too Long" fatal error at "Calendar Overview" page, when visitor have too many booking resources (7.2.1.18) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1533
-
1534
- . '</ul>'
1535
- )
1536
- )
1537
- );
1538
- $this->show_separator();
1539
- ?></div><?php
1540
-
1541
- // </editor-fold>
1542
-
1543
- // <editor-fold defaultstate="collapsed" desc=" 7.1 - 7.2 " >
1544
 
1545
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1546
- // 7.1 - 7.2
1547
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1548
- ?>
1549
- <div class="clear" style="margin-top:20px;"></div>
1550
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1551
- onclick="javascript:jQuery( '.version_update_7_2' ).toggle();"
1552
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">7.1 - 7.2</span></a>
1553
-
1554
- <div class="version_update_7_2" style="display:none;">
1555
-
1556
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar 7.1 - 7.2</h2><?php
1557
  $this->show_separator();
1558
- ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'>Changes in all versions</h2><?php
1559
-
1560
- $this->show_col_section( array(
1561
-
1562
- array( 'h4' => wpbc_recheck_strong_symbols( 'Fast Adding bookings to Google Calendar' ),
1563
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1564
- . '<li>' . wpbc_recheck_strong_symbols( 'Manual **export to Google Calendar** of specific booking by clicking on **Export** button near booking at Booking Listing page' ) . '</li>'
1565
- . '<li>' . wpbc_recheck_strong_symbols( 'Shortcode <code>[add_to_google_cal_url]</code> in email template (to admin) for fast manual (adding) of booking to Google Calendar' ) . '</li>'
1566
- . '</ul>'
1567
- )
1568
- , array( 'img' => '7.2/add-to-google-calendar.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1569
- )
1570
- );
1571
- $this->show_separator();
1572
- $this->show_col_section( array(
1573
- array( 'img' => '7.2/timeline-hours-limit.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1574
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Timeline** tricks' ),
1575
- 'text' =>
1576
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1577
- . '<li>' . wpbc_recheck_strong_symbols( 'Limit times for showing cells in TimeLine for 1 day view mode. <br>For Example: <code>[bookingtimeline type=\'1\' limit_hours=\'9,22\']</code>' ) . '</li>'
1578
- . '<li>' . wpbc_recheck_strong_symbols( 'Constant **WP_BK_TIMILINE_LIMIT_HOURS** in wpbc-constants.php file. Limit times for showing cells in Calendar Overview page in admin panel for 1 day view mode. ' ) . '</li>'
1579
- . '</ul>'
1580
- )
1581
- )
1582
- );
1583
-
1584
- $this->show_separator();
1585
-
1586
- $this->show_col_section( array(
1587
- array( 'text' =>
1588
- '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1589
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1590
-
1591
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Danish translation [100% completed] by Daniel Moesgaard' ) . '</li>'
1592
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Swedish translation [100% completed] by Mikael Göransson' ) . '</li>'
1593
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** Italian translation [100% completed]' ) . '</li>'
1594
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Hebrew translation [100% completed] by Alex Rabayev and Iris Schuster' ) . '</li>'
1595
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Arabic translation [84% completed]' ) . '</li>'
1596
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** Dutch translation [99% completed] ' ) . '</li>'
1597
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** German translation [99% completed]' ) . '</li>'
1598
- . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** French translation [99% completed]' ) . '</li>'
1599
- . '</ul>'
1600
-
1601
- . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1602
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1603
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** remove today day highlighting in calendar, after loading of page (7.1.2.8)' ) . '</li>'
1604
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** additional checking of correct loading popover function to prevent JavaScript error. If visitor disable loading of Bootstrap files or because of some JS conflict, instead of showing JavaScript error system will skip showing popover tooltip when mouse over days in calendar, or when click on booking in timeline. (7.0.1.2)' ) . '</li>'
1605
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** added checking about minimum required version of WordPress for using Booking Calendar (7.0.1.6)' ) . '</li>'
1606
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Ability to use <code>[reason]</code> or <code>[approvereason]</code> in Booking > Settings > Emails > Approve email template.' ) . '</li>'
1607
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Prepare functionality for removing language folder from plugin in a future, for reducing size of plugin. (7.0.1.53)' ) . '</li>'
1608
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Showing popovers in timeline (calendar overview) only at bottom direction for better looking at mobile devices (7.0.1.42)' ) . '</li>'
1609
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Set color of placeholder text in settings fields lighter. (7.0.1.54)' ) . '</li>'
1610
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Increase time for script execution during initial activation of plugin. (7.0.1.57)' ) . '</li>'
1611
- . '</ul>'
1612
-
1613
- . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1614
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1615
- . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** do_action( \'wpbc_jquery_unknown\' ) - new hook for situation, when we can not make identification version of jQuery, sometimes, need manually to load jquery-migrate (7.0.1.33)' ) . '</li>'
1616
- . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** Trigger event "timeline_nav" after clicking navigation in timeline. To bind this event use this JS: <code>jQuery( ".wpbc_timeline_front_end" ).on(\'timeline_nav\', function(event, timeline_obj, nav_step ) { ... } );</code> (7.0.1.48)' ) . '</li>'
1617
- . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New constant. <code>WP_BK_AUTO_APPROVE_WHEN_IMPORT_GCAL</code> - Auto approve booking, if imported from Google Calendar. Default set to false (7.0.1.59)' ) . '</li>'
1618
- . '</ul>'
1619
- )
1620
- , array( 'text' =>
1621
- '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1622
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1623
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** some translation issue (7.1.2.1)' ) . '</li>'
1624
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing today bookings in Booking Listing page (7.1.2.8)' ) . '</li>'
1625
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Renamed Greek translation files from booking-el_GR.mo to booking-el.mo (booking-el_GR.po to booking-el.po) Its seems that default locale for Greek is \'el\' (7.1.2.10)' ) . '</li>'
1626
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** add possibility to check and load file for \'short\' translation locale (like \'en\'), if file for \'long\' locale (like \'en_US\') was not found in translation folder. (7.1.2.11)' ) . '</li>'
1627
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Update captcha 1.1 to captcha 1.9, which protect from potensional PHP file inclusion vulnerability (7.0.1.67)' ) . '</li>'
1628
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Minimum version of jQuery required as 1.9.1' ) . '</li>'
1629
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of disabling sending emails during approving or cancellation of bookings at Booking Listing or Calendar Overview pages, when checkbox "Emails sending" unchecked. (7.0.1.5)' ) . '</li>'
1630
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of **auto import events** from Google Calendar into the Booking Calendar (7.0.1.9)' ) . '</li>'
1631
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of generating **JavaScript errors** when user deactivated loading of Bootstrap JS files at Booking Settings General page in Advanced section. Instead of it show warning message or skip showing tooltips. (7.0.1.10)' ) . '</li>'
1632
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of order loading translation, if default language is not English (7.0.1.12) ' ) . '</li>'
1633
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of redirection to "Thank you" page. Using home_url (www.server.com) instead of site_url (www.server.com/wordpress/) at some servers. (7.0.1.20)' ) . '</li>'
1634
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of ability to translate options in selectbox in format like <code>Eng 1 [lang=it_IT] Italian 1</code> at Settings Fields page in Booking Calendar Free version (7.0.1.21)' ) . '</li>'
1635
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** set email field as required field in Booking Calendar Free version (7.0.1.22)' ) . '</li>'
1636
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not sending emails, if server was set with using error_reporting(E_STRICT); and show this warning: "PHP Strict Standards: Only variables should be passed by reference in /wp-content/plugins/booking/core/admin/page-email-new-admin.php on line 1105" (7.0.1.32)' ) . '</li>'
1637
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not submitting booking in IE. Issue relative to note support by IE String.trim() function. (7.0.1.39)' ) . '</li>'
1638
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing additional slashes in emails at reason of cancellation (7.0.1.46) (Also fixed same issue for approve reason, payment request text and adding notes to the booking).' ) . '</li>'
1639
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing in TimeLine (Calendar Overview) 1st day of next Month, that does not belong to current visible month. Sometimes in such view if booking starting from 1st day of next month, system does not show this booking, and its can confuse visitors. (7.0.1.47)' ) . '</li>'
1640
- . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not saving Booking > Settings General page if pressed on Save Changes button at top right side in French language, and some other languages (7.0.1.56)' ) . '</li>'
1641
- . '</ul>'
1642
-
1643
-
1644
-
1645
- )
1646
- )
1647
- );
1648
-
1649
-
1650
-
1651
-
1652
- ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'><?php echo wpbc_recheck_strong_symbols( 'Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions' ); ?></h2><br/><?php
1653
-
1654
  $this->show_separator();
1655
 
1656
- $this->show_col_section( array(
1657
-
1658
- array( 'h4' => wpbc_recheck_strong_symbols( 'iDEAL payment gateway' ),
1659
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1660
- . '<li>' . wpbc_recheck_strong_symbols( 'Integration of **iDEAL via Sisow** payment gateway. (7.0.1.64) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1661
- . '</ul>'
1662
- )
1663
- , array( 'img' => '7.2/ideal-settings.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1664
- )
1665
- );
1666
- $this->show_separator();
1667
- $this->show_col_section( array(
1668
- array( 'img' => '7.2/change-over-days.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1669
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Change over days as triangles**' ),
1670
- 'text' =>
1671
- '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1672
- . '<li>' . wpbc_recheck_strong_symbols( ' **New.** **Show change over days as triangles.** <em>Beta Feature</em>. Its require showing calendar days cells as square (not rectangle). Width and height of calendar you can define in shortcode options parameter. Supported by: Chrome 36.0+, MS IE 10.0+, Firefox 16.0+, Safari 9.0+, Opera 23.0+ (7.0.1.24) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>' . '</ul>'
1673
- )
1674
- )
1675
- );
1676
- $this->show_separator();
1677
-
1678
- $this->show_col_section( array(
1679
- array( 'text' =>
1680
-
1681
- '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1682
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1683
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** New form template with 30 minutes time-slots selection at Booking > Settings > Form page (7.1.2.6) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1684
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** Ability to add empty parameter "&booking_hash" to URL in browser at Booking > Add booking page for ability to add bookings for past days (7.1.2.10) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1685
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** Ability to use "Valuation days" cost settings, if activated "Use time selections as recurrent time slots" and set cost "per 1 day" and option "Time impact to cost" deactivated at Booking > Settings > Payment page. Useful, when need to set cost per days, but also save time-slots during booking on several days. (7.1.2.11) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1686
-
1687
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to set lower interval (15, 30 or 45 minutes) for auto cancellation pending bookings that have no successfully paid status (7.0.1.25) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1688
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use aggregate parameter in the <code>[bookingedit]</code> shortcode (7.0.1.26) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1689
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use in field "From Name" in email templates at Booking - Settings - Emails page different shortcodes from booking form, like <code>[name] [secondname]</code> (7.0.1.29) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1690
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to show in cost_hints negative (discounted) cost for additional items. Previously system set instead of negative value just 0 (7.0.1.30) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1691
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Increase accuracy of rates calculation, if we are having more than 2 digits after comma in rates configurations (7.0.1.44) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1692
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use HTML tags in popup window during sending payment request and then showing <code>[paymentreason]</code> in email template with HTML formating (7.0.1.60) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1693
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Showing "blank bookings" in Calendar Overview page with different color (red) (7.0.1.40) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1694
- . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Showing all title for booking resources with long name (longer than 19 symbols) at the Booking Listing page. Previously its was cutted of (7.0.1.66) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1695
-
1696
-
1697
- . '</ul>'
1698
-
1699
- . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1700
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1701
- . '<li>' . wpbc_recheck_strong_symbols( ' **New** Constant WP_BK_CHECK_IF_CUSTOM_PARAM_IN_SEARCH in wpbc-constants.php file. Check in search results custom fields parameter that can include to multiple selected options in search form. Logical OR (7.1.2.9) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1702
- . '<li>' . wpbc_recheck_strong_symbols( ' **Trick** Using in Booking > Resources page parameter "show_all_resources" in browser URL, will show all booking resources, even lost booking resources. Lost booking resources can be, if you was assigned as parent booking resource to single booking resource, itself. (7.1.2.2) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1703
-
1704
- . '<li>' . wpbc_recheck_strong_symbols( ' **New.** Ability to define links for booking resource titles in TimeLine. Example: <code>[bookingtimeline ... options=\'{resource_link 3="http://beta/resource-apartment3-id3/"},{resource_link 4="http://beta/resource-3-id4/"}\' ... ]</code> (7.0.1.50) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1705
- . '<li>' . wpbc_recheck_strong_symbols( ' **Tip.** Skip showing rows of booking resource(s) in TimeLine or Calendar Overview, if no any exist booking(s) for current view. For activation this feature you need to add only_booked_resources parameter to the URL. For example: http://server.com/wp-admin/admin.php?page=wpbc&view_mode=vm_calendar&only_booked_resources Its have to improve speed of page loading, when we are having too many resources at the page. (7.0.1.51) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1706
-
1707
- . '<li>' . wpbc_recheck_strong_symbols( ' **Under Hood.** Trigger event "show_cost_hints" after showing cost or time hints in booking form. To bind this event use this JS: jQuery( ".booking_form_div" ).on(\'show_cost_hints\', function(event, bk_type ) { ... } ); (7.0.1.53) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1708
- . '<li>' . wpbc_recheck_strong_symbols( ' **Under Hood.** Add automatically new payment system, after visit Settings Payment page, if payment system folder and file(s) was created correctly. (7.0.1.55,7.0.1.61) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1709
-
1710
- . '</ul>'
1711
- )
1712
- , array( 'text' =>
1713
- '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1714
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1715
-
1716
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** do not show option for ability to select as parent booking resource itself, at Booking > Resources page. Its prevent from generating lost booking resources. (7.1.2.3) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1717
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not having access in modal windows (like payment request) to enter some data, when opened page with mobile device (7.1.2.7) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1718
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue in Danish translation, which was show warning at Booking > Settings > Payment > Bank transfer page (7.1.2.9) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1719
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing &amp;#36, instead of $ symbol in the Booking Listing, if was used in "Content of booking fields data" form HINT cost shortcodes (7.1.2.12) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1720
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of hiding selection of booking resources field after submit of booking (7.1.2.13) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1721
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not checking (during booking submit process) elements from conditional fields logic, if these fields does not visible. (7.1.2.14) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1722
-
1723
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not showing "reason of cancellation" in emails, that are sending after auto-cancellation of pending not successfully paid bookings. (7.0.1.1) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1724
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of incorrectly booking cost calculation if setted cost "per 1 night" and previously was used "Valuation days" cost settings for specific booking resource. (7.0.1.4) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1725
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** Do not apply "LAST" cost option for "Valuation days" if previously was applied "Together" term. No need to apply "LAST", because its have to be already calculated in together term (7.0.1.7) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1726
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** Correctly replacing shortcodes with custom URL parameter, like: \'visitorbookingediturl\', \'visitorbookingcancelurl\', \'visitorbookingpayurl\' in email templates. (7.0.1.8) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1727
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing notice: "Use of undefined constant <code>WPDEV_BK_LOCALE_RELOAD</code>" in seacrh results (7.0.1.9) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1728
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of start showing timeline in "Day view" starting from Today date based on WordPress timezone. (7.0.1.13)' ) . '</li>'
1729
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not showing some bookings, which was made for specific times in 1 day view mode. (7.0.1.16)' ) . '</li>'
1730
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of saving additional cost at the Booking > Resources > Advanced cost page, if some options have LABELs (options still must be simple words) with umlauts. (7.0.1.27) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1731
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of updating <code>[cost_correction]</code> shortcode, if selecting dates for new booking and not editing exist booking (7.0.1.28) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1732
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of blocking days selection in calendar, when visitor use the search form and manually input dates that lower than minimum number of days selection in settings (7.0.1.31) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1733
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing blank page for printing in Chrome browser (7.0.1.34) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1734
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not changing hash of booking after approving of booking, if this option was activated at settings (7.0.1.35) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1735
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of rechecking booking dates (if activated "Checking to prevent double booking, during submitting booking" option), during booking editing (7.0.1.36) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1736
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not correctly blocking check-out day (showing weird 2 checkout days), if activated "Unavailable time before / after booking" option and set unavailable DAYs after booking (7.0.1.38) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1737
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of wrong deleting booking, if activated option "Disable bookings in different booking resources" during editing booking that try to store in different booking resources (7.0.1.43) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1738
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** position of currency symbol in calendar day cells and in mouseover tooltip, depend from settings at Booking > Settings > Payment page (7.0.1.49) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1739
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** replacinng shortcodes in a loop, if we are having several shortcodes with bookingedit{cancel} in email templates (For example, if we have several languges ). (7.0.1.52)' ) . '</li>'
1740
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of infinite loop, which was exist since update 7.0.1.52 to 7.0.1.57 (7.0.1.58)' ) . '</li>'
1741
- . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not saving data for radio button selection field in emails and may be in booking listing (7.0.1.62) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1742
-
1743
- . '</ul>'
1744
- )
1745
- )
1746
- );
1747
-
1748
-
1749
- ?>
1750
- <?php //$this->show_separator(); ?>
1751
- </div>
1752
- <?php
1753
 
1754
- // </editor-fold>
 
 
1755
 
1756
- // <editor-fold defaultstate="collapsed" desc=" 7.0 " >
1757
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1758
- // 7.0
1759
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
1760
- ?>
1761
- <div class="clear" style="margin-top: 20px;"></div>
1762
- <a id="wpbc_show_advanced_section_link_show" class="wpbc_expand_section_link" href="javascript:void(0)"
1763
- onclick="javascript:jQuery( '.version_update_7_0' ).toggle();"
1764
- >+ Show changes in version update <span style="font-size: 1.35em;font-weight: 600;color: #079;font-family: Consolas,Monaco,monospace;padding-left:12px;">7.0</span></a>
1765
-
1766
- <div class="version_update_7_0" style="display:none;">
1767
- <h2 style='font-size: 2.1em;'>What's New in Booking Calendar 7.0</h2><?php
1768
- if (0) {
1769
- ?><h2 style="text-align:center;">The only thing that's new is everything... Almost:)</h2><?php
1770
- }
1771
- //$this->show_separator();
1772
 
1773
- ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'>Changes in all versions</h2><?php
1774
-
1775
- $this->show_col_section( array(
1776
-
1777
- array( 'h4' => wpbc_recheck_strong_symbols( '**New** **Timeline at front-end** side.' ),
1778
- 'text' => '<em>' . wpbc_recheck_strong_symbols( 'Show availability in fully new awesome way (old "Calendar Overview page from admin panel). Free version support showing booked dates with "blank pipelines". Paid versions have much more functionality here.')
1779
- . '</em>'
1780
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1781
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **month format**. Shortcode: [bookingtimeline view_days_num=90 scroll_start_date="" scroll_day=-30]' ) . '</li>'
1782
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **year format**. Shortcode: [bookingtimeline view_days_num=365 scroll_start_date="" scroll_month=-3]' ) . '</li>'
1783
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **day format**. Shortcode: [bookingtimeline view_days_num=30 scroll_start_date="" scroll_day=-15]' ) . '</li>'
1784
- . '<li>' . wpbc_recheck_strong_symbols( 'Ajax updating info during scrolling months, without page reloading.' ) . '</li>'
1785
- . '</ul>'
1786
- )
1787
- , array( 'img' => '7.0/free_timeline_2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1788
- )
1789
- );
1790
- $this->show_separator();
1791
-
1792
- $this->show_col_section( array(
1793
- array( 'img' => '7.0/free_admin_calendar-overview.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1794
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Timeline** (Calendar Overview page) in admin panel.' ),
1795
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1796
- . '<li>' . wpbc_recheck_strong_symbols( 'Showing **popover** with booking details by **mouse click**, instead of mouse-over. Its help to show booking data at mobile devices.' ) . '</li>'
1797
- . '<li>' . wpbc_recheck_strong_symbols( 'Link in popover to Booking Listing page with this booking. ' ) . '</li>'
1798
- . '<li>' . wpbc_recheck_strong_symbols( 'Approve or cancel exist booking from popover.' ) . '</li>'
1799
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even better looking on mobile devices.' ) . '</li>'
1800
- . '</ul>'
1801
- )
1802
-
1803
- )
1804
- );
1805
- $this->show_separator();
1806
-
1807
- $this->show_col_section( array(
1808
- array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Booking Listing** page.' ),
1809
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1810
- . '<li>' . wpbc_recheck_strong_symbols( 'Updated Filters and Actions toolbars.' ) . '</li>'
1811
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select range of bookings, like in gMail (Shift + Click) by clicking on first checkbox and Shift+Click on last checkbox.' ) . '</li>'
1812
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing new bookings with new icon.' ) . '</li>'
1813
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even better looking on mobile devices.' ) . '</li>'
1814
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1815
- . '</ul>'
1816
- )
1817
- , array( 'img' => '7.0/free_admin_booking_listing.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1818
- )
1819
- );
1820
- $this->show_separator();
1821
-
1822
- $this->show_col_section( array(
1823
- array( 'img' => '7.0/free_admin_add_booking.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1824
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Add New Booking** page.' ),
1825
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1826
- . '<li>' . wpbc_recheck_strong_symbols( '**New** redesigned options toolbar.' ) . '</li>'
1827
- . '<li>' . wpbc_recheck_strong_symbols( '**New** configuration number of month to show and width/height of calendar at Add New Booking page and saving this info. In advanced options toolbar section.' ) . '</li>'
1828
- . '</ul>'
1829
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **General Settings** page. ' ) . '</h4>'
1830
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1831
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to define position of Booking menu (top, middle, bottom section).' ) . '</li>'
1832
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1833
- . '</ul>'
1834
- )
1835
-
1836
- )
1837
- );
1838
- $this->show_separator();
1839
-
1840
- $this->show_col_section( array(
1841
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Form Fields** Settings page.' ),
1842
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1843
- . '<li>' . wpbc_recheck_strong_symbols( '**New** ability to **create unlimited number of booking form fields**.' ) . '</li>'
1844
- . '<li>' . wpbc_recheck_strong_symbols( '**Support** **Text** fields, **Textarea** fields, **Dropdown** lists, and (new) **Checkboxes** fields.' ) . '</li>'
1845
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Arrange **order of form fields** in booking form by **drag and drop** sorting.' ) . '</li>'
1846
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1847
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Ability to edit exist form fields settings.' ) . '</li>'
1848
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Ability to delete exist form fields.' ) . '</li>'
1849
- . '</ul>'
1850
- )
1851
- , array( 'img' => '7.0/free_admin_form-fields.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1852
- )
1853
- );
1854
- $this->show_separator();
1855
-
1856
- $this->show_col_section( array(
1857
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Emails** Settings page.' ),
1858
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1859
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Configuration of sending emails in **text, html or multipart format**.' ) . '</li>'
1860
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Selection **stylee of email templates** for HTML/multipart format.' ) . '</li>'
1861
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Definition of **colors** for some email styles.' ) . '</li>'
1862
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Configuration of **header and footer content** for emails.' ) . '</li>'
1863
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Validation of saving email addresses in correct format, and showing warnings otherwise. Its have to prevent of not sending emails issue in some cases.' ) . '</li>'
1864
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Pending** email template - send email, if booking set as pending.' ) . '</li>'
1865
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Trash** email template - send email, if booking has been declined - moved to trash.' ) . '</li>'
1866
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Deleted** email template - send email, if booking has been deleted - completely erased.' ) . '</li>'
1867
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Test sending email** button - for ability to test that emails are sending.' ) . '</li>'
1868
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Shortcodes** for using in email templates.' ) . '</li>'
1869
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1870
- . '</ul>'
1871
- )
1872
- , array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Import** Settings page.' ),
1873
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1874
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1875
- . '</ul>'
1876
- . '<h4>' .wpbc_recheck_strong_symbols( 'Under the Hood' ) . '</h4>'
1877
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1878
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Booking Menu items in Top WordPress Admin Bar' ) . '</li>'
1879
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Full refactoring of source code.' ) . '</li>'
1880
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated of BS version. ' ) . '</li>'
1881
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated all **UI elements** - all buttons and UI elements looks even more sharp and nice. ' ) . '</li>'
1882
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** New icons for UI elements. Good looking on retina displays. Instead of images is using font icons.' ) . '</li>'
1883
- . '<li>' . wpbc_recheck_strong_symbols( 'Updated showing info and warning messages. ' ) . '</li>'
1884
- . '<li>' . wpbc_recheck_strong_symbols( 'Improved pagination.' ) . '</li>'
1885
- . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Added many new hooks in source code.' ) . '</li>'
1886
- . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** New URL (parameters) for booking menu pages.' ) . '</li>'
1887
- . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Updated CSS files.' ) . '</li>'
1888
- . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Updated JS files.' ) . '</li>'
1889
- . '<li>' . wpbc_recheck_strong_symbols( 'And many other improvements...' ) . '</li>'
1890
- . '</ul>'
1891
- )
1892
-
1893
- )
1894
- );
1895
-
1896
 
1897
-
 
 
1898
 
1899
- ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'><?php echo wpbc_recheck_strong_symbols( 'Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions' ); ?></h2><br/><?php
1900
-
1901
- $this->show_separator();
1902
-
1903
- $this->show_col_section( array(
1904
- array( 'h4' => wpbc_recheck_strong_symbols( '**New** **Timeline** at **front-end** side.' ),
1905
- 'text' => '<em>' . wpbc_recheck_strong_symbols( 'Show availability in fully new awesome way (old "Calendar Overview page from admin panel). Free version support showing booked dates with "blank pipelines". Paid versions have much more functionality here. *(Personal, Business Small/Medium/Large, MultiUser)*')
1906
- . '</em>'
1907
- .'<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1908
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **month format**. Shortcode: [bookingtimeline type="1,2,3,4" view_days_num=30 scroll_start_date="" scroll_month=0 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1909
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **2 months format**. Shortcode: [bookingtimeline type="4,2,1,3" view_days_num=60 scroll_start_date="" scroll_month=-1 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1910
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **week format**. Shortcode: [bookingtimeline type="3,4" view_days_num=7 scroll_start_date="" scroll_day=-7 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1911
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **day format**. Shortcode: [bookingtimeline type="3,4" view_days_num=1 scroll_start_date="" scroll_day=0 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1912
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **month format**. Shortcode: [bookingtimeline type="4" view_days_num=90 scroll_start_date="" scroll_day=-30] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1913
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **year format**. Shortcode: [bookingtimeline type="4" view_days_num=365 scroll_start_date="" scroll_month=-3] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1914
- . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **day format**. Shortcode: [bookingtimeline type="4" view_days_num=30 scroll_start_date="" scroll_day=-15] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1915
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to activate showing bookings detail in popover, when mouse click on specific booking "pipeline", in the same way as in admin panel. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1916
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to configure showing titles of booking, like ID, Name or other fields, in "pipeline of bookings". *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1917
- . '<li>' . wpbc_recheck_strong_symbols( '**Support** responsive interface for showing on mobile devices. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1918
- . '</ul>'
1919
- )
1920
- , array( 'img' => '7.0/front-timeline2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1921
- )
1922
- );
1923
- $this->show_separator();
1924
 
1925
- $this->show_col_section( array(
1926
- array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Timeline** (Calendar Overview page) in admin panel. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1927
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1928
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Show notes in booking popover at Timeline page.' ) . '</li>'
1929
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to print specific booking from Timeline page by clicking on Print buttin in popover. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1930
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even more nice view at mobile devices. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1931
- . '</ul>'
1932
- )
1933
- , array( 'img' => '7.0/admin-timeline.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1934
- )
1935
- );
1936
- $this->show_separator();
1937
-
1938
- $this->show_col_section( array(
1939
- array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Booking Listing** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1940
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1941
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing notes button with different color, if booking have some notes. For more easy checking. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1942
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Changing languages at Booking Listing page for specific action. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1943
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated Print modal window. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1944
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing currency relative to each specific user settings in MultiUser version. *(MultiUser)*' ) . '</li>'
1945
- . '</ul>'
1946
- )
1947
- , array( 'img' => '7.0/admin-booking-listing.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1948
- )
1949
- );
1950
- $this->show_separator();
1951
-
1952
- $this->show_col_section( array(
1953
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Resources** settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1954
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1955
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select range of booking resources, like in gMail (Shift + Click) by clicking on first checkbox and Shift+Click on last checkbox. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1956
- . '<li>' . wpbc_recheck_strong_symbols( 'Sort of booking resources in resources table by different parameters (ID, Name, Priority, Users). By clicking on column header title. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1957
- . '<li>' . wpbc_recheck_strong_symbols( 'Creating several booking resources during one process. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1958
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to re-assign exist booking resource to other activated booking user *(MultiUser)* ' ) . '</li>'
1959
- . '<li>' . wpbc_recheck_strong_symbols( 'Showing additional info near each booking resources (like "Capacity" or booking resource "Single", "Child" type of resource). *(Business Large, MultiUser)*' ) . '</li>'
1960
- . '<li>' . wpbc_recheck_strong_symbols( '*Shortcode* Ability to use shortcode like: [bookingresource type=1 show="capacity" date="2016-09-13""] (fix:6.2.3.5.1) *(Business Large, MultiUser)*' ) . '</li>'
1961
- . '<li>' . wpbc_recheck_strong_symbols( 'Ability to hide children booking resources *(Business Large, MultiUser)*' ) . '</li>'
1962
- . '</ul>'
1963
- )
1964
- , array( 'img' => '7.0/admin-resources.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1965
- )
1966
- );
1967
- $this->show_separator();
1968
-
1969
- $this->show_col_section( array(
1970
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Rates** section *(Business Medium/Large, MultiUser)*' ),
1971
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1972
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several rates (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1973
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Direct links to seasons for editing from each rate. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1974
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user , ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
1975
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1976
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Rates" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
1977
- . '</ul>'
1978
- )
1979
- , array( 'img' => '7.0/admin-rates.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1980
- )
1981
- );
1982
- $this->show_separator();
1983
-
1984
- $this->show_col_section( array(
1985
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Valuation days** section *(Business Medium/Large, MultiUser)*' ),
1986
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1987
- . '<li>' . wpbc_recheck_strong_symbols( '**New** **Sorting** "Valuation days" by drag and drop specific cost row. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1988
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several costs (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1989
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1990
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user, ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
1991
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Valuation days" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
1992
- . '</ul>'
1993
- )
1994
- , array( 'img' => '7.0/admin-valuation-days.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1995
- )
1996
- );
1997
- $this->show_separator();
1998
-
1999
- $this->show_col_section( array(
2000
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Deposit** section *(Business Medium/Large, MultiUser)*' ),
2001
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2002
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user, ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
2003
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Deposit" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
2004
- . '</ul>'
2005
- )
2006
- , array( 'img' => '7.0/admin-deposit.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2007
- )
2008
- );
2009
-
2010
- $this->show_col_section( array(
2011
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Advanced cost** settings page *(Business Medium/Large, MultiUser)*' ),
2012
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2013
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Support radio buttons for setting additional cost. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2014
- . '<li>' . wpbc_recheck_strong_symbols( 'Updated interface of configuration advanced cost - more clear selection type of additional cost in drop down lists. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2015
- . '<li>' . wpbc_recheck_strong_symbols( 'Saving "Advanced costs" for each Custom booking form separately. Its improve of searching issues during saving if some form will have wrong configuration. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2016
- . '<li>' . wpbc_recheck_strong_symbols( 'If having several fields with the same name in booking form (for example, if configured several languages), showing specific field only once, for correct saving additional cost. Please note, in this case options in selectbox must be same withing any languages. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2017
- . '<li>' . wpbc_recheck_strong_symbols( 'Default value for new field, right now 0 USD, instead of previous 100%. For more easy to understand this logic. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2018
- . '</ul>'
2019
- )
2020
- , array( 'img' => '7.0/admin-advanced-cost.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2021
- )
2022
- );
2023
- $this->show_separator();
2024
- $this->show_col_section( array(
2025
- array('h4' => wpbc_recheck_strong_symbols( 'Updated **Discount Coupons** settings page *(Business Large, MultiUser)*' ),
2026
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2027
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several coupons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Large, MultiUser)*' ) . '</li>'
2028
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to re-assign exist coupons filter to other activated booking user *(MultiUser)* ' ) . '</li>'
2029
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of coupons by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2030
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Large, MultiUser)*' ) . '</li>'
2031
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Editing fields of several coupons from one listing page, like minimum cost, number of usage and expiration date. *(Business Large, MultiUser)*' ) . '</li>'
2032
- . '</ul>'
2033
- )
2034
- , array( 'img' => '7.0/admin-coupons.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2035
-
2036
- )
2037
- );
2038
-
2039
- $this->show_separator();
2040
-
2041
- $this->show_col_section( array(
2042
- array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Availability** settings page *(Business Medium/Large, MultiUser)*' ),
2043
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2044
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several seasons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2045
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of availability by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2046
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Direct links to seasons for editing from each rate. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2047
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user , ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
2048
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting availability to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
2049
- . '</ul>'
2050
- )
2051
- , array( 'img' => '7.0/admin-availability.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2052
- )
2053
- );
2054
- $this->show_separator();
2055
- $this->show_col_section( array(
2056
- array('h4' => wpbc_recheck_strong_symbols( 'Updated **Season Filters** settings page *(Business Medium/Large, MultiUser)*' ),
2057
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2058
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several seasons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2059
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to re-assign exist season filter to other activated booking user *(MultiUser)* ' ) . '</li>'
2060
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of seasons by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2061
- . '<li>' . wpbc_recheck_strong_symbols( 'New more clear interface of selecting dates. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2062
- . '</ul>'
2063
- )
2064
- , array( 'img' => '7.0/admin-seasons.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2065
-
2066
- )
2067
- );
2068
- $this->show_separator();
2069
- $this->show_col_section( array(
2070
- array('h4' => wpbc_recheck_strong_symbols( 'Updated **General Settings** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
2071
- 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2072
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Removed **Cost section** to Settings Payment page. *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2073
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Customization of booking title in timeline at front-end side for showing different info, like Name or Second Name of person who made the booking, etc... *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2074
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to enable showing popover with booking details in timeline at front-end side, in the same way as its showing in admin panel at Calendar Overview (timeline) page . *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2075
- . '</ul>'
2076
-
2077
-
2078
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Fields** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2079
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2080
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2081
- . '<li>' . wpbc_recheck_strong_symbols( '**New** shortcodes for showing hints in booking form: [resource_title_hint], [bookingresource show="id"], [bookingresource show="title"], [bookingresource show="cost"], [bookingresource show="capacity"], [bookingresource show="maxvisitors"] *(Business Medium/Large, MultiUser)*' ) . '</li>'
2082
- . '</ul>'
2083
-
2084
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Emails** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2085
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2086
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
2087
- . '</ul>'
2088
-
2089
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Import** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2090
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2091
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to search specific booking resource by ID and Title' ) . '</li>'
2092
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
2093
- . '</ul>'
2094
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Search** Settings page. *(Business Large, MultiUser)*' ) . '</h4>'
2095
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2096
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2097
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated help sections with shortcodes that possible to use in search forms.' ) . '</li>'
2098
- . '</ul>'
2099
-
2100
- )
2101
- , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Add New Booking** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
2102
- 'text' =>
2103
- '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Payment Gateways** Settings page. *(Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2104
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2105
- . '<li>' . wpbc_recheck_strong_symbols( '**New** payment **gateway files**. Important! If you was customized previously own payment gateway, in update 7.0 you need to customize your payment system relative to new payment gateway structure. In the same was as its done with any exist payment system. For including loading o your payment gateway file, you need to use this code and hook: <code>function add_my_gateway( $gateway ){ return $gateway . ",gateway_ID"; } add_filter( "wpbc_gateways_original_id_list", "add_my_gateway" );</code>' ) . '</li>'
2106
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Sorting payment **gateways order** by drug and dropt specific payment gateways rows *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2107
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** showing active currency and status for each payment gateways *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2108
- . '<li>' . wpbc_recheck_strong_symbols( '**New** configuration of **payment summary details**. Many new shortcodes for configuration payment summary info. *(Business Small/Medium/Large, MultiUser)* ' ) . '</li>'
2109
- . '<li>' . wpbc_recheck_strong_symbols( '**New** setting general currency for plugin interface *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2110
- . '<li>' . wpbc_recheck_strong_symbols( '**New** setting currency position and format *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2111
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of cost per period at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2112
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of options: "Time impact to cost", "Advanced cost option" at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2113
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of billing form fields assignment at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2114
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2115
- . '</ul>'
2116
- . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Users** Settings page. *(MultiUser)*' ) . '</h4>'
2117
- . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2118
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to search specific user by ID and Title' ) . '</li>'
2119
- . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to sort users by ID, Name and Role' ) . '</li>'
2120
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing additional info near each user, like status and role. ' ) . '</li>'
2121
- . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2122
- . '</ul>'
2123
-
2124
-
2125
- )
2126
-
2127
- )
2128
- );
2129
-
2130
- $this->show_separator();
2131
- ?></div><?php
2132
-
2133
- // </editor-fold>
2134
 
2135
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
2136
- // Footer
2137
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////
2138
- ?>
2139
- <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
2140
- <tr>
2141
- <td>
2142
 
2143
- </td>
2144
- <td style="width:10%">
2145
- <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>"
2146
- style="float: right; height: 36px; line-height: 34px;"
2147
- class="button-primary"
2148
- >&nbsp;<strong>Get Started</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
2149
- </a>
2150
- </td>
2151
- </tr>
2152
- </table>
2153
-
2154
- </div><?php
2155
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2156
 
2157
 
2158
  public function content_getted_started() {
439
 
440
  $this->maintence_section();
441
 
442
+ $this->section_9_3();
443
 
444
+ $this->section_9_2();
445
 
446
+ $this->section_9_1();
447
 
448
+ $this->section_9_0();
 
449
 
450
+ $this->section_8_9();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
451
 
452
+ $this->section_8_8();
453
 
454
+ $this->section_8_7();
 
 
 
 
 
 
 
 
 
 
 
455
 
456
+ $this->section_8_6();
 
 
 
 
457
 
458
+ $this->section_8_5();
459
 
460
+ $this->section_8_4();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
 
462
+ $this->section_8_3();
463
 
464
+ $this->section_8_2();
 
 
 
 
 
 
 
465
 
466
+ $this->section_8_1();
 
 
 
467
 
468
+ $this->section_8_0();
 
 
 
 
469
 
470
+ $this->section_7_1_7_2();
471
 
472
+ $this->section_7_0();
473
 
474
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////
475
+ // Footer
476
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////
477
+ ?>
478
+ <table class="about-text" style="margin-bottom:30px;height:auto;font-size:1em;width:100%;" >
479
+ <tr>
480
+ <td>
481
 
482
+ </td>
483
+ <td style="width:10%">
484
+ <a href="<?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wpbc-getting-started' ), 'index.php' ) ) ); ?>"
485
+ style="float: right; height: 36px; line-height: 34px;"
486
+ class="button-primary"
487
+ >&nbsp;<strong>Get Started</strong> <span style="font-size: 20px;line-height: 18px;padding-left: 5px;">&rsaquo;&rsaquo;&rsaquo;</span>
488
+ </a>
489
+ </td>
490
+ </tr>
491
+ </table>
492
+
493
+ </div><?php
494
+ }
495
 
496
+ function expand_section_start( $section_param_arr ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
 
498
+ ?><div class="clear" style="margin-top:20px;"></div><?php
499
 
500
+ if( $section_param_arr['show_expand'] ) {
501
 
502
+ ?><a id="wpbc_show_advanced_section_link_show"
503
+ class="wpbc_expand_section_link"
504
+ href="javascript:void(0)"
505
+ onclick="javascript:jQuery( '.version_update_<?php echo str_replace( array( '.', ' ' ), '_', $section_param_arr['version_num'] ); ?>' ).toggle();"
506
+ >+ 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>
507
+ </a>
508
+ <div class="version_update_<?php echo str_replace( array( '.', ' ' ), '_', $section_param_arr['version_num'] ); ?>" style="display:none;">
509
+ <?php
510
 
511
+ }
512
 
513
+ ?><h2 style='font-size: 2.1em;'>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;"
514
+ ><?php echo $section_param_arr['version_num']; ?></span></h2><?php
515
 
516
+ }
 
 
 
 
 
 
 
 
517
 
518
+ function expand_section_end( $section_param_arr ){
519
+ if( $section_param_arr['show_expand'] ) {
520
+ ?></div><?php
521
+ }
522
+ }
523
 
 
 
524
 
525
+ function section_1_0_example(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
526
 
527
+ $section_param_arr = array( 'version_num' => '7.0', 'show_expand' => true );
528
+ $this->expand_section_start( $section_param_arr );
529
 
530
+ // Content here
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
531
 
532
+ $this->show_separator();
533
+ $this->expand_section_end( $section_param_arr );
534
+ }
 
 
 
535
 
 
536
 
537
+ function section_9_2(){
 
 
 
538
 
539
+ $section_param_arr = array( 'version_num' => '9.2', 'show_expand' => true );
540
 
541
+ $this->expand_section_start( $section_param_arr );
542
 
 
 
 
 
 
 
 
 
 
543
 
544
+ ?><div class="feature-section one-col">
545
+ <div class="col col-1" style="flex: 1 1 100%;width: 100%;">
546
+ <?php echo '<h4>' .wpbc_recheck_strong_symbols( 'New Booking Listing - modern looking & instant working' ) . '</h4>' ;?>
547
+ <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_text_searching_long.png"
548
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
549
+ class="wpbc-section-image" />
550
+ </div>
551
+ <div class="col col-2 last-feature" style="flex: 1 1 100%;width: 100%;">
552
+ <?php echo
553
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
554
+ . '<li>' . wpbc_recheck_strong_symbols( '**New modern toolbar** with handy buttons, dropdown lists and other elements that have been redesigned and rearranged in a new smarter way.' ) . '</li>'
555
+ . '<li>' . wpbc_recheck_strong_symbols( '**Refreshed colors** of labels, icons, buttons and other UI elements for modern and clear look.' ) . '</li>'
556
+ . '<li>' . wpbc_recheck_strong_symbols( 'Rearranged content of booking details in unified way for all Booking Calendar versions.' ) . '</li>'
557
+ . '</ul>';
558
+ ?>
559
+ </div>
560
+ </div><?php
561
 
562
+ $this->show_separator();
 
563
 
564
+ ?><div class="feature-section two-col">
565
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
566
+ <?php echo
567
+ '<h4>' .wpbc_recheck_strong_symbols( 'Instant working without page reloading' ) . '</h4>' .
568
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
569
+ . '<li>' . wpbc_recheck_strong_symbols( '**Instant showing booking listing**, using ajax without page reloading when filtering search results. Single page app design.' ) . '</li>'
570
+ . '<li>' . wpbc_recheck_strong_symbols( 'Immediate **searching** of bookings for a **specific keyword**. Reservations are displayed just after entering a specific keyword without other user actions.' ) . '</li>'
571
+ . '<li>' . wpbc_recheck_strong_symbols( '**Highlighting** certain **keywords** in booking details to make it easier to find specific data when entering keywords.' ) . '</li>'
572
+ . '</ul>' ;
573
+ ?>
574
+ </div>
575
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 70%;">
576
+
577
+ <img src="<?php echo $this->asset_path; ?>9.2/screenshot-01_high_res.gif"
578
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
579
+ class="wpbc-section-image" />
580
+ </div>
581
+ </div><?php
582
 
583
+ $this->show_separator();
 
 
584
 
585
+ ?><div class="feature-section two-col">
586
+ <div class="col col-1" style="flex: 1 1 75%;width: 100%;">
587
+ <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_dates_filtering.png"
588
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
589
+ class="wpbc-section-image" />
590
+ </div>
591
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
592
+ <?php echo
593
+ '<h4>' .wpbc_recheck_strong_symbols( 'User Saved Options' ) . '</h4>' .
594
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
595
+ . '<li>' . wpbc_recheck_strong_symbols( '**Saving** any choice of **filter options** (select-boxes and other UI toolbar elements), toolbar selection or user options **personally for each user**. User will see last configured search filter parameters each time, when open admin panel.' ) . '</li>'
596
+ . '<li>' . wpbc_recheck_strong_symbols( '**Keeping** last selected **filter or actions toolbar**, during each time, when user open booking admin panel. No need to define default state of toolbars in the settings.' ) . '</li>'
597
+ . '<li>' . wpbc_recheck_strong_symbols( '**New user options toolbar**, where possible to select "Emails sending" on specific actions or "Show notes" by default (in paid versions).' ) . '</li>'
598
+ . '</ul>';
599
+ ?>
600
+ </div>
601
+ </div><?php
602
 
603
+ $this->show_separator();
604
 
605
+ ?><div class="feature-section two-col">
606
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
607
+ <?php echo
608
+ '<h4>' .wpbc_recheck_strong_symbols( 'Print functionality' ) . '</h4>' .
609
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
610
+ . '<li>' . wpbc_recheck_strong_symbols( 'The new **print feature** is available in the **Free version**.' ) . '</li>'
611
+ . '<li>' . wpbc_recheck_strong_symbols( 'New **print layout** displaying the exact content of the booking listing page.' ) . '</li>'
612
+ . '<li>' . wpbc_recheck_strong_symbols( '**Print any selected bookings**. Possibility to print all bookings / selected bookings / specific single booking.' ) . '</li>'
613
+
614
+ . '</ul>' ;
615
+ ?>
616
+ </div>
617
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 70%;">
618
+
619
+ <img src="<?php echo $this->asset_path; ?>9.2/booking_listing_printing.png"
620
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
621
+ class="wpbc-section-image" />
622
+ </div>
623
+ </div><?php
624
 
625
  $this->show_separator();
626
 
627
 
628
+
629
+ ?><div class="feature-section two-col">
630
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
631
+ <?php echo
632
+ '<h4>' .wpbc_recheck_strong_symbols( 'Other new features' ) . '</h4>' .
633
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
634
+ . '<li>' . wpbc_recheck_strong_symbols( 'Added 2 new filter options **Check in today** and **Check out today** to display bookings on the booking list page' ) . '</li>'
635
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define and **save the locale for each specific booking**. This locale is saved and will exist when the following pages are loaded.' ) . '</li>'
636
+ . '<li>' . wpbc_recheck_strong_symbols( '**Show action** buttons when such actions **can be applied to specific bookings**. You need to select bookings to display additional action buttons like "Confirm" or "Reject", etc...' ) . '</li>'
637
+
638
+ . '</ul>' ;
639
+ ?>
640
+ </div>
641
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
642
  <?php echo
643
+ '<h4>' .wpbc_recheck_strong_symbols( 'CSV Export (paid versions)' ) . '</h4>' .
644
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
645
+ . '<li>' . wpbc_recheck_strong_symbols( '**New**. Ability to enter **field names to skip** from the export.' ) . '</li>'
646
+ . '<li>' . wpbc_recheck_strong_symbols( 'Selection **export of single or all pages** and CSV column separator in pop-up window.' ) . '</li>'
647
+ . '</ul>'; ?>
648
+ <?php echo
649
+ '<h4>' .wpbc_recheck_strong_symbols( 'Improvements and fixes' ) . '</h4>' .
650
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
651
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Smarter structure of request parameters escaping.' ) . '</li>'
652
+ . '<li>' . wpbc_recheck_strong_symbols( 'Lots of other improvements and fixes...' ) . '</li>'
653
+ . '</ul>'; ?>
654
+ </div>
655
+ </div><?php
656
+
657
+
658
+
659
+ $this->show_separator();
660
+
661
+ $this->expand_section_end( $section_param_arr );
662
+ }
663
+
664
+
665
+ function section_9_3(){
666
+
667
+ $section_param_arr = array( 'version_num' => '9.3', 'show_expand' => !true );
668
+
669
+ $this->expand_section_start( $section_param_arr );
670
+
671
+ ?><div class="feature-section two-col">
672
+ <div class="col col-1" style="flex: 1 1 75%;width: 100%;">
673
+ <img src="<?php echo $this->asset_path; ?>9.3/edit-booking-free.png"
674
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
675
+ class="wpbc-section-image" />
676
+ </div>
677
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 80%;">
678
+ <?php echo
679
+ '<h4>' .wpbc_recheck_strong_symbols( 'Edit bookings in the Free version' ) . '</h4>' .
680
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
681
+ . '<li style="margin-bottom:2em;">' . wpbc_recheck_strong_symbols( '**Edit bookings** in the Booking Calendar Free version. <p>You can easily **change booking details** for an existing booking or **re-select booking date(s)** for such booking in a few seconds.</p>' ) . '</li>'
682
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood**. A **hash** field has been added to the booking table in all versions of the Booking Calendar.' ) . '</li>'
683
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood**. Added **creation_date** field to booking table.' ) . '</li>'
684
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood**. An **is_trash** field has been added to the booking table, to indicate the date of the booking was trashed.' ) . '</li>'
685
+ . '</ul>';
686
+ ?>
687
+ </div>
688
+ </div><?php
689
+
690
+ $this->show_separator();
691
+
692
+ if(1){
693
+ ?><div class="feature-section one-col">
694
+ <div class="col col-1" style="flex: 1 1 100%;width: 100%;">
695
+ <?php //echo '<h4>' .wpbc_recheck_strong_symbols( 'New Booking Listing - modern looking & instant working' ) . '</h4>' ;?>
696
+ <?php if(1) echo
697
+ '<h4>' .wpbc_recheck_strong_symbols( 'Simulate login in MultiUser version' ) . '</h4>' .
698
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
699
+ . '<li>' . wpbc_recheck_strong_symbols( 'You can now easily **change** booking **form, email** templates or **payment** details **for Regular user**, while you have **logged in as Super Admin**. <p>You can drill down to regular user admin panel on the Booking > Settings > Users page.</p>' ) . '</li>'
700
+ . '</ul>';
701
+ ?>
702
+ <img src="<?php echo $this->asset_path; ?>9.3/simulate_login2.png"
703
+ style="margin:1px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
704
+ class="wpbc-section-image" />
705
+ </div>
706
+ </div><?php
707
+ }
708
+
709
+ ?><div class="feature-section two-col">
710
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
711
+ <?php echo
712
+ //'<h4>' .wpbc_recheck_strong_symbols( 'Simulate login in MultiUser version' ) . '</h4>' .
713
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
714
+ . '<li>' . wpbc_recheck_strong_symbols( '**Simulate the login of a regular user** (user with restricted access only to own resources) from a "super booking administrator" account for ability to change the settings of such a regular activated user in the Booking Calendar MultiUser version.' ) . '</li>'
715
+ . '<li>' . wpbc_recheck_strong_symbols( 'Receive payments for "Regular User" bookings to the "Super Booking Admin" payment account. Activate this option at the Booking > Settings General page in the "MultiUser" section.' ) . '</li>'
716
+ . '</ul>' ;
717
+
718
+ ?>
719
+ </div>
720
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 70%;">
721
+
722
+ <img src="<?php echo $this->asset_path; ?>9.3/simulate_log_out.png"
723
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
724
+ class="wpbc-section-image" />
725
+ </div>
726
+ </div><?php
727
 
728
  $this->show_separator();
729
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
730
 
 
 
 
731
 
732
+ ?><div class="feature-section two-col">
733
+ <div class="col col-1" style="flex: 1 1 60%;width: 100%;">
734
+ <?php echo
735
+ '<h4>' .wpbc_recheck_strong_symbols( 'Other new features' ) . '</h4>' .
736
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
737
+ . '<li>' . wpbc_recheck_strong_symbols( '**New**. Shortcode in emails **[cost_digits_only]** - to show booking cost without currency.' ) . '</li>'
738
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define **title of "Search availability" button** in search form at the Booking > Settings > Search page. Use shortcodes like this: **[search_button "Search availability"]**' ) . '</li>'
739
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Replaced Stripe php library to newest 9.0.0 version.' ) . '</li>'
740
 
741
+ . '</ul>' ;
742
+ ?>
743
+ </div>
744
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
745
+ <?php echo
746
+ '<h4>' .wpbc_recheck_strong_symbols( 'Improvements and fixes' ) . '</h4>' .
747
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
748
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Error message in Stripe payment form: "Caught exception: You cannot use line_items.amount, line_items.currency, line_items.name, line_items.description, or line_items.images in this API version."' ) . '</li>'
749
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Notice: Undefined index: select_booking_form in class-admin-settings-api.php' ) . '</li>'
750
+ . '<li>' . wpbc_recheck_strong_symbols( 'Lots of other improvements and fixes...' ) . '</li>'
751
+ . '</ul>'; ?>
752
+ </div>
753
+ </div><?php
754
 
 
755
 
 
 
 
 
 
 
 
 
 
756
 
757
+ $this->show_separator();
758
 
759
+ $this->expand_section_end( $section_param_arr );
760
+ }
761
+
762
+ function section_9_1(){
763
+
764
+ $section_param_arr = array( 'version_num' => '9.1', 'show_expand' => true );
765
+
766
+ $this->expand_section_start( $section_param_arr );
767
+
768
+ ?><div class="feature-section two-col">
769
+ <div class="col col-1" style="flex: 1 1 75%;width: 100%;">
770
+ <img src="<?php echo $this->asset_path; ?>9.1/9.1_new_popovers2.png"
771
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
772
+ class="wpbc-section-image" />
773
+ </div>
774
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
775
+ <?php echo
776
+ '<h4>' .wpbc_recheck_strong_symbols( 'New Popover and Tooltips' ) . '</h4>' .
777
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
778
+ . '<li>' . wpbc_recheck_strong_symbols( 'Faster and more accurate display of beautiful and informative popovers and tooltips. New script for displaying popover and tooltips in the Booking Calendar.' ) . '</li>'
779
+ . '<li>' . wpbc_recheck_strong_symbols( 'For 2 or more bookings on the Timeline and Calendar Overview page, the system displays the title of the bookings exactly near to the specific booking details in popovers' ) . '</li>'
780
+ . '<li>' . wpbc_recheck_strong_symbols( 'Avoiding script conflicts regarding popovers and tooltips' ) . '</li>'
781
+ . '</ul>';
782
+ ?>
783
+ </div>
784
+ </div><?php
785
 
786
+ $this->show_separator();
 
787
 
788
+ ?><div class="feature-section two-col">
789
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
790
+ <?php echo
791
+ '<h4>' .wpbc_recheck_strong_symbols( 'New UI elements' ) . '</h4>' .
792
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
793
+ . '<li>' . wpbc_recheck_strong_symbols( '**Icons for UI elements** in the booking admin panel.' ) . '</li>'
794
+ . '<li>' . wpbc_recheck_strong_symbols( '**Booking Calendar Icon** for WordPress side menu.' ) . '</li>'
795
+ . '</ul>' .
796
+ '<h4>' .wpbc_recheck_strong_symbols( 'Improvements and fixes' ) . '</h4>' .
797
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
798
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Separate library for modal windows to prevent script conflicts' ) . '</li>'
799
+ . '<li>' . wpbc_recheck_strong_symbols( 'Lots of other improvements and fixes...' ) . '</li>'
800
+ . '</ul>';
801
+ ?>
802
+ </div>
803
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
804
+
805
+ <img src="<?php echo $this->asset_path; ?>9.1/9.1_new_icons2.png"
806
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
807
+ class="wpbc-section-image" />
808
+ <div style="font-style:italic;font-size:0.75em;padding:1em;text-align: right;">* This picture from paid version of Booking Calendar</div>
809
+ </div>
810
+ </div><?php
811
 
812
+ $this->show_separator();
813
 
814
+ $this->expand_section_end( $section_param_arr );
815
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
816
 
817
+ function section_9_0(){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
818
 
819
+ $section_param_arr = array( 'version_num' => '9.0', 'show_expand' => true );
820
+ $this->expand_section_start( $section_param_arr );
821
 
822
+ ?><div class="feature-section two-col">
823
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
824
+ <?php echo
825
+ '<h4>' .wpbc_recheck_strong_symbols( 'Time slots' ) . '</h4>' .
826
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
827
+ . '<li>' . wpbc_recheck_strong_symbols( 'Showing **time slots as dots** in calendar day cells. Modern and beautiful view of time slots within calendar days.' ) . '</li>'
828
+ . '<li>' . wpbc_recheck_strong_symbols( 'Display the **exact number** of booked **time slots** in calendar day cells. System shows **as many dots** (time slots) as many time slots have been booked for a particular day. Your customers can see occupancy by time interval from the beginning of the calendar view.' ) . '</li>'
829
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** CSS styling in all calendar skins. If you have customized a calendar skin before, check the changes in the new calendar skins marked with a number: 8.9.4.13 ' ) . '</li>'
830
+ . '</ul>';
831
+ ?>
832
+ </div>
833
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
834
 
835
+ <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-time-slots.png"
836
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
837
+ class="wpbc-section-image" />
838
 
839
+ </div>
840
+ </div><?php
 
 
 
 
 
 
 
841
 
842
+ $this->show_separator();
843
 
844
+ ?><div class="feature-section two-col">
845
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
846
+ <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-co2.png"
847
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
848
+ class="wpbc-section-image" />
849
+ </div>
850
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
851
+ <?php echo
852
+ '<h4>' .wpbc_recheck_strong_symbols( 'Change over days' ) . '</h4>' .
853
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
854
+ . '<li>' . wpbc_recheck_strong_symbols( 'Accurate clear display of the diagonal change over days line. Now it correctly shows the **diagonal line for any shape of day cells** (square or rectangle). This means that for any calendar size you will see the correct sharp diagonal line.' ) . '</li>'
855
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **diagonal line in dates**, where we have check in/out bookings with the **same status (pending or approved)**. It is useful to see where one booking ends and another begins when both bookings are pending or approved. Previously it was shown just full booked date without diagonal line.' ) . '</li>'
856
+ . '<li>' . wpbc_recheck_strong_symbols( 'The ability to use **change over days only on certain pages**. Useful in a situation where you need to make a booking with change over days at on a certain page(s) (check in/out dates with diagonal lines) and make bookings for specific time slots on another page(s). You can define list of pages on which to use this feature at the Booking > Settings General page in "Calendar" section.' ) . '</li>'
857
+ . '</ul>';
858
+ ?>
859
+ <span style="font-size:0.8em;padding:1em;">* This feature is available in the Booking Calendar Business Small or higher versions.</span>
860
+ </div>
861
+ </div><?php
862
 
863
+ $this->show_separator();
 
 
864
 
865
 
866
+ ?><div class="feature-section one-col">
867
+ <div class="col col-1" style="flex: 1 1 100%;width: 100%;">
868
+ <?php echo '<h4>' .wpbc_recheck_strong_symbols( 'Timeline' ) . '</h4>' ;?>
869
+ <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-timeline.png"
870
+ style="margin:30px 5px 0;width: 100%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
871
+ class="wpbc-section-image" />
872
+ </div>
873
+ <div class="col col-2 last-feature" style="flex: 1 1 100%;width: 100%;">
874
+ <?php echo
875
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
876
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline**. Ability to **define how many days to show in Timeline** at the front-end side, while showing Timeline for one booking resource, and select "**Month view mode**" in shortcode (parameter "view_days_num=30" or this parameter skipped). You can define it at the Booking > Settings General page in "Calendar Overview | Timeline" section.' ) . '</li>'
877
+ . '<li>' . wpbc_recheck_strong_symbols( '**Calendar Overview** page. Ability to **define how many days to show** in the Calendar Overview page in the admin panel, while showing Calendar Overview page for one booking resource, and selected "**Day view mode**". You can define it at the Booking > Settings General page in "Calendar Overview | Timeline" section.' ) . '</li>'
878
+ . '<li>' . wpbc_recheck_strong_symbols( 'Timeline / Calendar Overview page. Scroll exactly the number of days (for one booking resource, and select "Month view mode" / "Day view mode"), that was defined at option "Days number to show in Month mode in Timeline" / "Days number to show in Day view mode in Calendar Overview page".' ) . '</li>'
879
+ . '<li>' . wpbc_recheck_strong_symbols( 'Separate settings sections for "Calendar Overview" | "Timeline" options at the Booking > Settings General page.' ) . '</li>'
880
+ . '</ul>';
881
+ ?>
882
+ </div>
883
+ </div><?php
 
 
 
884
 
885
+ $this->show_separator();
 
 
886
 
887
+ ?><div class="feature-section two-col">
888
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
889
+ <?php echo
890
+ '<h4>' .wpbc_recheck_strong_symbols( 'Translations' ) . '</h4>' .
891
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
892
+ . '<li>' . wpbc_recheck_strong_symbols( '**New**. Ability to define where firstly plugin tries to use translations from "../wp-content/languages/plugins/", or from "../wp-content/plugins/{Booking Calendar Folder}/languages/" folder. You can change this behavior at the Booking > Settings General page.' ) . '</li>'
893
+ . '<li>' . wpbc_recheck_strong_symbols( '**New**. Force plugin translation update. Download and update plugin translations from WordPress translation repository and from wpbookingcalendar.com You can make updates at Booking > Settings General page in Translation section.' ) . '</li>'
894
+ . '<li>' . wpbc_recheck_strong_symbols( '**New**. Check translation status at WordPress translation repository and local translation from wpbookingcalendar.com to understand what translation to load. You can check it at the Booking > Settings General page in the Translation section.' ) . '</li>'
895
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Booking Calendar by default does not contain MO and PO translation files. You can force download them at the Booking > Settings General page in the Translation section.' ) . '</li>'
896
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Switching language/locale by using "Globe icon" in the Booking Listing page has higher priority than switching languages by translation plugins.' ) . '</li>'
897
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Optimization structure of country list file for future translations.' ) . '</li>'
898
+ . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support WPML 4.5.4' ) . '</li>'
899
+ . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support Polylang 3.1.4' ) . '</li>'
900
+ . '<li>' . wpbc_recheck_strong_symbols( '**Compatibility**. Support qTranslate-X 3.4.6.8 (Currently closed "qTranslate-X", was tested with Booking Calendar in php 5.6)' ) . '</li>'
901
+ . '</ul>';
902
+ ?>
903
+ </div>
904
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
905
+
906
+ <img src="<?php echo $this->asset_path; ?>9.0/wpbc-9-0-translations.png"
907
+ style="margin:30px 5px 0;width: 62%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
908
+ class="wpbc-section-image" />
909
+
910
+ </div>
911
+ </div><?php
912
 
913
 
914
+ $this->show_separator();
915
+ $this->expand_section_end( $section_param_arr );
916
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
917
 
918
+ function section_8_9(){
 
 
 
 
919
 
920
+ $section_param_arr = array( 'version_num' => '8.9', 'show_expand' => true );
921
+ $this->expand_section_start( $section_param_arr );
 
 
 
 
 
 
 
922
 
 
923
 
924
+ ?><div class="feature-section two-col">
 
925
 
926
+ <div class="col col-1" style="flex: 1 1 50%;width: 100%;">
927
+ <?php
928
+ echo
929
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>' .
930
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
931
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show debug cost information of "Daily costs" and "Additional costs" to better understand how costs are working. Activate it at the Booking > Settings > Payment page in the Payment options section. *(Business Medium/Large, MultiUser)*' ) . '</li>'
932
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to calculate the deposit amount based on daily costs only, without additional costs. Activate it at the Booking > Settings > Payment page in the Payment options section. *(Business Medium/Large, MultiUser)*' ) . '</li>'
933
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to export into .ics feeds only bookings, that was created in the Booking Calendar plugin, without any other imported bookings. Activate it at Booking > Settings > Sync > "General" page. Available in Booking Manager update 2.0.20 or newer. ' ) . '</li>'
934
+
935
+ . '</ul>'
936
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
937
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
938
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show error message, if activated to use CAPTCHA and PHP configuration does not have activated GD library.' ) . '</li>'
939
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show help message, about troubleshooting of "Request do not pass security check!" error.' ) . '</li>'
940
+ . '<li>' . wpbc_recheck_strong_symbols( 'Showing centered booking form, while using simple booking form configuration.' ) . '</li>'
941
+ . '<li>' . wpbc_recheck_strong_symbols( 'The Debug function shows HTML elements during output of strings.' ) . '</li>'
942
+ . '<li>' . wpbc_recheck_strong_symbols( 'If we are using the [cost_corrections] shortcode in the booking form for entering our cost at Booking > Add booking page, then we can use in the New booking emails such shortcodes [corrected_total_cost], [corrected_deposit_cost], [corrected_balance_cost]. *(Business Medium/Large, MultiUser)*' ) . '</li>'
943
+ . '<li>' . wpbc_recheck_strong_symbols( 'Escape any html tags from the booking resource titles in emails. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
944
 
945
+ . '</ul>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
946
 
947
+ ?>
948
+ </div>
949
+ <div class="col col-2 last-feature" style="flex: 1 1 auto;width: 60%;">
950
+ <img src="https://wpbookingcalendar.com/assets/8.9/debug_valuation_days.png"
951
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
952
+ class="wpbc-section-image" />
953
+ <img src="https://wpbookingcalendar.com/assets/8.9/debug_advanced_costs.png"
954
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
955
+ class="wpbc-section-image" />
956
 
957
+ <img src="https://wpbookingcalendar.com/assets/8.9/rates_debug_show.png"
958
+ style="margin:30px 5px 0;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
959
+ class="wpbc-section-image" />
960
+ <span style="font-size:0.8em;padding:1em;">* This feature is available in the Booking Calendar Business Medium or higher versions.</span>
961
+ </div>
962
+
963
+ </div><?php
 
 
964
 
 
965
 
 
 
966
  $this->show_separator();
967
+ $this->expand_section_end( $section_param_arr );
968
+ }
969
 
970
+ function section_8_8(){
 
 
 
 
 
 
 
971
 
972
+ $section_param_arr = array( 'version_num' => '8.8', 'show_expand' => true );
973
+ $this->expand_section_start( $section_param_arr );
974
+
975
+
976
+ ?><div class="feature-section two-col">
977
+ <div class="col col-1" style="flex: 1 1 auto;width: 60%;">
978
+ <img src="https://wpbookingcalendar.com/assets/9.0/time-picker-premium-black.png"
979
+ style="margin:30px 5px;width: 98%;box-shadow: 0 1px 3px #aaa;border-radius: 2px;"
980
+ class="wpbc-section-image">
981
+ </div>
982
+ <div class="col col-2 last-feature" style="flex: 1 1 50%;width: 100%;">
983
+ <?php
984
+ echo
985
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>' .
986
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
987
+ . '<li>' . wpbc_recheck_strong_symbols( '**Time picker** for **times slots selection** in the booking form. Activate it at the Booking > Settings General page in the "Time Slots" section.' ) . '</li>'
988
+ . '<li>' . wpbc_recheck_strong_symbols( '**Skins** for **Time picker** available for **times slots selection** in the booking form. Activate it at the Booking > Settings General page in Time Slots section.' ) . '</li>'
989
+ . '<li>' . wpbc_recheck_strong_symbols( '**Premium calendar skins** now available in **Booking Calendar Free** version.' ) . '</li>'
990
+ . '<li>' . wpbc_recheck_strong_symbols( 'Form template **2 columns with time slots" for showing booking form fields in 2 columns with time slots selection. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
991
+
992
+ . '</ul>'
993
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
994
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
995
+ . '<li>' . wpbc_recheck_strong_symbols( 'More intuitive adding and editing new fields (during editing in simple booking form mode). Showing the "Save changes" button relative only to active action.' ) . '</li>'
996
+ . '</ul>';
997
+
998
+ ?>
999
+ </div>
1000
+ </div><?php
1001
+
1002
+
1003
+
1004
+ $this->show_col_section( array(
1005
+ array( 'text' =>
1006
+ ''
1007
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1008
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1009
+ . '<li>' . wpbc_recheck_strong_symbols( 'Error of correct converting special symbols, like #, %, \', " to URL symbols during clicking on "Export to Google Calendar" button. (8.7.11.4)' ) . '</li>'
1010
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of correct showing special symbols, like #, %, \', " in the titles of bookings at Calendar Overview page. (8.7.11.5)' ) . '</li>'
1011
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of no ability to book some time slots when activated multiple days selection. (8.7.11.6)' ) . '</li>'
1012
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.parseJSON event shorthand is deprecated.' ) . '</li>'
1013
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.mousedown() event shorthand is deprecated.' ) . '</li>'
1014
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.click() event shorthand is deprecated.' ) . '</li>'
1015
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.focus() event shorthand is deprecated.' ) . '</li>'
1016
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.change() event shorthand is deprecated.' ) . '</li>'
1017
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.isFunction() event shorthand is deprecated.' ) . '</li>'
1018
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.bind() event shorthand is deprecated.' ) . '</li>'
1019
+ . '<li>' . wpbc_recheck_strong_symbols( 'Warning jQuery.fn.removeAttr no longer sets boolean properties: disabled.' ) . '</li>'
1020
+ . '<li>' . wpbc_recheck_strong_symbols( 'Fixing issue of incorrectly showing booking date in plugin, if visitor was entered end time as 24:00 instead of 23:59. (8.7.11.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1021
+ . '<li>' . wpbc_recheck_strong_symbols( 'Fixing issue of incorrectly showing coupon code discount hints, if activated option "Apply discount coupon code directly to days cost". (8.7.11.2) *(Business Large, MultiUser)*' ) . '</li>'
1022
+ . '<li>' . wpbc_recheck_strong_symbols( 'Select first available option (timeslot) in the dropdown list, that showing based on days conditions , after selection of date in calendar. (8.7.11.3) (Business Medium/Large, MultiUser)*' ) . '</li>'
1023
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not sending "approved email", if sending email checkbox was unchecked at the Booking > Add booking page and auto approval for Booking > Add booking page has been activated. (8.7.11.8) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1024
+ . '</ul>'
1025
+ )
1026
+ , array( 'text' =>
1027
+
1028
+ '<h4>' .wpbc_recheck_strong_symbols( 'Compatibility' ) . '</h4>'
1029
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1030
+ . '<li>' . wpbc_recheck_strong_symbols( 'Support **WordPress 5.6**.' ) . '</li>'
1031
+ . '<li>' . wpbc_recheck_strong_symbols( 'Full support of **jQuery 3.5**.' ) . '</li>'
1032
+ . '</ul>'
1033
+
1034
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1035
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1036
+ . '<li>' . wpbc_recheck_strong_symbols( 'Dutch translation by Boris Hoekmeijer.' ) . '</li>'
1037
+ . '<li>' . wpbc_recheck_strong_symbols( 'Swedish translation by Jimmy Sjølander.' ) . '</li>'
1038
+ . '<li>' . wpbc_recheck_strong_symbols( 'Norwegian translation by Jimmy Sjølander.' ) . '</li>'
1039
+ . '<li>' . wpbc_recheck_strong_symbols( 'Spanish translation by Jairo Alzate.' ) . '</li>'
1040
+ . '</ul>'
1041
+
1042
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1043
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1044
+ . '<li>' . wpbc_recheck_strong_symbols( 'Trigger event "wpbc_hook_timeslots_disabled" after disabling times in the booking form. To bind this event use this JS: jQuery( ".booking_form_div" ).on( \'wpbc_hook_timeslots_disabled\', function ( event, bk_type, all_dates ){ ... } );' ) . '</li>'
1045
+ . '</ul>'
1046
+
1047
+ )
1048
+ )
1049
+ );
1050
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1051
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1052
  $this->show_separator();
1053
+ $this->expand_section_end( $section_param_arr );
1054
+ }
1055
 
1056
+ function section_8_7(){
 
1057
 
1058
+ $section_param_arr = array( 'version_num' => '8.7', 'show_expand' => true );
1059
+ $this->expand_section_start( $section_param_arr );
1060
 
1061
+ ?>
1062
+ <img src="<?php echo $this->asset_path; ?>8.7/booking-calendar-black2.png" style="border:none;box-shadow: 0 0px 2px #bbb;margin: 2%;width:98%;display:block;" />
1063
+ <div class="clear"></div>
1064
+ <?php
 
 
1065
 
1066
+ $this->show_col_section( array(
1067
+ array( 'text' =>
1068
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1069
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1070
+ . '<li>' . wpbc_recheck_strong_symbols( 'New **Calendar Skin** with dark colors: "**Black 2**"' ) . '</li>'
1071
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define using **Pending days as Selectable days** - its means that such days have the colors the same as Pending days, but visitor still can select and submit new booking, until you do not approve some booking. Its useful in case, if you need to show that at some days already exist bookings, but visitors still can submit the booking. Please note, such feature will not work correctly if you will make bookings for specific time-slots (its will show warning). How to Use ? In the page, where you are having Booking Calendar shortcode, you need to define the js, like this: &lt;script type="text/javascript"&gt; wpbc_settings.set_option( "pending_days_selectable", true ); &lt;/script&gt; [booking type=1 nummonths=2] (8.6.1.18)' ) . '</li>'
1072
+
1073
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define **dates format** for **search availability form** at the Booking > Settings > Search page. (8.6.1.21) *(Business Large, MultiUser)*' ) . '</li>'
1074
+ . '<li>' . wpbc_recheck_strong_symbols( '**Logging** of approving or set as pending bookings to notes section. You can activate this option "Logging of booking approving or rejection" at the Booking > Settings General page in "Booking Admin panel" section. (8.6.1.10) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1075
+ . '<li>' . wpbc_recheck_strong_symbols( 'Updated **iPay88** - Payment Gateway integration v1.6.4 (For Malaysia Only) (8.6.1.3) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1076
+ . '</ul>'
1077
+
1078
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1079
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1080
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to auto fill "nickname" of user, when user logged in, and checked this option "Auto-fill fields". In booking form have to be field with name "nickname". (8.6.1.2)' ) . '</li>'
1081
+ . '<li>' . wpbc_recheck_strong_symbols( 'Usage of **new Wizard style booking form**, where possible to configure several steps in booking form - **more than 2 steps** (8.6.1.15) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1082
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Use check in/out time", for adding check in/out times to use change over days, when importing events via Google Calendar API (using Google API Key) (8.6.1.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1083
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to use option "Append check out day", for adding check out day, when importing events via Google Calendar API (using Google API Key) (8.6.1.4) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1084
+ . '<li>' . wpbc_recheck_strong_symbols( 'Disable the edit / cancel / payment request links in the "Booking Customer Listing" view for "Approved bookings", in case, if you have activated this option " Change hash after the booking is approved " at the Booking > Settings General page in Advanced section. (8.6.1.6) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1085
+ . '<li>' . wpbc_recheck_strong_symbols( 'Replace non standard symbols (like: . or , or ` ) in options for ability correct saving Advanced cost. Otherwise sometimes was not possible to save "Advanced cost" at Booking > Resources > Advanced cost page. (8.6.1.7) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1086
+ . '<li>' . wpbc_recheck_strong_symbols( 'Added filter hook "wpbc_booking_resources_selection_class" for controlling CSS class in dropdown element of booking resource selections (8.6.1.9) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1087
+ . '<li>' . wpbc_recheck_strong_symbols( 'Update booking hash during moving booking to trash or restore bookings, for do not ability to edit or cancel such bookings by visitor (8.6.1.11) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1088
+ . '<li>' . wpbc_recheck_strong_symbols( 'Add ability to use only labels in shortcode for showing one payment method (its works only with these exact options): [select payment-method "All payment methods@@" "Stripe" "PayPal" "Authorize.Net" "Sage Pay" "Bank Transfer" "Pay in Cash" "iPay88" "iDEAL"] (8.6.1.16) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1089
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to activate updating booking cost after editing booking in admin panel, based on new booking data. You can activate this option at the Booking > Settings > Payment page (8.6.1.24) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1090
+ . '</ul>'
1091
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1092
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1093
+
1094
+ . '<li>' . wpbc_recheck_strong_symbols( 'German translation [99% completed] by Markus Neumann.' ) . '</li>'
1095
+ . '<li>' . wpbc_recheck_strong_symbols( 'Slovenian translation [99% completed] by Klemen Gaber.' ) . '</li>'
1096
+ . '</ul>'
1097
+
1098
+ )
1099
+ , array( 'text' =>
1100
+
1101
+ '<h4>' .wpbc_recheck_strong_symbols( 'Compatibility' ) . '</h4>'
1102
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1103
+ . '<li>' . wpbc_recheck_strong_symbols( 'Support **WordPress 5.3** - updated styles of booking admin panel.' ) . '</li>'
1104
+ . '</ul>'
1105
+
1106
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Deprecated' ) . '</h4>'
1107
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1108
+ . '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Timeline v.1. Currently available only new Flex Timeline (Calendar Overview) (8.6.1.13)' ) . '</li>'
1109
+ . '<li>' . wpbc_recheck_strong_symbols( 'Removing deprecated Stripe v.1 integration. Now available only Stripe v.3 integration that support SCA (8.6.1.12) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1110
+ . '</ul>'
1111
+
1112
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1113
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1114
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue Undefined index: name in ../core/admin/wpbc-class-timeline.php on line 2137' ) . '</li>'
1115
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not ability to enter new value of CAPTCHA without page reloading, if previous entered value was incorrect. (8.6.1.8)' ) . '</li>'
1116
+ . '<li>' . wpbc_recheck_strong_symbols( 'Order of week days in Arabic translation for calendar' ) . '</li>'
1117
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show payment description about the booking in Stripe dashboard in Metadata section for Stripe v.3 integration (8.6.1.20) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1118
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of showing negative balance hint, during using deposit feature with zero cost (8.6.1.5) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1119
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results in "Advanced search results" (while using the shortcode like this [additional_search "3"] at the Booking > Settings > Search page), and if dates in some resources was marked as unavailable via season filters. (8.6.1.14) *(Business Large, MultiUser)*' ) . '</li>'
1120
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing available results, when searching only for 1 specific day (check in/out dates the same in availability form), and we have booked (as full day), this day in specific booking resource. (8.6.1.19) *(Business Large, MultiUser)*' ) . '</li>'
1121
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly disabling end time options in select-box (8.6.1.17) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1122
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of slow loading calendar (executing too many sql requests), when season filter was deleted at the Booking > Resources > Filters page, but reference relative (Rates) still exist at Booking > Resources > Cost and rates page. Its means that the Rates was not updated (re-saved) relative specific booking resource at the Booking > Resources > Cost and rates page. (8.6.1.22) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1123
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of possible showing status of Stripe v.3 payment as successful at the Booking Listing page, even when its was not completed yet. (8.6.1.23) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1124
+
1125
+ . '</ul>'
1126
+ )
1127
+ )
1128
+ );
1129
 
1130
+ $this->show_separator();
1131
+ $this->expand_section_end( $section_param_arr );
1132
+ }
 
1133
 
1134
+ function section_8_6(){
1135
 
1136
+ $section_param_arr = array( 'version_num' => '8.6', 'show_expand' => true );
1137
+ $this->expand_section_start( $section_param_arr );
 
 
 
 
 
 
 
1138
 
 
1139
 
1140
+ /*
1141
+ * This update in memory of my Father - great, very responsible and lovely person, that set right direction in my life. [ SVI 2.19.52 - 8.6.19 ]
1142
+ */
1143
+ ?>
1144
+ <div style="width:80%;margin:auto;height:auto;background: #f7f7f7;padding: 10px 25px;border-radius: 8px;text-align: center;font-weight: 600;color: #949494;">This update in memory of my Father - great, very responsible and lovely person, that set right direction in my life. <br/>[ SVI 2.19.52 - 8.6.19 ]</div>
1145
 
1146
+ <img src="<?php echo $this->asset_path; ?>8.6/flex-timeline-single-month-pure-2.png" style="border:none;box-shadow: 0 0px 2px #bbb;margin: 2%;width:98%;display:block;" />
1147
+ <p style="text-align:center;"><?php echo wpbc_recheck_strong_symbols( 'New interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.'); ?></p>
1148
+ <div class="clear"></div>
1149
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1150
 
1151
+ $this->show_col_section( array(
1152
+ array( 'text' =>
1153
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1154
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1155
+ . '<li>' . wpbc_recheck_strong_symbols( 'Updated new interface of **Calendar Overview** in admin panel and **Timeline** at front-end side with new clean, flex design.' ) . '</li>'
1156
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - mobile friendly look.' ) . '</li>'
1157
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - nicely showing several bookings for the same date(s) (dividing day into several rows). For example during bookings for specific times, while showing Month Timeline view.' ) . '</li>'
1158
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - very handy hints for each day of booking, when mouse over specific booking day.' ) . '</li>'
1159
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - aggregated booking details title marked with different color for easy finding and checking how many bookings in specific date(s).' ) . '</li>'
1160
+ . '<li>' . wpbc_recheck_strong_symbols( '**Timeline & Calendar Overview** - ability to restore old Timeline look at Booking > Settings General page in Timeline section.' ) . '</li>'
1161
+ . '<li>' . wpbc_recheck_strong_symbols( 'Section "Calendar Overview | Timeline" at Booking > Settings General page (8.5.2.20)' ) . '</li>'
1162
+ . '<li>' . wpbc_recheck_strong_symbols( 'Button "**Empty Trash**" at Booking Listing page in Action toolbar to completely delete All bookings from Trash (8.5.2.24)' ) . '</li>'
1163
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to **export only approved bookings into .ics feeds**. Available in Booking Manager plugin since 2.0.11 or newer update. (8.5.2.3)' ) . '</li>'
1164
+ . '<li>' . wpbc_recheck_strong_symbols( 'Do not update cost of booking, while editing this booking. (8.5.2.1) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1165
+ . '</ul>'
1166
+
1167
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1168
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1169
+ . '<li>' . wpbc_recheck_strong_symbols( 'More clean colors for booking details at the Booking Listing page (8.5.2.5)' ) . '</li>'
1170
+ . '<li>' . wpbc_recheck_strong_symbols( 'Added <code>[add_to_google_cal_url]</code> - shortcode in "Approved booking" email template for fast manual adding of booking to Google Calendar (8.5.2.13)' ) . '</li>'
1171
+ . '<li>' . wpbc_recheck_strong_symbols( 'New Flex Template for search form - more nice CSS style for search form and search results (8.5.2.11) *(Business Large, MultiUser)*' ) . '</li>'
1172
+ . '</ul>'
1173
+
1174
+
1175
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hub' ) . '</h4>'
1176
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1177
+ . '<li>' . wpbc_recheck_strong_symbols( 'Useful **hook** for **Auto approve** bookings only for **specific booking resources**: <code>apply_filters( \'wpbc_get_booking_resources_arr_to_auto_approve\', $booking_resources_to_approve );</code>.<br> Add code similar to this in your functions.php file in your theme, or in some other php file: <br/><code>function my_wpbc_get_booking_resources_arr_to_auto_approve( $resources_to_approve ) { <br>$resources_to_approve = array( 1, 9, 12, 33 ); <br>return $resources_to_approve; } <br>add_filter( \'wpbc_get_booking_resources_arr_to_auto_approve\', \'my_wpbc_get_booking_resources_arr_to_auto_approve\' );</code> (8.5.2.27)' ) . '</li>'
1178
+ . '<li>' . wpbc_recheck_strong_symbols( 'Useful **hook** for Google Adwords Conversion tracking: <code>do_action( \'wpbc_track_new_booking\', $params );</code> Add code similar to this in your functions.php file in your theme, or in some other php file: <code>add_action( \'wpbc_track_new_booking\', \'my_booking_tracking\' ); <br>function my_booking_tracking( $params ){ <br>//*Your Google Code for Booking Conversion Page*<br>}</code> (8.5.2.25)' ) . '</li>'
1179
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define rechecking cost with PayPal tax during response of PayPal IPN. Require of adding function like this: <br/><code>function my_wpbc_paypal_ipn_tax( $paypal_tax_percent ){ return 20; } <br/>add_filter( \'wpbc_paypal_ipn_tax\', \'my_wpbc_paypal_ipn_tax\' );</code> (8.5.2.2) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1180
+ . '<li>' . wpbc_recheck_strong_symbols( 'More easy find lost bookings (in booking resource(s) that have been deleted). Now, its show only lost bookings. Use link like this: <br/><code>http://server/wp-admin/admin.php?page=wpbc&wh_booking_type=lost</code> (8.5.2.19) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1181
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show only one payment system after booking process, if visitor selected payment system in booking form. Example: of shortcode for showing selection of payment forms: <code>Select payment method: [select payment-method "All payment methods@@" "Stripe@@stripe_v3" "PayPal@@paypal" "Authorize.Net@@authorizenet" "Sage Pay@@sage" "Bank Transfer@@bank_transfer" "Pay in Cash@@pay_cash" "iPay88@@ipay88" "iDEAL@@ideal"]</code> This solution was suggested by "Dan Brown". Thank you. (8.5.2.28) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1182
+ . '</ul>'
1183
+
1184
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1185
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1186
+
1187
+ . '<li>' . wpbc_recheck_strong_symbols( 'French translation [100% completed] by Philippe Nowak and Alain Pruvost' ) . '</li>'
1188
+ . '<li>' . wpbc_recheck_strong_symbols( 'Hungarian translation [99% completed] by Vincze István' ) . '</li>'
1189
+ . '</ul>'
1190
+
1191
+ )
1192
+ , array( 'text' =>
1193
+
1194
+ '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1195
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1196
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of blocking entire day, if in booking form was used start time and end or duration of time fields and visitor use multiple days selection mode, and all start time options for specific day was booked. In multiple day selection mode its incorrect, because user can start days selection at available day, and finish selection with end time at this partially booked day, where no available start-time. Now system block such dates only during single day selection mode. (8.5.2.4)' ) . '</li>'
1197
+ . '<li>' . wpbc_recheck_strong_symbols( 'Disable send button, after submit booking, for prevent of several same bookings (8.5.2.7)' ) . '</li>'
1198
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing bookings that start from \'yesterday\' date at Booking Listing page, when selecting \'Current dates\' in Filter toolbar. (8.5.2.14)' ) . '</li>'
1199
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing bookings that start from \'today\' date at Booking Listing page, when selecting \'Past dates\' in Filter toolbar. (8.5.2.16)' ) . '</li>'
1200
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not ability to submit the booking for additional calendar(s), if used booking form with several calendars and was not selected date(s) in main calendar (8.5.2.26) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1201
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing booking resource in search availability results, if resource was booked for specific time-slot on specific date, where we search availability. (8.5.2.7) *(Business Large, MultiUser)*' ) . '</li>'
1202
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of showing default booking resource instead of "All booking resources" for Regular user in MultiUser version at the Booking Listing and Calendar Overview pages, while was set show "All resources" at the Booking > Settings General page. (8.5.2.8) *(MultiUser)*' ) . '</li>'
1203
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of prevent loading Stripe v.3 at some systems, where PHP version lower than PHP 5.4 (8.5.2.9) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1204
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of "not auto selecting dates" during editing/cancellation of the booking by visitor, and not updating cost / dates hints in some systems. Conflict with "WPBakery Page Builder" plugin. (8.5.2.10) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1205
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing warning message about not checked checkbox, during validation required checkboxes that have several options and one option was checked. (8.5.2.12) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1206
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not submitting booking for additional calendars (if using several calendars and one booking form), if payment form does not show for such bookings (8.5.2.17) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1207
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of not showing as booked dates in calendar, that relative to change-over days, while activated "Allow unlimited bookings per same day(s)" option. (8.5.2.18) *(Business Large, MultiUser)*' ) . '</li>'
1208
+ . '<li>' . wpbc_recheck_strong_symbols( 'Issue of incorrectly showing additional cost hints for options, that was defined as percentage at the Booking > Resources > Advanced cost page. (8.5.2.21) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1209
+ . '<li>' . wpbc_recheck_strong_symbols( 'Do not send emails, if was empty email field (its possible in situation, when in booking form several email fields for several persons), otherwise was showing error (8.5.2.22) *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1210
+ . '<li>' . wpbc_recheck_strong_symbols( 'Start using "choozen" library for selection of booking resources just during page loading (because library loaded in head), instead of using after full page loaded. Its prevent issue of showing wide selectbox during page loading. (8.5.2.23)' ) . '</li>'
1211
+
1212
+ . '</ul>'
1213
+ )
1214
+ )
1215
+ );
1216
 
 
1217
 
1218
+ $this->show_separator();
1219
+ $this->expand_section_end( $section_param_arr );
1220
+ }
1221
+
1222
+ function section_8_5(){
1223
+
1224
+ $section_param_arr = array( 'version_num' => '8.5', 'show_expand' => true );
1225
+ $this->expand_section_start( $section_param_arr );
1226
+
1227
+ $this->show_separator();
1228
+
1229
+ $this->show_col_section( array(
1230
+ array( 'text' =>
1231
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1232
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1233
+ . '<li>' . wpbc_recheck_strong_symbols( '**Highlight code syntax** for **booking form** configuration at Booking > Settings > Form page, and show warnings about possible issues. (8.4.7.18) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1234
+ . '<li>' . wpbc_recheck_strong_symbols( '**Highlight code syntax** for **search form** and search results form configuration at Booking > Settings > Search page, and show warnings about possible issues. (8.4.7.18) *(Business Large, MultiUser)*' ) . '</li>'
1235
+ . '<li>' . wpbc_recheck_strong_symbols( 'Update of **Stripe** Integration via "**Checkout Server**" method, which use "**Strong Customer Authentication**" (SCA) - a new rule coming into effect on September 14, 2019 as part of PSD2 regulation in Europe, will require changes to how your European customers authenticate online payments. (8.4.7.20)' ) . '</li>'
1236
+ . '<li>' . wpbc_recheck_strong_symbols( '**Approve booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2approve]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1237
+ . '<li>' . wpbc_recheck_strong_symbols( '**Decline booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2decline]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1238
+ . '<li>' . wpbc_recheck_strong_symbols( '**Trash booking in 1 mouse click** on link in email about new booking sending to Administrator. Even without requirement to login to WordPress admin panel. Its require to use **[click2trash]** shortcode at Booking > Settings > Emails > New (admin) page. (8.4.7.25)' ) . '</li>'
1239
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to define sort **order of search availability results** at the Booking > Settings > Search page. (8.4.7.8) *(Business Large, MultiUser)*' ) . '</li>'
1240
+ . '<li>' . wpbc_recheck_strong_symbols( '** Experimental Feature**. Trash all imported bookings before new import. Move all previously imported bookings to trash before new import bookings. Its can **resolve issue of updating deleted and edited events in external sources**. Activate this option at Booking > Settings > Sync > "General" page. Its work only, if you are using one source (.ics feed) for importing into specific booking resource! Work only in update of Booking Manager 2.0.10 or newer. (8.4.7.12)' ) . '</li>'
1241
+ . '<li>' . wpbc_recheck_strong_symbols( '**Force import**. Ability to import bookings without checking, if such bookings already have been imported. Activate this option at Booking > Settings > Sync > "General" page. Available in the Booking Manager 2.0.10 or newer. (2.0.10.1)(8.4.7.1)' ) . '</li>'
1242
+ . '</ul>'
1243
+
1244
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1245
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1246
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Changed color of "Imported" label for bookings in Booking Listing page (8.4.7.2)' ) . '</li>'
1247
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Show "Do you really want to do this ?" popup, when admin try to Trash or Delete booking in Calendar Overview page (8.4.7.14)' ) . '</li>'
1248
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Show button "Find Lost Bookings" at the Booking Settings General page in Help section, for ability to show all exist bookings, and find possible some lost bookings. (8.4.7.19)' ) . '</li>'
1249
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Booking Calendar does not require jquery-migrate library, as obligatory library anymore. Its means that plugin can work with latest jQuery versions (like 3.4.1) just in strait way, without additional libraries. (8.4.7.23)' ) . '</li>'
1250
+
1251
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Checking for seasonal availability in "child booking resources" during submitting booking for booking resource with specific capacity. If you have set unavailable dates in child booking resource via season filters, system will not save bookings in this child booking resource. (8.4.7.3) *(Business Large, MultiUser)*' ) . '</li>'
1252
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Set as unavailable the end time fields options, depend from selected date with booked timeslots (8.4.7.6) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1253
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement**. Added autocomplete Off to the search form fields, to prevent of showing tooltips in search fields. (8.4.7.7) *(Business Large, MultiUser)*' ) . '</li>'
1254
+ . '</ul>'
1255
+
1256
+ )
1257
+ , array( 'text' =>
1258
+ '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1259
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1260
+
1261
+ . '<li>' . wpbc_recheck_strong_symbols( 'New Romanian translation by Silviu Nita' ) . '</li>'
1262
+ . '<li>' . wpbc_recheck_strong_symbols( 'Update of Slovenian translation by Klemen Gaber' ) . '</li>'
1263
+ . '<li>' . wpbc_recheck_strong_symbols( 'Update of Dutch translation by Boris Hoekmeijer' ) . '</li>'
1264
+ . '<li>' . wpbc_recheck_strong_symbols( 'Update of German translation by Dominik Ziegler' ) . '</li>'
1265
+ . '</ul>'
1266
+
1267
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1268
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1269
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not working "Read All" button (issue was exist in updates 8.4.5, 8.4.6. (8.4.7.15)' ) . '</li>'
1270
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of incorrectly showing months scroll in calendar at some iPads (8.4.7.17)' ) . '</li>'
1271
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not showing bookings for "Today" date in Booking Listing page, when bookings was made for entire date. (8.4.7.21)' ) . '</li>'
1272
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of showing bookings, that was made during "Today" date in Booking Listing page. Previously system was show some bookings, that was made yesterday, as well. (8.4.7.22)' ) . '</li>'
1273
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Warnings in PHP 7.2 relative INI directive safe_mode is deprecated since PHP 5.3 and removed since PHP 5.4 (8.4.7.24)' ) . '</li>'
1274
+
1275
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Warning: Invalid argument supplied for foreach() in ..\multiuser.php on line 558 (8.4.7.4) *(MultiUser)*' ) . '</li>'
1276
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing of users in Booking > Settings > Users page in WordPress MU installation (8.4.7.5) *(MultiUser)*' ) . '</li>'
1277
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue with Stripe payment, when "Subject" have too long description with dates to book. (8.4.7.10) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1278
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Translation issue of Completed payment status (8.4.7.11) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1279
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing of showing dates instead of titles of booking resources in Timeline, when some Regular user was logged in and try to scroll timeline (8.4.7.13) *(MultiUser)*' ) . '</li>'
1280
+
1281
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Showing Notice: Undefined offset: 9 in ../inc/_bl/wpbc-search-availability.php on line 689 (8.4.7.16) *(Business Large, MultiUser)*' ) . '</li>'
1282
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not updating cost by making booking at Booking > Add booking page, while using [cost_correction] shortcode in the booking form (8.4.7.28) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1283
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix**. Issue of not showing change over days in calendar for single booking resource (capacity = 1), where maximum number of visitors > 1 (8.4.7.29) *(Business Large, MultiUser)*' ) . '</li>'
1284
+
1285
+ . '</ul>'
1286
+ )
1287
+ )
1288
+ );
1289
 
1290
+ $this->show_separator();
1291
+ $this->expand_section_end( $section_param_arr );
1292
+ }
1293
+
1294
+ function section_8_4(){
1295
 
1296
+ $section_param_arr = array( 'version_num' => '8.4', 'show_expand' => true );
1297
+ $this->expand_section_start( $section_param_arr );
1298
 
 
 
1299
  $this->show_separator();
1300
  // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1301
  ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/rpg1kApZCdw?rel=0&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
1305
  '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1306
  ?>
1307
  </div><?php
 
1308
 
1309
+ $this->show_separator();
1310
+ $this->expand_section_end( $section_param_arr );
1311
+ }
1312
+
1313
+ function section_8_3(){
1314
 
1315
+ $section_param_arr = array( 'version_num' => '8.3', 'show_expand' => true );
1316
+ $this->expand_section_start( $section_param_arr );
 
 
 
 
 
 
 
1317
 
1318
+ $this->show_separator();
1319
+ // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1320
+ ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/-pOTMiyp6Q8?rel=0&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
1321
+ ?><div style="width:100%;font-size:0.8em;margin:2em 1em;text-align: center;">
1322
+ <?php
1323
+ printf( 'For more information about current update, see %srelease notes%s',
1324
+ '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1325
+ ?>
1326
+ </div><?php
1327
 
 
 
 
 
 
 
 
 
 
 
 
 
1328
 
1329
+ $this->show_separator();
1330
+ $this->expand_section_end( $section_param_arr );
1331
+ }
1332
 
1333
+ function section_8_2(){
 
 
 
 
 
1334
 
1335
+ $section_param_arr = array( 'version_num' => '8.2', 'show_expand' => true );
1336
+ $this->expand_section_start( $section_param_arr );
1337
 
1338
+ $this->show_separator();
1339
+ // <!--iframe width="560" height="315" src="https://www.youtube.com/embed/kLrI7zqKeQQ?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe-->
1340
+ ?><div style="text-align: center;margin-top:2em;"><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLabuVtqCh9dzBEZCIqayAfvarrngZuqUl&amp;start=0&amp;rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div><?php
 
 
1341
 
1342
+ ?><div style="width:100%;font-size:0.8em;margin:2em 1em;text-align: center;">
1343
+ <?php
1344
+ printf( 'For more information about current update, see %srelease notes%s',
1345
+ '<a class="" href="https://wpbookingcalendar.com/changelog/" target="_blank">', '</a>.' );
1346
+ ?>
1347
+ </div><?php
1348
 
 
1349
 
1350
+ $this->show_separator();
1351
+ $this->expand_section_end( $section_param_arr );
1352
+ }
1353
 
1354
+ function section_8_1(){
 
 
 
 
 
 
 
 
1355
 
1356
+ $section_param_arr = array( 'version_num' => '8.1', 'show_expand' => true );
1357
+ $this->expand_section_start( $section_param_arr );
1358
 
 
 
 
1359
 
1360
+ $this->show_col_section( array(
1361
+
1362
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Different structures of booking forms' ),
1363
+ 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1364
+ . '<li>' . 'Ability to define different structures of booking forms at Booking > Settings > Form page' . '</li>'
1365
+ . '<li style="list-style: disc inside;">' . '**Vertical** - form under calendar' . '</li>'
1366
+ . '<li style="list-style: disc inside;">' . '**Side by side** - form at right side of calendar' . '</li>'
1367
+ . '<li style="list-style: disc inside;">' . '**Centered** - form and calendar are centered' . '</li>'
1368
+ . '<li style="list-style: disc inside;">' . '**Dark** - form for dark background' . '</li>'
1369
+ . '</ul>' )
1370
+
1371
+ . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in Booking Calendar **Free** version' ) . '</span>'
1372
+
1373
+ )
1374
+ , array( 'img' => '8.1/booking-form-structure-2.png', 'img_style'=>'margin-top:20px;width: 85%;' )
1375
+ )
1376
+ );
1377
+
1378
+ $this->show_separator();
1379
+
1380
+ $this->show_col_section( array(
1381
+
1382
+ array( 'img' => '8.1/booking-calendar-stripe-gateway-2.png', 'img_style'=>'margin-top:20px;width: 85%;' )
1383
+
1384
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Stripe** payment system integration' ),
1385
+ 'text' => wpbc_recheck_strong_symbols( '<ul style="list-style: none;padding: 5px;margin:0;">'
1386
+ . '<li>' . 'Integration with **<a target="_blank" href="https://stripe.com/">Stripe</a>** payment gateway.' . '</li>'
1387
+ . '<li>' . 'Showing on screen (same page) payment form, with ability to pay by cards.' . '</li>'
1388
+ . '<li>' . 'Ability to auto approve or auto decline booking, after successful or failed payment.' . '</li>'
1389
+ . '</ul>' )
1390
 
1391
+ . '<span style="font-size:0.85em;">' .wpbc_recheck_strong_symbols( 'Available in **Business Small / Business Medium / Business Large / MultiUser** versions' ) . '</span>'
 
 
 
 
 
 
 
1392
 
1393
+ )
1394
+ )
1395
+ );
1396
+
1397
+ $this->show_separator();
1398
 
1399
+
1400
+ $this->show_col_section( array(
1401
+ array( 'text' =>
1402
+ '<h4>' .wpbc_recheck_strong_symbols( 'New' ) . '</h4>'
1403
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1404
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to insert modification/creation date or (Year, month, day, hours, minutes or seconds) of booking into email templates or in payment summary' ) . '</li>'
1405
+ . '<li>' . wpbc_recheck_strong_symbols( '**New.** Shortcode for showing check out date plus one additional day: <code>[check_out_plus1day_hint]</code> at Booking > Settings > Form page. (8.0.2.12) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1406
+ . '</ul>'
1407
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1408
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1409
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Spanish translation [100% completed] by Martin Romero' ) . '</li>'
1410
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Galician (Spanish) translation [100% completed] by Martin Romero' ) . '</li>'
1411
+ . '</ul>'
1412
+
1413
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1414
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1415
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Improve admin UI styles in Chrome browser, by setting more sleek view of UI elements (8.0.2.4/5)' ) . '</li>'
1416
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Do not export to .ics feed bookings, that inside of Trash folder (8.0.2.7)' ) . '</li>'
1417
+ . '</ul>'
1418
+ )
1419
+ , array( 'text' =>
1420
+
1421
+ '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1422
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1423
+
1424
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** showing booking listing correctly for "next 1 month" without bookings, that include past ("yesterday day") bookings (8.0.1.1)' ) . '</li>'
1425
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** force to load jquery-migrate in case, if we do not know the version of jQuery which was loaded. (8.0.1.2)' ) . '</li>'
1426
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing warning "parsererror ~ SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data" during import process, when some bookings already was imported (8.0.2.1)' ) . '</li>'
1427
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** add support of Apache 2.4 directives relative captcha saving.' ) . '</li>'
1428
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing warning: "Email different from website DNS, its can be a reason of not delivery emails" at Booking > Settings > Emails page, in case if website DNS starting with "www." ot some other sub-domain. (8.0.2.9)' ) . '</li>'
1429
+
1430
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** showing correctly change-over days (triangles), when inserted only "availability calendar", without booking form (8.0.1.2) *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1431
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** ability to use symbol **/** in placeholders in booking form fields shortcodes at Settings Form page (8.0.1.13) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1432
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** correctly showing single and double quotes (\' and ") symbols in textarea during editing booking (8.0.1.3) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1433
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not saving changes during editing, if you try to search some booking resource (or other item), and this booking resource was not at the 1st page (during usual listing) (8.0.1.12) *(Personal Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1434
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of incorrect cost calculation, during editing booking, when selected days from 1 to 9 and used some rates. Issue relative of not using leading 0 in textarea. (8.0.2.2) *(Business Medium/Large, MultiUser)*' ) . '</li>'
1435
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing coupon discount description, does not depend from uppercase or lowercase of entered coupon code (8.0.2.7) *(Business Large, MultiUser)*' ) . '</li>'
1436
+ . '</ul>'
1437
+ )
1438
  )
1439
  );
1440
 
1441
+
1442
  $this->show_separator();
1443
+ $this->expand_section_end( $section_param_arr );
1444
+ }
1445
+
1446
+ function section_8_0(){
1447
+
1448
+ $section_param_arr = array( 'version_num' => '8.0', 'show_expand' => true );
1449
+ $this->expand_section_start( $section_param_arr );
1450
+
1451
+ ?><h2 style='font-size: 1.6em;margin:20px 0 -10px 0;'>Sync bookings between different sources easily via <strong>.ics</strong> feeds</h2><?php
1452
+
1453
+ $this->show_col_section( array(
1454
+
1455
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Import of **.ics** feeds (files)' ),
1456
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1457
+ . '<li>' . wpbc_recheck_strong_symbols( 'Native integration with our **<a target="_blank" href="https://wpbookingcalendar.com/faq/booking-manager/">Booking Manager</a>** plugin for ability to import **.ics** feeds or files' ) . '</li>'
1458
+ . '<li>' . wpbc_recheck_strong_symbols( 'Import external **.ics** feeds via shortcodes at pages.
1459
+ It gives a great flexibility to import **.ics** feeds from different sources <em>(like ' )
1460
+ . '<strong><a href="https://www.airbnb.com/help/article/99/how-do-i-sync-my-airbnb-calendar-with-another-calendar" target="_blank">Airbnb</a></strong>, '
1461
+ . '<strong><a href="https://partnersupport.booking.com/hc/en-us/articles/213424709-How-do-I-export-my-calendar-" target="_blank">Booking.com</a></strong>, '
1462
+ . '<strong><a href="https://help.homeaway.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">HomeAway</a></strong>, '
1463
+ . '<strong><a href="https://rentalsupport.tripadvisor.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">TripAdvisor</a></strong>, '
1464
+ . '<strong><a href="https://help.vrbo.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">VRBO</a></strong>, '
1465
+ . '<strong><a href="https://helpcenter.flipkey.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">FlipKey</a></strong> '
1466
+ . ' or any other calendar that uses .ics format)</em> '
1467
+ . ' into same booking resource.'
1468
+ . ' <br>Its means that you can import bookings or events from different sources into same resource.'
1469
+ . '</li>'
1470
+ . '<li>' . wpbc_recheck_strong_symbols( 'Define different parameters in this import shortcode. For example, you can set "start from" and "finish to" date condition or maximum number of items to import or import only events for available dates in exist calendar, etc...' ) . '</li>'
1471
+ . '<li>' . wpbc_recheck_strong_symbols( 'Additionally you can configure your server CRON for periodically access these pages and import .ics feeds in automatic way.' ) . '</li>'
1472
+
1473
+ . '</ul>'
1474
+ )
1475
+ , array( 'img' => '8.0/import-ics2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1476
+ )
1477
+ );
1478
 
1479
+ $this->show_separator();
1480
 
1481
+ $this->show_col_section( array(
1482
+ array( 'img' => '8.0/export-ics.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1483
+ , array( 'h4' => wpbc_recheck_strong_symbols( 'Export of **.ics** feeds (files)' ),
1484
+ 'text' =>
1485
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1486
+ . '<li>' . wpbc_recheck_strong_symbols( 'Native integration with our **<a target="_blank" href="https://wpbookingcalendar.com/faq/booking-manager/">Booking Manager</a>** plugin for ability to export **.ics** feeds' ) . '</li>'
1487
+ . '<li>' . wpbc_recheck_strong_symbols( 'Configure specific ULR feed(s) at setting page' ) . '</li>'
1488
+ . '<li>' . wpbc_recheck_strong_symbols( 'Use this URL(s) in external websites <em>(like ' )
1489
+ . '<strong><a href="https://www.airbnb.com/help/article/99/how-do-i-sync-my-airbnb-calendar-with-another-calendar" target="_blank">Airbnb</a></strong>, '
1490
+ . '<strong><a href="https://partnersupport.booking.com/hc/en-us/articles/213424709-How-do-I-export-my-calendar-" target="_blank">Booking.com</a></strong>, '
1491
+ . '<strong><a href="https://help.homeaway.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">HomeAway</a></strong>, '
1492
+ . '<strong><a href="https://rentalsupport.tripadvisor.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">TripAdvisor</a></strong>, '
1493
+ . '<strong><a href="https://help.vrbo.com/articles/How-do-I-export-my-calendar-data-to-a-Google-calendar" target="_blank">VRBO</a></strong>, '
1494
+ . '<strong><a href="https://helpcenter.flipkey.com/articles/FAQ/noc-How-does-calendar-sync-work" target="_blank">FlipKey</a></strong> '
1495
+ . ' or any other calendar that uses .ics format)</em> '
1496
+ . ' for ability to import bookings into these third-party websites.'
1497
+ . '<li>' . wpbc_recheck_strong_symbols( 'Or you can simply download .ics file for later use in some application.' ) . '</li>'
1498
+ . '</li>'
1499
+ . '</ul>'
1500
+ )
1501
+ )
1502
+ );
1503
+ $this->show_separator();
1504
 
 
 
 
 
 
 
1505
 
1506
+ $this->show_col_section( array(
1507
+ array( 'text' =>
1508
+ '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1509
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1510
+
1511
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Dutch translation [100% completed] by Boris Hoekmeijer and Alex Rabayev and Iris Schuster' ) . '</li>'
1512
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Finnish translation [98% completed] by Teemu Valkeapää' ) . '</li>'
1513
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Chinese (Taiwan) translation [98% completed] by Howdy Lee' ) . '</li>'
1514
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Norwegian translation [98% completed] by Bjørn Kåre Løland' ) . '</li>'
1515
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Brazilian Portuguese translation [98% completed] by Rafael Rocha' ) . '</li>'
1516
+ . '</ul>'
1517
+
1518
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1519
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1520
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** New setting option for activation showing system debug log, for Beta features. Useful in case, if need to find reason, if something was going wrong. You can activate it at the Booking > Settings General page in Advanced section after clicking on "Show advanced settings of JavaScript loading." ( 7.2.1.15 )' ) . '</li>'
1521
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Showing system messages one under other instead of replacing each other in admin panel. Its possible to hide top one and see previous notices (7.2.1.16)' ) . '</li>'
1522
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Show in "New (visitor)" email (that is sending to the visitor after new booking) the date that is one day previous to the last selected day, by using this shortcode: <code>[check_out_minus1day]</code> (7.2.1.6)' ) . '</li>'
1523
+
1524
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Shortcode for showing coupon discount value of the booking: <code>[coupon_discount_hint]</code> at Booking > Settings > Form page. **(Business Large, MultiUser)**' ) . '</li>'
1525
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Discount coupon codes will not depend from symbols lowercase or uppercase. Prevent of saving coupon codes with specific symbols, which can generate issue of not showing discount at payment form. (7.2.1.3) **(Business Large, MultiUser)**' ) . '</li>'
1526
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Show "blank" bookings with different border color at Calendar Overview page. (7.2.1.8) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1527
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Apply "Valuation days" cost settings "For = LAST", even if previous TOGATHER = X% settings was applied. (7.2.1.20) **(Business Medium/Large, MultiUser)**' ) . '</li>'
1528
+ . '</ul>'
1529
+
1530
+ )
1531
+ , array( 'text' =>
1532
+ '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1533
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1534
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New **API File** <code>/{Booking Calendar Folder}/core/wpbc-dev-api.php</code> - well documented list of functions and hooks that possible to use for third-party integrations.' ) . '</li>'
1535
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New column in booking resources table for saving export info (7.2.1.13) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1536
+ . '</ul>'
1537
+
1538
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1539
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1540
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Correctly load custom jQuery via https (in some servers), if website is using SSL ( 7.2.1.4 )' ) . '</li>'
1541
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Compatibility issue with other plugins, during expand/collapsing sections at settings pages (7.2.1.10)' ) . '</li>'
1542
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Additional checking about $_SERVER variables, for preventing of showing "Warning Notices" at some servers ( 7.2.1.17 )' ) . '</li>'
1543
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Loading correct language, if language was set to English in user profile but in WordPress > General > Settings page was set some other default language ( 7.2.1.21 )' ) . '</li>'
1544
+
1545
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of not showing search results (during searching in same page - ajax request), when using custom fields parameters and selected - "" (which is means "any value") ( 7.2.1.5 ) **(Business Large, MultiUser)**' ) . '</li>'
1546
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of showing correct number of decimal digits depend from cost format, in calendar days cells and mouse-over tooltips ( 7.2.1.11) **(Business Medium/Large, MultiUser)**' ) . '</li>'
1547
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Do not check about required fields, if the fields are hidden (7.2.1.12) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1548
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of not showing links for booking resources in timeline after scrolling, if using (resource_link) parameter with links in timeline shortcode. (7.2.1.14) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1549
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** "Request-URI Too Long" fatal error at "Calendar Overview" page, when visitor have too many booking resources (7.2.1.18) **(Personal Business Small/Medium/Large, MultiUser)**' ) . '</li>'
1550
+
1551
+ . '</ul>'
1552
+ )
1553
+ )
1554
+ );
1555
 
 
 
 
1556
 
1557
  $this->show_separator();
1558
+ $this->expand_section_end( $section_param_arr );
1559
+ }
1560
+
1561
+ function section_7_1_7_2(){
1562
+
1563
+ $section_param_arr = array( 'version_num' => '7.1 - 7.2', 'show_expand' => true );
1564
+ $this->expand_section_start( $section_param_arr );
1565
+
1566
+ ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'>Changes in all versions</h2><?php
1567
+
1568
+ $this->show_col_section( array(
1569
+
1570
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Fast Adding bookings to Google Calendar' ),
1571
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1572
+ . '<li>' . wpbc_recheck_strong_symbols( 'Manual **export to Google Calendar** of specific booking by clicking on **Export** button near booking at Booking Listing page' ) . '</li>'
1573
+ . '<li>' . wpbc_recheck_strong_symbols( 'Shortcode <code>[add_to_google_cal_url]</code> in email template (to admin) for fast manual (adding) of booking to Google Calendar' ) . '</li>'
1574
+ . '</ul>'
1575
+ )
1576
+ , array( 'img' => '7.2/add-to-google-calendar.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1577
+ )
1578
+ );
1579
+ $this->show_separator();
1580
+ $this->show_col_section( array(
1581
+ array( 'img' => '7.2/timeline-hours-limit.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1582
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Timeline** tricks' ),
1583
+ 'text' =>
1584
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1585
+ . '<li>' . wpbc_recheck_strong_symbols( 'Limit times for showing cells in TimeLine for 1 day view mode. <br>For Example: <code>[bookingtimeline type=\'1\' limit_hours=\'9,22\']</code>' ) . '</li>'
1586
+ . '<li>' . wpbc_recheck_strong_symbols( 'Constant **WP_BK_TIMILINE_LIMIT_HOURS** in wpbc-constants.php file. Limit times for showing cells in Calendar Overview page in admin panel for 1 day view mode. ' ) . '</li>'
1587
+ . '</ul>'
1588
+ )
1589
+ )
1590
+ );
1591
+
1592
+ $this->show_separator();
1593
+
1594
+ $this->show_col_section( array(
1595
+ array( 'text' =>
1596
+ '<h4>' .wpbc_recheck_strong_symbols( 'Translation' ) . '</h4>'
1597
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1598
+
1599
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Danish translation [100% completed] by Daniel Moesgaard' ) . '</li>'
1600
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Swedish translation [100% completed] by Mikael Göransson' ) . '</li>'
1601
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** Italian translation [100% completed]' ) . '</li>'
1602
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Hebrew translation [100% completed] by Alex Rabayev and Iris Schuster' ) . '</li>'
1603
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation** Arabic translation [84% completed]' ) . '</li>'
1604
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** Dutch translation [99% completed] ' ) . '</li>'
1605
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** German translation [99% completed]' ) . '</li>'
1606
+ . '<li>' . wpbc_recheck_strong_symbols( '**Translation.** French translation [99% completed]' ) . '</li>'
1607
+ . '</ul>'
1608
+
1609
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1610
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1611
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** remove today day highlighting in calendar, after loading of page (7.1.2.8)' ) . '</li>'
1612
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** additional checking of correct loading popover function to prevent JavaScript error. If visitor disable loading of Bootstrap files or because of some JS conflict, instead of showing JavaScript error system will skip showing popover tooltip when mouse over days in calendar, or when click on booking in timeline. (7.0.1.2)' ) . '</li>'
1613
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** added checking about minimum required version of WordPress for using Booking Calendar (7.0.1.6)' ) . '</li>'
1614
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Ability to use <code>[reason]</code> or <code>[approvereason]</code> in Booking > Settings > Emails > Approve email template.' ) . '</li>'
1615
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Prepare functionality for removing language folder from plugin in a future, for reducing size of plugin. (7.0.1.53)' ) . '</li>'
1616
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Showing popovers in timeline (calendar overview) only at bottom direction for better looking at mobile devices (7.0.1.42)' ) . '</li>'
1617
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Set color of placeholder text in settings fields lighter. (7.0.1.54)' ) . '</li>'
1618
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement.** Increase time for script execution during initial activation of plugin. (7.0.1.57)' ) . '</li>'
1619
+ . '</ul>'
1620
+
1621
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1622
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1623
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** do_action( \'wpbc_jquery_unknown\' ) - new hook for situation, when we can not make identification version of jQuery, sometimes, need manually to load jquery-migrate (7.0.1.33)' ) . '</li>'
1624
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** Trigger event "timeline_nav" after clicking navigation in timeline. To bind this event use this JS: <code>jQuery( ".wpbc_timeline_front_end" ).on(\'timeline_nav\', function(event, timeline_obj, nav_step ) { ... } );</code> (7.0.1.48)' ) . '</li>'
1625
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under Hood.** New constant. <code>WP_BK_AUTO_APPROVE_WHEN_IMPORT_GCAL</code> - Auto approve booking, if imported from Google Calendar. Default set to false (7.0.1.59)' ) . '</li>'
1626
+ . '</ul>'
1627
+ )
1628
+ , array( 'text' =>
1629
+ '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1630
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1631
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** some translation issue (7.1.2.1)' ) . '</li>'
1632
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing today bookings in Booking Listing page (7.1.2.8)' ) . '</li>'
1633
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Renamed Greek translation files from booking-el_GR.mo to booking-el.mo (booking-el_GR.po to booking-el.po) Its seems that default locale for Greek is \'el\' (7.1.2.10)' ) . '</li>'
1634
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** add possibility to check and load file for \'short\' translation locale (like \'en\'), if file for \'long\' locale (like \'en_US\') was not found in translation folder. (7.1.2.11)' ) . '</li>'
1635
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Update captcha 1.1 to captcha 1.9, which protect from potensional PHP file inclusion vulnerability (7.0.1.67)' ) . '</li>'
1636
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Minimum version of jQuery required as 1.9.1' ) . '</li>'
1637
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of disabling sending emails during approving or cancellation of bookings at Booking Listing or Calendar Overview pages, when checkbox "Emails sending" unchecked. (7.0.1.5)' ) . '</li>'
1638
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of **auto import events** from Google Calendar into the Booking Calendar (7.0.1.9)' ) . '</li>'
1639
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** Issue of generating **JavaScript errors** when user deactivated loading of Bootstrap JS files at Booking Settings General page in Advanced section. Instead of it show warning message or skip showing tooltips. (7.0.1.10)' ) . '</li>'
1640
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of order loading translation, if default language is not English (7.0.1.12) ' ) . '</li>'
1641
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of redirection to "Thank you" page. Using home_url (www.server.com) instead of site_url (www.server.com/wordpress/) at some servers. (7.0.1.20)' ) . '</li>'
1642
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of ability to translate options in selectbox in format like <code>Eng 1 [lang=it_IT] Italian 1</code> at Settings Fields page in Booking Calendar Free version (7.0.1.21)' ) . '</li>'
1643
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** set email field as required field in Booking Calendar Free version (7.0.1.22)' ) . '</li>'
1644
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not sending emails, if server was set with using error_reporting(E_STRICT); and show this warning: "PHP Strict Standards: Only variables should be passed by reference in /wp-content/plugins/booking/core/admin/page-email-new-admin.php on line 1105" (7.0.1.32)' ) . '</li>'
1645
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not submitting booking in IE. Issue relative to note support by IE String.trim() function. (7.0.1.39)' ) . '</li>'
1646
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing additional slashes in emails at reason of cancellation (7.0.1.46) (Also fixed same issue for approve reason, payment request text and adding notes to the booking).' ) . '</li>'
1647
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of showing in TimeLine (Calendar Overview) 1st day of next Month, that does not belong to current visible month. Sometimes in such view if booking starting from 1st day of next month, system does not show this booking, and its can confuse visitors. (7.0.1.47)' ) . '</li>'
1648
+ . '<li>' . wpbc_recheck_strong_symbols( '**Fix** issue of not saving Booking > Settings General page if pressed on Save Changes button at top right side in French language, and some other languages (7.0.1.56)' ) . '</li>'
1649
+ . '</ul>'
1650
+
1651
+
1652
+
1653
+ )
1654
+ )
1655
+ );
1656
+
1657
 
1658
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1659
 
1660
+ ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'><?php echo wpbc_recheck_strong_symbols( 'Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions' ); ?></h2><br/><?php
1661
 
 
 
1662
  $this->show_separator();
1663
+
1664
+ $this->show_col_section( array(
1665
+
1666
+ array( 'h4' => wpbc_recheck_strong_symbols( 'iDEAL payment gateway' ),
1667
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1668
+ . '<li>' . wpbc_recheck_strong_symbols( 'Integration of **iDEAL via Sisow** payment gateway. (7.0.1.64) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1669
+ . '</ul>'
1670
+ )
1671
+ , array( 'img' => '7.2/ideal-settings.png', 'img_style'=>'margin-top:20px;width: 99%;' )
 
 
 
 
 
 
 
 
 
 
 
1672
  )
1673
+ );
1674
+ $this->show_separator();
1675
+ $this->show_col_section( array(
1676
+ array( 'img' => '7.2/change-over-days.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1677
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Change over days as triangles**' ),
1678
+ 'text' =>
1679
+ '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1680
+ . '<li>' . wpbc_recheck_strong_symbols( ' **New.** **Show change over days as triangles.** <em>Beta Feature</em>. Its require showing calendar days cells as square (not rectangle). Width and height of calendar you can define in shortcode options parameter. Supported by: Chrome 36.0+, MS IE 10.0+, Firefox 16.0+, Safari 9.0+, Opera 23.0+ (7.0.1.24) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>' . '</ul>'
1681
+ )
1682
+ )
1683
+ );
1684
+ $this->show_separator();
1685
+
1686
+ $this->show_col_section( array(
1687
+ array( 'text' =>
1688
+
1689
+ '<h4>' .wpbc_recheck_strong_symbols( 'Improvement' ) . '</h4>'
1690
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1691
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** New form template with 30 minutes time-slots selection at Booking > Settings > Form page (7.1.2.6) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1692
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** Ability to add empty parameter "&booking_hash" to URL in browser at Booking > Add booking page for ability to add bookings for past days (7.1.2.10) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1693
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement** Ability to use "Valuation days" cost settings, if activated "Use time selections as recurrent time slots" and set cost "per 1 day" and option "Time impact to cost" deactivated at Booking > Settings > Payment page. Useful, when need to set cost per days, but also save time-slots during booking on several days. (7.1.2.11) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1694
+
1695
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to set lower interval (15, 30 or 45 minutes) for auto cancellation pending bookings that have no successfully paid status (7.0.1.25) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1696
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use aggregate parameter in the <code>[bookingedit]</code> shortcode (7.0.1.26) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1697
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use in field "From Name" in email templates at Booking - Settings - Emails page different shortcodes from booking form, like <code>[name] [secondname]</code> (7.0.1.29) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1698
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to show in cost_hints negative (discounted) cost for additional items. Previously system set instead of negative value just 0 (7.0.1.30) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1699
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Increase accuracy of rates calculation, if we are having more than 2 digits after comma in rates configurations (7.0.1.44) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1700
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Ability to use HTML tags in popup window during sending payment request and then showing <code>[paymentreason]</code> in email template with HTML formating (7.0.1.60) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1701
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Showing "blank bookings" in Calendar Overview page with different color (red) (7.0.1.40) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1702
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Improvement.** Showing all title for booking resources with long name (longer than 19 symbols) at the Booking Listing page. Previously its was cutted of (7.0.1.66) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1703
+
1704
+
1705
+ . '</ul>'
1706
+
1707
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Under Hood' ) . '</h4>'
1708
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1709
+ . '<li>' . wpbc_recheck_strong_symbols( ' **New** Constant WP_BK_CHECK_IF_CUSTOM_PARAM_IN_SEARCH in wpbc-constants.php file. Check in search results custom fields parameter that can include to multiple selected options in search form. Logical OR (7.1.2.9) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1710
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Trick** Using in Booking > Resources page parameter "show_all_resources" in browser URL, will show all booking resources, even lost booking resources. Lost booking resources can be, if you was assigned as parent booking resource to single booking resource, itself. (7.1.2.2) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1711
+
1712
+ . '<li>' . wpbc_recheck_strong_symbols( ' **New.** Ability to define links for booking resource titles in TimeLine. Example: <code>[bookingtimeline ... options=\'{resource_link 3="http://beta/resource-apartment3-id3/"},{resource_link 4="http://beta/resource-3-id4/"}\' ... ]</code> (7.0.1.50) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1713
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Tip.** Skip showing rows of booking resource(s) in TimeLine or Calendar Overview, if no any exist booking(s) for current view. For activation this feature you need to add only_booked_resources parameter to the URL. For example: http://server.com/wp-admin/admin.php?page=wpbc&view_mode=vm_calendar&only_booked_resources Its have to improve speed of page loading, when we are having too many resources at the page. (7.0.1.51) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1714
+
1715
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Under Hood.** Trigger event "show_cost_hints" after showing cost or time hints in booking form. To bind this event use this JS: jQuery( ".booking_form_div" ).on(\'show_cost_hints\', function(event, bk_type ) { ... } ); (7.0.1.53) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1716
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Under Hood.** Add automatically new payment system, after visit Settings Payment page, if payment system folder and file(s) was created correctly. (7.0.1.55,7.0.1.61) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1717
+
1718
+ . '</ul>'
1719
+ )
1720
+ , array( 'text' =>
1721
+ '<h4>' .wpbc_recheck_strong_symbols( 'Fixes' ) . '</h4>'
1722
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1723
+
1724
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** do not show option for ability to select as parent booking resource itself, at Booking > Resources page. Its prevent from generating lost booking resources. (7.1.2.3) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1725
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not having access in modal windows (like payment request) to enter some data, when opened page with mobile device (7.1.2.7) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1726
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue in Danish translation, which was show warning at Booking > Settings > Payment > Bank transfer page (7.1.2.9) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1727
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing &amp;#36, instead of $ symbol in the Booking Listing, if was used in "Content of booking fields data" form HINT cost shortcodes (7.1.2.12) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1728
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of hiding selection of booking resources field after submit of booking (7.1.2.13) <em>(Personal Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1729
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not checking (during booking submit process) elements from conditional fields logic, if these fields does not visible. (7.1.2.14) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1730
+
1731
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not showing "reason of cancellation" in emails, that are sending after auto-cancellation of pending not successfully paid bookings. (7.0.1.1) <em>(Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1732
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of incorrectly booking cost calculation if setted cost "per 1 night" and previously was used "Valuation days" cost settings for specific booking resource. (7.0.1.4) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1733
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** Do not apply "LAST" cost option for "Valuation days" if previously was applied "Together" term. No need to apply "LAST", because its have to be already calculated in together term (7.0.1.7) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1734
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** Correctly replacing shortcodes with custom URL parameter, like: \'visitorbookingediturl\', \'visitorbookingcancelurl\', \'visitorbookingpayurl\' in email templates. (7.0.1.8) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1735
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing notice: "Use of undefined constant <code>WPDEV_BK_LOCALE_RELOAD</code>" in seacrh results (7.0.1.9) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1736
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of start showing timeline in "Day view" starting from Today date based on WordPress timezone. (7.0.1.13)' ) . '</li>'
1737
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not showing some bookings, which was made for specific times in 1 day view mode. (7.0.1.16)' ) . '</li>'
1738
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of saving additional cost at the Booking > Resources > Advanced cost page, if some options have LABELs (options still must be simple words) with umlauts. (7.0.1.27) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1739
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of updating <code>[cost_correction]</code> shortcode, if selecting dates for new booking and not editing exist booking (7.0.1.28) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1740
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of blocking days selection in calendar, when visitor use the search form and manually input dates that lower than minimum number of days selection in settings (7.0.1.31) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1741
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of showing blank page for printing in Chrome browser (7.0.1.34) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1742
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not changing hash of booking after approving of booking, if this option was activated at settings (7.0.1.35) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1743
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of rechecking booking dates (if activated "Checking to prevent double booking, during submitting booking" option), during booking editing (7.0.1.36) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1744
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not correctly blocking check-out day (showing weird 2 checkout days), if activated "Unavailable time before / after booking" option and set unavailable DAYs after booking (7.0.1.38) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1745
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of wrong deleting booking, if activated option "Disable bookings in different booking resources" during editing booking that try to store in different booking resources (7.0.1.43) <em>(Business Large, MultiUser)</em>' ) . '</li>'
1746
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** position of currency symbol in calendar day cells and in mouseover tooltip, depend from settings at Booking > Settings > Payment page (7.0.1.49) <em>(Business Medium/Large, MultiUser)</em>' ) . '</li>'
1747
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** replacinng shortcodes in a loop, if we are having several shortcodes with bookingedit{cancel} in email templates (For example, if we have several languges ). (7.0.1.52)' ) . '</li>'
1748
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of infinite loop, which was exist since update 7.0.1.52 to 7.0.1.57 (7.0.1.58)' ) . '</li>'
1749
+ . '<li>' . wpbc_recheck_strong_symbols( ' **Fix** issue of not saving data for radio button selection field in emails and may be in booking listing (7.0.1.62) <em>(Personal, Business Small/Medium/Large, MultiUser)</em>' ) . '</li>'
1750
+
1751
+ . '</ul>'
1752
+ )
1753
+ )
1754
+ );
1755
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1756
 
 
 
 
 
 
 
 
 
 
 
 
 
1757
  $this->show_separator();
1758
+ $this->expand_section_end( $section_param_arr );
1759
+ }
1760
+
1761
+ function section_7_0(){
1762
+
1763
+ $section_param_arr = array( 'version_num' => '7.0', 'show_expand' => true );
1764
+ $this->expand_section_start( $section_param_arr );
1765
+
1766
+ ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'>Changes in all versions</h2><?php
1767
+
1768
+ $this->show_col_section( array(
1769
+
1770
+ array( 'h4' => wpbc_recheck_strong_symbols( '**New** **Timeline at front-end** side.' ),
1771
+ 'text' => '<em>' . wpbc_recheck_strong_symbols( 'Show availability in fully new awesome way (old "Calendar Overview page from admin panel). Free version support showing booked dates with "blank pipelines". Paid versions have much more functionality here.')
1772
+ . '</em>'
1773
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1774
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **month format**. Shortcode: [bookingtimeline view_days_num=90 scroll_start_date="" scroll_day=-30]' ) . '</li>'
1775
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **year format**. Shortcode: [bookingtimeline view_days_num=365 scroll_start_date="" scroll_month=-3]' ) . '</li>'
1776
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to show **Timeline at front-end** in **day format**. Shortcode: [bookingtimeline view_days_num=30 scroll_start_date="" scroll_day=-15]' ) . '</li>'
1777
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ajax updating info during scrolling months, without page reloading.' ) . '</li>'
1778
+ . '</ul>'
1779
+ )
1780
+ , array( 'img' => '7.0/free_timeline_2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1781
+ )
1782
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1783
  $this->show_separator();
1784
 
1785
+ $this->show_col_section( array(
1786
+ array( 'img' => '7.0/free_admin_calendar-overview.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1787
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Timeline** (Calendar Overview page) in admin panel.' ),
1788
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1789
+ . '<li>' . wpbc_recheck_strong_symbols( 'Showing **popover** with booking details by **mouse click**, instead of mouse-over. Its help to show booking data at mobile devices.' ) . '</li>'
1790
+ . '<li>' . wpbc_recheck_strong_symbols( 'Link in popover to Booking Listing page with this booking. ' ) . '</li>'
1791
+ . '<li>' . wpbc_recheck_strong_symbols( 'Approve or cancel exist booking from popover.' ) . '</li>'
1792
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even better looking on mobile devices.' ) . '</li>'
1793
+ . '</ul>'
1794
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1795
 
1796
+ )
1797
+ );
1798
+ $this->show_separator();
1799
 
1800
+ $this->show_col_section( array(
1801
+ array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Booking Listing** page.' ),
1802
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1803
+ . '<li>' . wpbc_recheck_strong_symbols( 'Updated Filters and Actions toolbars.' ) . '</li>'
1804
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select range of bookings, like in gMail (Shift + Click) by clicking on first checkbox and Shift+Click on last checkbox.' ) . '</li>'
1805
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing new bookings with new icon.' ) . '</li>'
1806
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even better looking on mobile devices.' ) . '</li>'
1807
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1808
+ . '</ul>'
1809
+ )
1810
+ , array( 'img' => '7.0/free_admin_booking_listing.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1811
+ )
1812
+ );
1813
+ $this->show_separator();
 
 
1814
 
1815
+ $this->show_col_section( array(
1816
+ array( 'img' => '7.0/free_admin_add_booking.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1817
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Add New Booking** page.' ),
1818
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1819
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** redesigned options toolbar.' ) . '</li>'
1820
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** configuration number of month to show and width/height of calendar at Add New Booking page and saving this info. In advanced options toolbar section.' ) . '</li>'
1821
+ . '</ul>'
1822
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **General Settings** page. ' ) . '</h4>'
1823
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1824
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to define position of Booking menu (top, middle, bottom section).' ) . '</li>'
1825
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1826
+ . '</ul>'
1827
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1828
 
1829
+ )
1830
+ );
1831
+ $this->show_separator();
1832
 
1833
+ $this->show_col_section( array(
1834
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Form Fields** Settings page.' ),
1835
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1836
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** ability to **create unlimited number of booking form fields**.' ) . '</li>'
1837
+ . '<li>' . wpbc_recheck_strong_symbols( '**Support** **Text** fields, **Textarea** fields, **Dropdown** lists, and (new) **Checkboxes** fields.' ) . '</li>'
1838
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Arrange **order of form fields** in booking form by **drag and drop** sorting.' ) . '</li>'
1839
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1840
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Ability to edit exist form fields settings.' ) . '</li>'
1841
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Ability to delete exist form fields.' ) . '</li>'
1842
+ . '</ul>'
1843
+ )
1844
+ , array( 'img' => '7.0/free_admin_form-fields.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1845
+ )
1846
+ );
1847
+ $this->show_separator();
 
 
 
 
 
 
 
 
 
 
1848
 
1849
+ $this->show_col_section( array(
1850
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Emails** Settings page.' ),
1851
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1852
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Configuration of sending emails in **text, html or multipart format**.' ) . '</li>'
1853
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Selection **stylee of email templates** for HTML/multipart format.' ) . '</li>'
1854
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Definition of **colors** for some email styles.' ) . '</li>'
1855
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Configuration of **header and footer content** for emails.' ) . '</li>'
1856
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Validation of saving email addresses in correct format, and showing warnings otherwise. Its have to prevent of not sending emails issue in some cases.' ) . '</li>'
1857
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Pending** email template - send email, if booking set as pending.' ) . '</li>'
1858
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Trash** email template - send email, if booking has been declined - moved to trash.' ) . '</li>'
1859
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Deleted** email template - send email, if booking has been deleted - completely erased.' ) . '</li>'
1860
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Test sending email** button - for ability to test that emails are sending.' ) . '</li>'
1861
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Shortcodes** for using in email templates.' ) . '</li>'
1862
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1863
+ . '</ul>'
1864
+ )
1865
+ , array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Import** Settings page.' ),
1866
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1867
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
1868
+ . '</ul>'
1869
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Under the Hood' ) . '</h4>'
1870
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1871
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Booking Menu items in Top WordPress Admin Bar' ) . '</li>'
1872
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Full refactoring of source code.' ) . '</li>'
1873
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated of BS version. ' ) . '</li>'
1874
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated all **UI elements** - all buttons and UI elements looks even more sharp and nice. ' ) . '</li>'
1875
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** New icons for UI elements. Good looking on retina displays. Instead of images is using font icons.' ) . '</li>'
1876
+ . '<li>' . wpbc_recheck_strong_symbols( 'Updated showing info and warning messages. ' ) . '</li>'
1877
+ . '<li>' . wpbc_recheck_strong_symbols( 'Improved pagination.' ) . '</li>'
1878
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Added many new hooks in source code.' ) . '</li>'
1879
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** New URL (parameters) for booking menu pages.' ) . '</li>'
1880
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Updated CSS files.' ) . '</li>'
1881
+ . '<li>' . wpbc_recheck_strong_symbols( '**Under the Hood** Updated JS files.' ) . '</li>'
1882
+ . '<li>' . wpbc_recheck_strong_symbols( 'And many other improvements...' ) . '</li>'
1883
+ . '</ul>'
1884
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1885
 
1886
+ )
1887
+ );
 
 
 
 
 
1888
 
1889
+
1890
+
1891
+
1892
+ ?><h2 style='font-size: 1.6em;margin:40px 0 0 0;text-align: left;'><?php echo wpbc_recheck_strong_symbols( 'Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions' ); ?></h2><br/><?php
1893
+
1894
+ $this->show_separator();
1895
+
1896
+ $this->show_col_section( array(
1897
+ array( 'h4' => wpbc_recheck_strong_symbols( '**New** **Timeline** at **front-end** side.' ),
1898
+ 'text' => '<em>' . wpbc_recheck_strong_symbols( 'Show availability in fully new awesome way (old "Calendar Overview page from admin panel). Free version support showing booked dates with "blank pipelines". Paid versions have much more functionality here. *(Personal, Business Small/Medium/Large, MultiUser)*')
1899
+ . '</em>'
1900
+ .'<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1901
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **month format**. Shortcode: [bookingtimeline type="1,2,3,4" view_days_num=30 scroll_start_date="" scroll_month=0 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1902
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **2 months format**. Shortcode: [bookingtimeline type="4,2,1,3" view_days_num=60 scroll_start_date="" scroll_month=-1 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1903
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **week format**. Shortcode: [bookingtimeline type="3,4" view_days_num=7 scroll_start_date="" scroll_day=-7 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1904
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **several** resources in **day format**. Shortcode: [bookingtimeline type="3,4" view_days_num=1 scroll_start_date="" scroll_day=0 header_title="All Bookings"] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1905
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **month format**. Shortcode: [bookingtimeline type="4" view_days_num=90 scroll_start_date="" scroll_day=-30] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1906
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **year format**. Shortcode: [bookingtimeline type="4" view_days_num=365 scroll_start_date="" scroll_month=-3] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1907
+ . '<li>' . wpbc_recheck_strong_symbols( 'Show **Timeline** at **front-end** for **single** resource in **day format**. Shortcode: [bookingtimeline type="4" view_days_num=30 scroll_start_date="" scroll_day=-15] *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1908
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to activate showing bookings detail in popover, when mouse click on specific booking "pipeline", in the same way as in admin panel. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1909
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to configure showing titles of booking, like ID, Name or other fields, in "pipeline of bookings". *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1910
+ . '<li>' . wpbc_recheck_strong_symbols( '**Support** responsive interface for showing on mobile devices. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1911
+ . '</ul>'
1912
+ )
1913
+ , array( 'img' => '7.0/front-timeline2.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1914
+ )
1915
+ );
1916
+ $this->show_separator();
1917
+
1918
+ $this->show_col_section( array(
1919
+ array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Timeline** (Calendar Overview page) in admin panel. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1920
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1921
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Show notes in booking popover at Timeline page.' ) . '</li>'
1922
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to print specific booking from Timeline page by clicking on Print buttin in popover. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1923
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Even more nice view at mobile devices. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1924
+ . '</ul>'
1925
+ )
1926
+ , array( 'img' => '7.0/admin-timeline.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1927
+ )
1928
+ );
1929
+ $this->show_separator();
1930
+
1931
+ $this->show_col_section( array(
1932
+ array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Booking Listing** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1933
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1934
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing notes button with different color, if booking have some notes. For more easy checking. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1935
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Changing languages at Booking Listing page for specific action. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1936
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated Print modal window. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1937
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing currency relative to each specific user settings in MultiUser version. *(MultiUser)*' ) . '</li>'
1938
+ . '</ul>'
1939
+ )
1940
+ , array( 'img' => '7.0/admin-booking-listing.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1941
+ )
1942
+ );
1943
+ $this->show_separator();
1944
+
1945
+ $this->show_col_section( array(
1946
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Resources** settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
1947
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1948
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select range of booking resources, like in gMail (Shift + Click) by clicking on first checkbox and Shift+Click on last checkbox. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1949
+ . '<li>' . wpbc_recheck_strong_symbols( 'Sort of booking resources in resources table by different parameters (ID, Name, Priority, Users). By clicking on column header title. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1950
+ . '<li>' . wpbc_recheck_strong_symbols( 'Creating several booking resources during one process. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
1951
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to re-assign exist booking resource to other activated booking user *(MultiUser)* ' ) . '</li>'
1952
+ . '<li>' . wpbc_recheck_strong_symbols( 'Showing additional info near each booking resources (like "Capacity" or booking resource "Single", "Child" type of resource). *(Business Large, MultiUser)*' ) . '</li>'
1953
+ . '<li>' . wpbc_recheck_strong_symbols( '*Shortcode* Ability to use shortcode like: [bookingresource type=1 show="capacity" date="2016-09-13""] (fix:6.2.3.5.1) *(Business Large, MultiUser)*' ) . '</li>'
1954
+ . '<li>' . wpbc_recheck_strong_symbols( 'Ability to hide children booking resources *(Business Large, MultiUser)*' ) . '</li>'
1955
+ . '</ul>'
1956
+ )
1957
+ , array( 'img' => '7.0/admin-resources.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1958
+ )
1959
+ );
1960
+ $this->show_separator();
1961
+
1962
+ $this->show_col_section( array(
1963
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Rates** section *(Business Medium/Large, MultiUser)*' ),
1964
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1965
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several rates (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1966
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Direct links to seasons for editing from each rate. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1967
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user , ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
1968
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1969
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Rates" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
1970
+ . '</ul>'
1971
+ )
1972
+ , array( 'img' => '7.0/admin-rates.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1973
+ )
1974
+ );
1975
+ $this->show_separator();
1976
+
1977
+ $this->show_col_section( array(
1978
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Valuation days** section *(Business Medium/Large, MultiUser)*' ),
1979
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1980
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** **Sorting** "Valuation days" by drag and drop specific cost row. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1981
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several costs (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1982
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Medium/Large, MultiUser)*' ) . '</li>'
1983
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user, ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
1984
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Valuation days" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
1985
+ . '</ul>'
1986
+ )
1987
+ , array( 'img' => '7.0/admin-valuation-days.png', 'img_style'=>'margin-top:20px;width: 99%;' )
1988
+ )
1989
+ );
1990
+ $this->show_separator();
1991
+
1992
+ $this->show_col_section( array(
1993
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated "**Cost and rates**" settings page - **Deposit** section *(Business Medium/Large, MultiUser)*' ),
1994
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
1995
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user, ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
1996
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting "Deposit" to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
1997
+ . '</ul>'
1998
+ )
1999
+ , array( 'img' => '7.0/admin-deposit.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2000
+ )
2001
+ );
2002
+
2003
+ $this->show_col_section( array(
2004
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Advanced cost** settings page *(Business Medium/Large, MultiUser)*' ),
2005
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2006
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Support radio buttons for setting additional cost. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2007
+ . '<li>' . wpbc_recheck_strong_symbols( 'Updated interface of configuration advanced cost - more clear selection type of additional cost in drop down lists. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2008
+ . '<li>' . wpbc_recheck_strong_symbols( 'Saving "Advanced costs" for each Custom booking form separately. Its improve of searching issues during saving if some form will have wrong configuration. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2009
+ . '<li>' . wpbc_recheck_strong_symbols( 'If having several fields with the same name in booking form (for example, if configured several languages), showing specific field only once, for correct saving additional cost. Please note, in this case options in selectbox must be same withing any languages. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2010
+ . '<li>' . wpbc_recheck_strong_symbols( 'Default value for new field, right now 0 USD, instead of previous 100%. For more easy to understand this logic. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2011
+ . '</ul>'
2012
+ )
2013
+ , array( 'img' => '7.0/admin-advanced-cost.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2014
+ )
2015
+ );
2016
+ $this->show_separator();
2017
+ $this->show_col_section( array(
2018
+ array('h4' => wpbc_recheck_strong_symbols( 'Updated **Discount Coupons** settings page *(Business Large, MultiUser)*' ),
2019
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2020
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several coupons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Large, MultiUser)*' ) . '</li>'
2021
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to re-assign exist coupons filter to other activated booking user *(MultiUser)* ' ) . '</li>'
2022
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of coupons by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2023
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. *(Business Large, MultiUser)*' ) . '</li>'
2024
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Editing fields of several coupons from one listing page, like minimum cost, number of usage and expiration date. *(Business Large, MultiUser)*' ) . '</li>'
2025
+ . '</ul>'
2026
+ )
2027
+ , array( 'img' => '7.0/admin-coupons.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2028
+
2029
+ )
2030
+ );
2031
+
2032
+ $this->show_separator();
2033
+
2034
+ $this->show_col_section( array(
2035
+ array( 'h4' => wpbc_recheck_strong_symbols( 'Updated **Availability** settings page *(Business Medium/Large, MultiUser)*' ),
2036
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2037
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several seasons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2038
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of availability by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2039
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Direct links to seasons for editing from each rate. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2040
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** When logged in as super admin user , ability to show or hide seasons from all regular users. *(MultiUser)*' ) . '</li>'
2041
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Setting availability to several selected booking resources (by selecting bulk action option). *(Business Medium/Large, MultiUser)*' ) . '</li>'
2042
+ . '</ul>'
2043
+ )
2044
+ , array( 'img' => '7.0/admin-availability.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2045
+ )
2046
+ );
2047
+ $this->show_separator();
2048
+ $this->show_col_section( array(
2049
+ array('h4' => wpbc_recheck_strong_symbols( 'Updated **Season Filters** settings page *(Business Medium/Large, MultiUser)*' ),
2050
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2051
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to select several seasons (like in gMail {Shift + Click}) by clicking on first checkbox and Shift+Click on last checkbox. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2052
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to re-assign exist season filter to other activated booking user *(MultiUser)* ' ) . '</li>'
2053
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Sort of seasons by different fields. (By clicking on column header title). *(Business Large, MultiUser)*' ) . '</li>'
2054
+ . '<li>' . wpbc_recheck_strong_symbols( 'New more clear interface of selecting dates. *(Business Medium/Large, MultiUser)*' ) . '</li>'
2055
+ . '</ul>'
2056
+ )
2057
+ , array( 'img' => '7.0/admin-seasons.png', 'img_style'=>'margin-top:20px;width: 99%;' )
2058
+
2059
+ )
2060
+ );
2061
+ $this->show_separator();
2062
+ $this->show_col_section( array(
2063
+ array('h4' => wpbc_recheck_strong_symbols( 'Updated **General Settings** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
2064
+ 'text' => '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2065
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Removed **Cost section** to Settings Payment page. *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2066
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Customization of booking title in timeline at front-end side for showing different info, like Name or Second Name of person who made the booking, etc... *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2067
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to enable showing popover with booking details in timeline at front-end side, in the same way as its showing in admin panel at Calendar Overview (timeline) page . *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2068
+ . '</ul>'
2069
+
2070
+
2071
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Fields** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2072
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2073
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2074
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** shortcodes for showing hints in booking form: [resource_title_hint], [bookingresource show="id"], [bookingresource show="title"], [bookingresource show="cost"], [bookingresource show="capacity"], [bookingresource show="maxvisitors"] *(Business Medium/Large, MultiUser)*' ) . '</li>'
2075
+ . '</ul>'
2076
+
2077
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Emails** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2078
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2079
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
2080
+ . '</ul>'
2081
+
2082
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Import** Settings page. *(Personal, Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2083
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2084
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to search specific booking resource by ID and Title' ) . '</li>'
2085
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data.' ) . '</li>'
2086
+ . '</ul>'
2087
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Search** Settings page. *(Business Large, MultiUser)*' ) . '</h4>'
2088
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2089
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2090
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Updated help sections with shortcodes that possible to use in search forms.' ) . '</li>'
2091
+ . '</ul>'
2092
+
2093
+ )
2094
+ , array( 'h4' => wpbc_recheck_strong_symbols( '**Updated** **Add New Booking** page. *(Personal, Business Small/Medium/Large, MultiUser)*' ),
2095
+ 'text' =>
2096
+ '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Payment Gateways** Settings page. *(Business Small/Medium/Large, MultiUser)*' ) . '</h4>'
2097
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2098
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** payment **gateway files**. Important! If you was customized previously own payment gateway, in update 7.0 you need to customize your payment system relative to new payment gateway structure. In the same was as its done with any exist payment system. For including loading o your payment gateway file, you need to use this code and hook: <code>function add_my_gateway( $gateway ){ return $gateway . ",gateway_ID"; } add_filter( "wpbc_gateways_original_id_list", "add_my_gateway" );</code>' ) . '</li>'
2099
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Sorting payment **gateways order** by drug and dropt specific payment gateways rows *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2100
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** showing active currency and status for each payment gateways *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2101
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** configuration of **payment summary details**. Many new shortcodes for configuration payment summary info. *(Business Small/Medium/Large, MultiUser)* ' ) . '</li>'
2102
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** setting general currency for plugin interface *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2103
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** setting currency position and format *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2104
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of cost per period at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2105
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of options: "Time impact to cost", "Advanced cost option" at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2106
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** configuration of billing form fields assignment at Settings > Payment page *(Business Small/Medium/Large, MultiUser)*' ) . '</li>'
2107
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2108
+ . '</ul>'
2109
+ . '<h4>' .wpbc_recheck_strong_symbols( 'Updated **Users** Settings page. *(MultiUser)*' ) . '</h4>'
2110
+ . '<ul style="list-style: disc outside;padding: 20px;margin:0;">'
2111
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to search specific user by ID and Title' ) . '</li>'
2112
+ . '<li>' . wpbc_recheck_strong_symbols( '**New** Ability to sort users by ID, Name and Role' ) . '</li>'
2113
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Showing additional info near each user, like status and role. ' ) . '</li>'
2114
+ . '<li>' . wpbc_recheck_strong_symbols( '**Improvement** Advanced checking during saving data. ' ) . '</li>'
2115
+ . '</ul>'
2116
+
2117
+
2118
+ )
2119
+
2120
+ )
2121
+ );
2122
+
2123
+
2124
+ $this->show_separator();
2125
+ $this->expand_section_end( $section_param_arr );
2126
+ }
2127
 
2128
 
2129
  public function content_getted_started() {
core/lang/wpbc_all_translations.php CHANGED
@@ -72,6 +72,9 @@
72
  $wpbc_all_translations[] = __('Calendar Overview', 'booking');
73
  $wpbc_all_translations[] = __('Default booking admin page', 'booking');
74
  $wpbc_all_translations[] = __('Select your default view mode of bookings at the booking listing page', 'booking');
 
 
 
75
  $wpbc_all_translations[] = __('Day', 'booking');
76
  $wpbc_all_translations[] = __('Week', 'booking');
77
  $wpbc_all_translations[] = __('Month', 'booking');
@@ -253,6 +256,8 @@
253
  $wpbc_all_translations[] = __('Title of send button', 'booking');
254
  $wpbc_all_translations[] = __('Send', 'booking');
255
  $wpbc_all_translations[] = __('Enter %stitle of submit button%s in the booking form', 'booking');
 
 
256
  $wpbc_all_translations[] = __('Reset to default form', 'booking');
257
  $wpbc_all_translations[] = __('Do you really want to do this ?', 'booking');
258
  $wpbc_all_translations[] = __('Add New Field', 'booking');
@@ -428,6 +433,7 @@
428
  $wpbc_all_translations[] = __('Information', 'booking');
429
  $wpbc_all_translations[] = __('Uninstall / deactivation', 'booking');
430
  $wpbc_all_translations[] = __('Translations', 'booking');
 
431
  $wpbc_all_translations[] = __('Update Translations', 'booking');
432
  $wpbc_all_translations[] = __('Restore all dismissed windows', 'booking');
433
  $wpbc_all_translations[] = __('Upgrade', 'booking');
@@ -990,10 +996,4 @@
990
  $wpbc_all_translations[] = __('fixed total in', 'booking');
991
  $wpbc_all_translations[] = __('of payment', 'booking');
992
  $wpbc_all_translations[] = __('Conditions', 'booking');
993
- $wpbc_all_translations[] = __('Show deposit payment form, only if difference between %sToday%s and %sCheck In%s days more than', 'booking');
994
- $wpbc_all_translations[] = __('Show deposit payment form, only if %sCheck In%s day inside of this %sSeason Filter%s', 'booking');
995
- $wpbc_all_translations[] = __('Any days', 'booking');
996
- $wpbc_all_translations[] = __('Deposit payment total', 'booking');
997
- $wpbc_all_translations[] = __('Set Rates', 'booking');
998
- $wpbc_all_translations[] = __('Rates', 'booking');
999
  }
72
  $wpbc_all_translations[] = __('Calendar Overview', 'booking');
73
  $wpbc_all_translations[] = __('Default booking admin page', 'booking');
74
  $wpbc_all_translations[] = __('Select your default view mode of bookings at the booking listing page', 'booking');
75
+ $wpbc_all_translations[] = __('Use old Booking Listing', 'booking');
76
+ $wpbc_all_translations[] = __('Check this box to use old Booking Listing admin panel.', 'booking');
77
+ $wpbc_all_translations[] = __('Deprecated', 'booking');
78
  $wpbc_all_translations[] = __('Day', 'booking');
79
  $wpbc_all_translations[] = __('Week', 'booking');
80
  $wpbc_all_translations[] = __('Month', 'booking');
256
  $wpbc_all_translations[] = __('Title of send button', 'booking');
257
  $wpbc_all_translations[] = __('Send', 'booking');
258
  $wpbc_all_translations[] = __('Enter %stitle of submit button%s in the booking form', 'booking');
259
+ $wpbc_all_translations[] = __('Yes', 'booking');
260
+ $wpbc_all_translations[] = __('Change your Booking', 'booking');
261
  $wpbc_all_translations[] = __('Reset to default form', 'booking');
262
  $wpbc_all_translations[] = __('Do you really want to do this ?', 'booking');
263
  $wpbc_all_translations[] = __('Add New Field', 'booking');
433
  $wpbc_all_translations[] = __('Information', 'booking');
434
  $wpbc_all_translations[] = __('Uninstall / deactivation', 'booking');
435
  $wpbc_all_translations[] = __('Translations', 'booking');
436
+ $wpbc_all_translations[] = __('Multiuser options', 'booking');
437
  $wpbc_all_translations[] = __('Update Translations', 'booking');
438
  $wpbc_all_translations[] = __('Restore all dismissed windows', 'booking');
439
  $wpbc_all_translations[] = __('Upgrade', 'booking');
996
  $wpbc_all_translations[] = __('fixed total in', 'booking');
997
  $wpbc_all_translations[] = __('of payment', 'booking');
998
  $wpbc_all_translations[] = __('Conditions', 'booking');
 
 
 
 
 
 
999
  }
core/lang/wpbc_all_translations1.php CHANGED
@@ -1,4 +1,10 @@
1
  <?php function wpbc_all_translations2() { $wpbc_all_translations = array();
 
 
 
 
 
 
2
  $wpbc_all_translations[] = __('Seasonal price', 'booking');
3
  $wpbc_all_translations[] = __('Season', 'booking');
4
  $wpbc_all_translations[] = __('Enter seasonal rate(s) (cost diference in %s from standard cost %s or a fixed cost) of the booking resource (%s) or %sAdd a new seasonal filter%s', 'booking');
@@ -414,7 +420,6 @@
414
  $wpbc_all_translations[] = __('The booking was canceled by the visitor.', 'booking');
415
  $wpbc_all_translations[] = __('The booking has been canceled successfully', 'booking');
416
  $wpbc_all_translations[] = __('Incorrect date format', 'booking');
417
- $wpbc_all_translations[] = __('Change your Booking', 'booking');
418
  $wpbc_all_translations[] = __('Cancel Booking', 'booking');
419
  $wpbc_all_translations[] = __('Warning! The resource was not changed. Current dates are already booked there.', 'booking');
420
  $wpbc_all_translations[] = __('The booking has been duplicated successfully', 'booking');
@@ -991,9 +996,4 @@
991
  $wpbc_all_translations[] = __('The filter settings have been updated to reflect these imported bookings. The page will be reloaded.', 'booking');
992
  $wpbc_all_translations[] = __('CSV Export', 'booking');
993
  $wpbc_all_translations[] = __('Current page', 'booking');
994
- $wpbc_all_translations[] = __('All pages', 'booking');
995
- $wpbc_all_translations[] = __('Export pages', 'booking');
996
- $wpbc_all_translations[] = __('Enter field names separated by commas to %sskip the export%s', 'booking');
997
- $wpbc_all_translations[] = __('Some errors were encountered.', 'booking');
998
- $wpbc_all_translations[] = __('Refund', 'booking');
999
  }
1
  <?php function wpbc_all_translations2() { $wpbc_all_translations = array();
2
+ $wpbc_all_translations[] = __('Show deposit payment form, only if difference between %sToday%s and %sCheck In%s days more than', 'booking');
3
+ $wpbc_all_translations[] = __('Show deposit payment form, only if %sCheck In%s day inside of this %sSeason Filter%s', 'booking');
4
+ $wpbc_all_translations[] = __('Any days', 'booking');
5
+ $wpbc_all_translations[] = __('Deposit payment total', 'booking');
6
+ $wpbc_all_translations[] = __('Set Rates', 'booking');
7
+ $wpbc_all_translations[] = __('Rates', 'booking');
8
  $wpbc_all_translations[] = __('Seasonal price', 'booking');
9
  $wpbc_all_translations[] = __('Season', 'booking');
10
  $wpbc_all_translations[] = __('Enter seasonal rate(s) (cost diference in %s from standard cost %s or a fixed cost) of the booking resource (%s) or %sAdd a new seasonal filter%s', 'booking');
420
  $wpbc_all_translations[] = __('The booking was canceled by the visitor.', 'booking');
421
  $wpbc_all_translations[] = __('The booking has been canceled successfully', 'booking');
422
  $wpbc_all_translations[] = __('Incorrect date format', 'booking');
 
423
  $wpbc_all_translations[] = __('Cancel Booking', 'booking');
424
  $wpbc_all_translations[] = __('Warning! The resource was not changed. Current dates are already booked there.', 'booking');
425
  $wpbc_all_translations[] = __('The booking has been duplicated successfully', 'booking');
996
  $wpbc_all_translations[] = __('The filter settings have been updated to reflect these imported bookings. The page will be reloaded.', 'booking');
997
  $wpbc_all_translations[] = __('CSV Export', 'booking');
998
  $wpbc_all_translations[] = __('Current page', 'booking');
 
 
 
 
 
999
  }
core/lang/wpbc_all_translations2.php CHANGED
@@ -1,4 +1,9 @@
1
  <?php function wpbc_all_translations3() { $wpbc_all_translations = array();
 
 
 
 
 
2
  $wpbc_all_translations[] = __('Source', 'booking');
3
  $wpbc_all_translations[] = __('Set last checked booking id to 0', 'booking');
4
  $wpbc_all_translations[] = __('Edited', 'booking');
@@ -16,6 +21,41 @@
16
  $wpbc_all_translations[] = __('Advanced automatic creation of reminders in premium versions.', 'booking');
17
  $wpbc_all_translations[] = __('Configure %sCRON script%s at your server for creation of reminders periodically in automatic mode. ', 'booking');
18
  $wpbc_all_translations[] = __('Its can be useful, for every day automatic creation of email reminders, that different from today date on X days, relative to specific field. For example, its can be friendly notification of upcoming in 1 day booking, or follow-up email after event.', 'booking');
19
- $wpbc_all_translations[] = __('Yes', 'booking');
20
  $wpbc_all_translations[] = __('No', 'booking');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  }
1
  <?php function wpbc_all_translations3() { $wpbc_all_translations = array();
2
+ $wpbc_all_translations[] = __('All pages', 'booking');
3
+ $wpbc_all_translations[] = __('Export pages', 'booking');
4
+ $wpbc_all_translations[] = __('Enter field names separated by commas to %sskip the export%s', 'booking');
5
+ $wpbc_all_translations[] = __('Some errors were encountered.', 'booking');
6
+ $wpbc_all_translations[] = __('Refund', 'booking');
7
  $wpbc_all_translations[] = __('Source', 'booking');
8
  $wpbc_all_translations[] = __('Set last checked booking id to 0', 'booking');
9
  $wpbc_all_translations[] = __('Edited', 'booking');
21
  $wpbc_all_translations[] = __('Advanced automatic creation of reminders in premium versions.', 'booking');
22
  $wpbc_all_translations[] = __('Configure %sCRON script%s at your server for creation of reminders periodically in automatic mode. ', 'booking');
23
  $wpbc_all_translations[] = __('Its can be useful, for every day automatic creation of email reminders, that different from today date on X days, relative to specific field. For example, its can be friendly notification of upcoming in 1 day booking, or follow-up email after event.', 'booking');
 
24
  $wpbc_all_translations[] = __('No', 'booking');
25
+ $wpbc_all_translations[] = __('Log out as regular user and login as super booking admin user', 'booking');
26
+ $wpbc_all_translations[] = __('Back to Super Admin', 'booking');
27
+ $wpbc_all_translations[] = __('Receive all payments only to Super Booking Admin account', 'booking');
28
+ $wpbc_all_translations[] = __('Check this box if you want to receive payments for %sRegular User%s bookings to %sSuper Booking Admin%s payment account. Regular users will not see Payment Settings.', 'booking');
29
+ $wpbc_all_translations[] = __('Log Off', 'booking');
30
+ $wpbc_all_translations[] = __('Simulate Login as %s', 'booking');
31
+ $wpbc_all_translations[] = __('Drill down to user panel', 'booking');
32
+ $wpbc_all_translations[] = __('simulate login as this user', 'booking');
33
+ $wpbc_all_translations[] = __('Simulate Login', 'booking');
34
+ $wpbc_all_translations[] = __('Feedback', 'booking');
35
+ $wpbc_all_translations[] = __('Do you like the new %sBooking Listing%s panel?', 'booking');
36
+ $wpbc_all_translations[] = __('Rate with %s star', 'booking');
37
+ $wpbc_all_translations[] = __('Do not show anymore', 'booking');
38
+ $wpbc_all_translations[] = __('Remind me later', 'booking');
39
+ $wpbc_all_translations[] = __('Sorry to hear that... %s', 'booking');
40
+ $wpbc_all_translations[] = __('How can we improve it for you?', 'booking');
41
+ $wpbc_all_translations[] = __('Back', 'booking');
42
+ $wpbc_all_translations[] = __('Thank you for your feedback! %s', 'booking');
43
+ $wpbc_all_translations[] = __('You\'re helping us do a better job. :) We appreciate that!', 'booking');
44
+ $wpbc_all_translations[] = __('Thanks for being with us! %s', 'booking');
45
+ $wpbc_all_translations[] = __('What functionality important to you are missing in the plugin?', 'booking');
46
+ $wpbc_all_translations[] = __('It\'s an %soptional question%s. But, we\'d love to hear your thoughts!', 'booking');
47
+ $wpbc_all_translations[] = __('%sFantastic!%s Thanks for taking the time! %s', 'booking');
48
+ $wpbc_all_translations[] = __('Your answers will help us to make the plugin better for you!', 'booking');
49
+ $wpbc_all_translations[] = __('Thanks for sharing your feedback! Have a great day :)', 'booking');
50
+ $wpbc_all_translations[] = __('%sFantastic!%s Would you like to leave a small review about the product? %s', 'booking');
51
+ $wpbc_all_translations[] = __('It will support us to include more features in the plugin. %s%s%s', 'booking');
52
+ $wpbc_all_translations[] = __('No, sorry - not this time.', 'booking');
53
+ $wpbc_all_translations[] = __('Yes! Sure, I\'d love to help!', 'booking');
54
+ $wpbc_all_translations[] = __('%sPerfect!%s Thanks for taking the time! %s', 'booking');
55
+ $wpbc_all_translations[] = __('Thanks for sharing your rating %s', 'booking');
56
+ $wpbc_all_translations[] = __('Check in - Today', 'booking');
57
+ $wpbc_all_translations[] = __('Check out - Today', 'booking');
58
+ $wpbc_all_translations[] = __('Check in - Tomorrow', 'booking');
59
+ $wpbc_all_translations[] = __('Check out - Tomorrow', 'booking');
60
+ $wpbc_all_translations[] = __('No bookings have been imported.', 'booking');
61
  }
core/lib/wpbc-ajax.php CHANGED
@@ -285,7 +285,7 @@ function wpbc_ajax_TRASH_RESTORE() {
285
  // Update the Hash and Cost of the booking
286
  $booking_id_arr = explode(',', $approved_id_str ); //FixIn: 8.6.1.11
287
  foreach ( $booking_id_arr as $booking_id ) {
288
- make_bk_action('wpbc_update_booking_hash', $booking_id );
289
  }
290
 
291
  ?> <script type="text/javascript">
285
  // Update the Hash and Cost of the booking
286
  $booking_id_arr = explode(',', $approved_id_str ); //FixIn: 8.6.1.11
287
  foreach ( $booking_id_arr as $booking_id ) {
288
+ wpbc_hash__update_booking_hash( $booking_id );
289
  }
290
 
291
  ?> <script type="text/javascript">
core/lib/wpbc-booking-new.php CHANGED
@@ -94,7 +94,7 @@ function wpdev_bk_insert_new_booking() {
94
 
95
  if ( isset($_POST['my_booking_hash']) && (! empty($_POST['my_booking_hash']) ) ) {
96
 
97
- $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id',false, $_POST['my_booking_hash'] );
98
  if ($my_booking_id_type !== false) {
99
  $is_edit_booking = array();
100
  $is_edit_booking['booking_id'] = $my_booking_id_type[0];
@@ -180,7 +180,7 @@ function wpdev_bk_insert_new_booking() {
180
 
181
  make_bk_action('check_multiuser_params_for_client_side', $bktype ); // Activate working with specific user in WP MU
182
 
183
- // if ( ( defined( 'WP_BK_AUTO_APPROVE_IF_ADD_IN_ADMIN_PANEL' ) ) && ( WP_BK_AUTO_APPROVE_IF_ADD_IN_ADMIN_PANEL ) ){
184
  if ( get_bk_option( 'booking_auto_approve_bookings_if_added_in_admin_panel' ) == 'On' ) { //FixIn: 8.1.3.27
185
  if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) !== false ) {
186
  global $wpdb;
@@ -199,7 +199,7 @@ function wpdev_bk_insert_new_booking() {
199
  }
200
  }
201
 
202
- //if ( ( defined( 'WP_BK_AUTO_SEND_PAY_REQUEST_IF_ADD_IN_ADMIN_PANEL' ) ) && ( WP_BK_AUTO_SEND_PAY_REQUEST_IF_ADD_IN_ADMIN_PANEL ) ){
203
  if ( ( get_bk_option( 'booking_payment_request_auto_send_in_bap' ) == 'On' ) && ( ! empty( $is_send_emeils ) ) ) { //FixIn: 8.1.3.24 //FixIn: 8.7.11.8
204
  if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) !== false ) {
205
  if ( function_exists( 'wpbc_send_email_payment_request' ) ) {
@@ -314,40 +314,64 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
314
  }
315
 
316
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
 
318
- //debuge($dates_in_diff_formats);
319
 
320
  $str_dates__dd_mm_yyyy = $dates_in_diff_formats['string'];
321
  // $my_dates = $dates_in_diff_formats['array'];
322
  $start_time = $dates_in_diff_formats['start_time'];
323
  $end_time = $dates_in_diff_formats['end_time'];
324
 
325
-
326
  $exclude_bookings = array(); //FixIn: 7.0.1.36
327
  if ( $is_edit_booking !== false ) {
328
  $exclude_bookings[] = $is_edit_booking['booking_id'];
329
  }
330
-
331
  //Here we need to check for double booking for the same sessions
332
  if ( // ( ! $is_edit_booking ) && //FixIn: 7.0.1.36
333
  (! wpbc_check_if_dates_free( $bktype, $formdata ,$dates_in_diff_formats, $start_time, $end_time , $exclude_bookings ) ) //FixIn: 7.0.1.36
334
- ) {
335
  if ( ! empty( $params[ 'return_instead_die_on_error' ] ) ) return 0; //FixIn: 7.2.1.7
336
  die( 'Dates unavailable' );
337
  }
338
-
339
-
340
  $my_check_in_date = explode( '-', $dates_in_diff_formats['array'][0] );
341
  $my_check_in_date_sql = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $my_check_in_date[0], $my_check_in_date[1], $my_check_in_date[2], $start_time[0], $start_time[1], $start_time[2] );
342
-
343
-
344
  if ( empty( $str_dates__dd_mm_yyyy ) ){
345
  ?> <script type="text/javascript"> if ( jQuery('#submiting<?php echo $bktype; ?>' ).length ) { document.getElementById('submiting<?php echo $bktype; ?>').innerHTML = '<div style=&quot;height:20px;width:100%;text-align:center;margin:15px auto;&quot;><?php debuge_error('Error! No Dates',__FILE__,__LINE__); ?></div>'; } </script> <?php
346
  if ( ! empty( $params[ 'return_instead_die_on_error' ] ) ) return 0; //FixIn: 7.2.1.7
347
  die('Error! No Dates');
348
  }
349
 
350
-
351
  $auto_approve_new_bookings_is_active = trim( get_bk_option( 'booking_auto_approve_new_bookings_is_active' ) );
352
  $is_approved_dates = ( $auto_approve_new_bookings_is_active == 'On' ) ? '1' : '0';
353
 
@@ -427,7 +451,7 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
427
 
428
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
429
  // Update the Hash and Cost of the booking
430
- make_bk_action('wpbc_update_booking_hash', $booking_id, $bktype );
431
 
432
  //FixIn: 8.6.1.24
433
  $is_update_cost_after_editing = get_bk_option( 'booking_payment_update_cost_after_edit_in_bap' );
@@ -591,7 +615,9 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
591
 
592
  if ($is_send_emeils != 0 ) {
593
  $email_content = str_replace( array("\r\n","\r","\n","\\r","\\n","\\r\\n"), "<br/>", $formdata ); //FixIn: 8.1.3.4
594
- wpbc_send_email_modified($booking_id, $bktype, $email_content );
 
 
595
  }
596
 
597
  // Useful hook booking edit tracking. //FixIn: 8.7.11.15
@@ -636,7 +662,7 @@ function wpbc_add_new_booking( $params , $is_edit_booking = false ){
636
  make_bk_action('wpdev_booking_reupdate_bk_type_to_childs', $booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) , $formdata , $skip_page_checking_for_updating );
637
 
638
  //if ( ( wpbc_is_new_booking_page( 'HTTP_REFERER' ) ) ||
639
- //if ( ( ( defined( 'WP_BK_AUTO_APPROVE_WHEN_ZERO_COST' ) ) && ( WP_BK_AUTO_APPROVE_WHEN_ZERO_COST ) ) ){ // Auto approve booking if cost = 0.
640
  if ( get_bk_option( 'booking_auto_approve_bookings_when_zero_cost' ) == 'On' ) { //FixIn: 8.1.3.27
641
  $booking_cost = apply_bk_filter('get_booking_cost_from_db', '', $booking_id);
642
  if ( ( empty( $booking_cost ) ) || ( intval( $booking_cost ) === 0 ) ) {
94
 
95
  if ( isset($_POST['my_booking_hash']) && (! empty($_POST['my_booking_hash']) ) ) {
96
 
97
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_POST['my_booking_hash'] );
98
  if ($my_booking_id_type !== false) {
99
  $is_edit_booking = array();
100
  $is_edit_booking['booking_id'] = $my_booking_id_type[0];
180
 
181
  make_bk_action('check_multiuser_params_for_client_side', $bktype ); // Activate working with specific user in WP MU
182
 
183
+
184
  if ( get_bk_option( 'booking_auto_approve_bookings_if_added_in_admin_panel' ) == 'On' ) { //FixIn: 8.1.3.27
185
  if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) !== false ) {
186
  global $wpdb;
199
  }
200
  }
201
 
202
+
203
  if ( ( get_bk_option( 'booking_payment_request_auto_send_in_bap' ) == 'On' ) && ( ! empty( $is_send_emeils ) ) ) { //FixIn: 8.1.3.24 //FixIn: 8.7.11.8
204
  if ( strpos($_SERVER['HTTP_REFERER'], $admin_uri ) !== false ) {
205
  if ( function_exists( 'wpbc_send_email_payment_request' ) ) {
314
  }
315
 
316
 
317
+ /**
318
+ * If we are having "change over" days activated and selected only 1 day in calendar,
319
+ * then we can have error: "Warning! Number of check in != check out times.", because "check in" day older than "check out" date.
320
+ * In this case, we will make FULL day blocking - start and end time is 00:00:00
321
+ */
322
+ // Is it single selected date ?
323
+ if ( false === strpos( $dates_in_diff_formats['string'], ',' ) ) {
324
+ // Get check in date
325
+ $test_check_in_date = explode( '-', $dates_in_diff_formats['array'][0] );
326
+ $test_check_in_date_sql = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $test_check_in_date[0], $test_check_in_date[1], $test_check_in_date[2]
327
+ , $dates_in_diff_formats['start_time'][0], $dates_in_diff_formats['start_time'][1], $dates_in_diff_formats['start_time'][2] );
328
+ // Get check out date
329
+ $test_check_out_date = explode( '-', $dates_in_diff_formats['array'][ ( count( $dates_in_diff_formats['array'] ) - 1 ) ] );
330
+ $test_check_out_date_sql = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $test_check_out_date[0], $test_check_out_date[1], $test_check_out_date[2]
331
+ , $dates_in_diff_formats['end_time'][0], $dates_in_diff_formats['end_time'][1], $dates_in_diff_formats['end_time'][2] );
332
+
333
+ // Is the "Check IN" date OLDER than "check OUT" date, then set full day booking.
334
+ if ( strtotime($test_check_in_date_sql) > strtotime($test_check_out_date_sql) ) {
335
+ $dates_in_diff_formats['start_time'] = array( '00', '00', '00' );
336
+ $dates_in_diff_formats['end_time'] = array( '00', '00', '00' );
337
+ $dates_in_diff_formats['array'] = array();
338
+ $dates_in_diff_formats['array'][] = implode( '-', $test_check_in_date );
339
+ }
340
+ }
341
+
342
 
 
343
 
344
  $str_dates__dd_mm_yyyy = $dates_in_diff_formats['string'];
345
  // $my_dates = $dates_in_diff_formats['array'];
346
  $start_time = $dates_in_diff_formats['start_time'];
347
  $end_time = $dates_in_diff_formats['end_time'];
348
 
349
+
350
  $exclude_bookings = array(); //FixIn: 7.0.1.36
351
  if ( $is_edit_booking !== false ) {
352
  $exclude_bookings[] = $is_edit_booking['booking_id'];
353
  }
354
+
355
  //Here we need to check for double booking for the same sessions
356
  if ( // ( ! $is_edit_booking ) && //FixIn: 7.0.1.36
357
  (! wpbc_check_if_dates_free( $bktype, $formdata ,$dates_in_diff_formats, $start_time, $end_time , $exclude_bookings ) ) //FixIn: 7.0.1.36
358
+ ) {
359
  if ( ! empty( $params[ 'return_instead_die_on_error' ] ) ) return 0; //FixIn: 7.2.1.7
360
  die( 'Dates unavailable' );
361
  }
362
+
363
+
364
  $my_check_in_date = explode( '-', $dates_in_diff_formats['array'][0] );
365
  $my_check_in_date_sql = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $my_check_in_date[0], $my_check_in_date[1], $my_check_in_date[2], $start_time[0], $start_time[1], $start_time[2] );
366
+
367
+
368
  if ( empty( $str_dates__dd_mm_yyyy ) ){
369
  ?> <script type="text/javascript"> if ( jQuery('#submiting<?php echo $bktype; ?>' ).length ) { document.getElementById('submiting<?php echo $bktype; ?>').innerHTML = '<div style=&quot;height:20px;width:100%;text-align:center;margin:15px auto;&quot;><?php debuge_error('Error! No Dates',__FILE__,__LINE__); ?></div>'; } </script> <?php
370
  if ( ! empty( $params[ 'return_instead_die_on_error' ] ) ) return 0; //FixIn: 7.2.1.7
371
  die('Error! No Dates');
372
  }
373
 
374
+
375
  $auto_approve_new_bookings_is_active = trim( get_bk_option( 'booking_auto_approve_new_bookings_is_active' ) );
376
  $is_approved_dates = ( $auto_approve_new_bookings_is_active == 'On' ) ? '1' : '0';
377
 
451
 
452
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
453
  // Update the Hash and Cost of the booking
454
+ wpbc_hash__update_booking_hash( $booking_id, $bktype );
455
 
456
  //FixIn: 8.6.1.24
457
  $is_update_cost_after_editing = get_bk_option( 'booking_payment_update_cost_after_edit_in_bap' );
615
 
616
  if ($is_send_emeils != 0 ) {
617
  $email_content = str_replace( array("\r\n","\r","\n","\\r","\\n","\\r\\n"), "<br/>", $formdata ); //FixIn: 8.1.3.4
618
+ if ( function_exists( 'wpbc_send_email_modified' ) ) {
619
+ wpbc_send_email_modified( $booking_id, $bktype, $email_content );
620
+ }
621
  }
622
 
623
  // Useful hook booking edit tracking. //FixIn: 8.7.11.15
662
  make_bk_action('wpdev_booking_reupdate_bk_type_to_childs', $booking_id, $bktype, $str_dates__dd_mm_yyyy, array($start_time, $end_time ) , $formdata , $skip_page_checking_for_updating );
663
 
664
  //if ( ( wpbc_is_new_booking_page( 'HTTP_REFERER' ) ) ||
665
+ // Auto approve booking if cost = 0.
666
  if ( get_bk_option( 'booking_auto_approve_bookings_when_zero_cost' ) == 'On' ) { //FixIn: 8.1.3.27
667
  $booking_cost = apply_bk_filter('get_booking_cost_from_db', '', $booking_id);
668
  if ( ( empty( $booking_cost ) ) || ( intval( $booking_cost ) === 0 ) ) {
core/lib/wpdev-booking-class.php CHANGED
@@ -91,14 +91,14 @@ class wpdev_booking {
91
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
92
 
93
  // Get dates
94
- function get_dates( $approved = 'all', $bk_type = 1, $additional_bk_types = array(), $skip_booking_id = '' ) {
95
 
96
- make_bk_action( 'check_pending_not_paid_auto_cancell_bookings', $bk_type );
97
 
98
  if ( count( $additional_bk_types ) > 0 ) {
99
- $bk_type_additional = $bk_type . ',' . implode( ',', $additional_bk_types );
100
  } else {
101
- $bk_type_additional = $bk_type;
102
  }
103
  $bk_type_additional .= ',';
104
 
@@ -161,7 +161,7 @@ class wpdev_booking {
161
 
162
  //$sql_req = str_replace( 'dt.booking_date >= CURDATE() AND', '' , $sql_req); //Show past bookings, as well
163
 
164
- $dates_approve = apply_bk_filter('get_bk_dates', $wpdb->get_results( $sql_req ), $approved, 0,$bk_type );
165
  }
166
 
167
 
@@ -190,7 +190,7 @@ class wpdev_booking {
190
  //if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
191
  if (
192
  ( ! class_exists( 'wpdev_bk_biz_l' ) )
193
- || ( ( class_exists( 'wpdev_bk_biz_l' ) ) && ( ! wpbc_is_this_parent_resource( $bk_type ) ) )
194
  ){ //FixIn: 9.1.2.7
195
  list( $blocked_days_range, $prior_check_out_date ) = apply_filters( 'wpbc_get_extended_block_dates_filter', array( $blocked_days_range, $prior_check_out_date ) );
196
  }
@@ -290,16 +290,16 @@ class wpdev_booking {
290
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
291
 
292
  // Get scripts for calendar activation
293
- function get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $my_boook_count, $start_month_calendar = false ){
294
 
295
- $my_boook_type = (int) $bk_type;
296
  $start_script_code = "<script type='text/javascript'>";
297
  $start_script_code .= " jQuery(document).ready( function(){";
298
 
299
 
300
  $skip_booking_id = ''; // Id of booking to skip in calendar
301
  if (isset($_GET['booking_hash'])) {
302
- $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id',false, $_GET['booking_hash'] );
303
  if ($my_booking_id_type !== false) {
304
  $skip_booking_id = $my_booking_id_type[0];
305
  }
@@ -307,8 +307,8 @@ class wpdev_booking {
307
 
308
 
309
  // Blank days //////////////////////////////////////////////////////////////////
310
- $start_script_code .= " date_admin_blank[". $bk_type. "] = [];";
311
- $dates_and_time_for_admin_blank = $this->get_dates('admin_blank', $bk_type, $additional_bk_types);
312
  $dates_blank = $dates_and_time_for_admin_blank[0];
313
  $times_blank = $dates_and_time_for_admin_blank[1];
314
  $i=-1;
@@ -317,17 +317,17 @@ class wpdev_booking {
317
 
318
  $td_class = ($date_blank[1]+0). "-" . ($date_blank[2]+0). "-". $date_blank[0];
319
 
320
- $start_script_code .= " if (typeof( date_admin_blank[". $bk_type. "][ '". $td_class . "' ] ) == 'undefined'){ ";
321
- $start_script_code .= " date_admin_blank[". $bk_type. "][ '". $td_class . "' ] = [];} ";
322
 
323
- $start_script_code .= " date_admin_blank[". $bk_type. "][ '". $td_class . "' ][ date_admin_blank[".$bk_type."]['".$td_class."'].length ] = [".
324
- ($date_blank[1]+0).", ". ($date_blank[2]+0).", ". ($date_blank[0]+0).", ".
325
  ($times_blank[$i][0]+0).", ". ($times_blank[$i][1]+0).", ". ($times_blank[$i][2]+0).
326
  "];";
327
  }
328
  ////////////////////////////////////////////////////////////////////////////////
329
 
330
- $start_script_code .= " date2approve[". $bk_type. "] = [];";
331
 
332
  $booking_is_days_always_available = get_bk_option( 'booking_is_days_always_available' );
333
  // if ( strpos($_SERVER['REQUEST_URI'],'page=wpbc-new') !== false ) { $booking_is_days_always_available = 'On'; }
@@ -341,7 +341,7 @@ class wpdev_booking {
341
  $dates_to_approve = array();
342
  $times_to_approve = array();
343
  } else {
344
- $dates_and_time_to_approve = $this->get_dates('0', $bk_type, $additional_bk_types, $skip_booking_id);
345
  $dates_to_approve = $dates_and_time_to_approve[0];
346
  $times_to_approve = $dates_and_time_to_approve[1];
347
  }
@@ -351,18 +351,18 @@ class wpdev_booking {
351
 
352
  $td_class = ($date_to_approve[1]+0). "-" . ($date_to_approve[2]+0). "-". $date_to_approve[0];
353
 
354
- $start_script_code .= " if (typeof( date2approve[". $bk_type. "][ '". $td_class . "' ] ) == 'undefined'){ ";
355
- $start_script_code .= " date2approve[". $bk_type. "][ '". $td_class . "' ] = [];} ";
356
 
357
- $start_script_code .= " date2approve[". $bk_type. "][ '". $td_class . "' ][ date2approve[".$bk_type."]['".$td_class."'].length ] = [".
358
- ($date_to_approve[1]+0).", ". ($date_to_approve[2]+0).", ". ($date_to_approve[0]+0).", ".
359
  ($times_to_approve[$i][0]+0).", ". ($times_to_approve[$i][1]+0).", ". ($times_to_approve[$i][2]+0).
360
  "];";
361
  }
362
  }
363
 
364
  $start_script_code .= " var date_approved_par = [];";
365
- $start_script_code .= apply_filters('wpdev_booking_availability_filter', '', $bk_type);
366
 
367
  if ( $booking_is_days_always_available == 'On' ) {
368
  // No Booked days
@@ -393,12 +393,12 @@ class wpdev_booking {
393
 
394
  // TODO: This code section have the impact to the performace in BM / BL / MU versions ////////////////
395
  if ($my_selected_dates_without_calendar == '')
396
- $start_script_code .= apply_filters('wpdev_booking_show_rates_at_calendar', '', $bk_type);
397
- $start_script_code .= apply_filters('wpdev_booking_show_availability_at_calendar', '', $bk_type);
398
  ///////////////////////////////////////////////////////////////////////////////////////////////////////
399
 
400
  if ($my_selected_dates_without_calendar == '') {
401
- $start_script_code .= apply_filters( 'wpbc_booking_get_additional_info_to_dates', '', $bk_type ); //FixIn: 8.1.3.15
402
  $start_script_code .= " init_datepick_cal('". $my_boook_type ."', date_approved_par, ".
403
  $my_boook_count ." , ". get_bk_option( 'booking_start_day_weeek' ) ;
404
  $start_js_month = ", false " ;
@@ -515,7 +515,7 @@ class wpdev_booking {
515
 
516
 
517
  // Get HTML for the initilizing inline calendars
518
- function pre_get_calendar_html( $bk_type=1, $cal_count=1, $bk_otions=array() ){
519
  //SHORTCODE:
520
  /*
521
  * [booking type=56 form_type='standard' nummonths=4
@@ -565,8 +565,8 @@ class wpdev_booking {
565
 
566
  $calendar = $style.
567
  '<div class="bk_calendar_frame months_num_in_row_'.$months_num_in_row.' cal_month_num_'.$cal_count . $booking_timeslot_day_bg_as_available . '" style="'.$width.'">'.
568
- '<div id="calendar_booking'.$bk_type.'">'.
569
- __('Calendar is loading...' ,'booking').
570
  '</div>'.
571
  '</div>'.
572
  '';
@@ -575,7 +575,7 @@ class wpdev_booking {
575
  if ( (!class_exists('wpdev_bk_personal')) && ($booking_is_show_powered_by_notice == 'On') )
576
  $calendar .= '<div style="font-size:9px;text-align:left;margin-top:3px;">Powered by <a style="font-size:9px;" href="https://wpbookingcalendar.com" target="_blank" title="Booking Calendar plugin for WordPress">Booking Calendar</a></div>';
577
 
578
- $calendar .= '<textarea id="date_booking'.$bk_type.'" name="date_booking'.$bk_type.'" autocomplete="off" style="display:none;"></textarea>'; // Calendar code
579
 
580
  $calendar .= $this->get_legend();
581
 
@@ -599,104 +599,117 @@ class wpdev_booking {
599
  }
600
 
601
  // Get booking form
602
- function get_booking_form_action($my_boook_type=1,$my_boook_count=1, $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $start_month_calendar = false, $bk_otions=array()) {
603
 
604
- $res = $this->add_booking_form_action($my_boook_type,$my_boook_count, 0, $my_booking_form , $my_selected_dates_without_calendar, $start_month_calendar, $bk_otions );
605
  return $res;
606
  }
607
 
608
  //Show booking form from action call - wpdev_bk_add_form
609
- function add_booking_form_action($bk_type =1, $cal_count =1, $is_echo = 1, $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $start_month_calendar = false, $bk_otions=array() ) {
610
 
611
  $additional_bk_types = array();
612
- if ( strpos($bk_type,';') !== false ) {
613
- $additional_bk_types = explode(';',$bk_type);
614
- $bk_type = $additional_bk_types[0];
615
  }
616
 
617
- $is_booking_resource_exist = apply_bk_filter('wpdev_is_booking_resource_exist',true, $bk_type, $is_echo );
618
- if (! $is_booking_resource_exist) {
619
- if ( $is_echo ) echo 'Booking resource does not exist.' . ' [ID='.$bk_type.']';
620
- return 'Booking resource does not exist.' . ' [ID='.$bk_type.']';
 
 
 
621
  }
622
 
623
- make_bk_action('check_multiuser_params_for_client_side', $bk_type );
 
 
 
 
624
 
 
 
 
 
625
 
626
- if (isset($_GET['booking_hash'])) {
627
- $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id',false, $_GET['booking_hash'] );
628
- //FixIn: 9.1.3.2
629
- $is_error = false;
630
- if ( $my_booking_id_type !== false ) {
631
- $my_edited_bk_id = $my_booking_id_type[0];
632
- $my_boook_type = $my_booking_id_type[1];
633
- if ( $my_boook_type == '' ) {
634
- $is_error = __( 'Wrong booking hash in URL. Probably hash is expired.', 'booking' );
635
- }
636
- } else {
637
- $is_error = __( 'Wrong booking hash in URL. Probably hash is expired.', 'booking' );
638
- }
639
-
640
- if ( false !== $is_error ) {
641
- if ( $is_echo ) {
642
- echo $is_error;
643
- }
644
- return $is_error;
645
- }
646
 
647
- }
648
 
649
- if ($bk_type == '') {
650
- $my_result = __('Booking resource type is not defined. This can be, when at the URL is wrong booking hash.' ,'booking');
651
- if ( $is_echo ) echo $my_result;
652
- else return $my_result;
653
- return;
654
- }
 
 
 
 
655
 
656
-
657
- //FixIn: 6.1.1.9
658
- if ( isset( $_GET['booking_hash'] ) && (! isset($_GET['booking_pay'])) ) { //Fix:2016-10-12
659
- $bk_edit_id = $my_booking_id_type[0];
660
- $bk_br_id = $my_booking_id_type[1];
661
- // Check situation when we have editing "child booking resource", so need to reupdate calendar and form to have it for parent resource.
662
- if ( ( function_exists( 'wpbc_is_this_child_resource') ) && ( wpbc_is_this_child_resource( $bk_br_id ) ) ){
663
- $bk_parent_br_id = wpbc_get_parent_resource( $bk_br_id );
664
-
665
- $bk_type = $bk_parent_br_id;
666
- }
667
- }
668
- // End: 6.1.1.9
669
-
670
- $start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $cal_count, $start_month_calendar );
671
 
672
- // Apply scripts for the conditions in the rnage days selections
673
- $start_script_code = apply_bk_filter('wpdev_bk_define_additional_js_options_for_bk_shortcode', $start_script_code, $bk_type, $bk_otions);
674
-
675
- $my_result = ' ' . $this->get__client_side_booking_content($bk_type, $my_booking_form, $my_selected_dates_without_calendar, $cal_count, $bk_otions ) . ' ' . $start_script_code ;
 
 
 
 
 
 
676
 
677
-
678
- $my_result = apply_filters('wpdev_booking_form', $my_result , $bk_type); // Add DIV structure, where to show payment form
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679
 
680
 
681
- make_bk_action('finish_check_multiuser_params_for_client_side', $bk_type );
682
 
683
- if ( $is_echo ) echo $my_result;
684
  else return $my_result;
685
  }
686
 
 
687
  //Show only calendar from action call - wpdev_bk_add_calendar
688
- function add_calendar_action($bk_type =1, $cal_count =1, $is_echo = 1, $start_month_calendar = false, $bk_otions=array()) {
689
 
690
  $additional_bk_types = array();
691
- if ( strpos($bk_type,';') !== false ) {
692
- $additional_bk_types = explode(';',$bk_type);
693
- $bk_type = $additional_bk_types[0];
694
  }
695
 
696
- make_bk_action('check_multiuser_params_for_client_side', $bk_type );
697
 
698
  if (isset($_GET['booking_hash'])) {
699
- $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id',false, $_GET['booking_hash'] );
700
  if ($my_booking_id_type != false)
701
  if ($my_booking_id_type[1]=='') {
702
  $my_result = __('Wrong booking hash in URL (probably expired)' ,'booking');
@@ -706,40 +719,41 @@ class wpdev_booking {
706
  }
707
  }
708
 
709
- $start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, '' , $cal_count, $start_month_calendar );
710
 
711
- $my_result = '<div style="clear:both;height:10px;"></div>' . $this->pre_get_calendar_html( $bk_type, $cal_count, $bk_otions );
712
 
713
  // $my_result .= $this->get_legend(); // Get Legend code here
714
 
715
  $my_result .= ' ' . $start_script_code ;
716
 
717
- $my_result = apply_filters('wpdev_booking_calendar', $my_result , $bk_type);
718
 
719
 
720
  $booking_form_is_using_bs_css = get_bk_option( 'booking_form_is_using_bs_css' );
721
  $my_result = '<span ' . (($booking_form_is_using_bs_css == 'On') ? 'class="wpdevelop"' : '') . '>' . $my_result . '</span>';
722
 
723
- make_bk_action('finish_check_multiuser_params_for_client_side', $bk_type );
724
 
725
  if ( $is_echo ) echo $my_result;
726
  else return $my_result;
727
  }
728
 
729
  // Get content at client side of C A L E N D A R
730
- function get__client_side_booking_content($my_boook_type = 1 , $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $cal_count = 1, $bk_otions = array() ) {
731
 
732
  $nl = '<div style="clear:both;height:10px;"></div>'; // New line
733
  if ($my_selected_dates_without_calendar=='') {
734
- $calendar = $this->pre_get_calendar_html( $my_boook_type, $cal_count, $bk_otions );
 
735
  } else {
736
- $calendar = '<textarea rows="3" cols="50" id="date_booking'.$my_boook_type.'" name="date_booking'.$my_boook_type.'" autocomplete="off" style="display:none;">'.$my_selected_dates_without_calendar.'</textarea>'; // Calendar code
737
  }
738
  // $calendar .= $this->get_legend(); // Get Legend code here
739
 
740
 
741
  //FixIn: 8.2.1.1
742
- $form = '<a name="bklnk'.$my_boook_type.'" id="bklnk'.$my_boook_type.'"></a><div id="booking_form_div'.$my_boook_type.'" class="booking_form_div">';
743
  //FixIn:6.0.1.5
744
  $custom_params = array();
745
  if (! empty($bk_otions)) {
@@ -755,11 +769,18 @@ class wpdev_booking {
755
  }
756
  //FixIn:6.0.1.5
757
 
758
- if ( $this->wpdev_bk_personal !== false ) {
759
- $form .= $this->wpdev_bk_personal->get_booking_form( $my_boook_type, $my_booking_form, $custom_params );
760
- } else {
761
- $form .= $this->get_booking_form( $my_boook_type );
762
- }
 
 
 
 
 
 
 
763
 
764
  // Insert calendar into form
765
  if ( strpos($form, '[calendar]') !== false ) $form = str_replace('[calendar]', $calendar ,$form);
@@ -768,7 +789,7 @@ class wpdev_booking {
768
  // Replace additional calendars like [calendar id=9] to HTML and JS code
769
  $form = apply_bk_filter( 'wpdev_check_for_additional_calendars_in_form'
770
  , $form
771
- , $my_boook_type
772
  , array(
773
  'booking_form' => $my_booking_form ,
774
  'selected_dates' => $my_selected_dates_without_calendar ,
@@ -778,22 +799,22 @@ class wpdev_booking {
778
  );
779
 
780
  if ( strpos($form, '[captcha]') !== false ) {
781
- $captcha = $this->createCapthaContent($my_boook_type);
782
  $form =str_replace('[captcha]', $captcha ,$form);
783
  }
784
 
785
  // Set additional "Check in/out" times, if activated to use change-over days!
786
- $form = apply_filters('wpdev_booking_form_content', $form , $my_boook_type);
787
 
788
 
789
 
790
  // Add booking type field
791
- $form .= '<input id="bk_type'.$my_boook_type.'" name="bk_type'.$my_boook_type.'" class="" type="hidden" value="'.$my_boook_type.'" /></div>';
792
- $submitting = '<div id="submiting'.$my_boook_type.'"></div><div class="form_bk_messages" id="form_bk_messages'.$my_boook_type.'" ></div>';
793
 
794
  //Params: $action = -1, $name = "_wpnonce", $referer = true , $echo = true
795
- $wpbc_nonce = wp_nonce_field('INSERT_INTO_TABLE', ("wpbc_nonce" . $my_boook_type) , true , false );
796
- $wpbc_nonce .= wp_nonce_field('CALCULATE_THE_COST', ("wpbc_nonceCALCULATE_THE_COST" . $my_boook_type) , true , false );
797
 
798
 
799
  $res = $form . $submitting . $wpbc_nonce;
@@ -805,12 +826,12 @@ class wpdev_booking {
805
  $booking_form_format_type = get_bk_option( 'booking_form_format_type');
806
 
807
  $return_form = '<div id="'.$my_random_id.'" '.(($booking_form_is_using_bs_css=='On')?'class="wpdevelop"':'').'>'.
808
- '<form id="booking_form'.$my_boook_type.'" class="booking_form '.$booking_form_format_type.'" method="post" action="">'.
809
- '<div id="ajax_respond_insert'.$my_boook_type.'" class="ajax_respond_insert" style="display:none;"></div>'.
810
- $res.
811
  '</form></div>';
812
 
813
- $return_form .= '<div id="booking_form_garbage'.$my_boook_type.'" class="booking_form_garbage"></div>';
814
 
815
  if ($my_selected_dates_without_calendar == '' ) {
816
  // Check according already shown Booking Calendar and set do not visible of it
@@ -820,7 +841,7 @@ class wpdev_booking {
820
  var visible_booking_id_on_page_num = visible_booking_id_on_page.length;
821
  if (visible_booking_id_on_page_num !== null ) {
822
  for (var i=0;i< visible_booking_id_on_page_num ;i++){
823
- if ( visible_booking_id_on_page[i]=="booking_form_div'.$my_boook_type.'" ) {
824
  document.getElementById("'.$my_random_id.'").innerHTML = "<span style=\'color:#A00;font-size:10px;\'>'.
825
  sprintf( esc_js( __('%sWarning! Booking calendar for this booking resource are already at the page, please check more about this issue at %sthis page%s' ,'booking') )
826
  , ''
@@ -832,7 +853,7 @@ class wpdev_booking {
832
  return;
833
  }
834
  }
835
- visible_booking_id_on_page[ visible_booking_id_on_page_num ]="booking_form_div'.$my_boook_type.'";
836
  }
837
  });
838
  </script>';
@@ -841,7 +862,7 @@ class wpdev_booking {
841
  $return_form .= '<script type="text/javascript">
842
  jQuery(document).ready( function(){
843
  if(typeof( showCostHintInsideBkForm ) == "function") {
844
- showCostHintInsideBkForm('.$my_boook_type.');
845
  }
846
  });
847
  </script>';
@@ -853,7 +874,7 @@ class wpdev_booking {
853
  if (! isset($_GET['booking_hash']))
854
  if ($is_use_auto_fill_for_logged == 'On') {
855
 
856
- $curr_user = wp_get_current_user();
857
  if ( $curr_user->ID > 0 ) {
858
  //$user_nick_name =get_user_meta($curr_user->ID, 'nickname')[0];
859
  //debuge( $user_nick_name );
@@ -866,7 +887,7 @@ class wpdev_booking {
866
  }
867
  $return_form .= '<script type="text/javascript">
868
  jQuery(document).ready( function(){
869
- var bk_af_submit_form = document.getElementById( "booking_form'.$my_boook_type.'" );
870
  var bk_af_count = bk_af_submit_form.elements.length;
871
  var bk_af_element;
872
  var bk_af_reg;
@@ -876,7 +897,7 @@ class wpdev_booking {
876
  (bk_af_element.type == "text") &&
877
  (bk_af_element.type !=="button") &&
878
  (bk_af_element.type !=="hidden") &&
879
- (bk_af_element.name !== ("date_booking'.$my_boook_type.'" ) )
880
  ) {
881
  // NickName //FixIn: 8.6.1.2
882
  bk_af_reg = /^([A-Za-z0-9_\-\.])*(nickname){1}([A-Za-z0-9_\-\.])*$/;
@@ -977,11 +998,11 @@ $result = wpbc_api_is_dates_booked( $datesArray, $resource_id = 13 );
977
 
978
 
979
  if ( isset( $_GET['booking_hash'] ) ) {
980
- $my_booking_id_type = apply_bk_filter( 'wpdev_booking_get_hash_to_id', false, $_GET['booking_hash'] );
981
 
982
  $attr['booking_hash'] = $_GET['booking_hash'];
983
  } else {
984
- $my_booking_id_type = apply_bk_filter( 'wpdev_booking_get_hash_to_id', false, $attr['booking_hash'] );
985
  }
986
 
987
  if ( $my_booking_id_type !== false ) {
@@ -1214,7 +1235,7 @@ $result = wpbc_api_is_dates_booked( $datesArray, $resource_id = 13 );
1214
 
1215
 
1216
  if (isset($_GET['booking_hash'])) {
1217
- $my_booking_id_type = apply_bk_filter('wpdev_booking_get_hash_to_id',false, $_GET['booking_hash'] );
1218
  if ($my_booking_id_type !== false) {
1219
  $my_edited_bk_id = $my_booking_id_type[0];
1220
  $my_boook_type = $my_booking_id_type[1];
@@ -1236,7 +1257,16 @@ $result = wpbc_api_is_dates_booked( $datesArray, $resource_id = 13 );
1236
 
1237
  if (isset($_GET['booking_pay'])) {
1238
  // Payment form
1239
- $res .= apply_bk_filter('wpdev_get_payment_form',$my_edited_bk_id, $my_boook_type );
 
 
 
 
 
 
 
 
 
1240
  }
1241
 
1242
  return $res;
91
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
92
 
93
  // Get dates
94
+ function get_dates( $approved = 'all', $resource_id = 1, $additional_bk_types = array(), $skip_booking_id = '' ) {
95
 
96
+ make_bk_action( 'check_pending_not_paid_auto_cancell_bookings', $resource_id );
97
 
98
  if ( count( $additional_bk_types ) > 0 ) {
99
+ $bk_type_additional = $resource_id . ',' . implode( ',', $additional_bk_types );
100
  } else {
101
+ $bk_type_additional = $resource_id;
102
  }
103
  $bk_type_additional .= ',';
104
 
161
 
162
  //$sql_req = str_replace( 'dt.booking_date >= CURDATE() AND', '' , $sql_req); //Show past bookings, as well
163
 
164
+ $dates_approve = apply_bk_filter('get_bk_dates', $wpdb->get_results( $sql_req ), $approved, 0,$resource_id );
165
  }
166
 
167
 
190
  //if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
191
  if (
192
  ( ! class_exists( 'wpdev_bk_biz_l' ) )
193
+ || ( ( class_exists( 'wpdev_bk_biz_l' ) ) && ( ! wpbc_is_this_parent_resource( $resource_id ) ) )
194
  ){ //FixIn: 9.1.2.7
195
  list( $blocked_days_range, $prior_check_out_date ) = apply_filters( 'wpbc_get_extended_block_dates_filter', array( $blocked_days_range, $prior_check_out_date ) );
196
  }
290
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
291
 
292
  // Get scripts for calendar activation
293
+ function get_script_for_calendar( $resource_id, $additional_bk_types, $my_selected_dates_without_calendar, $my_boook_count, $start_month_calendar = false ) {
294
 
295
+ $my_boook_type = (int) $resource_id;
296
  $start_script_code = "<script type='text/javascript'>";
297
  $start_script_code .= " jQuery(document).ready( function(){";
298
 
299
 
300
  $skip_booking_id = ''; // Id of booking to skip in calendar
301
  if (isset($_GET['booking_hash'])) {
302
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
303
  if ($my_booking_id_type !== false) {
304
  $skip_booking_id = $my_booking_id_type[0];
305
  }
307
 
308
 
309
  // Blank days //////////////////////////////////////////////////////////////////
310
+ $start_script_code .= " date_admin_blank[" . $resource_id . "] = [];";
311
+ $dates_and_time_for_admin_blank = $this->get_dates('admin_blank', $resource_id, $additional_bk_types);
312
  $dates_blank = $dates_and_time_for_admin_blank[0];
313
  $times_blank = $dates_and_time_for_admin_blank[1];
314
  $i=-1;
317
 
318
  $td_class = ($date_blank[1]+0). "-" . ($date_blank[2]+0). "-". $date_blank[0];
319
 
320
+ $start_script_code .= " if (typeof( date_admin_blank[" . $resource_id . "][ '" . $td_class . "' ] ) == 'undefined'){ ";
321
+ $start_script_code .= " date_admin_blank[" . $resource_id . "][ '" . $td_class . "' ] = [];} ";
322
 
323
+ $start_script_code .= " date_admin_blank[" . $resource_id . "][ '" . $td_class . "' ][ date_admin_blank[" . $resource_id . "]['" . $td_class . "'].length ] = [" .
324
+ ($date_blank[1]+0).", ". ($date_blank[2]+0).", ". ($date_blank[0]+0).", ".
325
  ($times_blank[$i][0]+0).", ". ($times_blank[$i][1]+0).", ". ($times_blank[$i][2]+0).
326
  "];";
327
  }
328
  ////////////////////////////////////////////////////////////////////////////////
329
 
330
+ $start_script_code .= " date2approve[" . $resource_id . "] = [];";
331
 
332
  $booking_is_days_always_available = get_bk_option( 'booking_is_days_always_available' );
333
  // if ( strpos($_SERVER['REQUEST_URI'],'page=wpbc-new') !== false ) { $booking_is_days_always_available = 'On'; }
341
  $dates_to_approve = array();
342
  $times_to_approve = array();
343
  } else {
344
+ $dates_and_time_to_approve = $this->get_dates('0', $resource_id, $additional_bk_types, $skip_booking_id);
345
  $dates_to_approve = $dates_and_time_to_approve[0];
346
  $times_to_approve = $dates_and_time_to_approve[1];
347
  }
351
 
352
  $td_class = ($date_to_approve[1]+0). "-" . ($date_to_approve[2]+0). "-". $date_to_approve[0];
353
 
354
+ $start_script_code .= " if (typeof( date2approve[" . $resource_id . "][ '" . $td_class . "' ] ) == 'undefined'){ ";
355
+ $start_script_code .= " date2approve[" . $resource_id . "][ '" . $td_class . "' ] = [];} ";
356
 
357
+ $start_script_code .= " date2approve[" . $resource_id . "][ '" . $td_class . "' ][ date2approve[" . $resource_id . "]['" . $td_class . "'].length ] = [" .
358
+ ($date_to_approve[1]+0).", ". ($date_to_approve[2]+0).", ". ($date_to_approve[0]+0).", ".
359
  ($times_to_approve[$i][0]+0).", ". ($times_to_approve[$i][1]+0).", ". ($times_to_approve[$i][2]+0).
360
  "];";
361
  }
362
  }
363
 
364
  $start_script_code .= " var date_approved_par = [];";
365
+ $start_script_code .= apply_filters('wpdev_booking_availability_filter', '', $resource_id);
366
 
367
  if ( $booking_is_days_always_available == 'On' ) {
368
  // No Booked days
393
 
394
  // TODO: This code section have the impact to the performace in BM / BL / MU versions ////////////////
395
  if ($my_selected_dates_without_calendar == '')
396
+ $start_script_code .= apply_filters('wpdev_booking_show_rates_at_calendar', '', $resource_id);
397
+ $start_script_code .= apply_filters('wpdev_booking_show_availability_at_calendar', '', $resource_id);
398
  ///////////////////////////////////////////////////////////////////////////////////////////////////////
399
 
400
  if ($my_selected_dates_without_calendar == '') {
401
+ $start_script_code .= apply_filters( 'wpbc_booking_get_additional_info_to_dates', '', $resource_id ); //FixIn: 8.1.3.15
402
  $start_script_code .= " init_datepick_cal('". $my_boook_type ."', date_approved_par, ".
403
  $my_boook_count ." , ". get_bk_option( 'booking_start_day_weeek' ) ;
404
  $start_js_month = ", false " ;
515
 
516
 
517
  // Get HTML for the initilizing inline calendars
518
+ function pre_get_calendar_html( $resource_id=1, $cal_count=1, $bk_otions=array() ){
519
  //SHORTCODE:
520
  /*
521
  * [booking type=56 form_type='standard' nummonths=4
565
 
566
  $calendar = $style.
567
  '<div class="bk_calendar_frame months_num_in_row_'.$months_num_in_row.' cal_month_num_'.$cal_count . $booking_timeslot_day_bg_as_available . '" style="'.$width.'">'.
568
+ '<div id="calendar_booking' . $resource_id . '">' .
569
+ __('Calendar is loading...' ,'booking').
570
  '</div>'.
571
  '</div>'.
572
  '';
575
  if ( (!class_exists('wpdev_bk_personal')) && ($booking_is_show_powered_by_notice == 'On') )
576
  $calendar .= '<div style="font-size:9px;text-align:left;margin-top:3px;">Powered by <a style="font-size:9px;" href="https://wpbookingcalendar.com" target="_blank" title="Booking Calendar plugin for WordPress">Booking Calendar</a></div>';
577
 
578
+ $calendar .= '<textarea id="date_booking' . $resource_id . '" name="date_booking' . $resource_id . '" autocomplete="off" style="display:none;"></textarea>'; // Calendar code
579
 
580
  $calendar .= $this->get_legend();
581
 
599
  }
600
 
601
  // Get booking form
602
+ function get_booking_form_action( $resource_id = 1, $my_boook_count = 1, $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $start_month_calendar = false, $bk_otions = array() ) {
603
 
604
+ $res = $this->add_booking_form_action($resource_id,$my_boook_count, 0, $my_booking_form , $my_selected_dates_without_calendar, $start_month_calendar, $bk_otions );
605
  return $res;
606
  }
607
 
608
  //Show booking form from action call - wpdev_bk_add_form
609
+ function add_booking_form_action( $resource_id = 1, $cal_count = 1, $is_echo = 1, $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $start_month_calendar = false, $bk_otions = array() ) {
610
 
611
  $additional_bk_types = array();
612
+ if ( strpos($resource_id,';') !== false ) {
613
+ $additional_bk_types = explode(';',$resource_id);
614
+ $resource_id = $additional_bk_types[0];
615
  }
616
 
617
+ //--------------------------------------------------------------------------------------------------------------
618
+ // Check if booking resource exist
619
+ if ( $resource_id == '') {
620
+ $my_result = __('Booking resource type is not defined. This can be, when at the URL is wrong booking hash.' ,'booking');
621
+ if ( $is_echo ) echo $my_result;
622
+ else return $my_result;
623
+ return;
624
  }
625
 
626
+ $is_booking_resource_exist = apply_bk_filter('wpdev_is_booking_resource_exist',true, $resource_id, $is_echo );
627
+ if (! $is_booking_resource_exist) {
628
+ if ( $is_echo ) echo 'Booking resource does not exist.' . ' [ID=' . $resource_id . ']';
629
+ return 'Booking resource does not exist.' . ' [ID=' . $resource_id . ']';
630
+ }
631
 
632
+ //--------------------------------------------------------------------------------------------------------------
633
+ // Define $this->client_side_active_params_of_user to specific User,
634
+ // depends from belonging booking resource to specific User
635
+ make_bk_action('check_multiuser_params_for_client_side', $resource_id );
636
 
637
+ //--------------------------------------------------------------------------------------------------------------
638
+ // Get Booking ID and booking resource ID, if we EDIT booking
639
+ if ( isset( $_GET['booking_hash'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
 
641
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
642
 
643
+ $is_error = false; //FixIn: 9.1.3.2
644
+ if ( $my_booking_id_type !== false ) {
645
+ $my_edited_bk_id = $my_booking_id_type[0];
646
+ $my_boook_type = $my_booking_id_type[1];
647
+ if ( $my_boook_type == '' ) {
648
+ $is_error = __( 'Wrong booking hash in URL. Probably hash is expired.', 'booking' );
649
+ }
650
+ } else {
651
+ $is_error = __( 'Wrong booking hash in URL. Probably hash is expired.', 'booking' );
652
+ }
653
 
654
+ if ( false !== $is_error ) {
655
+ if ( $is_echo ) {
656
+ echo $is_error;
657
+ }
658
+ return $is_error;
659
+ }
 
 
 
 
 
 
 
 
 
660
 
661
+ // Check situation when we have editing "child booking resource", so need to reupdate calendar and form to have it for parent resource.
662
+ if ( //FixIn: 6.1.1.9 //Fix:2016-10-12
663
+ ( ! isset( $_GET['booking_pay'] ) )
664
+ && ( function_exists( 'wpbc_is_this_child_resource' ) )
665
+ && ( wpbc_is_this_child_resource( $my_boook_type ) )
666
+ ){
667
+ $bk_parent_br_id = wpbc_get_parent_resource( $my_boook_type );
668
+ $resource_id = $bk_parent_br_id;
669
+ }
670
+ }
671
 
672
+ //--------------------------------------------------------------------------------------------------------------
673
+ // Get JS vars for Booked dates | Rates | Availability & define function for showing calendar
674
+ $start_script_code = $this->get_script_for_calendar(
675
+ $resource_id
676
+ , $additional_bk_types
677
+ , $my_selected_dates_without_calendar
678
+ , $cal_count
679
+ , $start_month_calendar
680
+ );
681
+ // Apply script for the condition days selection, like:
682
+ // {select-day condition="season" for="Low season" value="2-5"},{select-day condition="weekday" ...
683
+ $start_script_code = apply_bk_filter('wpdev_bk_define_additional_js_options_for_bk_shortcode', $start_script_code, $resource_id, $bk_otions);
684
+
685
+ //--------------------------------------------------------------------------------------------------------------
686
+ // Get booking form content
687
+ $my_result = ' ' . $this->get__client_side_booking_content($resource_id, $my_booking_form, $my_selected_dates_without_calendar, $cal_count, $bk_otions ) . ' ' . $start_script_code ;
688
+
689
+
690
+ $my_result = apply_filters('wpdev_booking_form', $my_result , $resource_id); // Add DIV structure, where to show payment form
691
 
692
 
693
+ make_bk_action('finish_check_multiuser_params_for_client_side', $resource_id );
694
 
695
+ if ( $is_echo ) echo $my_result;
696
  else return $my_result;
697
  }
698
 
699
+
700
  //Show only calendar from action call - wpdev_bk_add_calendar
701
+ function add_calendar_action( $resource_id = 1, $cal_count = 1, $is_echo = 1, $start_month_calendar = false, $bk_otions = array() ) {
702
 
703
  $additional_bk_types = array();
704
+ if ( strpos($resource_id,';') !== false ) {
705
+ $additional_bk_types = explode(';',$resource_id);
706
+ $resource_id = $additional_bk_types[0];
707
  }
708
 
709
+ make_bk_action('check_multiuser_params_for_client_side', $resource_id );
710
 
711
  if (isset($_GET['booking_hash'])) {
712
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
713
  if ($my_booking_id_type != false)
714
  if ($my_booking_id_type[1]=='') {
715
  $my_result = __('Wrong booking hash in URL (probably expired)' ,'booking');
719
  }
720
  }
721
 
722
+ $start_script_code = $this->get_script_for_calendar($resource_id, $additional_bk_types, '' , $cal_count, $start_month_calendar );
723
 
724
+ $my_result = '<div style="clear:both;height:10px;"></div>' . $this->pre_get_calendar_html( $resource_id, $cal_count, $bk_otions );
725
 
726
  // $my_result .= $this->get_legend(); // Get Legend code here
727
 
728
  $my_result .= ' ' . $start_script_code ;
729
 
730
+ $my_result = apply_filters('wpdev_booking_calendar', $my_result , $resource_id);
731
 
732
 
733
  $booking_form_is_using_bs_css = get_bk_option( 'booking_form_is_using_bs_css' );
734
  $my_result = '<span ' . (($booking_form_is_using_bs_css == 'On') ? 'class="wpdevelop"' : '') . '>' . $my_result . '</span>';
735
 
736
+ make_bk_action('finish_check_multiuser_params_for_client_side', $resource_id );
737
 
738
  if ( $is_echo ) echo $my_result;
739
  else return $my_result;
740
  }
741
 
742
  // Get content at client side of C A L E N D A R
743
+ function get__client_side_booking_content( $resource_id = 1, $my_booking_form = 'standard', $my_selected_dates_without_calendar = '', $cal_count = 1, $bk_otions = array() ) {
744
 
745
  $nl = '<div style="clear:both;height:10px;"></div>'; // New line
746
  if ($my_selected_dates_without_calendar=='') {
747
+ // Get HTML with [calendar] shortcode and Styles for calendar. Get legend html.
748
+ $calendar = $this->pre_get_calendar_html( $resource_id, $cal_count, $bk_otions );
749
  } else {
750
+ $calendar = '<textarea rows="3" cols="50" id="date_booking' . $resource_id . '" name="date_booking' . $resource_id . '" autocomplete="off" style="display:none;">' . $my_selected_dates_without_calendar . '</textarea>'; // Calendar code
751
  }
752
  // $calendar .= $this->get_legend(); // Get Legend code here
753
 
754
 
755
  //FixIn: 8.2.1.1
756
+ $form = '<a name="bklnk' . $resource_id . '" id="bklnk' . $resource_id . '"></a><div id="booking_form_div' . $resource_id . '" class="booking_form_div">';
757
  //FixIn:6.0.1.5
758
  $custom_params = array();
759
  if (! empty($bk_otions)) {
769
  }
770
  //FixIn:6.0.1.5
771
 
772
+ //FixIn: 9.2.3.4
773
+ if ( 0 ) {
774
+ require_once( WPBC_PLUGIN_DIR . '/core/admin/page-form-free.php' ); // Fields
775
+ $form .= $this->get_booking_form( $resource_id );
776
+ } else {
777
+
778
+ if ( $this->wpdev_bk_personal !== false ) {
779
+ $form .= $this->wpdev_bk_personal->get_booking_form( $resource_id, $my_booking_form, $custom_params );
780
+ } else {
781
+ $form .= $this->get_booking_form( $resource_id );
782
+ }
783
+ }
784
 
785
  // Insert calendar into form
786
  if ( strpos($form, '[calendar]') !== false ) $form = str_replace('[calendar]', $calendar ,$form);
789
  // Replace additional calendars like [calendar id=9] to HTML and JS code
790
  $form = apply_bk_filter( 'wpdev_check_for_additional_calendars_in_form'
791
  , $form
792
+ , $resource_id
793
  , array(
794
  'booking_form' => $my_booking_form ,
795
  'selected_dates' => $my_selected_dates_without_calendar ,
799
  );
800
 
801
  if ( strpos($form, '[captcha]') !== false ) {
802
+ $captcha = $this->createCapthaContent($resource_id);
803
  $form =str_replace('[captcha]', $captcha ,$form);
804
  }
805
 
806
  // Set additional "Check in/out" times, if activated to use change-over days!
807
+ $form = apply_filters('wpdev_booking_form_content', $form , $resource_id);
808
 
809
 
810
 
811
  // Add booking type field
812
+ $form .= '<input id="bk_type' . $resource_id . '" name="bk_type' . $resource_id . '" class="" type="hidden" value="' . $resource_id . '" /></div>';
813
+ $submitting = '<div id="submiting' . $resource_id . '"></div><div class="form_bk_messages" id="form_bk_messages' . $resource_id . '" ></div>';
814
 
815
  //Params: $action = -1, $name = "_wpnonce", $referer = true , $echo = true
816
+ $wpbc_nonce = wp_nonce_field('INSERT_INTO_TABLE', ( "wpbc_nonce" . $resource_id) , true , false );
817
+ $wpbc_nonce .= wp_nonce_field('CALCULATE_THE_COST', ( "wpbc_nonceCALCULATE_THE_COST" . $resource_id) , true , false );
818
 
819
 
820
  $res = $form . $submitting . $wpbc_nonce;
826
  $booking_form_format_type = get_bk_option( 'booking_form_format_type');
827
 
828
  $return_form = '<div id="'.$my_random_id.'" '.(($booking_form_is_using_bs_css=='On')?'class="wpdevelop"':'').'>'.
829
+ '<form id="booking_form' . $resource_id . '" class="booking_form ' . $booking_form_format_type . '" method="post" action="">' .
830
+ '<div id="ajax_respond_insert' . $resource_id . '" class="ajax_respond_insert" style="display:none;"></div>' .
831
+ $res.
832
  '</form></div>';
833
 
834
+ $return_form .= '<div id="booking_form_garbage' . $resource_id . '" class="booking_form_garbage"></div>';
835
 
836
  if ($my_selected_dates_without_calendar == '' ) {
837
  // Check according already shown Booking Calendar and set do not visible of it
841
  var visible_booking_id_on_page_num = visible_booking_id_on_page.length;
842
  if (visible_booking_id_on_page_num !== null ) {
843
  for (var i=0;i< visible_booking_id_on_page_num ;i++){
844
+ if ( visible_booking_id_on_page[i]=="booking_form_div' . $resource_id . '" ) {
845
  document.getElementById("'.$my_random_id.'").innerHTML = "<span style=\'color:#A00;font-size:10px;\'>'.
846
  sprintf( esc_js( __('%sWarning! Booking calendar for this booking resource are already at the page, please check more about this issue at %sthis page%s' ,'booking') )
847
  , ''
853
  return;
854
  }
855
  }
856
+ visible_booking_id_on_page[ visible_booking_id_on_page_num ]="booking_form_div' . $resource_id . '";
857
  }
858
  });
859
  </script>';
862
  $return_form .= '<script type="text/javascript">
863
  jQuery(document).ready( function(){
864
  if(typeof( showCostHintInsideBkForm ) == "function") {
865
+ showCostHintInsideBkForm(' . $resource_id . ');
866
  }
867
  });
868
  </script>';
874
  if (! isset($_GET['booking_hash']))
875
  if ($is_use_auto_fill_for_logged == 'On') {
876
 
877
+ $curr_user = wpbc_get_current_user();
878
  if ( $curr_user->ID > 0 ) {
879
  //$user_nick_name =get_user_meta($curr_user->ID, 'nickname')[0];
880
  //debuge( $user_nick_name );
887
  }
888
  $return_form .= '<script type="text/javascript">
889
  jQuery(document).ready( function(){
890
+ var bk_af_submit_form = document.getElementById( "booking_form' . $resource_id . '" );
891
  var bk_af_count = bk_af_submit_form.elements.length;
892
  var bk_af_element;
893
  var bk_af_reg;
897
  (bk_af_element.type == "text") &&
898
  (bk_af_element.type !=="button") &&
899
  (bk_af_element.type !=="hidden") &&
900
+ (bk_af_element.name !== ("date_booking' . $resource_id . '" ) )
901
  ) {
902
  // NickName //FixIn: 8.6.1.2
903
  bk_af_reg = /^([A-Za-z0-9_\-\.])*(nickname){1}([A-Za-z0-9_\-\.])*$/;
998
 
999
 
1000
  if ( isset( $_GET['booking_hash'] ) ) {
1001
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
1002
 
1003
  $attr['booking_hash'] = $_GET['booking_hash'];
1004
  } else {
1005
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $attr['booking_hash'] );
1006
  }
1007
 
1008
  if ( $my_booking_id_type !== false ) {
1235
 
1236
 
1237
  if (isset($_GET['booking_hash'])) {
1238
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $_GET['booking_hash'] );
1239
  if ($my_booking_id_type !== false) {
1240
  $my_edited_bk_id = $my_booking_id_type[0];
1241
  $my_boook_type = $my_booking_id_type[1];
1257
 
1258
  if (isset($_GET['booking_pay'])) {
1259
  // Payment form
1260
+ if ( 'On' == get_bk_option( 'booking_super_admin_receive_regular_user_payments' ) ){ //FixIn: 9.2.3.8
1261
+ make_bk_action('make_force_using_this_user', -999 ); // '-999' - This ID "by default" is the ID of super booking admin user
1262
+ }
1263
+
1264
+ $res .= apply_bk_filter('wpdev_get_payment_form',$my_edited_bk_id, $my_boook_type );
1265
+
1266
+ if ( 'On' == get_bk_option( 'booking_super_admin_receive_regular_user_payments' ) ){ //FixIn: 9.2.3.8
1267
+ make_bk_action( 'finish_force_using_this_user' );
1268
+ }
1269
+
1270
  }
1271
 
1272
  return $res;
core/sync/wpbc-gcal-class.php CHANGED
@@ -48,7 +48,7 @@ class WPBC_Google_Calendar {
48
  $this->bktype = 1;
49
  $this->is_silent = false;
50
  $this->events = array();
51
- $user = wp_get_current_user();
52
  $this->setUserID( $user->ID );
53
 
54
  if ( ! $this->start_of_week = get_option('start_of_week') )
@@ -599,7 +599,7 @@ class WPBC_Google_Calendar {
599
 
600
  $this->events[$key]['id'] = $booking_id;
601
 
602
- //if ( ( defined( 'WP_BK_AUTO_APPROVE_WHEN_IMPORT_GCAL' ) ) && ( WP_BK_AUTO_APPROVE_WHEN_IMPORT_GCAL ) ){ // Auto approve booking if imported
603
  if ( get_bk_option( 'booking_auto_approve_bookings_when_import' ) == 'On' ) { //FixIn: 8.1.3.27
604
  // Auto approve booking, when imported. //FixIn:7.0.1.59
605
  global $wpdb;
48
  $this->bktype = 1;
49
  $this->is_silent = false;
50
  $this->events = array();
51
+ $user = wpbc_get_current_user();
52
  $this->setUserID( $user->ID );
53
 
54
  if ( ! $this->start_of_week = get_option('start_of_week') )
599
 
600
  $this->events[$key]['id'] = $booking_id;
601
 
602
+ // Auto approve booking if imported
603
  if ( get_bk_option( 'booking_auto_approve_bookings_when_import' ) == 'On' ) { //FixIn: 8.1.3.27
604
  // Auto approve booking, when imported. //FixIn:7.0.1.59
605
  global $wpdb;
core/timeline/v2/wpbc-class-timeline_v2.php CHANGED
@@ -481,7 +481,7 @@ class WPBC_TimelineFlex {
481
  public function admin_init() {
482
 
483
  // User ////////////////////////////////////////////////////////////////
484
- $user = wp_get_current_user();
485
  $this->current_user_id = $user->ID;
486
 
487
  $this->is_frontend = false;
@@ -916,8 +916,38 @@ class WPBC_TimelineFlex {
916
 
917
  if ( 0 != $is_started ) {
918
  ?><div class="warning_check_in_out_not_equal"><?php
919
- debuge( 'Warning! Number of check in != check out times.', $dates_to_check, $is_started) ;
920
- ?></div><script type="text/javascript"> jQuery( '.warning_check_in_out_not_equal' ).animate( {opacity: 1}, 3000 ).toggle(1000); </script><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
921
  }
922
 
923
 
@@ -2990,7 +3020,7 @@ function wpbc_is_show_popover_in_flex_timeline( $is_frontend, $booking_hash ){
2990
  if ( ( $is_frontend ) && ( ! empty( $booking_hash ) ) ) {
2991
 
2992
  //In case if we have valid valid hash then show booking details
2993
- $my_booking_id_type = apply_bk_filter( 'wpdev_booking_get_hash_to_id', false, $booking_hash );
2994
 
2995
  if ( ! empty( $my_booking_id_type ) ) {
2996
  $is_show_popover_in_timeline = true;
481
  public function admin_init() {
482
 
483
  // User ////////////////////////////////////////////////////////////////
484
+ $user = wpbc_get_current_user();
485
  $this->current_user_id = $user->ID;
486
 
487
  $this->is_frontend = false;
916
 
917
  if ( 0 != $is_started ) {
918
  ?><div class="warning_check_in_out_not_equal"><?php
919
+ //FixIn: 9.2.4.5
920
+ ?><div style="margin:0 10px 10px;font-weight:600;font-size:1.1em;"><?php
921
+ printf( 'Warning! Structure of your booking dates has an issue.');
922
+ ?></div><?php
923
+ ?><div style="margin:0 10px 30px;font-weight:400;font-size:1.1em;"><?php
924
+ printf( 'Number of check in times != check out times in a booking, or check-in time is older than the check-out time on the same date in the same booking.' );
925
+ ?></div><?php
926
+ ?><div style="margin:10px;font-weight:600;font-size:1.05em;color:#752;"><?php
927
+ printf( 'To resolve this issue, you need to delete the following bookings and create new bookings with the same booking details.' );
928
+ ?></div><?php
929
+ $bookings_to_del = array();
930
+ for( $day_i = 0; $day_i <= ( count( $dates_to_check ) - 1 ); $day_i++) {
931
+ $bookings_to_del[] = $dates_to_check[$day_i]->booking_id;
932
+ }
933
+ $bookings_to_del = array_unique ( $bookings_to_del );
934
+ for( $bk_i = 0; $bk_i <= ( count( $bookings_to_del ) - 1 ); $bk_i++) {
935
+ $booking_id__to_del = $bookings_to_del [ $bk_i ];
936
+
937
+ ?><div style="margin:10px;font-weight:600;font-size:1.05em;"><?php
938
+
939
+ printf( 'Delete booking with %s', htmlspecialchars_decode(
940
+ '<strong></strong><a href="' .
941
+ esc_url( wpbc_get_bookings_url() . '&view_mode=vm_listing&tab=actions&wh_booking_id=' . $booking_id__to_del )
942
+ . '">' . 'ID = ' . $booking_id__to_del . '</a></strong>' ) );
943
+ ?></div><?php
944
+ }
945
+
946
+ ?><div style="margin:50px;font-weight:600;font-size:1.05em;"></div><?php
947
+
948
+ debuge( $dates_to_check, $is_started) ;
949
+
950
+ ?></div><script type="text/javascript"> jQuery( '.warning_check_in_out_not_equal' ).animate( {opacity: 1}, 15000 ).toggle(1000); </script><?php
951
  }
952
 
953
 
3020
  if ( ( $is_frontend ) && ( ! empty( $booking_hash ) ) ) {
3021
 
3022
  //In case if we have valid valid hash then show booking details
3023
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $booking_hash );
3024
 
3025
  if ( ! empty( $my_booking_id_type ) ) {
3026
  $is_show_popover_in_timeline = true;
core/wpbc-activation.php CHANGED
@@ -653,6 +653,17 @@ function wpbc_booking_activate() {
653
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD modification_date datetime AFTER booking_id";
654
  }
655
 
 
 
 
 
 
 
 
 
 
 
 
656
  if (wpbc_is_field_in_table_exists('booking','sort_date') == 0) {
657
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sort_date datetime AFTER booking_id";
658
  }
@@ -670,11 +681,17 @@ function wpbc_booking_activate() {
670
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sync_gid varchar(200) NOT NULL default '' AFTER booking_id";
671
  }
672
 
 
 
 
 
 
673
  //FixIn: 6.1.1.10
674
  if (wpbc_is_field_in_table_exists('booking','trash') == 0) {
675
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD trash bigint(10) NOT NULL default 0 AFTER booking_id";
676
  }
677
- // End: 6.1.1.10
 
678
 
679
  //FixIn: 9.1.2.12
680
  if ( wpbc_is_field_in_table_exists( 'booking', 'booking_options' ) == 0 ) {
@@ -742,9 +759,25 @@ function wpbc_booking_activate() {
742
  $wpdb->query( $wp_queries_sub );
743
  }
744
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
745
  }
746
 
747
-
748
  ////////////////////////////////////////////////////////////////////////////
749
  // Other versions Activation
750
  ////////////////////////////////////////////////////////////////////////////
@@ -777,7 +810,7 @@ function wpbc_booking_activate() {
777
 
778
 
779
  wpbc_reindex_booking_db();
780
-
781
  make_bk_action( 'wpbc_after_activation' );
782
  }
783
  add_bk_action( 'wpbc_activation', 'wpbc_booking_activate' );
@@ -875,7 +908,7 @@ function wpbc_get_default_options( $option_name = '', $is_get_multiuser_general_
875
  $default_options['booking_timeline__month_mode__days_number_show'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '7' : '7' );
876
  $mu_option4delete[]='booking_timeline__month_mode__days_number_show';
877
  //FixIn: 8.6.1.13
878
- $default_options['booking_max_monthes_in_calendar'] = '1y';
879
  $mu_option4delete[]='booking_max_monthes_in_calendar';
880
  $default_options['booking_client_cal_count'] = '1';
881
  $mu_option4delete[]='booking_client_cal_count';
@@ -1364,6 +1397,10 @@ $mu_option4delete[]= 'booking_timeslot_picker_skin';
1364
  //FixIn: 8.1.3.19
1365
  $default_options['booking_is_custom_forms_for_regular_users'] = 'Off';
1366
  $mu_option4delete[]='booking_is_custom_forms_for_regular_users';
 
 
 
 
1367
  }
1368
 
1369
 
653
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD modification_date datetime AFTER booking_id";
654
  }
655
 
656
+ //FixIn: 9.2.3.3
657
+ if ( wpbc_is_field_in_table_exists( 'booking', 'creation_date' ) == 0 ) {
658
+ $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER modification_date";
659
+ /**
660
+ *
661
+ // Can be only one 'TIMESTAMP' field at some servers.
662
+ // ADD re_create_date TIMESTAMP NOT NULL DEFAULT 0 AFTER rules_id
663
+ //$wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD creation_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER booking_id";
664
+ */
665
+ }
666
+
667
  if (wpbc_is_field_in_table_exists('booking','sort_date') == 0) {
668
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sort_date datetime AFTER booking_id";
669
  }
681
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD sync_gid varchar(200) NOT NULL default '' AFTER booking_id";
682
  }
683
 
684
+ //FixIn: 9.2.3.5
685
+ if (wpbc_is_field_in_table_exists('booking','is_trash') == 0) {
686
+ $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD is_trash datetime AFTER booking_id";
687
+ }
688
+
689
  //FixIn: 6.1.1.10
690
  if (wpbc_is_field_in_table_exists('booking','trash') == 0) {
691
  $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD trash bigint(10) NOT NULL default 0 AFTER booking_id";
692
  }
693
+
694
+
695
 
696
  //FixIn: 9.1.2.12
697
  if ( wpbc_is_field_in_table_exists( 'booking', 'booking_options' ) == 0 ) {
759
  $wpdb->query( $wp_queries_sub );
760
  }
761
  }
762
+
763
+ //FixIn: 9.2.3.3
764
+ if ( wpbc_is_field_in_table_exists( 'booking', 'hash' ) == 0 ) { //HASH_EDIT
765
+
766
+ $simple_sql = "ALTER TABLE {$wpdb->prefix}booking ADD hash TEXT AFTER form";
767
+ $wpdb->query( $simple_sql );
768
+
769
+ // Update hash value only in last 100 bookings
770
+ $sql_check_table = "SELECT booking_id as id FROM {$wpdb->prefix}booking ORDER BY booking_id DESC LIMIT 0, 100";
771
+ $res = $wpdb->get_results( $sql_check_table );
772
+ foreach ( $res as $l ) {
773
+ $wpdb->query( "UPDATE {$wpdb->prefix}booking SET hash = MD5('" . time() . '_' . rand( 1000, 1000000 ) . "') WHERE booking_id = " . $l->id );
774
+ }
775
+
776
+ }
777
+
778
  }
779
 
780
+
781
  ////////////////////////////////////////////////////////////////////////////
782
  // Other versions Activation
783
  ////////////////////////////////////////////////////////////////////////////
810
 
811
 
812
  wpbc_reindex_booking_db();
813
+
814
  make_bk_action( 'wpbc_after_activation' );
815
  }
816
  add_bk_action( 'wpbc_activation', 'wpbc_booking_activate' );
908
  $default_options['booking_timeline__month_mode__days_number_show'] = ( ( ! class_exists( 'wpdev_bk_personal' ) ) ? '7' : '7' );
909
  $mu_option4delete[]='booking_timeline__month_mode__days_number_show';
910
  //FixIn: 8.6.1.13
911
+ $default_options['booking_max_monthes_in_calendar'] = '2y';
912
  $mu_option4delete[]='booking_max_monthes_in_calendar';
913
  $default_options['booking_client_cal_count'] = '1';
914
  $mu_option4delete[]='booking_client_cal_count';
1397
  //FixIn: 8.1.3.19
1398
  $default_options['booking_is_custom_forms_for_regular_users'] = 'Off';
1399
  $mu_option4delete[]='booking_is_custom_forms_for_regular_users';
1400
+
1401
+ //FixIn: 9.2.3.8
1402
+ $default_options['booking_super_admin_receive_regular_user_payments'] = 'Off';
1403
+ $mu_option4delete[]='booking_super_admin_receive_regular_user_payments';
1404
  }
1405
 
1406
 
core/wpbc-constants.php CHANGED
@@ -26,18 +26,7 @@ if ( ! defined( 'WP_BK_CHECK_OUT_MINUS_DAY_SEARCH' ) ) { define( 'WP_BK_C
26
  ////////////////////////////////////////////////////////////
27
  // SYSTEM CONSTANTS //////////////
28
  ////////////////////////////////////////////////////////////
29
- if ( ! defined( 'WP_BK_MINOR_UPDATE' ) ) { define( 'WP_BK_MINOR_UPDATE', true ); }
30
  if ( ! defined( 'WP_BK_RESPONSE' ) ) { define( 'WP_BK_RESPONSE', false ); }
31
  if ( ! defined( 'WP_BK_BETA_DATA_FILL' ) ) { define( 'WP_BK_BETA_DATA_FILL', 0 ); } // Set 0 for no filling or 2 for 241 bookings or more for more
32
 
33
-
34
- ////////////////////////////////////////////////////////////
35
- // Deprecated
36
- ////////////////////////////////////////////////////////////
37
- // 'WP_BK_PAYMENT_FORM_ONLY_IN_REQUEST' - deprecated - configure this option at Booking > Settings > Payment page //FixIn: 8.1.3.2x // Its will show payment form only in payment request during sending from Booking Listing page and do not show payment form after visitor made the booking.
38
- // 'WP_BK_AUTO_SEND_PAY_REQUEST_IF_ADD_IN_ADMIN_PANEL' - deprecated - configure this option at Booking > Settings > Payment page //FixIn: 8.1.3.2x // Auto send payment request, if booking was added in admin panel, and WP_BK_AUTO_APPROVE_IF_ADD_IN_ADMIN_PANEL == true
39
- // 'WP_BK_SHOW_DEPOSIT_AND_TOTAL_PAYMENT' - deprecated - configure this option at Booking > Settings > Payment page //FixIn: 8.1.3.2x // Show both deposit and total cost payment forms, after visitor submit booking. Important! Please note, in this case at admin panel for booking will be saved deposit cost and notes about deposit, do not depend from the visitor choise of this payment. So you need to check each such payment manually.
40
- // 'WP_BK_AUTO_APPROVE_WHEN_IMPORT_GCAL' - deprecated - configure this option at Booking > Settings General page //FixIn: 8.1.3.2x // Auto approve booking, if imported from Google Calendar //FixIn:7.0.1.59
41
- // 'WP_BK_AUTO_APPROVE_WHEN_ZERO_COST' - deprecated - configure this option at Booking > Settings General page //FixIn: 8.1.3.2x // Auto approve booking, if the cost of booking == 0
42
- // 'WP_BK_AUTO_APPROVE_IF_ADD_IN_ADMIN_PANEL' - deprecated - configure this option at Booking > Settings General page //FixIn: 8.1.3.2x // Auto approve booking, if booking added in admin panel
43
- // 'WP_BK_LAST_CHECKOUT_DAY_AVAILABLE' - deprecated - configure this option at Booking > Settings General page //FixIn: 8.1.3.28 // Its will remove last selected day of booking during saving it as booking. //FixIn: 6.2.3.6
26
  ////////////////////////////////////////////////////////////
27
  // SYSTEM CONSTANTS //////////////
28
  ////////////////////////////////////////////////////////////
29
+ if ( ! defined( 'WP_BK_MINOR_UPDATE' ) ) { define( 'WP_BK_MINOR_UPDATE', !true ); }
30
  if ( ! defined( 'WP_BK_RESPONSE' ) ) { define( 'WP_BK_RESPONSE', false ); }
31
  if ( ! defined( 'WP_BK_BETA_DATA_FILL' ) ) { define( 'WP_BK_BETA_DATA_FILL', 0 ); } // Set 0 for no filling or 2 for 241 bookings or more for more
32
 
 
 
 
 
 
 
 
 
 
 
 
core/wpbc-dates.php CHANGED
@@ -38,7 +38,7 @@ function wpbc_get_insert_sql_for_dates( $dates_in_diff_formats , $is_approved_da
38
 
39
  $my_dates = $dates_in_diff_formats['array'];
40
 
41
- //if ( WP_BK_LAST_CHECKOUT_DAY_AVAILABLE )
42
  //FixIn: 8.2.1.15
43
  // if ( get_bk_option( 'booking_last_checkout_day_available' ) === 'On' ) //FixIn: 8.1.3.28
44
  // if ( count($my_dates)>1 ) { unset( $my_dates[ ( count($my_dates)-1 ) ] ); } // Remove LAST selected day in calendar //FixIn: 6.2.3.6
38
 
39
  $my_dates = $dates_in_diff_formats['array'];
40
 
41
+
42
  //FixIn: 8.2.1.15
43
  // if ( get_bk_option( 'booking_last_checkout_day_available' ) === 'On' ) //FixIn: 8.1.3.28
44
  // if ( count($my_dates)>1 ) { unset( $my_dates[ ( count($my_dates)-1 ) ] ); } // Remove LAST selected day in calendar //FixIn: 6.2.3.6
core/wpbc-debug.php CHANGED
@@ -112,35 +112,47 @@ if (!function_exists ('debuge_error')) {
112
  if (!function_exists ('get_debuge_error')) {
113
  function get_debuge_error( $msg , $file_name='', $line_num=''){
114
 
115
- $ver_num = ( ! defined('WPDEV_BK_VERSION') ) ? '' : '|V:' . WPDEV_BK_VERSION ;
116
-
117
- $last_db_error = '';
118
- global $EZSQL_ERROR;
119
- if (isset($EZSQL_ERROR[ (count($EZSQL_ERROR)-1)])) {
120
 
121
- $last_db_error2 = $EZSQL_ERROR[ (count($EZSQL_ERROR)-1)];
122
 
123
- if ( (isset($last_db_error2['query'])) && (isset($last_db_error2['error_str'])) ) {
124
 
125
- $str = str_replace( array( '"', "'" ), '', $last_db_error2['error_str'] );
126
- $query = str_replace( array( '"', "'" ), '', $last_db_error2['query'] );
127
 
128
- $str = htmlspecialchars( $str, ENT_QUOTES );
129
- $query = htmlspecialchars( $query , ENT_QUOTES );
130
 
131
- $last_db_error = $str ;
132
- $last_db_error .= '::<span style="color:#300;">'.$query.'</span>';
133
- }
134
- }
135
- return $msg . '<br /><span style="font-size:11px;"> ['
136
- . 'F:' . str_replace( dirname( $file_name ) , '' , $file_name )
137
- . '| L:' . $line_num
138
- . $ver_num
139
- . '| DB:' . $last_db_error
140
- . '] </span>' ;
141
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  }
143
 
 
144
  // Usage: if ( function_exists ('wpbc_check_post_key_max_number')) { wpbc_check_post_key_max_number(); }
145
  if ( ! function_exists ('wpbc_check_post_key_max_number')) {
146
  function wpbc_check_post_key_max_number() {
112
  if (!function_exists ('get_debuge_error')) {
113
  function get_debuge_error( $msg , $file_name='', $line_num=''){
114
 
115
+ return wpbc_get_debuge_error( $msg , $file_name, $line_num );
116
+ }
117
+ }
 
 
118
 
 
119
 
120
+ function wpbc_get_debuge_error( $msg , $file_name='', $line_num=''){
121
 
122
+ $ver_num = ( ! defined('WPDEV_BK_VERSION') ) ? '' : '|V:' . WPDEV_BK_VERSION ;
 
123
 
124
+ $last_db_error = '';
125
+ global $EZSQL_ERROR;
126
 
127
+ if (
128
+ ( ! empty( $EZSQL_ERROR ) )
129
+ && ( is_array( $EZSQL_ERROR ) )
130
+ && ( isset( $EZSQL_ERROR[ ( count( $EZSQL_ERROR ) - 1 ) ] ) )
131
+ ){
132
+
133
+ $last_db_error2 = $EZSQL_ERROR[ (count($EZSQL_ERROR)-1)];
134
+
135
+ if ( (isset($last_db_error2['query'])) && (isset($last_db_error2['error_str'])) ) {
136
+
137
+ $str = str_replace( array( '"', "'" ), '', $last_db_error2['error_str'] );
138
+ $query = str_replace( array( '"', "'" ), '', $last_db_error2['query'] );
139
+
140
+ $str = htmlspecialchars( $str, ENT_QUOTES );
141
+ $query = htmlspecialchars( $query , ENT_QUOTES );
142
+
143
+ $last_db_error = $str ;
144
+ $last_db_error .= '::<span style="color:#300;">'.$query.'</span>';
145
+ }
146
+ }
147
+ return $msg . '<br /><span style="font-size:11px;"> ['
148
+ . 'F:' . str_replace( dirname( $file_name ) , '' , $file_name )
149
+ . '| L:' . $line_num
150
+ . $ver_num
151
+ . '| DB:' . $last_db_error
152
+ . '] </span>' ;
153
  }
154
 
155
+
156
  // Usage: if ( function_exists ('wpbc_check_post_key_max_number')) { wpbc_check_post_key_max_number(); }
157
  if ( ! function_exists ('wpbc_check_post_key_max_number')) {
158
  function wpbc_check_post_key_max_number() {
core/wpbc-functions.php CHANGED
@@ -88,7 +88,7 @@ function wpbc_check_hash_get_booking_details( $booking_hash, $booking_data_key =
88
  if ( ! empty( $booking_hash ) ) {
89
 
90
 
91
- $my_booking_id_type = apply_bk_filter( 'wpdev_booking_get_hash_to_id', false, $booking_hash );
92
  //debuge($my_booking_id_type);
93
 
94
  if ( ! empty( $my_booking_id_type ) ) {
@@ -873,7 +873,7 @@ $is_old = false;
873
 
874
 
875
  function get_bk_current_user_id() {
876
- $user = wp_get_current_user();
877
  return ( isset( $user->ID ) ? (int) $user->ID : 0 );
878
  }
879
 
@@ -1316,28 +1316,29 @@ $is_old = false;
1316
 
1317
  global $wpdb;
1318
 
1319
- //FixIn: 8.7.3.16
1320
  if (
1321
- ( ( ! empty( $wpdb->prefix ) ) && ( strpos( $tablename, $wpdb->prefix ) === false ) )
1322
- || ( '_' == $wpdb->prefix )
1323
  ) {
1324
  $tablename = $wpdb->prefix . $tablename;
1325
  }
1326
 
1327
- $sql_check_table = $wpdb->prepare("SHOW TABLES LIKE %s" , $tablename ); //FixIn: 5.4.3
1328
-
1329
- $res = $wpdb->get_results( $sql_check_table );
1330
-
1331
- return count($res); //FixIn: 5.4.3
1332
- /*
1333
- $sql_check_table = $wpdb->prepare("
1334
- SELECT COUNT(*) AS count
1335
- FROM information_schema.tables
1336
- WHERE table_schema = '". DB_NAME ."'
1337
- AND table_name = %s " , $tablename );
 
 
 
 
1338
 
1339
- $res = $wpdb->get_results( $sql_check_table );
1340
- return $res[0]->count;*/
1341
  }
1342
 
1343
 
@@ -1350,15 +1351,40 @@ $is_old = false;
1350
  * @return 0|1
1351
  */
1352
  function wpbc_is_field_in_table_exists( $tablename , $fieldname) {
 
1353
  global $wpdb;
1354
- if ( (! empty($wpdb->prefix) ) && ( strpos($tablename, $wpdb->prefix) === false ) ) $tablename = $wpdb->prefix . $tablename ;
1355
- $sql_check_table = "SHOW COLUMNS FROM {$tablename}" ;
1356
 
1357
- $res = $wpdb->get_results( $sql_check_table );
 
 
 
 
 
1358
 
1359
- foreach ($res as $fld) {
1360
- if ($fld->Field == $fieldname) return 1;
1361
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1362
 
1363
  return 0;
1364
  }
@@ -1839,7 +1865,7 @@ $is_old = false;
1839
  function wp_admin_bar_bookings_menu(){
1840
  global $wp_admin_bar;
1841
 
1842
- $current_user = wp_get_current_user();
1843
 
1844
  $curr_user_role = get_bk_option( 'booking_user_role_booking' );
1845
  $level = 10;
@@ -2155,32 +2181,42 @@ $is_old = false;
2155
 
2156
 
2157
  function wpbc_show_booking_footer(){
2158
- $wpdev_copyright_adminpanel = get_bk_option( 'booking_wpdev_copyright_adminpanel' ); // check
2159
- if ( ( $wpdev_copyright_adminpanel !== 'Off' ) && ( ! wpbc_is_this_demo() ) ) {
2160
- $message = '';
2161
- // $message .= '<a target="_blank" href="https://wpbookingcalendar.com/">Booking Calendar</a> ' . __('version' ,'booking') . ' ' . WP_BK_VERSION_NUM ;
2162
- //
2163
- // $message .= ' | '. sprintf(__('Add your %s on %swordpress.org%s, if you enjoyed by this plugin.' ,'booking'),
2164
- // '<a target="_blank" href="http://goo.gl/tcrrpK" >&#9733;&#9733;&#9733;&#9733;&#9733;</a>',
2165
- // '<a target="_blank" href="http://goo.gl/tcrrpK" >',
2166
- // '</a>' );
2167
-
2168
- $message .= sprintf( __( 'If you like %s please leave us a %s rating. A huge thank you in advance!', 'booking' )
2169
- , '<strong>Booking Calendar</strong>' . ' ' . WP_BK_VERSION_NUM . '' // '<strong>Booking Calendar</strong>'
2170
- , '<a href="https://wordpress.org/support/plugin/booking/reviews/#new-post" target="_blank" title="' . esc_attr__( 'Thanks :)', 'booking' ) . '">'
2171
- . '&#9733;&#9733;&#9733;&#9733;&#9733;'
2172
- . '</a>'
2173
- );
2174
-
2175
- echo '<div id="wpbc-footer" style="position:absolute;bottom:40px;text-align:left;width:95%;font-size:0.9em;text-shadow:0 1px 0 #fff;margin:0;color:#888;">' . $message . '</div>';
2176
- ?>
2177
- <script type="text/javascript">
2178
- jQuery(document).ready(function(){
2179
- jQuery('#wpfooter').append( jQuery('#wpbc-footer') );
2180
- });
2181
- </script>
2182
- <?php
2183
- }
 
 
 
 
 
 
 
 
 
 
2184
  }
2185
 
2186
 
@@ -2191,7 +2227,7 @@ $is_old = false;
2191
  ////////////////////////////////////////////////////////////////////////////////
2192
 
2193
  function get_wpbc_current_user_id() {
2194
- $user = wp_get_current_user();
2195
  return ( isset( $user->ID ) ? (int) $user->ID : 0 );
2196
  }
2197
 
@@ -3005,7 +3041,7 @@ function wpbc_mu_set_environment_for_owner_of_resource( $previous_active_user =
3005
  // Get the owner of this booking resource
3006
  $user_bk_id = apply_bk_filter('get_user_of_this_bk_resource', false, $bktype );
3007
 
3008
- $user = wp_get_current_user();
3009
  // // Check if its different user
3010
  // if ( ($user_bk_id !== false) && ($user->ID != $user_bk_id) ){ //FixIn: 7.0.1
3011
  // Get possible other active user settings
@@ -3799,3 +3835,34 @@ function wpbc_get_booking_region_cities_list(){
3799
  return $d;
3800
  }
3801
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  if ( ! empty( $booking_hash ) ) {
89
 
90
 
91
+ $my_booking_id_type = wpbc_hash__get_booking_id__resource_id( $booking_hash );
92
  //debuge($my_booking_id_type);
93
 
94
  if ( ! empty( $my_booking_id_type ) ) {
873
 
874
 
875
  function get_bk_current_user_id() {
876
+ $user = wpbc_get_current_user();
877
  return ( isset( $user->ID ) ? (int) $user->ID : 0 );
878
  }
879
 
1316
 
1317
  global $wpdb;
1318
 
 
1319
  if (
1320
+ ( ( ! empty( $wpdb->prefix ) ) && ( strpos( $tablename, $wpdb->prefix ) === false ) )
1321
+ || ( '_' == $wpdb->prefix ) //FixIn: 8.7.3.16
1322
  ) {
1323
  $tablename = $wpdb->prefix . $tablename;
1324
  }
1325
 
1326
+ if ( 0 ) {
1327
+ $sql_check_table = $wpdb->prepare( "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE (TABLE_SCHEMA = '{$wpdb->dbname}') AND (TABLE_NAME = %s);", $tablename );
1328
+
1329
+ $res = $wpdb->get_results( $sql_check_table );
1330
+
1331
+ return count( $res );
1332
+
1333
+ } else {
1334
+
1335
+ $sql_check_table = $wpdb->prepare("SHOW TABLES LIKE %s" , $tablename ); //FixIn: 5.4.3
1336
+
1337
+ $res = $wpdb->get_results( $sql_check_table );
1338
+
1339
+ return count( $res );
1340
+ }
1341
 
 
 
1342
  }
1343
 
1344
 
1351
  * @return 0|1
1352
  */
1353
  function wpbc_is_field_in_table_exists( $tablename , $fieldname) {
1354
+
1355
  global $wpdb;
 
 
1356
 
1357
+ if (
1358
+ ( ( ! empty( $wpdb->prefix ) ) && ( strpos( $tablename, $wpdb->prefix ) === false ) )
1359
+ || ( '_' == $wpdb->prefix ) //FixIn: 8.7.3.16
1360
+ ) {
1361
+ $tablename = $wpdb->prefix . $tablename;
1362
+ }
1363
 
1364
+ if ( 0 ) {
1365
+
1366
+ $sql_check_table = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='{$tablename}' AND TABLE_SCHEMA='{$wpdb->dbname}' ";
1367
+
1368
+ $res = $wpdb->get_results( $sql_check_table );
1369
+
1370
+ foreach ( $res as $fld ) {
1371
+ if ( $fieldname === $fld->COLUMN_NAME ) {
1372
+ return 1;
1373
+ }
1374
+ }
1375
+
1376
+ } else {
1377
+
1378
+ $sql_check_table = "SHOW COLUMNS FROM {$tablename}";
1379
+
1380
+ $res = $wpdb->get_results( $sql_check_table );
1381
+
1382
+ foreach ( $res as $fld ) {
1383
+ if ( $fld->Field == $fieldname ) {
1384
+ return 1;
1385
+ }
1386
+ }
1387
+ }
1388
 
1389
  return 0;
1390
  }
1865
  function wp_admin_bar_bookings_menu(){
1866
  global $wp_admin_bar;
1867
 
1868
+ $current_user = wpbc_get_current_user();
1869
 
1870
  $curr_user_role = get_bk_option( 'booking_user_role_booking' );
1871
  $level = 10;
2181
 
2182
 
2183
  function wpbc_show_booking_footer(){
2184
+
2185
+ $wpdev_copyright_adminpanel = get_bk_option( 'booking_wpdev_copyright_adminpanel' ); // check
2186
+
2187
+ $message = '';
2188
+
2189
+
2190
+
2191
+ if ( ( 'Off' !== $wpdev_copyright_adminpanel ) && ( ! wpbc_is_this_demo() ) ) {
2192
+
2193
+ /*
2194
+ $message .= '<a target="_blank" href="https://wpbookingcalendar.com/">Booking Calendar</a> ' . __('version' ,'booking') . ' ' . WP_BK_VERSION_NUM ;
2195
+
2196
+ $message .= ' | '. sprintf(__('Add your %s on %swordpress.org%s, if you enjoyed by this plugin.' ,'booking'),
2197
+ '<a target="_blank" href="http://goo.gl/tcrrpK" >&#9733;&#9733;&#9733;&#9733;&#9733;</a>',
2198
+ '<a target="_blank" href="http://goo.gl/tcrrpK" >',
2199
+ '</a>' );
2200
+ */
2201
+ $message .= sprintf( __( 'If you like %s please leave us a %s rating. A huge thank you in advance!', 'booking' )
2202
+ , '<strong>Booking Calendar</strong> ' . WP_BK_VERSION_NUM
2203
+ , '<a href="https://wordpress.org/support/plugin/booking/reviews/#new-post" target="_blank" title="' . esc_attr__( 'Thanks :)', 'booking' ) . '">'
2204
+ . '&#9733;&#9733;&#9733;&#9733;&#9733;'
2205
+ . '</a>'
2206
+ );
2207
+ }
2208
+
2209
+
2210
+ if ( ! empty( $message ) ) {
2211
+
2212
+ echo '<div id="wpbc-footer" style="position:absolute;bottom:40px;text-align:left;width:95%;font-size:0.9em;text-shadow:0 1px 0 #fff;margin:0;color:#888;">' . $message . '</div>';
2213
+
2214
+ ?><script type="text/javascript">
2215
+ jQuery( document ).ready( function (){
2216
+ jQuery( '#wpfooter' ).append( jQuery( '#wpbc-footer' ) );
2217
+ } );
2218
+ </script><?php
2219
+ }
2220
  }
2221
 
2222
 
2227
  ////////////////////////////////////////////////////////////////////////////////
2228
 
2229
  function get_wpbc_current_user_id() {
2230
+ $user = wpbc_get_current_user();
2231
  return ( isset( $user->ID ) ? (int) $user->ID : 0 );
2232
  }
2233
 
3041
  // Get the owner of this booking resource
3042
  $user_bk_id = apply_bk_filter('get_user_of_this_bk_resource', false, $bktype );
3043
 
3044
+ $user = wpbc_get_current_user();
3045
  // // Check if its different user
3046
  // if ( ($user_bk_id !== false) && ($user->ID != $user_bk_id) ){ //FixIn: 7.0.1
3047
  // Get possible other active user settings
3835
  return $d;
3836
  }
3837
 
3838
+
3839
+ /**
3840
+ * Get Current ID of user or get user ID of Forced log in user in Booking Calendar MultiUser version.
3841
+ *
3842
+ * @return int
3843
+ */
3844
+ function wpbc_get_current_user_id() { //FixIn: 9.2.4.1
3845
+
3846
+ if ( function_exists( 'wpbc_mu__wp_get_current_user' ) ) {
3847
+ $user = wpbc_mu__wp_get_current_user();
3848
+ $user_bk_id = $user->ID;
3849
+ } else {
3850
+ $user_bk_id = get_current_user_id();
3851
+ }
3852
+ return $user_bk_id;
3853
+ }
3854
+
3855
+ /**
3856
+ * Get Current User Object or get User object of Forced log in user in Booking Calendar MultiUser version.
3857
+ *
3858
+ * @return stdClass|WP_User|null
3859
+ */
3860
+ function wpbc_get_current_user() { //FixIn: 9.2.4.1
3861
+
3862
+ if ( function_exists( 'wpbc_mu__wp_get_current_user' ) ) {
3863
+ $user = wpbc_mu__wp_get_current_user();
3864
+ } else {
3865
+ $user = wp_get_current_user();
3866
+ }
3867
+ return $user;
3868
+ }
core/wpbc-include.php CHANGED
@@ -78,6 +78,10 @@ require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php' );
78
  //FixIn: 9.2.1
79
 
80
  if ( WPBC_EXIST_NEW_BOOKING_LISTING ) {
 
 
 
 
81
  require_once( WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php' );
82
  require_once( WPBC_PLUGIN_DIR . '/includes/_listing_css_js/listing_ui.php' );
83
  require_once( WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php' );
@@ -87,6 +91,10 @@ if ( WPBC_EXIST_NEW_BOOKING_LISTING ) {
87
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php' );
88
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php' );
89
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php' );
 
 
 
 
90
  }
91
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
92
 
78
  //FixIn: 9.2.1
79
 
80
  if ( WPBC_EXIST_NEW_BOOKING_LISTING ) {
81
+
82
+ require_once( WPBC_PLUGIN_DIR . '/includes/_booking_hash/booking_hash.php' ); //FixIn: 9.2.3.3
83
+
84
+ require_once( WPBC_PLUGIN_DIR . '/includes/_feedback/feedback_01.php'); //FixIn: 9.2.3.6
85
  require_once( WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php' );
86
  require_once( WPBC_PLUGIN_DIR . '/includes/_listing_css_js/listing_ui.php' );
87
  require_once( WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php' );
91
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php' );
92
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php' );
93
  require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php' );
94
+
95
+ if ( WPBC_EXIST_NEW_AVAILABILITY ) {
96
+ require_once( WPBC_PLUGIN_DIR . '/includes/page-availability/availability__page.php' );
97
+ }
98
  }
99
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
100
 
core/wpbc.php CHANGED
@@ -194,6 +194,17 @@ public function define_admin_menu(){
194
  )
195
  );
196
 
 
 
 
 
 
 
 
 
 
 
 
197
  self::$instance->admin_menu['new'] = new WPBC_Admin_Menus(
198
  'wpbc-new' , array (
199
  'in_menu' => 'wpbc'
@@ -203,7 +214,6 @@ public function define_admin_menu(){
203
  , 'user_role' => get_bk_option( 'booking_user_role_addbooking' )
204
  )
205
  );
206
-
207
  if ( class_exists( 'wpdev_bk_personal' ) )
208
  self::$instance->admin_menu['resources'] = new WPBC_Admin_Menus(
209
  'wpbc-resources' , array (
@@ -226,6 +236,43 @@ public function define_admin_menu(){
226
  )
227
  );
228
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  //FixIn: 8.0.1.6
230
  if ( ! class_exists( 'wpdev_bk_personal' ) ) {
231
 
194
  )
195
  );
196
 
197
+ if ( WPBC_EXIST_NEW_AVAILABILITY )
198
+ self::$instance->admin_menu['availability'] = new WPBC_Admin_Menus( //FixIn: 9.3.0.1
199
+ 'wpbc-availability' , array (
200
+ 'in_menu' => 'wpbc'
201
+ , 'menu_title' => ucwords( __('Availability', 'booking') )
202
+ , 'page_header' => ucwords( __('Availability','booking') )
203
+ , 'browser_header'=> ucwords( __('Availability', 'booking') ) . ' - ' . __('Booking Calendar', 'booking')
204
+ , 'user_role' => get_bk_option( 'booking_user_role_addbooking' )
205
+ )
206
+ );
207
+
208
  self::$instance->admin_menu['new'] = new WPBC_Admin_Menus(
209
  'wpbc-new' , array (
210
  'in_menu' => 'wpbc'
214
  , 'user_role' => get_bk_option( 'booking_user_role_addbooking' )
215
  )
216
  );
 
217
  if ( class_exists( 'wpdev_bk_personal' ) )
218
  self::$instance->admin_menu['resources'] = new WPBC_Admin_Menus(
219
  'wpbc-resources' , array (
236
  )
237
  );
238
 
239
+
240
+
241
+ if ( class_exists( 'wpdev_bk_multiuser' ) ) {
242
+
243
+ // Is current user suer booking admin and if this user was simulated log in
244
+ $real_current_user_id = get_current_user_id();
245
+ $is_user_super_admin = apply_bk_filter( 'is_user_super_admin', $real_current_user_id );
246
+
247
+ if ( $is_user_super_admin ) {
248
+
249
+ // Is user was simulated log in
250
+ $simulate_user_id = intval( get_option( 'booking_simulate_login_as_user' ) );
251
+
252
+ if ( ( ! empty( $simulate_user_id ) ) && ( $simulate_user_id > 0 ) ) {
253
+
254
+ $custom_user = get_userdata( $simulate_user_id );
255
+
256
+ self::$instance->admin_menu['log_off'] = new WPBC_Admin_Menus(
257
+ 'wpbc-log-off' , array (
258
+ 'in_menu' => 'wpbc'
259
+ //, 'menu_title' => __( 'Log Out Simulated Login as', 'booking' ) . ' "' . $custom_user->display_name . '"'
260
+ , 'menu_title' => '<span style="color:#e7dd8c;" title="'
261
+ . esc_attr( __( 'Log out as regular user and login as super booking admin user', 'booking' ) )
262
+ .'">'
263
+ .__( 'Back to Super Admin', 'booking' )
264
+ .'<span>'
265
+ , 'page_header' => ucwords( sprintf( __( 'Need even more functionality? Check %s higher versions %s','booking'), '', '' ) )
266
+ , 'browser_header'=> 'Log In as Super Admin'
267
+ , 'user_role' => get_bk_option( 'booking_user_role_booking' )
268
+ )
269
+ );
270
+ }
271
+ }
272
+ }
273
+
274
+
275
+
276
  //FixIn: 8.0.1.6
277
  if ( ! class_exists( 'wpdev_bk_personal' ) ) {
278
 
css/admin.css CHANGED
@@ -11,7 +11,8 @@
11
  */
12
 
13
  /* Top level menu for WPBC */
14
- #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-child(5) a {
 
15
  border-top: 1px solid #444;
16
  padding-top: 10px;
17
  margin-top: 6px;
11
  */
12
 
13
  /* Top level menu for WPBC */
14
+ /*#adminmenu #toplevel_page_wpbc .wp-submenu li:nth-child(5) a {*/
15
+ #adminmenu #toplevel_page_wpbc .wp-submenu li:nth-last-child(-n+1) a {
16
  border-top: 1px solid #444;
17
  padding-top: 10px;
18
  margin-top: 6px;
includes/_booking_hash/booking_hash.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php /**
2
+ * @version 1.0
3
+ * @description Booking Hash Functions
4
+ * @category Booking Hash
5
+ * @author wpdevelop
6
+ *
7
+ * @web-site http://oplugins.com/
8
+ * @email info@oplugins.com
9
+ *
10
+ * @modified 2022-08-05
11
+ */
12
+
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+ // H A S H //FixIn: 9.2.3.3
16
+
17
+ /**
18
+ * Get booking ID and resource ID by booking HASH
19
+ *
20
+ * @param $booking_hash
21
+ *
22
+ * @return array|false
23
+ */
24
+ function wpbc_hash__get_booking_id__resource_id( $booking_hash ) {
25
+
26
+ if ( '' == $booking_hash ) {
27
+ return false;
28
+ }
29
+ global $wpdb;
30
+
31
+ if ( class_exists( 'wpdev_bk_personal' ) ) {
32
+
33
+ $sql = $wpdb->prepare( "SELECT booking_id as id, booking_type as type FROM {$wpdb->prefix}booking as bk WHERE bk.hash = %s", $booking_hash );
34
+
35
+ $res = $wpdb->get_results( $sql );
36
+
37
+ if ( ( ! empty( $res ) ) && ( is_array( $res ) ) && ( isset( $res[0]->id ) ) && ( isset( $res[0]->type ) ) ) { //FixIn: 8.1.2.13
38
+ return array( $res[0]->id, $res[0]->type );
39
+ }
40
+ } else {
41
+
42
+ $sql = $wpdb->prepare( "SELECT booking_id as id FROM {$wpdb->prefix}booking as bk WHERE bk.hash = %s", $booking_hash );
43
+
44
+ $res = $wpdb->get_results( $sql );
45
+
46
+ if ( ( ! empty( $res ) ) && ( is_array( $res ) ) && ( isset( $res[0]->id ) ) ) { //FixIn: 8.1.2.13
47
+ return array( $res[0]->id, 1 );
48
+ }
49
+ }
50
+
51
+ return false;
52
+ }
53
+
54
+
55
+ /**
56
+ * Get booking HASH and resource ID
57
+ * by booking ID
58
+ *
59
+ * @param $booking_id
60
+ *
61
+ * @return array|false
62
+ */
63
+ function wpbc_hash__get_booking_hash__resource_id( $booking_id ) {
64
+
65
+ if ( '' == $booking_id ) {
66
+ return false;
67
+ }
68
+ global $wpdb;
69
+
70
+ if ( class_exists( 'wpdev_bk_personal' ) ) {
71
+
72
+ $sql = $wpdb->prepare( "SELECT hash, booking_type as type FROM {$wpdb->prefix}booking as bk WHERE bk.booking_id = %d", $booking_id );
73
+
74
+ $res = $wpdb->get_results( $sql );
75
+
76
+ if ( ( ! empty( $res ) ) && ( is_array( $res ) ) && ( isset( $res[0]->hash ) ) && ( isset( $res[0]->type ) ) ) {
77
+ return array( $res[0]->hash, $res[0]->type );
78
+ }
79
+ } else {
80
+
81
+ $sql = $wpdb->prepare( "SELECT hash FROM {$wpdb->prefix}booking as bk WHERE bk.booking_id = %d", $booking_id );
82
+
83
+ $res = $wpdb->get_results( $sql );
84
+
85
+ if ( ( ! empty( $res ) ) && ( is_array( $res ) ) && ( isset( $res[0]->hash ) ) ) {
86
+ return array( $res[0]->hash, 1 );
87
+ }
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+
94
+ /**
95
+ * Run after creation/modification of booking in post request
96
+ *
97
+ * @param $booking_id
98
+ * @param $bktype
99
+ *
100
+ * @return void
101
+ */
102
+ function wpbc_hash__update_booking_hash( $booking_id, $bktype = '1' ) {
103
+ global $wpdb;
104
+
105
+ $update_sql = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking AS bk SET bk.hash = MD5(%s) WHERE bk.booking_id = %d"
106
+ , time() . '_' . rand( 1000, 1000000 )
107
+ , $booking_id
108
+ );
109
+ if ( false === $wpdb->query( $update_sql ) ) {
110
+ ?><script type="text/javascript"> document.getElementById( 'submiting<?php echo $bktype; ?>' ).innerHTML = '<div style=&quot;height:20px;width:100%;text-align:center;margin:15px auto;&quot;><?php debuge_error( 'Error during updating hash in BD', __FILE__, __LINE__ ); ?></div>'; </script> <?php
111
+ die();
112
+ /*
113
+ show_debug( 'error__wpbc_hash__update_booking_hash',
114
+ strip_tags( wpbc_get_debuge_error( 'Error during updating hash in BD', __FILE__, __LINE__ ) )
115
+ , $update_sql
116
+ );
117
+ die;
118
+ */
119
+ }
120
+ }
121
+
122
+
123
+ /**
124
+ * Get JavaScript for start dates selection in calendar after 1.5 second
125
+ *
126
+ * @param array $to_select__dates_sql_arr
127
+ * @param int $resource_id
128
+ *
129
+ * @return string
130
+ */
131
+ function wpbc_get_dates_selection_js_code( $to_select__dates_sql_arr, $resource_id ){
132
+
133
+ $dates_selection_arr = array();
134
+
135
+ foreach ( $to_select__dates_sql_arr as $date_time ) {
136
+
137
+ $date_time = trim( $date_time );
138
+ $date_time = explode( ' ', $date_time );
139
+ $date_only = explode( '-', $date_time[0] );
140
+
141
+ $dates_selection_arr[] = 'new Array( ' . $date_only[0] . ', ' . $date_only[1] . ', ' . $date_only[2] . ' ) ';
142
+ }
143
+ $dates_selection = 'new Array( ' . implode( ', ', $dates_selection_arr ) . ' ) ';
144
+
145
+ $dates_selection_js_code = '<script type="text/javascript">';
146
+ $dates_selection_js_code .= 'jQuery(document).ready(function(){';
147
+ $dates_selection_js_code .= ' timeout_DSwindow = setTimeout( "wpbc_select_days_in_calendar(' . $resource_id . ', ' . $dates_selection . ' )", 1500);';
148
+ $dates_selection_js_code .= '});';
149
+ $dates_selection_js_code .= '</script>';
150
+
151
+ return $dates_selection_js_code;
152
+ }
includes/_feedback/feedback_01.css ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wpbc_modal__feedback_01__blur{
2
+ position:absolute;
3
+ top:0;
4
+ left:0;
5
+ width:100%;
6
+ height:100%;
7
+ filter: blur(3px);
8
+ }
9
+ .wpbc_modal__feedback_01__section {
10
+ margin-top: 30px;
11
+ }
12
+ .wpbc_modal__feedback_01__section .modal-content{
13
+ border-bottom-right-radius: 3px;
14
+ border-bottom-left-radius: 3px;
15
+ }
16
+ .wpbc_modal__feedback_01__section .modal-header{
17
+ border-top-right-radius: 3px;
18
+ border-top-left-radius: 3px;
19
+ }
20
+ .wpbc_modal__feedback_01__section .modal-body h4 {
21
+ font-size:16px;
22
+ }
23
+ .wpdevelop .modal-footer.modal-footer-inside {
24
+ padding:10px 0 0;
25
+ margin-top:10px;
26
+
27
+ display: flex;
28
+ flex-flow: row wrap;
29
+ justify-content: flex-start;
30
+ align-items: center;
31
+ }
32
+ .wpdevelop .modal-footer.modal-footer-inside .wpbc_btn_as_link,
33
+ .wpdevelop .modal-footer.modal-footer-inside .wpbc_btn_as_link:hover{
34
+ font-size: 12px;
35
+ border-bottom: 1px dashed;
36
+ text-decoration: none;
37
+ margin-right:1em;
38
+ }
39
+ .wpdevelop .modal-footer.modal-footer-inside .button:last-child{
40
+ margin-left:auto;
41
+ }
42
+
43
+ .wpbc_feedback_01__content_rating {
44
+ text-align: center;
45
+ }
46
+
47
+ .wpbc_feedback_01__content_rating_stars {
48
+ padding-top: 20px;
49
+ padding-bottom: 15px;
50
+ }
51
+ .wpbc_feedback_01__content_rating a:focus{
52
+ outline: none;
53
+ border: none;
54
+ box-shadow: none;
55
+ }
56
+ .wpbc_feedback_01__content_rating a .wpbc-bi-star-fill,
57
+ .wpbc_feedback_01__content_rating a .wpbc-bi-star{
58
+ padding:4px;
59
+ vertical-align: middle;
60
+ }
61
+ .wpbc_feedback_01__content_rating a .wpbc-bi-star{
62
+ font-size: 26px;
63
+ }
64
+ .wpbc_feedback_01__content_rating a .wpbc-bi-star-fill{
65
+ font-size: 26px;
66
+ }
67
+ .wpbc_feedback_01__content_rating a .wpbc_icn_star::before,
68
+ .wpbc_feedback_01__content_rating a .wpbc_icn_star_outline::before {
69
+ /*font-size: 26px;*/
70
+ /*padding:2px;*/
71
+ }
72
+
73
+
74
+ .wpbc_modal__feedback_01__steps {
75
+ display: none;
76
+ }
77
+ .wpbc_modal__feedback_01__step_1 {
78
+ display: block;
79
+ }
includes/_feedback/feedback_01.js ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Open feedback Modal window
3
+ */
4
+ function wpbc_open_feedback_modal(){
5
+ if ( 'function' === typeof( jQuery('#wpbc_modal__feedback_01__section').wpbc_my_modal ) ) {
6
+
7
+ // Insert Feedback modal after 'wpbc-admin-page' section, for ability to blur this content
8
+ var wpbc_modal__feedback_01 = jQuery( '#wpbc_modal__feedback_01__section_mover' ).detach();
9
+ wpbc_modal__feedback_01.appendTo( '#wpbc-admin-page' );
10
+
11
+ // Add blur
12
+ jQuery( '.wpbc_admin_page,.wpbc_admin_message,.wpbc_header' ).css( { filter: 'blur(3px)' } );
13
+
14
+ // Show Modal
15
+ jQuery('#wpbc_modal__feedback_01__section').wpbc_my_modal('show');
16
+ } else {
17
+ console.log( 'Warning! wpbc_my_modal module has not found. Please, recheck about any conflicts by deactivating other plugins.');
18
+ }
19
+
20
+ }
21
+
22
+ // Remove blur, after closing modal
23
+ jQuery('#wpbc_modal__feedback_01__section').on('hide.wpbc.modal', function (event) {
24
+ //var modal = jQuery(this);
25
+ jQuery( '.wpbc_admin_page,.wpbc_admin_message,.wpbc_header' ).css( {filter: 'none'} );
26
+ })
27
+
28
+
29
+ /**
30
+ * Click on Stars to rate
31
+ *
32
+ * @param int star_num_over - star number
33
+ * @param string is_over - mouse action 'click' | 'over' | 'out'
34
+ */
35
+ function wpbc_feedback_01__over_star( star_num_over , is_over ){
36
+
37
+ var star_fill = 'wpbc-bi-star-fill'; //'wpbc_icn_star';
38
+ var star_outline = 'wpbc-bi-star'; //'wpbc_icn_star_outline';
39
+
40
+ if ( 'click' == is_over ){
41
+ jQuery( '.wpbc_mouseover_star_selected' ).removeClass( 'wpbc_mouseover_star_selected' );
42
+ jQuery( '#wpbc_modal__feedback_01__button_next__step_1').removeClass('disabled');
43
+ }
44
+ if ( 'over' == is_over ){
45
+ jQuery( '.wpbc_mouseover_star_selected' ).removeClass( star_fill ).addClass( star_outline );
46
+ }
47
+
48
+ for ( var star_num = 1; star_num <= star_num_over; star_num++ ){
49
+
50
+ if ( 'click' == is_over ){
51
+
52
+ jQuery( '#wpbc_feedback_01_star_' + star_num + ' i' ).removeClass( star_outline ).addClass( star_fill+ ' wpbc_mouseover_star_selected' );
53
+ }
54
+ if ( 'over' == is_over ){
55
+ jQuery( '#wpbc_feedback_01_star_' + star_num + ' i' ).removeClass( star_outline ).addClass( star_fill );
56
+ }
57
+ if ( 'out' == is_over ){
58
+ jQuery( '#wpbc_feedback_01_star_' + star_num + ' i' ).removeClass( star_fill ).addClass( star_outline );
59
+ }
60
+ }
61
+ if ( 'out' == is_over ){
62
+ jQuery( '.wpbc_mouseover_star_selected' ).removeClass( star_outline ).addClass( star_fill );
63
+ }
64
+
65
+ }
66
+
67
+
68
+ /**
69
+ * Click on Next button to show next section.
70
+ *
71
+ * @param _this
72
+ * @param go_to_this_step 'class' of section to show
73
+ * @returns {boolean}
74
+ */
75
+ function wpbc_ajx_booking__ui_click__send_feedback_01(_this, go_to_this_step = ''){
76
+
77
+ if ( jQuery( _this ).hasClass( 'disabled' ) ){
78
+ return false;
79
+ }
80
+
81
+ jQuery( '.wpbc_modal__feedback_01__steps').hide();
82
+
83
+ if ( '' != go_to_this_step ){
84
+ jQuery( go_to_this_step ).show();
85
+ return;
86
+ }
87
+
88
+ var stars_selected = jQuery( '.wpbc_mouseover_star_selected').length;
89
+
90
+
91
+
92
+ switch (stars_selected) {
93
+ case 1:
94
+ case 2:
95
+ jQuery( '.wpbc_modal__feedback_01__step_2').show();
96
+ break;
97
+ case 3:
98
+ case 4:
99
+ jQuery( '.wpbc_modal__feedback_01__step_4').show();
100
+ break;
101
+ case 5:
102
+ jQuery( '.wpbc_modal__feedback_01__step_6').show();
103
+ break;
104
+ default:
105
+
106
+ }
107
+
108
+ return;
109
+
110
+ var visible_step = jQuery( '.wpbc_modal__feedback_01__steps:visible');
111
+ jQuery( '.wpbc_modal__feedback_01__steps').hide();
112
+ visible_step.next().show();
113
+ }
114
+
115
+ function wpbc_ajx_booking__ui_click__close_feedback_01(){
116
+ // Close modal
117
+ if ( 'function' === typeof( jQuery('#wpbc_modal__feedback_01__section').wpbc_my_modal ) ){
118
+ jQuery( '#wpbc_modal__feedback_01__section' ).wpbc_my_modal( 'hide' );
119
+ }
120
+ }
121
+
122
+
123
+ // Ajax Sending:
124
+
125
+ /**
126
+ * Click on Remind later link
127
+ * Send ajax request for opening feedback in few days
128
+ */
129
+ function wpbc_ajx_booking__ui_click__feedback_01_remind_later(){
130
+
131
+
132
+ wpbc_ajx_booking_ajax_action_request( {
133
+ 'booking_action' : 'feedback_01',
134
+ 'feedback_stars' : jQuery( '.wpbc_mouseover_star_selected').length,
135
+ 'feedback__note' : 'remind_later',
136
+ 'ui_clicked_element_id': 'wpbc_modal__feedback_01__button_next__step_1'
137
+ } );
138
+ wpbc_button_enable_loading_icon( jQuery( '#wpbc_modal__feedback_01__button_next__step_1' ).get( 0 ) );
139
+
140
+ wpbc_ajx_booking__ui_click__close_feedback_01(); // Close modal
141
+ }
142
+
143
+
144
+ /**
145
+ * Click on Done | Submit button to send feedback
146
+ *
147
+ * @param _this
148
+ * @param go_to_this_step 'class' of last section
149
+ */
150
+ function wpbc_ajx_booking__ui_click__submit_feedback_01( _this, go_to_this_step){
151
+
152
+ if ( jQuery( _this ).hasClass( 'disabled' ) ){
153
+ return false;
154
+ }
155
+
156
+ var stars_selected = jQuery( '.wpbc_mouseover_star_selected').length;
157
+ var feedback__note = '';
158
+
159
+ switch ( go_to_this_step ) {
160
+
161
+ case '.wpbc_modal__feedback_01__step_3':
162
+ feedback__note = jQuery( '#wpbc_modal__feedback_01__reason_of_action__step_2').val();
163
+ break;
164
+
165
+ case '.wpbc_modal__feedback_01__step_5':
166
+ feedback__note = jQuery( '#wpbc_modal__feedback_01__reason_of_action__step_4').val();
167
+ break;
168
+
169
+ case '.wpbc_modal__feedback_01__step_7':
170
+ feedback__note = jQuery( '#wpbc_modal__feedback_01__reason_of_action__step_7').val();
171
+ break;
172
+
173
+ default:
174
+
175
+ }
176
+
177
+ // Send Ajax
178
+ wpbc_ajx_booking_ajax_action_request( {
179
+ 'booking_action' : 'feedback_01',
180
+ 'feedback_stars' : stars_selected,
181
+ 'feedback__note' : feedback__note,
182
+ 'ui_clicked_element_id': jQuery( _this ).attr( 'id' )
183
+ } );
184
+ wpbc_button_enable_loading_icon( jQuery( _this ).get( 0 ) );
185
+
186
+ //wpbc_ajx_booking__ui_click__close_feedback_01(); // Close modal
187
+ }
includes/_feedback/feedback_01.php ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'WPBC_FEEDBACK_TIMEOUT' ) ) { define( 'WPBC_FEEDBACK_TIMEOUT', '+2 days' ); }
4
+
5
+ class WPBC_Feedback_01 {
6
+
7
+ /**
8
+ * Define HOOKs for loading CSS and JavaScript files
9
+ */
10
+ public function init_load_css_js() {
11
+ // JS & CSS
12
+ add_action( 'wpbc_enqueue_js_files', array( $this, 'js_load_files' ), 50 );
13
+ add_action( 'wpbc_enqueue_css_files', array( $this, 'enqueue_css_files' ), 50 );
14
+
15
+ add_action( 'wpbc_hook_settings_page_footer', array( $this, 'wpbc_hidden_template__content_for_feedback_01' ), 50 );
16
+ }
17
+
18
+ /** JSS */
19
+ public function js_load_files( $where_to_load ) {
20
+
21
+ $in_footer = true;
22
+
23
+ if ( ( is_admin() ) && ( in_array( $where_to_load, array( 'admin', 'both' ) ) ) ) {
24
+
25
+ wp_enqueue_script( 'wpbc-feedback_01', trailingslashit( plugins_url( '', __FILE__ ) ) . 'feedback_01.js' /* wpbc_plugin_url( '/_out/js/codemirror.js' ) */
26
+ , array( 'wpbc-global-vars' ), '1.1', $in_footer );
27
+ /**
28
+ wp_localize_script( 'wpbc-global-vars', 'wpbc_live_request_obj'
29
+ , array(
30
+ 'contacts' => '',
31
+ 'reminders' => ''
32
+ )
33
+ );
34
+ */
35
+ }
36
+ }
37
+
38
+ /** CSS */
39
+ public function enqueue_css_files( $where_to_load ) {
40
+
41
+ if ( ( is_admin() ) && ( in_array( $where_to_load, array( 'admin', 'both' ) ) ) ) {
42
+
43
+ wp_enqueue_style( 'wpbc-feedback_01', trailingslashit( plugins_url( '', __FILE__ ) ) . 'feedback_01.css', array(), WP_BK_VERSION_NUM );
44
+ }
45
+ }
46
+
47
+ /** Feedback Layout - Modal Window structure */
48
+ function wpbc_hidden_template__content_for_feedback_01( $page ) {
49
+
50
+ if ('wpbc-ajx_booking' != $page ){
51
+ return false;
52
+ }
53
+
54
+ if ( wpbc_is__feedback_01__timeout_need_to_show() ) {
55
+ update_option( 'booking_feedback_01', '' );
56
+ } else {
57
+ return false;
58
+ }
59
+
60
+ ?><div id="wpbc_modal__feedback_01__section_mover">
61
+ <span class="wpdevelop">
62
+ <div id="wpbc_modal__feedback_01__section" class="modal wpbc_popup_modal wpbc_modal__feedback_01__section" tabindex="-1" role="dialog">
63
+ <div class="modal-dialog">
64
+ <div class="modal-content">
65
+ <div class="modal-header">
66
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
67
+ <h4 class="modal-title"><?php _e( 'Feedback' ); ?></h4>
68
+ </div>
69
+ <div class="modal-body">
70
+ <?php
71
+
72
+ $this->wpbc_hidden_template__content_for_feedback_01_steps();
73
+
74
+ ?>
75
+ </div>
76
+ <div class="modal-footer" style="display: none">
77
+
78
+ <a href="javascript:void(0)" class="button button-secondary" data-dismiss="modal" style="float: left;">Do not show anymore</a>
79
+ <a href="javascript:void(0)" class="button button-secondary" data-dismiss="modal" style="float: left;margin-left: 1em;">Remind me later</a>
80
+
81
+ <a id="wpbc_modal__feedback_01__button_send" class="button button-primary"
82
+ onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01();" href="javascript:void(0);"
83
+ ><?php _e('Next' ,'booking'); ?> 1/3</a>
84
+ </div>
85
+ </div><!-- /.modal-content -->
86
+ </div><!-- /.modal-dialog -->
87
+ </div><!-- /.modal -->
88
+ </span>
89
+ </div><?php
90
+
91
+ ?><script type="text/javascript">
92
+ jQuery(document).ready(function(){
93
+ setTimeout(function() {
94
+ wpbc_open_feedback_modal();
95
+ }, 2000);
96
+ });
97
+ </script><?php
98
+ }
99
+
100
+
101
+
102
+ /** Feedback Steps Content */
103
+ function wpbc_hidden_template__content_for_feedback_01_steps(){
104
+
105
+ /* S T A R S */ ?>
106
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_1" >
107
+ <h4 class="modal-title"><?php printf(__('Do you like the new %sBooking Listing%s panel?' ,'booking'),'<strong>','</strong>'); ?></h4>
108
+ <div class="wpbc_feedback_01__content_rating">
109
+ <div class="wpbc_feedback_01__content_rating_stars"><?php
110
+ for( $i = 1; $i < 6; $i++) {
111
+ ?><a id="wpbc_feedback_01_star_<?php echo $i; ?>"
112
+ href="javascript:void(0)"
113
+ onmouseover="javascript:wpbc_feedback_01__over_star(<?php echo $i; ?>, 'over');"
114
+ onmouseout="javascript:wpbc_feedback_01__over_star(<?php echo $i; ?>, 'out');"
115
+ onclick="javascript:wpbc_feedback_01__over_star(<?php echo $i; ?>, 'click');"
116
+ data-original-title="<?php echo esc_attr( sprintf( __('Rate with %s star', 'booking'), $i ) ); ?>"
117
+ class="tooltip_top "><i class="menu_icon icon-1x wpbc-bi-star 0wpbc_icn_star_outline"></i></a><?php
118
+ }
119
+ ?>
120
+ </div>
121
+ </div>
122
+ <div class="modal-footer modal-footer-inside">
123
+ <a href="javascript:void(0)" class="wpbc_btn_as_link" data-dismiss="modal"><?php _e('Do not show anymore' ,'booking'); ?></a>
124
+ <a href="javascript:void(0)" class="wpbc_btn_as_link" onclick="javascript: wpbc_ajx_booking__ui_click__feedback_01_remind_later();"><?php _e('Remind me later' ,'booking'); ?></a>
125
+ <a id="wpbc_modal__feedback_01__button_next__step_1" class="button button-primary wpbc_btn_next disabled"
126
+ onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01(this);" href="javascript:void(0);"
127
+ ><?php _e('Next' ,'booking'); ?> <span>1/3</span></a>
128
+ </div>
129
+ </div>
130
+
131
+ <?php // Star 1 - 2 Reason ?>
132
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_2" style="display:none;">
133
+ <h5 class="modal-title"><?php printf(__('Sorry to hear that... %s' ,'booking')
134
+ ,'<i class="menu_icon icon-1x wpbc-bi-emoji-frown 0wpbc_icn_sentiment_very_dissatisfied" style="color:#ca930b;"></i>');
135
+ ?></h5><br>
136
+ <h4 class="modal-title"><?php _e('How can we improve it for you?' ,'booking'); ?></h4>
137
+ <textarea id="wpbc_modal__feedback_01__reason_of_action__step_2" name="wpbc_modal__feedback_01__reason_of_action__step_2"
138
+ style="width:100%;" cols="57" rows="3" autocomplete="off"
139
+ onkeyup="javascript:if(jQuery( this ).val() != '' ){ jQuery( '#wpbc_modal__feedback_01__button_next__step_2').removeClass('disabled'); }"
140
+ ></textarea>
141
+ <div class="modal-footer modal-footer-inside">
142
+
143
+ <a onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01( this, '.wpbc_modal__feedback_01__step_1' );" href="javascript:void(0);"
144
+ class="button button-secondary"><?php _e('Back' ,'booking'); ?></a>
145
+
146
+ <a id="wpbc_modal__feedback_01__button_next__step_2" class="button button-primary wpbc_btn_next"
147
+ onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01( this, '.wpbc_modal__feedback_01__step_3');" href="javascript:void(0);"
148
+ ><?php _e('Next' ,'booking'); ?> <span>2/3</span></a>
149
+ </div>
150
+ </div>
151
+
152
+ <?php /* Star 1 - 2 Done */ ?>
153
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_3" style="display:none;">
154
+ <h5 class="modal-title"><?php printf(__('Thank you for your feedback! %s' ,'booking')
155
+ ,'<i class="menu_icon icon-1x wpbc-bi-hand-thumbs-up" style="color: #dd2e44;"></i>' );
156
+ ?></h5><br>
157
+ <h4 class="modal-title"><?php printf(__('You\'re helping us do a better job. :) We appreciate that!' ,'booking')
158
+ ,'<i class="menu_icon icon-1x wpbc-bi-hand-thumbs-up" style="color: #dd2e44;"></i>' );
159
+ ?></h4><br>
160
+ <h4 class="modal-title"><?php printf(__('Thanks for being with us! %s' ,'booking')
161
+ ,'<i class="menu_icon icon-1x wpbc-bi-heart-fill 0wpbc_icn_favorite" style="color: #dd2e44;"></i>' );
162
+ ?></h4>
163
+ <div class="modal-footer modal-footer-inside ui_element">
164
+ <a class="button button-primary wpbc_ui_button wpbc_ui_button_primary" id="wpbc_modal__feedback_01__submit_1_2"
165
+ onclick="javascript: wpbc_ajx_booking__ui_click__submit_feedback_01( this, '.wpbc_modal__feedback_01__step_3');" href="javascript:void(0);"
166
+ ><span><?php _e('Done' ,'booking'); ?></span>&nbsp; <i class="menu_icon icon-1x wpbc_icn_done_all"></i></a>
167
+ </div>
168
+ </div>
169
+
170
+ <?php /* Star 3 - 4 Reason */ ?>
171
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_4" style="display:none;">
172
+ <h4 class="modal-title"><?php _e('What functionality important to you are missing in the plugin?'); ?></h4><br>
173
+ <textarea id="wpbc_modal__feedback_01__reason_of_action__step_4" name="wpbc_modal__feedback_01__reason_of_action__step_4"
174
+ style="width:100%;" cols="57" rows="3" autocomplete="off"
175
+ onkeyup="javascript:if(jQuery( this ).val() != '' ){ jQuery( '#wpbc_modal__feedback_01__button_next__step_4').removeClass('disabled'); }"
176
+ ></textarea>
177
+ <label class="help-block"><?php printf(__('It\'s an %soptional question%s. But, we\'d love to hear your thoughts!' ,'booking'),'<b>','</b>');?></label>
178
+ <div class="modal-footer modal-footer-inside">
179
+
180
+ <a onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01( this, '.wpbc_modal__feedback_01__step_1' );" href="javascript:void(0);"
181
+ class="button button-secondary"><?php _e('Back' ,'booking'); ?></a>
182
+
183
+ <a id="wpbc_modal__feedback_01__button_next__step_4" class="button button-primary wpbc_btn_next "
184
+ onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01( this, '.wpbc_modal__feedback_01__step_5');" href="javascript:void(0);"
185
+ ><?php _e('Next' ,'booking'); ?> <span>2/3</span></a>
186
+ </div>
187
+ </div>
188
+
189
+ <?php /* Star 3 - 4 Done */ ?>
190
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_5" style="display:none;">
191
+ <h4 class="modal-title"><?php printf(__('%sFantastic!%s Thanks for taking the time! %s' ,'booking')
192
+ ,'<strong>','</strong>'
193
+ ,'<i class="menu_icon icon-1x wpbc-bi-heart-fill 0wpbc_icn_favorite" style="color: #dd2e44;"></i>' );
194
+ ?></h4><br>
195
+ <h4 class="modal-title"><?php _e('Your answers will help us to make the plugin better for you!' ,'booking'); ?></h4><br>
196
+ <h4 class="modal-title"><?php _e('Thanks for sharing your feedback! Have a great day :)' ,'booking'); ?></h4>
197
+ <div class="modal-footer modal-footer-inside ui_element">
198
+ <a class="button button-primary wpbc_ui_button wpbc_ui_button_primary" id="wpbc_modal__feedback_01__submit_3_4"
199
+ onclick="javascript: wpbc_ajx_booking__ui_click__submit_feedback_01( this, '.wpbc_modal__feedback_01__step_5');" href="javascript:void(0);"
200
+ ><span><?php _e('Done' ,'booking'); ?></span>&nbsp; <i class="menu_icon icon-1x wpbc_icn_done_all"></i></a>
201
+ </div>
202
+ </div>
203
+
204
+ <?php /* Star 5 Review */ ?>
205
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_6" style="display:none;">
206
+ <h4 class="modal-title"><?php printf(__('%sFantastic!%s Would you like to leave a small review about the product? %s' ,'booking')
207
+ ,'<strong>','</strong>'
208
+ ,'<i class="menu_icon icon-1x wpbc-bi-heart-fill" style="color: #dd2e44;"></i>'
209
+ ,'<i class="menu_icon icon-1x wpbc-bi-balloon-heart" style="color: #dd2e44;"></i>'
210
+ ,'<i class="menu_icon icon-1x wpbc-bi-balloon-heart" style="color: #dd2e44;"></i>'
211
+ );
212
+ ?></h4><br>
213
+ <h4 class="modal-title"><?php printf(__('It will support us to include more features in the plugin. %s%s%s' ,'booking')
214
+ ,'<i class="menu_icon icon-1x wpbc-bi-balloon-heart" style="color: #dd2e44;"></i>'
215
+ ,'<i class="menu_icon icon-1x wpbc-bi-balloon-heart" style="color: #dd2e44;"></i>'
216
+ ,'<i class="menu_icon icon-1x wpbc-bi-balloon-heart" style="color: #dd2e44;"></i>'
217
+ ); ?></h4><br>
218
+ <textarea id="wpbc_modal__feedback_01__reason_of_action__step_7" name="wpbc_modal__feedback_01__reason_of_action__step_7"
219
+ style="width:100%;" cols="57" rows="3" autocomplete="off"
220
+ onkeyup="javascript:if(jQuery( this ).val() != '' ){ jQuery( '#wpbc_modal__feedback_01__button_next__step_7').removeClass('disabled'); }"
221
+ placeholder="<?php esc_attr_e('What\'s the main benefit from Booking Calendar for you?'); ?>"
222
+ ></textarea>
223
+ <?php //echo 'How it helps you or your business? Is it ease of use? Do you like the Product design ? Value for money...' ; ?>
224
+
225
+ <div class="modal-footer modal-footer-inside ui_element" style="justify-content: flex-end;">
226
+ <a onclick="javascript: wpbc_ajx_booking__ui_click__submit_feedback_01( this, '.wpbc_modal__feedback_01__step_7');" href="javascript:void(0);"
227
+ class="button button-secondary wpbc_ui_button" id="wpbc_modal__feedback_01__submit_5_none"><?php _e('No, sorry - not this time.' ,'booking');
228
+ ?> <i class="menu_icon icon-1x wpbc-bi-emoji-neutral"></i></a>
229
+
230
+ <a id="wpbc_modal__feedback_01__button_next__step_6" class="button button-primary wpbc_btn_next "
231
+ onclick="javascript: wpbc_ajx_booking__ui_click__send_feedback_01( this, '.wpbc_modal__feedback_01__step_7');" href="javascript:void(0);"
232
+ ><?php _e('Yes! Sure, I\'d love to help!' ,'booking');
233
+ ?> <i class="menu_icon icon-1x wpbc-bi-emoji-smile"></i></a>
234
+ </div>
235
+
236
+ </div>
237
+
238
+ <?php /* Star 5 Done */ ?>
239
+ <div class="wpbc_modal__feedback_01__steps wpbc_modal__feedback_01__step_7" style="display:none;">
240
+ <h4 class="modal-title"><?php printf(__('%sPerfect!%s Thanks for taking the time! %s' ,'booking')
241
+ ,'<strong>','</strong>'
242
+ ,'<i class="menu_icon icon-1x wpbc-bi-heart-fill 0wpbc_icn_favorite" style="color: #dd2e44;"></i>' );
243
+ ?></h4><br>
244
+ <h4 class="modal-title"><?php _e('Your answers will help us to make the plugin better for you!' ,'booking'); ?></h4><br>
245
+ <h4 class="modal-title"><?php _e('Thanks for sharing your feedback! Have a great day :)' ,'booking'); ?></h4>
246
+ <div class="modal-footer modal-footer-inside ui_element">
247
+ <a class="button button-primary wpbc_ui_button wpbc_ui_button_primary" id="wpbc_modal__feedback_01__submit_5"
248
+ onclick="javascript: wpbc_ajx_booking__ui_click__submit_feedback_01( this, '.wpbc_modal__feedback_01__step_7');" href="javascript:void(0);"
249
+ ><span><?php _e('Done' ,'booking'); ?></span>&nbsp; <i class="menu_icon icon-1x wpbc_icn_done_all"></i></a>
250
+ </div>
251
+ </div>
252
+ <?php
253
+ }
254
+ }
255
+
256
+ /**
257
+ * Just for loading CSS and JavaScript files
258
+ */
259
+ if (
260
+ ( ! empty( get_option( 'booking_feedback_01' ) ) )
261
+ && ( ! wpbc_is_this_demo() )
262
+ ) {
263
+
264
+ $js_css_loading = new WPBC_Feedback_01;
265
+ $js_css_loading->init_load_css_js();
266
+ }
267
+
268
+
269
+
270
+ /**
271
+ * Ajax Response
272
+ *
273
+ * @param $request_params
274
+ * @param $params
275
+ *
276
+ * @return array
277
+ */
278
+ function wpbc_booking_do_action__feedback_01( $request_params, $params ) {
279
+
280
+ $feedback_stars = intval( $request_params['feedback_stars'] );
281
+ $feedback__note = $request_params['feedback__note'];//esc_textarea( $request_params['feedback__note'] );
282
+
283
+ $after_action_result = true;
284
+ $after_action_message = sprintf( __( 'Thanks for sharing your rating %s', 'booking' ), '<strong style="font-size: 1.1em;">' . $feedback_stars . '</strong>/5' );
285
+
286
+ if ( 'remind_later' == $feedback__note ) {
287
+
288
+ $after_action_message = __( 'Done', 'booking' );
289
+
290
+ // Update new period for showing Feedback
291
+ $feedback_date = date('Y-m-d H:i:s', strtotime( WPBC_FEEDBACK_TIMEOUT, strtotime( 'now' ) ) );
292
+ update_option('booking_feedback_01', $feedback_date );
293
+
294
+ } elseif ( ( $feedback_stars > 0 ) && ( $feedback_stars <= 5 ) ) {
295
+
296
+ // Send email
297
+ wpbc_feedback_01__send_email( $feedback_stars, $feedback__note );
298
+
299
+ }
300
+
301
+ return array(
302
+ 'after_action_result' => $after_action_result,
303
+ 'after_action_message' => $after_action_message
304
+ );
305
+ }
306
+
307
+ function wpbc_feedback_01_get_version(){
308
+
309
+ if ( substr( WPDEV_BK_VERSION, 0, 3 ) == '10.' ) {
310
+ $show_version = substr( WPDEV_BK_VERSION, 3 );
311
+ if ( substr( $show_version, ( - 1 * ( strlen( WP_BK_VERSION_NUM ) ) ) ) === WP_BK_VERSION_NUM ) {
312
+ $show_version = substr( $show_version, 0, ( - 1 * ( strlen( WP_BK_VERSION_NUM ) ) - 1 ) );
313
+ $show_version = str_replace( '.', ' ', $show_version ) . ' ' . WP_BK_VERSION_NUM;
314
+ }
315
+
316
+ } else {
317
+ $show_version = WPDEV_BK_VERSION;
318
+ }
319
+
320
+ $ver = get_bk_version();
321
+ if ( class_exists( 'wpdev_bk_multiuser' ) ) {
322
+ $ver = 'MultiUser';
323
+ }
324
+ $ver = str_replace( '_m', ' Medium', $ver );
325
+ $ver = str_replace( '_l', ' Large', $ver );
326
+ $ver = str_replace( '_s', ' Small', $ver );
327
+ $ver = str_replace( 'biz', 'Business', $ver );
328
+ $ver = ucwords( $ver );
329
+
330
+
331
+ $v_type = '';
332
+ if ( strpos( strtolower( WPDEV_BK_VERSION ), 'multisite' ) !== false ) {
333
+ $v_type = '5';
334
+ } else if ( strpos( strtolower( WPDEV_BK_VERSION ), 'develop' ) !== false ) {
335
+ $v_type = '2';
336
+ }
337
+ if ( ! empty( $v_type ) ) {
338
+ $v_type = ' ' . $v_type . ' ' . __( 'websites', 'booking' );
339
+ } else {
340
+ $v_type = ' 1' . ' ' . __( 'website', 'booking' );
341
+ }
342
+
343
+ return $ver . ' (' . $show_version . ') '
344
+ . ( ( 'Free' !== $ver ) ? ' :: ' . $v_type . '.' : '' )
345
+ . ' :: ' . date( "d.m.Y", filemtime( WPBC_FILE ) );
346
+ }
347
+
348
+ function wpbc_feedback_01__send_email( $stars_num, $feedback_description ) {
349
+
350
+ $us_data = wp_get_current_user();
351
+
352
+ $fields_values = array();
353
+ $fields_values['from_email'] = get_option( 'admin_email' );
354
+ $fields_values['from_name'] = $us_data->display_name;
355
+ $fields_values['from_name'] = wp_specialchars_decode( esc_html( stripslashes( $fields_values['from_name'] ) ), ENT_QUOTES );
356
+ $fields_values['from_email'] = sanitize_email( $fields_values['from_email'] );
357
+
358
+ $subject = 'Booking Calendar Feedback ' . $stars_num . '/5';
359
+
360
+
361
+ $message = '=============================================' . "\n";
362
+ $message .= $feedback_description . "\n";
363
+ $message .= '=============================================' . "\n";
364
+ $message .="\n";
365
+
366
+ $message .= $fields_values['from_name'] . "\n";
367
+ $message .="\n";
368
+ $message .= 'Booking Calendar Rating: ' . $stars_num . '/5' . "\n";
369
+ $message .= '---------------------------------------------' . "\n";
370
+
371
+ $message .= 'Booking Calendar ' . wpbc_feedback_01_get_version() . "\n";
372
+
373
+ global $wpdb;
374
+ $sql = "SELECT modification_date FROM {$wpdb->prefix}booking as bk ORDER by booking_id LIMIT 0,1";
375
+ $res = $wpdb->get_results( $sql );
376
+ if ( ! empty( $res ) ) {
377
+ $first_booking_date = date_i18n( 'Y-m-d H:i:s', strtotime( $res[0]->modification_date ) );
378
+ $message .= "\n";
379
+ $message .= 'From: ' . $first_booking_date;
380
+
381
+ $dif_days = wpbc_get_difference_in_days( date( 'Y-m-d 00:00:00', strtotime( 'now' ) ), date( 'Y-m-d 00:00:00', strtotime( $res[0]->modification_date ) ) );
382
+ $message .= ' - ' . $dif_days . ' days ago.';
383
+ }
384
+
385
+ $message .="\n";
386
+ $message .= '---------------------------------------------' . "\n";
387
+ $message .= '[' . date_i18n( get_bk_option( 'booking_date_format' ) ) . ' ' . date_i18n( get_bk_option( 'booking_time_format' ) ) . ']'. "\n";
388
+ $message .= home_url() ;
389
+
390
+
391
+ $headers = '';
392
+
393
+ if ( ! empty( $fields_values['from_email'] ) ) {
394
+
395
+ $headers .= 'From: ' . $fields_values['from_name'] . ' <' . $fields_values['from_email'] . '> ' . "\r\n";
396
+ } else {
397
+ /* If we don't have an email from the input headers default to wordpress@$sitename
398
+ * Some hosts will block outgoing mail from this address if it doesn't exist but
399
+ * there's no easy alternative. Defaulting to admin_email might appear to be another
400
+ * option but some hosts may refuse to relay mail from an unknown domain. See
401
+ * https://core.trac.wordpress.org/ticket/5007.
402
+ */
403
+ }
404
+ $headers .= 'Content-Type: ' . 'text/plain' . "\r\n" ; // 'text/html'
405
+
406
+
407
+ $attachments = '';
408
+
409
+
410
+ $to = 'feedback1@wpbookingcalendar.com';
411
+
412
+ //debuge('In email', htmlentities($to), $subject, htmlentities($message), $headers, $attachments) ;
413
+ // debuge( '$to, $subject, $message, $headers, $attachments',htmlspecialchars($to), htmlspecialchars($subject), htmlspecialchars($message), htmlspecialchars($headers), htmlspecialchars($attachments));
414
+
415
+ $return = wp_mail( $to, $subject, $message, $headers, $attachments );
416
+
417
+ }
418
+
419
+ /**
420
+ * Check if we need to show the Feedback - is it Timer expired already ?
421
+ * @return bool
422
+ */
423
+ function wpbc_is__feedback_01__timeout_need_to_show() {
424
+
425
+ //return true;
426
+
427
+ $feedback_01_date = get_option( 'booking_feedback_01' );
428
+
429
+ if (
430
+ ( ! empty( $feedback_01_date ) )
431
+ && ( ( strtotime( 'now' ) - strtotime( $feedback_01_date ) ) > 0 )
432
+ ) {
433
+ return true;
434
+ } else {
435
+ return false;
436
+ }
437
+
438
+ }
439
+
440
+
441
+ /**
442
+ * Set timer to show Feedback after this amount of time
443
+ * @return void
444
+ */
445
+ function wpbc_is__feedback_01__timer_install() {
446
+
447
+ // If version of Booking Calendar 9.4 or newer than do not show this Feedback
448
+ if ( version_compare( WP_BK_VERSION_NUM, '9.4' , '>=') ) {
449
+ return false;
450
+ }
451
+ $feedback_date = date( 'Y-m-d H:i:s', strtotime( WPBC_FEEDBACK_TIMEOUT, strtotime( 'now' ) ) );
452
+ add_option( 'booking_feedback_01', $feedback_date );
453
+ }
454
+ add_bk_action( 'wpbc_before_activation' , 'wpbc_is__feedback_01__timer_install' );
455
+
456
+
457
+
458
+ // Init - Reset
459
+ // update_option( 'booking_feedback_01', date( 'Y-m-d H:i:s', strtotime( WPBC_FEEDBACK_TIMEOUT, strtotime( 'now' ) ) ) );
460
+ // delete_option( 'booking_feedback_01');
includes/_toolbar_ui/toolbar_ui.php CHANGED
@@ -1525,7 +1525,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1525
 
1526
  $el_id = 'ui_btn_' . $booking_action;
1527
 
1528
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1529
  return false;
1530
  }
1531
 
@@ -1561,7 +1561,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1561
 
1562
  $el_id = 'ui_btn_' . $booking_action;
1563
 
1564
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1565
  return false;
1566
  }
1567
 
@@ -1599,7 +1599,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1599
 
1600
  $el_id = 'ui_btn_' . $booking_action;
1601
 
1602
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1603
  return false;
1604
  }
1605
 
@@ -1637,7 +1637,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1637
 
1638
  $el_id = 'ui_btn_' . $booking_action;
1639
 
1640
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1641
  return false;
1642
  }
1643
 
@@ -1675,7 +1675,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1675
 
1676
  $el_id = 'ui_btn_' . $booking_action;
1677
 
1678
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1679
  return false;
1680
  }
1681
 
@@ -1731,7 +1731,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1731
 
1732
  $el_id = 'ui_btn_all_' . $booking_action;
1733
 
1734
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1735
  return false;
1736
  }
1737
 
@@ -1767,7 +1767,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1767
 
1768
  $el_id = 'ui_btn_' . $booking_action;
1769
 
1770
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1771
  return false;
1772
  }
1773
 
@@ -1803,7 +1803,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1803
 
1804
  $el_id = 'ui_btn_' . $booking_action;
1805
 
1806
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1807
  return false;
1808
  }
1809
 
@@ -1861,7 +1861,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1861
 
1862
  $booking_action = 'import_google_calendar';
1863
 
1864
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1865
  return false;
1866
  }
1867
 
@@ -1909,7 +1909,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1909
  $booking_action = 'export_csv';
1910
  $el_id = 'ui_btn_' . $booking_action;
1911
 
1912
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1913
  return false;
1914
  }
1915
 
@@ -1949,7 +1949,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1949
  $booking_action = 'export_csv';
1950
  $el_id = 'ui_btn_' . $booking_action;
1951
 
1952
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1953
  return false;
1954
  }
1955
 
@@ -1989,7 +1989,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
1989
  $booking_action = 'export_csv';
1990
  $el_id = 'ui_btn_' . $booking_action . '_all';
1991
 
1992
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
1993
  return false;
1994
  }
1995
 
@@ -2027,7 +2027,7 @@ function wpbc_ajx_toolbar_force_reload_button( $escaped_search_request_params, $
2027
 
2028
  $el_id = 'ui_btn_' . $booking_action;
2029
 
2030
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2031
  return false;
2032
  }
2033
 
1525
 
1526
  $el_id = 'ui_btn_' . $booking_action;
1527
 
1528
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1529
  return false;
1530
  }
1531
 
1561
 
1562
  $el_id = 'ui_btn_' . $booking_action;
1563
 
1564
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1565
  return false;
1566
  }
1567
 
1599
 
1600
  $el_id = 'ui_btn_' . $booking_action;
1601
 
1602
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1603
  return false;
1604
  }
1605
 
1637
 
1638
  $el_id = 'ui_btn_' . $booking_action;
1639
 
1640
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1641
  return false;
1642
  }
1643
 
1675
 
1676
  $el_id = 'ui_btn_' . $booking_action;
1677
 
1678
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1679
  return false;
1680
  }
1681
 
1731
 
1732
  $el_id = 'ui_btn_all_' . $booking_action;
1733
 
1734
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1735
  return false;
1736
  }
1737
 
1767
 
1768
  $el_id = 'ui_btn_' . $booking_action;
1769
 
1770
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1771
  return false;
1772
  }
1773
 
1803
 
1804
  $el_id = 'ui_btn_' . $booking_action;
1805
 
1806
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1807
  return false;
1808
  }
1809
 
1861
 
1862
  $booking_action = 'import_google_calendar';
1863
 
1864
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1865
  return false;
1866
  }
1867
 
1909
  $booking_action = 'export_csv';
1910
  $el_id = 'ui_btn_' . $booking_action;
1911
 
1912
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1913
  return false;
1914
  }
1915
 
1949
  $booking_action = 'export_csv';
1950
  $el_id = 'ui_btn_' . $booking_action;
1951
 
1952
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1953
  return false;
1954
  }
1955
 
1989
  $booking_action = 'export_csv';
1990
  $el_id = 'ui_btn_' . $booking_action . '_all';
1991
 
1992
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
1993
  return false;
1994
  }
1995
 
2027
 
2028
  $el_id = 'ui_btn_' . $booking_action;
2029
 
2030
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2031
  return false;
2032
  }
2033
 
includes/page-availability/availability__page.php ADDED
@@ -0,0 +1,382 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * @package: AJX_Bookings Page
4
+ * @category: o Email Reminders
5
+ * @description: Define AJX_Bookings in admin settings page. - Sending friendly email reminders based on custom ajx_booking.
6
+ * Plugin URI: https://oplugins.com/plugins/email-reminders/#premium
7
+ * Author URI: https://oplugins.com
8
+ * Author: wpdevelop, oplugins
9
+ * Version: 0.0.1
10
+ * @modified 2020-05-11
11
+ */
12
+ //FixIn: 9.2.1
13
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
14
+
15
+
16
+ /** Show Content
17
+ * Update Content
18
+ * Define Slug
19
+ * Define where to show
20
+ */
21
+ class WPBC_Page_AJX_Availability extends WPBC_Page_Structure {
22
+
23
+ public function __construct() {
24
+
25
+ parent::__construct();
26
+
27
+ // Redefine TAGs Names, becasue 'tab' slug already used in the system for definition of active toolbar.
28
+ $this->tags['tab'] = 'view_mode';
29
+ $this->tags['subtab'] = 'bottom_nav';
30
+ }
31
+
32
+ public function in_page() {
33
+ return 'wpbc-availability';
34
+ }
35
+
36
+ public function tabs() {
37
+ //$_REQUEST['view_mode'] = 'availability';
38
+ $tabs = array();
39
+ $tabs[ 'availability' ] = array(
40
+ 'title' => __( 'Booking Listing', 'booking' ) // Title of TAB
41
+ , 'hint' => __( 'Booking Listing', 'booking' ) // Hint
42
+ , 'page_title' => __( 'Booking Listing', 'booking' ) // Title of Page
43
+ , 'link' => '' // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link
44
+ , 'position' => '' // 'left' || 'right' || ''
45
+ , 'css_classes' => '' // CSS class(es)
46
+ , 'icon' => '' // Icon - link to the real PNG img
47
+ , 'font_icon' => 'glyphicon glyphicon-user' // CSS definition of forn Icon
48
+ , 'default' => !false // Is this tab activated by default or not: true || false.
49
+ , 'disabled' => false // Is this tab disbaled: true || false.
50
+ , 'hided' => true // Is this tab hided: true || false.
51
+ , 'subtabs' => array()
52
+ );
53
+ // $subtabs = array();
54
+ // $tabs[ 'items' ][ 'subtabs' ] = $subtabs;
55
+ return $tabs;
56
+ }
57
+
58
+ public function content() {
59
+
60
+ do_action( 'wpbc_hook_settings_page_header', 'page_booking_listing'); // Define Notices Section and show some static messages, if needed.
61
+
62
+ if ( ! wpbc_is_mu_user_can_be_here( 'activated_user' ) ) { return false; } // Check if MU user activated, otherwise show Warning message.
63
+
64
+ //?? if ( ! wpbc_set_default_resource_to__get() ) return false; // Define default booking resources for $_GET and check if booking resource belong to user.
65
+
66
+
67
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
68
+ // Get and escape request parameters
69
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
70
+ $my_ajx_booking_listing = new WPBC_AJX_Bookings;
71
+
72
+ /**
73
+ * Such Empty getting ->clean_request_parameters() , firstly load data array from saved user metadata
74
+ *
75
+ * and if it was not saved then get parameters from $_GET['page_num']=2, ....
76
+ */
77
+
78
+ $escaped_search_request_params = $my_ajx_booking_listing->clean_request_parameters();
79
+
80
+ /**
81
+ * $escaped_request_params = $my_ajx_booking_listing->clean_request_parameters( array( 'request_prefix' => 'search_params' ) );
82
+ // -> $_REQUEST[ 'search_params' ][ 'page_num' ]=2
83
+ // if $_REQUEST[ 'search_params' ] not set, then
84
+ // get "default" from WPBC_AJX_Bookings::clean_request_parameters(
85
+ return :
86
+ array( 'page_num' => 1
87
+ , 'page_items_count' => 100
88
+ , 'sort' => 'ajx_booking_id'
89
+ , 'sort_type' => 'DESC'
90
+ , 'keyword' => ''
91
+ , 'status' => ''
92
+ , 'ru_create_date' => ''
93
+ )
94
+ */
95
+
96
+ /**
97
+ // 1. Direct Clean Params
98
+
99
+ $request_params_ajx_booking = array(
100
+ 'page_num' => array( 'validate' => 'd', 'default' => 1 )
101
+ , 'page_items_count' => array( 'validate' => 'd', 'default' => 10 )
102
+ , 'sort' => array( 'validate' => array( 'ajx_booking_id' ), 'default' => 'ajx_booking_id' )
103
+ , 'sort_type' => array( 'validate' => array( 'ASC', 'DESC'),'default' => 'DESC' )
104
+ , 'status' => array( 'validate' => 's', 'default' => '' )
105
+ , 'keyword' => array( 'validate' => 's', 'default' => '' )
106
+ , 'ru_create_date' => array( 'validate' => 'date', 'default' => '' )
107
+ );
108
+ $request_params_values = array( // Usually $request_params_values is $_REQUEST
109
+ 'page_num' => 1,
110
+ 'page_items_count' => 3,
111
+ 'sort' => 'ajx_booking_id',
112
+ 'sort_type' => 'DESC',
113
+ 'status' => '',
114
+ 'keyword' => '',
115
+ 'ru_create_date' => ''
116
+ );
117
+ $request_params = wpbc_sanitize_params_in_arr( $request_params_values, $request_params_ajx_booking );
118
+ */
119
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
120
+
121
+
122
+ // Submit /////////////////////////////////////////////////////////////
123
+ $submit_form_name = 'wpbc_ajx_booking_form'; // Define form name
124
+
125
+ ?><span class="wpdevelop"><?php // BS UI CSS Class
126
+
127
+ make_bk_action( 'wpbc_write_content_for_modals' ); // Content for modal windows
128
+
129
+ wpbc_js_for_bookings_page(); // JavaScript functions
130
+
131
+ wpbc_welcome_panel(); // Welcome Panel (links)
132
+
133
+ wpbc_ajx_bookings_toolbar( $escaped_search_request_params );
134
+
135
+ // wpbc_bookings_toolbar();
136
+
137
+ ?></span><?php // BS UI CSS Class
138
+
139
+ //$this->show_help_section();
140
+
141
+ ?><div id="wpbc_log_screen" class="wpbc_log_screen"></div><?php
142
+
143
+ // Content ////////////////////////////////////////////////////////////
144
+ ?>
145
+ <div class="clear" style="margin-bottom:10px;"></div>
146
+ <span class="metabox-holder">
147
+ <form name="<?php echo $submit_form_name; ?>" id="<?php echo $submit_form_name; ?>" action="" method="post" >
148
+ <?php
149
+ // N o n c e field, and key for checking S u b m i t
150
+ wp_nonce_field( 'wpbc_settings_page_' . $submit_form_name );
151
+ ?><input type="hidden" name="is_form_sbmitted_<?php echo $submit_form_name; ?>" id="is_form_sbmitted_<?php echo $submit_form_name; ?>" value="1" /><?php
152
+
153
+ ///wpbc_ajx_booking_modify_container_show(); // Container for showing Edit ajx_booking and define Edit and Delete ajx_booking JavaScript vars.
154
+
155
+ wpbc_ajx__ui__booking_sorting( $escaped_search_request_params , wpbc_ajx_get__request_params__names_default( 'default' ) );
156
+
157
+ ?><div class="wpbc_ajx_booking_pagination"></div><?php // Pagination container at head
158
+ wpbc_clear_div();
159
+
160
+ $is_test_sql_directly = false;
161
+ if ( ! $is_test_sql_directly ) {
162
+
163
+ $this->show_ajx_booking_listing_container_ajax( $escaped_search_request_params );
164
+
165
+ $this->show_pagination_container();
166
+
167
+ } else {
168
+
169
+ $this->show_ajx_booking_listing_container_directly(); // Useful for direct showing of listing without the ajax request, its requirement JavaScript to show data in template!!
170
+ }
171
+
172
+ ?><div class="clear"></div><?php
173
+
174
+ ?></form>
175
+ </span>
176
+ <?php
177
+
178
+ //wpbc_show_wpbc_footer(); // Rating
179
+
180
+ do_action( 'wpbc_hook_settings_page_footer', 'wpbc-ajx_booking' );
181
+ }
182
+
183
+
184
+
185
+
186
+ // TODO: create some help text here
187
+ private function show_help_section(){
188
+
189
+ if ( ! wpbc_section_is_dismissed( 'wpbc-panel-help-wizard' ) ) {
190
+ return;
191
+ }
192
+
193
+ $notice_id = 'wpbc_ajx_booking_help_section';
194
+ if ( ! wpbc_section_is_dismissed( $notice_id ) ) {
195
+
196
+ ?><div id="<?php echo $notice_id; ?>"
197
+ class="wpbc_system_notice wpbc_is_dismissible wpbc_is_hideable notice-info wpbc_internal_notice"
198
+ data-nonce="<?php echo wp_create_nonce( $nonce_name = $notice_id . '_wpbcnonce' ); ?>"
199
+ data-user-id="<?php echo wpbc_get_current_user_id(); ?>"
200
+ ><?php
201
+
202
+ wpbc_x_dismiss_button();
203
+
204
+ $field_options = array();
205
+ $field_options[] = '<div class="wpbc-help-container">';
206
+
207
+ $field_options[] = '<h3 style="margin:0;">' . __( 'How to create the booking?', 'booking' ) . '</h3>';
208
+ $field_options[] = '1. ' . sprintf( __( 'Click on %s"Add New Booking"%s button.', 'booking' ), '<strong>', '</strong>' );
209
+ $field_options[] = '2. ' . sprintf( __( 'Select email template, that you want to use for sending as reminder. You can create and configure email template(s) at %semails settings%s page.', 'booking' )
210
+ , '<strong><a href="' . esc_url( wpbc_get_settings_url() ) . '&tab=email">', '</a></strong>'
211
+ , '<strong>', '</strong>'
212
+ );
213
+ $field_options[] = '3. ' . sprintf( __( 'Configure one or several conditions. %sNote%s. If your condition for the date field, then you can use configuration that possible to use in %sstrtotime%s function. For example: %sTODAY - 6 MONTHS - 1 DAY%s ', 'booking' )
214
+ , '<strong>', '</strong>'
215
+ , '<strong><a href="https://www.php.net/manual/en/datetime.formats.relative.php" target="_blank">', '</a></strong>'
216
+ , '<code>', '</code>'
217
+ );
218
+ $field_options[] = '4. ' . sprintf( __( 'Click on Create Booking button.', 'booking' ) );
219
+
220
+ $field_options[] = '<h3 style="margin:0;">' . __( 'How to run booking manually?', 'booking' ) . '</h3>';
221
+ $field_options[] = '1. ' . sprintf( __( 'Click on %s"Run"%s button to execute specific booking.', 'booking' ), '<strong>', '</strong>' );
222
+ $field_options[] = '2. ' . sprintf( __( 'System will run booking and create %semail reminders%s from %sajx_booking%s based on conditions of current booking.', 'booking' )
223
+ , '<strong><a href="' . esc_url( wpbc_get_reminders_url() ) . '">', '</a></strong>'
224
+ , '<strong><a href="' . esc_url( wpbc_get_ajx_booking_url() ) . '">', '</a></strong>'
225
+ , '<strong>', '</strong>'
226
+ );
227
+
228
+ $field_options[] = '<div class="wpbc-help-columns">';
229
+ $field_options[] = ' <div class="wpbc-help-col">';
230
+ $field_options[] = ' <h3 class="wpbc-header-h"">' . __( 'How to set up automatic creation of reminders?', 'booking' ) . '</h3>';
231
+ $field_options[] = ' 1. ' . sprintf( __( 'Insert into the page %sshortcode%s for creation of reminders for specific booking.', 'booking' )
232
+ , '<strong><a href="https://oplugins.com/faq/email-reminders-how-to-set-up-run-rule-automatically-to-create-reminders/">', '</a></strong>' );
233
+ $field_options[] = ' 2. ' . sprintf( __( 'When someone visit this page, shortcode will run Booking and Reminder(s) will be created.', 'booking' )
234
+ , '<strong>', '</strong>' );
235
+ $field_options[] = ' </div>';
236
+ $field_options[] = ' <div class="wpbc-help-col">';
237
+ $field_options[] = ' <h3 class="wpbc-header-h wpbc-header-h-premium">' . __( 'Advanced automatic creation of reminders in premium versions.', 'booking' ) . '</h3>';
238
+ $field_options[] = ' 1. ' . sprintf( __( 'Configure %sCRON script%s at your server for creation of reminders periodically in automatic mode. ', 'booking' )
239
+ , '<strong><a href="https://oplugins.com/plugins/email-reminders-automate/">', '</a></strong>' );
240
+ $field_options[] = ' 2. ' . sprintf( __( 'Its can be useful, for every day automatic creation of email reminders, that different from today date on X days, relative to specific field. For example, its can be friendly notification of upcoming in 1 day booking, or follow-up email after event.', 'booking' )
241
+ , '<strong><a href="https://oplugins.com/plugins/email-reminders-automate/">', '</a></strong>' );
242
+ $field_options[] = ' </div>';
243
+ $field_options[] = '</div>';
244
+
245
+ $field_options[] = '</div>';
246
+ WPBC_Settings_API::field_help_row_static(
247
+ 'help_translation_section_after_legend_items'
248
+ , array(
249
+ 'type' => 'help'
250
+ , 'value' => $field_options
251
+ , 'class' => ''
252
+ , 'css' => 'margin:0;padding:0;border:0;'
253
+ , 'description' => ''
254
+ , 'cols' => 2
255
+ , 'group' => 'help'
256
+ , 'tr_class' => ''
257
+ , 'description_tag' => 'p'
258
+ )
259
+ );
260
+ ?></div>
261
+ <?php
262
+ if ( wpbc_section_is_dismissed( 'wpbc-panel-help-wizard' ) ) {
263
+
264
+ // Move help section to the top of the page, after Title before toolbar ?>
265
+ <script type="text/javascript">
266
+ jQuery(document).ready(function(){
267
+ jQuery(document).ready(function(){
268
+ jQuery( '.wpbc_admin_message' ).after( jQuery( '#<?php echo $notice_id; ?>' ) );
269
+ });
270
+ });
271
+ </script>
272
+ <?php
273
+ }
274
+ }
275
+
276
+ }
277
+
278
+
279
+ private function show_pagination_container(){
280
+ ?>
281
+ <div class="wpbc_ajx_booking_pagination"></div>
282
+ <?php
283
+ wpbc_clear_div();
284
+
285
+ $wpbc_pagination = new WPBC_Pagination();
286
+ $wpbc_pagination->init( array(
287
+ 'load_on_page' => 'wpbc-ajx_booking',
288
+ 'container' => '.wpbc_ajx_booking_pagination',
289
+ 'on_click' => 'wpbc_ajx_booking_pagination_click' // onclick = "javascript: wpbc_ajx_booking_pagination_click( page_num );" - need to define this function in JS file
290
+ ));
291
+
292
+ /**
293
+ $wpbc_pagination->show( array( // Its showing with JavaScript on document ready
294
+ 'page_active' => 3,
295
+ 'pages_count' => 20
296
+ ));
297
+ /**/
298
+ }
299
+
300
+
301
+ private function show_ajx_booking_listing_container_ajax( $escaped_search_request_params ) {
302
+
303
+ ?>
304
+ <div class="wpbc_listing_container wpbc_selectable_table wpbc_ajx_booking_listing_container">
305
+ <div style="width:100%;text-align: center;"><span class="wpbc_icn_autorenew wpbc_spin"></span><span><?php _e('Loading','booking'); ?>...</span></div>
306
+ </div>
307
+ <script type="text/javascript">
308
+ jQuery( document ).ready( function (){
309
+
310
+ // Set Security - Nonce for Ajax - Listing
311
+ wpbc_ajx_booking_listing.set_secure_param( 'nonce', '<?php echo wp_create_nonce( 'wpbc_ajx_booking_listing_ajx' . '_wpbcnonce' ) ?>' );
312
+ wpbc_ajx_booking_listing.set_secure_param( 'user_id', '<?php echo wpbc_get_current_user_id(); ?>' );
313
+ wpbc_ajx_booking_listing.set_secure_param( 'locale', '<?php echo get_user_locale(); ?>' );
314
+
315
+ // Set other parameters
316
+ wpbc_ajx_booking_listing.set_other_param( 'listing_container', '.wpbc_ajx_booking_listing_container' );
317
+ wpbc_ajx_booking_listing.set_other_param( 'pagination_container', '.wpbc_ajx_booking_pagination' );
318
+
319
+ // Send Ajax request and show listing after this.
320
+ wpbc_ajx_booking_send_search_request_with_params( <?php echo wp_json_encode( $escaped_search_request_params ); ?> );
321
+ } );
322
+ </script>
323
+ <?php
324
+ }
325
+
326
+
327
+ private function show_ajx_booking_listing_container_directly(){
328
+
329
+
330
+ //TODO: We need to send Ajax request and then show the listing (its will make one same way of showing listing and pagination)!
331
+
332
+
333
+ $my_ajx_booking = new WPBC_AJX_Bookings;
334
+
335
+ ////////////////////////////////////
336
+ // 0. Check Nonce if Ajax ( ! used now )
337
+ ////////////////////////////////////
338
+ if ( 0 ){
339
+ $action_name = 'wpbc_search_field' . '_wpbcnonce'; // $_POST['element_id'] . '_wpbcnonce';
340
+ $nonce_post_key = 'nonce';
341
+ $result_check = check_ajax_referer( $action_name, $nonce_post_key );
342
+ }
343
+
344
+ ////////////////////////////////////
345
+ // 1. Direct Clean Params
346
+ ////////////////////////////////////
347
+ $request_params_ajx_booking = array(
348
+ 'page_num' => array( 'validate' => 'd', 'default' => 1 )
349
+ , 'page_items_count' => array( 'validate' => 'd', 'default' => 10 )
350
+ , 'sort' => array( 'validate' => array( 'booking_id' ), 'default' => 'booking_id' )
351
+ , 'sort_type' => array( 'validate' => array( 'ASC', 'DESC'),'default' => 'DESC' )
352
+ , 'status' => array( 'validate' => 's', 'default' => '' )
353
+ , 'keyword' => array( 'validate' => 's', 'default' => '' )
354
+ , 'ru_create_date' => array( 'validate' => 'date', 'default' => '' )
355
+ );
356
+ $request_params_values = array( // Usually $request_params_values is $_REQUEST
357
+ 'page_num' => 1,
358
+ 'page_items_count' => 3,
359
+ 'sort' => 'booking_id',
360
+ 'sort_type' => 'DESC',
361
+ 'status' => '',
362
+ 'keyword' => '',
363
+ 'ru_create_date' => ''
364
+ );
365
+ $request_params = wpbc_sanitize_params_in_arr( $request_params_values, $request_params_ajx_booking );
366
+
367
+ ////////////////////////////////////
368
+ // 2. Get items array from DB
369
+ ////////////////////////////////////
370
+ $items_arr = wpbc_ajx_get_booking_data_arr( $request_params );
371
+ debuge($items_arr);
372
+
373
+ // Show Pagination - $total_num_of_items_in_all_pages = $sql_res[ [ 'count' ] ];
374
+ // $wpbc_pagination->show_pagination(
375
+ // $request_params_values['page_num'],
376
+ // ceil( $sql_res[ [ 'count' ] ] / $request_params_values['page_items_count'] )
377
+ // );
378
+
379
+ }
380
+
381
+ }
382
+ add_action('wpbc_menu_created', array( new WPBC_Page_AJX_Availability() , '__construct') ); // Executed after creation of Menu
includes/page-bookings/bookings__actions.php CHANGED
@@ -32,7 +32,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
32
  $nonce_post_key = 'nonce';
33
  $result_check = check_ajax_referer( $action_name, $nonce_post_key );
34
 
35
- $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
36
 
37
  // Get clean Parameters for SQL ---------------------------------------------------------------------------
38
  $request_prefix = 'action_params';
@@ -56,7 +56,8 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
56
  'set_booking_cost',
57
  'send_payment_request',
58
  'import_google_calendar',
59
- 'export_csv'
 
60
 
61
  ), 'default' => '' ),
62
  'booking_id' => array( 'validate' => 'digit_or_csd', 'default' => 0 ),
@@ -79,8 +80,10 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
79
  'booking_gcal_events_until_offset' => array( 'validate' => 's', 'default' => '' ),
80
  'booking_gcal_events_until_offset_type' => array( 'validate' => 's', 'default' => '' ),
81
  'booking_gcal_events_max' => array( 'validate' => 'd', 'default' => 25 ),
82
- 'booking_gcal_resource' => array( 'validate' => 's', 'default' => '' )
83
 
 
 
84
  ), $request_prefix
85
  );
86
 
@@ -237,6 +240,15 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
237
  );
238
  break;
239
 
 
 
 
 
 
 
 
 
 
240
  default:
241
  }
242
 
@@ -520,6 +532,16 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
520
  // SQL ---------------------------------------------------------------------------------------------------
521
  global $wpdb;
522
  $prepared_sql = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking AS bk SET bk.trash = %s WHERE booking_id IN ({$booking_is_csd})", $is_trash_or_restore );
 
 
 
 
 
 
 
 
 
 
523
  $after_action_result = $wpdb->query( $prepared_sql );
524
  if ( false === $after_action_result ) {
525
  $after_action_message = 'Error during updating to DB. File:' . __FILE__ . ' on line: ' . __LINE__;
@@ -530,7 +552,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
530
  // Update the Hash and Cost of the booking
531
  $bk_id_arr = explode(',', $booking_is_csd ); //FixIn: 8.6.1.11
532
  foreach ( $bk_id_arr as $bk_id ) {
533
- make_bk_action('wpbc_update_booking_hash', $bk_id );
534
  }
535
 
536
  // LOG ---------------------------------------------------------------------------------------------------------
@@ -2090,7 +2112,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2090
  $booking_action = 'set_booking_cost';
2091
  $el_id = 'ui_btn_' . $booking_action . '{{data.parsed_fields.booking_id}}';
2092
 
2093
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2094
  return false;
2095
  }
2096
 
@@ -2173,7 +2195,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2173
 
2174
  $booking_action = 'send_payment_request';
2175
 
2176
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2177
  return false;
2178
  }
2179
 
@@ -2223,7 +2245,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2223
 
2224
  $booking_action = 'set_payment_status';
2225
 
2226
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2227
  return false;
2228
  }
2229
 
@@ -2267,7 +2289,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2267
 
2268
  $el_id = 'ui_btn_' . $booking_action . '{{data.parsed_fields.booking_id}}';
2269
 
2270
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2271
  return false;
2272
  }
2273
 
@@ -2350,13 +2372,14 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2350
  */
2351
  function wpbc_for_booking_template__action_edit_booking(){
2352
 
2353
- if ( ! class_exists('wpdev_bk_personal') ) {
2354
- return false;
2355
- }
 
2356
 
2357
  $booking_action = 'edit_booking';
2358
 
2359
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2360
  return false;
2361
  }
2362
 
@@ -2401,7 +2424,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2401
 
2402
  $booking_action = 'change_booking_resource';
2403
 
2404
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2405
  return false;
2406
  }
2407
 
@@ -2445,7 +2468,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2445
 
2446
  $el_id = 'ui_btn_' . $booking_action;
2447
 
2448
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2449
  return false;
2450
  }
2451
 
@@ -2467,7 +2490,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2467
 
2468
  $booking_action = 'duplicate_booking_to_other_resource';
2469
 
2470
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2471
  return false;
2472
  }
2473
 
@@ -2511,7 +2534,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2511
 
2512
  $el_id = 'ui_btn_' . $booking_action;
2513
 
2514
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2515
  return false;
2516
  }
2517
 
@@ -2533,7 +2556,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2533
 
2534
  $booking_action = 'set_print';
2535
 
2536
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2537
  return false;
2538
  }
2539
 
@@ -2574,7 +2597,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2574
 
2575
  $booking_action = 'set_booking_note';
2576
 
2577
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2578
  return false;
2579
  }
2580
 
@@ -2613,7 +2636,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2613
 
2614
  $el_id = 'ui_btn_' . $booking_action;
2615
 
2616
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2617
  return false;
2618
  }
2619
 
@@ -2666,7 +2689,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2666
  'attr' => array( 'id' => $el_id . '_cancel' )
2667
  );
2668
 
2669
- //$user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
2670
  //$is_expand_remarks = wpbc_ajx__user_request_option__is_expand_remarks( $user_id );
2671
 
2672
  ?><div class="ui_remark_section is_expand_remarks_<?php //echo ($is_expand_remarks) ? 'on' : 'off'; ?>"
@@ -2697,7 +2720,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2697
 
2698
  $booking_action = 'set_booking_locale';
2699
 
2700
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2701
  return false;
2702
  }
2703
 
@@ -2788,7 +2811,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2788
 
2789
  $booking_action = 'booking_add_google_calendar';
2790
 
2791
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2792
  return false;
2793
  }
2794
 
@@ -2830,7 +2853,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2830
 
2831
  $booking_action = 'move_booking_to_trash';
2832
 
2833
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2834
  return false;
2835
  }
2836
 
@@ -2871,7 +2894,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2871
 
2872
  $booking_action = 'restore_booking_from_trash';
2873
 
2874
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2875
  return false;
2876
  }
2877
 
@@ -2912,7 +2935,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2912
 
2913
  $booking_action = 'delete_booking_completely';
2914
 
2915
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2916
  return false;
2917
  }
2918
 
@@ -2953,7 +2976,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2953
 
2954
  $booking_action = 'set_booking_approved';
2955
 
2956
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2957
  return false;
2958
  }
2959
 
@@ -2995,7 +3018,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
2995
 
2996
  $booking_action = 'set_booking_pending';
2997
 
2998
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
2999
  return false;
3000
  }
3001
 
@@ -3039,7 +3062,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
3039
 
3040
  $booking_action = 'set_booking_as_read';
3041
 
3042
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
3043
  return false;
3044
  }
3045
 
@@ -3101,11 +3124,13 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
3101
  wpbc_hidden_template__content_for_modal_import_google_calendar();
3102
 
3103
  wpbc_hidden_template__content_for_modal_export_csv();
 
 
3104
  }
3105
  }
3106
 
3107
  if ( 'vm_booking_listing' == wpbc_ajx_booking_listing__get_default_view_mode() ) {
3108
- //if ( strpos( $_SERVER['REQUEST_URI'], 'view_mode=vm_booking_listing' ) !== false ) { // Load only at AJX_Bookings Settings Page
3109
  add_action( 'wpbc_hook_settings_page_footer', 'wpbc_for_booking_template__hidden_templates' );
3110
  }
3111
 
@@ -3138,7 +3163,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
3138
 
3139
  $el_id = 'ui_btn_' . $booking_action;
3140
 
3141
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
3142
  echo '</script>';
3143
  return false;
3144
  }
@@ -3246,7 +3271,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
3246
 
3247
  $el_id = 'ui_btn_' . $booking_action;
3248
 
3249
- if ( ! wpbc_is_user_can( $booking_action, get_current_user_id() ) ) {
3250
  echo '</script>';
3251
  return false;
3252
  }
@@ -3450,7 +3475,7 @@ function wpbc_ajax_WPBC_AJX_BOOKING_ACTIONS() {
3450
  return false;
3451
  }
3452
 
3453
- $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
3454
  $booking_csv_export_params = get_user_option( 'booking_csv_export_params', (int) $user_id );
3455
  $booking_csv_export_params = ( ! empty( $booking_csv_export_params ) ) ? $booking_csv_export_params : array();
3456
  $defaults= array(
@@ -3636,7 +3661,7 @@ class WPBC_AJAX_ERROR_CATCHING{
3636
  function wpbc_is_user_can( $action, $user_id = 0 ){
3637
 
3638
  if (0 == $user_id ){
3639
- $user_id = get_current_user_id();
3640
  }
3641
 
3642
  // Get here list of actions that user can do
32
  $nonce_post_key = 'nonce';
33
  $result_check = check_ajax_referer( $action_name, $nonce_post_key );
34
 
35
+ $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
36
 
37
  // Get clean Parameters for SQL ---------------------------------------------------------------------------
38
  $request_prefix = 'action_params';
56
  'set_booking_cost',
57
  'send_payment_request',
58
  'import_google_calendar',
59
+ 'export_csv',
60
+ 'feedback_01'
61
 
62
  ), 'default' => '' ),
63
  'booking_id' => array( 'validate' => 'digit_or_csd', 'default' => 0 ),
80
  'booking_gcal_events_until_offset' => array( 'validate' => 's', 'default' => '' ),
81
  'booking_gcal_events_until_offset_type' => array( 'validate' => 's', 'default' => '' ),
82
  'booking_gcal_events_max' => array( 'validate' => 'd', 'default' => 25 ),
83
+ 'booking_gcal_resource' => array( 'validate' => 's', 'default' => '' ),
84
 
85
+ 'feedback__note' => array( 'validate' => 's', 'default' => '' ),
86
+ 'feedback_stars' => array( 'validate' => 'd', 'default' => 0 )
87
  ), $request_prefix
88
  );
89
 
240
  );
241
  break;
242
 
243
+ case 'feedback_01':
244
+
245
+ $action_result = wpbc_booking_do_action__feedback_01( $request_params
246
+ , array(
247
+ 'user_id' => $user_id
248
+ )
249
+ );
250
+ break;
251
+
252
  default:
253
  }
254
 
532
  // SQL ---------------------------------------------------------------------------------------------------
533
  global $wpdb;
534
  $prepared_sql = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking AS bk SET bk.trash = %s WHERE booking_id IN ({$booking_is_csd})", $is_trash_or_restore );
535
+ if ( $is_trash_or_restore == '1' ) {
536
+ // Trash
537
+ $my_trash_date = date_i18n( 'Y-m-d H:i:s' );
538
+ $prepared_sql = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking AS bk SET bk.trash = %s, bk.is_trash = %s WHERE booking_id IN ({$booking_is_csd})", $is_trash_or_restore, $my_trash_date );
539
+ } else {
540
+ // Restore
541
+ $prepared_sql = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking AS bk SET bk.trash = %s, bk.is_trash = NULL WHERE booking_id IN ({$booking_is_csd})", $is_trash_or_restore );
542
+ }
543
+
544
+
545
  $after_action_result = $wpdb->query( $prepared_sql );
546
  if ( false === $after_action_result ) {
547
  $after_action_message = 'Error during updating to DB. File:' . __FILE__ . ' on line: ' . __LINE__;
552
  // Update the Hash and Cost of the booking
553
  $bk_id_arr = explode(',', $booking_is_csd ); //FixIn: 8.6.1.11
554
  foreach ( $bk_id_arr as $bk_id ) {
555
+ wpbc_hash__update_booking_hash( $bk_id );
556
  }
557
 
558
  // LOG ---------------------------------------------------------------------------------------------------------
2112
  $booking_action = 'set_booking_cost';
2113
  $el_id = 'ui_btn_' . $booking_action . '{{data.parsed_fields.booking_id}}';
2114
 
2115
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2116
  return false;
2117
  }
2118
 
2195
 
2196
  $booking_action = 'send_payment_request';
2197
 
2198
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2199
  return false;
2200
  }
2201
 
2245
 
2246
  $booking_action = 'set_payment_status';
2247
 
2248
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2249
  return false;
2250
  }
2251
 
2289
 
2290
  $el_id = 'ui_btn_' . $booking_action . '{{data.parsed_fields.booking_id}}';
2291
 
2292
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2293
  return false;
2294
  }
2295
 
2372
  */
2373
  function wpbc_for_booking_template__action_edit_booking(){
2374
 
2375
+ //FixIn: 9.2.3.4
2376
+ // if ( ! class_exists('wpdev_bk_personal') ) {
2377
+ // return false;
2378
+ // }
2379
 
2380
  $booking_action = 'edit_booking';
2381
 
2382
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2383
  return false;
2384
  }
2385
 
2424
 
2425
  $booking_action = 'change_booking_resource';
2426
 
2427
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2428
  return false;
2429
  }
2430
 
2468
 
2469
  $el_id = 'ui_btn_' . $booking_action;
2470
 
2471
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2472
  return false;
2473
  }
2474
 
2490
 
2491
  $booking_action = 'duplicate_booking_to_other_resource';
2492
 
2493
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2494
  return false;
2495
  }
2496
 
2534
 
2535
  $el_id = 'ui_btn_' . $booking_action;
2536
 
2537
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2538
  return false;
2539
  }
2540
 
2556
 
2557
  $booking_action = 'set_print';
2558
 
2559
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2560
  return false;
2561
  }
2562
 
2597
 
2598
  $booking_action = 'set_booking_note';
2599
 
2600
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2601
  return false;
2602
  }
2603
 
2636
 
2637
  $el_id = 'ui_btn_' . $booking_action;
2638
 
2639
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2640
  return false;
2641
  }
2642
 
2689
  'attr' => array( 'id' => $el_id . '_cancel' )
2690
  );
2691
 
2692
+ //$user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
2693
  //$is_expand_remarks = wpbc_ajx__user_request_option__is_expand_remarks( $user_id );
2694
 
2695
  ?><div class="ui_remark_section is_expand_remarks_<?php //echo ($is_expand_remarks) ? 'on' : 'off'; ?>"
2720
 
2721
  $booking_action = 'set_booking_locale';
2722
 
2723
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2724
  return false;
2725
  }
2726
 
2811
 
2812
  $booking_action = 'booking_add_google_calendar';
2813
 
2814
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2815
  return false;
2816
  }
2817
 
2853
 
2854
  $booking_action = 'move_booking_to_trash';
2855
 
2856
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2857
  return false;
2858
  }
2859
 
2894
 
2895
  $booking_action = 'restore_booking_from_trash';
2896
 
2897
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2898
  return false;
2899
  }
2900
 
2935
 
2936
  $booking_action = 'delete_booking_completely';
2937
 
2938
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2939
  return false;
2940
  }
2941
 
2976
 
2977
  $booking_action = 'set_booking_approved';
2978
 
2979
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
2980
  return false;
2981
  }
2982
 
3018
 
3019
  $booking_action = 'set_booking_pending';
3020
 
3021
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
3022
  return false;
3023
  }
3024
 
3062
 
3063
  $booking_action = 'set_booking_as_read';
3064
 
3065
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
3066
  return false;
3067
  }
3068
 
3124
  wpbc_hidden_template__content_for_modal_import_google_calendar();
3125
 
3126
  wpbc_hidden_template__content_for_modal_export_csv();
3127
+
3128
+ do_action( 'wpbc_hook_booking_template__hidden_templates' ); //FixIn: 9.2.3.6
3129
  }
3130
  }
3131
 
3132
  if ( 'vm_booking_listing' == wpbc_ajx_booking_listing__get_default_view_mode() ) {
3133
+ //if ( strpos( $_SERVER['REQUEST_URI'], 'view_mode=vm_booking_listing' ) !== false ) { // Load only at AJX_Bookings Settings Page
3134
  add_action( 'wpbc_hook_settings_page_footer', 'wpbc_for_booking_template__hidden_templates' );
3135
  }
3136
 
3163
 
3164
  $el_id = 'ui_btn_' . $booking_action;
3165
 
3166
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
3167
  echo '</script>';
3168
  return false;
3169
  }
3271
 
3272
  $el_id = 'ui_btn_' . $booking_action;
3273
 
3274
+ if ( ! wpbc_is_user_can( $booking_action, wpbc_get_current_user_id() ) ) {
3275
  echo '</script>';
3276
  return false;
3277
  }
3475
  return false;
3476
  }
3477
 
3478
+ $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
3479
  $booking_csv_export_params = get_user_option( 'booking_csv_export_params', (int) $user_id );
3480
  $booking_csv_export_params = ( ! empty( $booking_csv_export_params ) ) ? $booking_csv_export_params : array();
3481
  $defaults= array(
3661
  function wpbc_is_user_can( $action, $user_id = 0 ){
3662
 
3663
  if (0 == $user_id ){
3664
+ $user_id = wpbc_get_current_user_id();
3665
  }
3666
 
3667
  // Get here list of actions that user can do
includes/page-bookings/bookings__listing.php CHANGED
@@ -382,10 +382,16 @@ console.log( 'row listing', data ); // LISTING_ROWS
382
 
383
  wpbc_for_booking_template__action_set_payment_status();
384
 
385
- wpbc_flex_divider();
 
 
386
 
387
  wpbc_for_booking_template__action_edit_booking();
388
 
 
 
 
 
389
  wpbc_for_booking_template__action_change_resource();
390
 
391
  wpbc_for_booking_template__action_duplicate_booking_to_other_resource();
@@ -427,7 +433,8 @@ console.log( 'row listing', data ); // LISTING_ROWS
427
  </div>
428
  <div class="wpbc_actions_sysinfo">
429
  <span><?php echo esc_js(__( 'Booking ID', 'booking' )); ?>: <strong>{{data['parsed_fields']['booking_id']}}</strong></span>&nbsp;&nbsp;
430
- <span><?php echo esc_js(__( 'Edited', 'booking' )); ?>: <strong>{{data['parsed_fields']['modification_date']}}</strong></span>
 
431
  </div>
432
  </div>
433
  <?php
@@ -470,7 +477,7 @@ console.log( 'row listing', data ); // LISTING_ROWS
470
  $nonce_post_key = 'nonce';
471
  $result_check = check_ajax_referer( $action_name, $nonce_post_key );
472
 
473
- $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
474
 
475
  /**
476
  * SQL ---------------------------------------------------------------------------
@@ -547,7 +554,7 @@ console.log( 'row listing', data ); // LISTING_ROWS
547
  */
548
  if ( empty( $params ) ) {
549
 
550
- $user_id = get_current_user_id();
551
 
552
  $escaped_request_params = wpbc_ajx__user_request_params__get_sanitized( $user_id );
553
 
@@ -604,6 +611,110 @@ if ( true ) {
604
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
605
  // API Hooks
606
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  /**
608
  * Search specific booking(s) by Keyword
609
  *
@@ -635,11 +746,14 @@ if ( true ) {
635
  'page_items_count' => 99999,
636
  'sort' => 'booking_id',
637
  'sort_type' => 'DESC',
638
- 'keyword' => '',
639
- 'source' => '',
640
- 'create_date' => ''
641
  );
642
 
 
 
 
 
 
643
  $request_params = wp_parse_args( $search_params, $request_params );
644
 
645
  $request_params['keyword'] = wpbc_sanitize_text( $keyword );
382
 
383
  wpbc_for_booking_template__action_set_payment_status();
384
 
385
+ if ( class_exists( 'wpdev_bk_personal' ) ) {
386
+ wpbc_flex_divider();
387
+ }
388
 
389
  wpbc_for_booking_template__action_edit_booking();
390
 
391
+ if ( ! class_exists( 'wpdev_bk_personal' ) ) {
392
+ wpbc_flex_divider();
393
+ }
394
+
395
  wpbc_for_booking_template__action_change_resource();
396
 
397
  wpbc_for_booking_template__action_duplicate_booking_to_other_resource();
433
  </div>
434
  <div class="wpbc_actions_sysinfo">
435
  <span><?php echo esc_js(__( 'Booking ID', 'booking' )); ?>: <strong>{{data['parsed_fields']['booking_id']}}</strong></span>&nbsp;&nbsp;
436
+ <span><?php echo esc_js(__( 'Edited', 'booking' )); ?>: <strong>{{data['parsed_fields']['modification_date']}}</strong></span>&nbsp;&nbsp;
437
+ <span><?php echo esc_js(__( 'Created', 'booking' )); ?>: <strong>{{data['parsed_fields']['creation_date']}}</strong></span>
438
  </div>
439
  </div>
440
  <?php
477
  $nonce_post_key = 'nonce';
478
  $result_check = check_ajax_referer( $action_name, $nonce_post_key );
479
 
480
+ $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
481
 
482
  /**
483
  * SQL ---------------------------------------------------------------------------
554
  */
555
  if ( empty( $params ) ) {
556
 
557
+ $user_id = wpbc_get_current_user_id();
558
 
559
  $escaped_request_params = wpbc_ajx__user_request_params__get_sanitized( $user_id );
560
 
611
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
612
  // API Hooks
613
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
614
+
615
+ /**
616
+ * Get booking data by booking_ID
617
+ *
618
+ * @param $booking_id int
619
+ *
620
+ * @return false | stdClass Object (
621
+ [booking_db] => stdClass Object (
622
+ [booking_id] => 130
623
+ [booking_options] =>
624
+ [trash] => 0
625
+ [sync_gid] => 15l1028ii1v95ctbpgcf2r2s2h_20171201
626
+ [is_new] => 0
627
+ [status] =>
628
+ [sort_date] => 2022-08-08 00:00:00
629
+ [modification_date] => 2022-07-24 11:04:32
630
+ [form] => text^name1^Jessica~text^secondname1^....
631
+ [hash] => 1d7dc4e06d95726bf9
632
+ [booking_type] => 1
633
+ [remark] =>
634
+ [cost] => 100.00
635
+ [pay_status] => Failed
636
+ [pay_request] => 0
637
+ )
638
+ [id] => 130
639
+ [approved] => 0
640
+ [dates] => Array ( [0] => '2022-08-08 00:00:00' [1] => '2022-08-09 00:00:00' [2] => '2022-08-10 00:00:00' )
641
+ [child_id] => Array ( [0] => '' [1] => '' [2] => '' )
642
+ [short_dates] => Array ( [0] => '2022-08-08 00:00:00' [1] => '-' [2] => '2022-08-10 00:00:00' )
643
+ [short_dates_child_id] => Array ( [0] => '' [1] => '' [2] => '' )
644
+ [parsed_fields] => Array (
645
+ [name] => Jessica
646
+ [secondname] => Simson
647
+ ...
648
+ [booking_id] => 130
649
+ [trash] => 0
650
+ [sync_gid] => 15l1028ii1v95ctbpgcf2r2s2h_20171201
651
+ [is_new] => 0
652
+ [status] =>
653
+ [sort_date] => 2022-08-08 00:00:00
654
+ [modification_date] => July 24, 2022 11:04
655
+ [hash] => 1d7dc4e06d95726bf9060a66235b7dc6
656
+ [booking_type] => 1
657
+ [remark] =>
658
+ [cost] => 100.00
659
+ [pay_status] => Failed
660
+ [pay_request] => 0
661
+ [id] => 130
662
+ [approved] => 0
663
+ [booking_options] =>
664
+ [is_paid] => 0
665
+ [pay_print_status] => Failed
666
+ [currency_symbol] => $
667
+ [resource_title] => Standard
668
+ [resource_id] => 1
669
+ [resource_owner_user] => 1
670
+ [google_calendar_link] => https://calendar.google.com/calendar/r/eventedit?text=...
671
+ )
672
+ [templates] => Array (
673
+ [form_show] => First Name:Jessica
674
+ Last Name:Simson
675
+ Email:simson@gmail.com
676
+ Phone:724 895 34 88
677
+ Address:Oliver street 10
678
+ City:Manchester
679
+ Post code:78998
680
+ Country:UK
681
+ Adults: 2
682
+ Children: 0
683
+ Details: I want a room with a terrace
684
+
685
+ [form_show_nohtml] =>
686
+ First Name:Jessica
687
+ Last Name:Simson
688
+ Email:simson@gmail.com
689
+ Phone:724 895 34 88
690
+ Address:Oliver street 10
691
+ City:Manchester
692
+ Post code:78998
693
+ Country:UK
694
+ Adults: 2
695
+ Children: 0
696
+ Details: I want a room with a terrace
697
+ [short_dates_content] => August 8, 2022 - August 10, 2022
698
+ [wide_dates_content] => August 8, 2022, August 9, 2022, August 10, 2022
699
+ [payment_label_template] => Payment Failed
700
+ )
701
+ )
702
+ */
703
+ function wpbc_search_booking_by_id( $booking_id ) {
704
+
705
+ $booking_id = intval( $booking_id );
706
+
707
+ if ( ! empty( $booking_id ) ) {
708
+ $booking_data = wpbc_search_booking_by_keyword( 'id:' . $booking_id );
709
+
710
+ if ( ! empty( $booking_data['data_arr'] ) ) {
711
+ return $booking_data['data_arr'][0];
712
+ }
713
+ }
714
+
715
+ return false;
716
+ }
717
+
718
  /**
719
  * Search specific booking(s) by Keyword
720
  *
746
  'page_items_count' => 99999,
747
  'sort' => 'booking_id',
748
  'sort_type' => 'DESC',
749
+ 'keyword' => ''
 
 
750
  );
751
 
752
+ // Get Default Parameters
753
+ $default_param_values = wpbc_ajx_get__request_params__names_default( 'default' );
754
+ $request_params = wp_parse_args( $request_params, $default_param_values );
755
+
756
+ // Get Search Parameters, if passed into function
757
  $request_params = wp_parse_args( $search_params, $request_params );
758
 
759
  $request_params['keyword'] = wpbc_sanitize_text( $keyword );
includes/page-bookings/bookings__page.php CHANGED
@@ -178,6 +178,7 @@ class WPBC_Page_AJX_Bookings extends WPBC_Page_Structure {
178
  //wpbc_show_wpbc_footer(); // Rating
179
 
180
  do_action( 'wpbc_hook_settings_page_footer', 'wpbc-ajx_booking' );
 
181
  }
182
 
183
 
@@ -196,7 +197,7 @@ class WPBC_Page_AJX_Bookings extends WPBC_Page_Structure {
196
  ?><div id="<?php echo $notice_id; ?>"
197
  class="wpbc_system_notice wpbc_is_dismissible wpbc_is_hideable notice-info wpbc_internal_notice"
198
  data-nonce="<?php echo wp_create_nonce( $nonce_name = $notice_id . '_wpbcnonce' ); ?>"
199
- data-user-id="<?php echo get_current_user_id(); ?>"
200
  ><?php
201
 
202
  wpbc_x_dismiss_button();
@@ -309,7 +310,7 @@ class WPBC_Page_AJX_Bookings extends WPBC_Page_Structure {
309
 
310
  // Set Security - Nonce for Ajax - Listing
311
  wpbc_ajx_booking_listing.set_secure_param( 'nonce', '<?php echo wp_create_nonce( 'wpbc_ajx_booking_listing_ajx' . '_wpbcnonce' ) ?>' );
312
- wpbc_ajx_booking_listing.set_secure_param( 'user_id', '<?php echo get_current_user_id(); ?>' );
313
  wpbc_ajx_booking_listing.set_secure_param( 'locale', '<?php echo get_user_locale(); ?>' );
314
 
315
  // Set other parameters
178
  //wpbc_show_wpbc_footer(); // Rating
179
 
180
  do_action( 'wpbc_hook_settings_page_footer', 'wpbc-ajx_booking' );
181
+ wpbc_show_booking_footer(); // Show rating line
182
  }
183
 
184
 
197
  ?><div id="<?php echo $notice_id; ?>"
198
  class="wpbc_system_notice wpbc_is_dismissible wpbc_is_hideable notice-info wpbc_internal_notice"
199
  data-nonce="<?php echo wp_create_nonce( $nonce_name = $notice_id . '_wpbcnonce' ); ?>"
200
+ data-user-id="<?php echo wpbc_get_current_user_id(); ?>"
201
  ><?php
202
 
203
  wpbc_x_dismiss_button();
310
 
311
  // Set Security - Nonce for Ajax - Listing
312
  wpbc_ajx_booking_listing.set_secure_param( 'nonce', '<?php echo wp_create_nonce( 'wpbc_ajx_booking_listing_ajx' . '_wpbcnonce' ) ?>' );
313
+ wpbc_ajx_booking_listing.set_secure_param( 'user_id', '<?php echo wpbc_get_current_user_id(); ?>' );
314
  wpbc_ajx_booking_listing.set_secure_param( 'locale', '<?php echo get_user_locale(); ?>' );
315
 
316
  // Set other parameters
includes/page-bookings/bookings__sql.php CHANGED
@@ -139,7 +139,7 @@ function wpbc_ajx__user_request_params__save( $params, $user_id ) {
139
  function wpbc_ajx__user_request_params__delete( $user_id ) {
140
 
141
  if ( empty( $user_id ) ) {
142
- $user_id = get_current_user_id();
143
  }
144
 
145
  return delete_user_option( (int) $user_id, 'booking_listing_request_params' );
@@ -155,7 +155,7 @@ function wpbc_ajx__user_request_params__delete( $user_id ) {
155
  function wpbc_ajx__user_request_params__get( $user_id ) {
156
 
157
  if ( empty( $user_id ) ) {
158
- $user_id = get_current_user_id();
159
  }
160
 
161
  // wpbc_ajx__user_request_params__delete($user_id); //For debugging. delete it.
@@ -540,7 +540,7 @@ function wpbc_ajx__user_request_params__get_option( $user_id, $option_name ){
540
  if ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) {
541
  $user_bk_id = intval( $_REQUEST['wpbc_ajx_user_id'] );
542
  } else {
543
- $user_bk_id = get_current_user_id();
544
  }
545
  $is_user_super_admin = apply_bk_filter( 'is_user_super_admin', $user_bk_id );
546
 
@@ -1144,7 +1144,7 @@ function wpbc_ajx__user_request_params__get_option( $user_id, $option_name ){
1144
 
1145
  if ( class_exists( 'wpdev_bk_multiuser' ) ) { // MultiUser - Only for super booking admin user
1146
 
1147
- $user_bk_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
1148
 
1149
  $is_user_super_admin = apply_bk_filter( 'is_user_super_admin', $user_bk_id );
1150
 
@@ -1667,7 +1667,7 @@ function wpbc_ajx__user_request_params__get_option( $user_id, $option_name ){
1667
 
1668
  function wpbc_ajx_parse_bookings( $bookings_arr, $resources_arr ) {
1669
 
1670
- $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : get_current_user_id();
1671
 
1672
  foreach ( $bookings_arr as $booking_id => $booking ) {
1673
 
@@ -1704,6 +1704,7 @@ function wpbc_ajx__user_request_params__get_option( $user_id, $option_name ){
1704
  'status',
1705
  'sort_date',
1706
  'modification_date',
 
1707
  'hash',
1708
  'booking_type',
1709
  'remark',
@@ -2116,10 +2117,27 @@ function wpbc_ajx__user_request_params__get_option( $user_id, $option_name ){
2116
  $data_arr[$key] = wpbc_time_in_format( $value );
2117
  }
2118
 
2119
- if ( in_array( $key, array( 'modification_date' ) ) ) {
 
2120
  $data_arr[$key] = wpbc_change_dates_format( $value );
 
 
 
 
 
 
 
2121
  }
2122
 
 
 
 
 
 
 
 
 
 
2123
  }
2124
  return $data_arr;
2125
  }
139
  function wpbc_ajx__user_request_params__delete( $user_id ) {
140
 
141
  if ( empty( $user_id ) ) {
142
+ $user_id = wpbc_get_current_user_id();
143
  }
144
 
145
  return delete_user_option( (int) $user_id, 'booking_listing_request_params' );
155
  function wpbc_ajx__user_request_params__get( $user_id ) {
156
 
157
  if ( empty( $user_id ) ) {
158
+ $user_id = wpbc_get_current_user_id();
159
  }
160
 
161
  // wpbc_ajx__user_request_params__delete($user_id); //For debugging. delete it.
540
  if ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) {
541
  $user_bk_id = intval( $_REQUEST['wpbc_ajx_user_id'] );
542
  } else {
543
+ $user_bk_id = wpbc_get_current_user_id();
544
  }
545
  $is_user_super_admin = apply_bk_filter( 'is_user_super_admin', $user_bk_id );
546
 
1144
 
1145
  if ( class_exists( 'wpdev_bk_multiuser' ) ) { // MultiUser - Only for super booking admin user
1146
 
1147
+ $user_bk_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
1148
 
1149
  $is_user_super_admin = apply_bk_filter( 'is_user_super_admin', $user_bk_id );
1150
 
1667
 
1668
  function wpbc_ajx_parse_bookings( $bookings_arr, $resources_arr ) {
1669
 
1670
+ $user_id = ( isset( $_REQUEST['wpbc_ajx_user_id'] ) ) ? intval( $_REQUEST['wpbc_ajx_user_id'] ) : wpbc_get_current_user_id();
1671
 
1672
  foreach ( $bookings_arr as $booking_id => $booking ) {
1673
 
1704
  'status',
1705
  'sort_date',
1706
  'modification_date',
1707
+ 'creation_date',
1708
  'hash',
1709
  'booking_type',
1710
  'remark',
2117
  $data_arr[$key] = wpbc_time_in_format( $value );
2118
  }
2119
 
2120
+ if ( in_array( $key, array( 'modification_date', 'creation_date' ) ) ) {
2121
+
2122
  $data_arr[$key] = wpbc_change_dates_format( $value );
2123
+
2124
+ if ( strtotime( $data_arr['modification_date'] ) < strtotime( $data_arr['creation_date'] ) ) {
2125
+
2126
+ $data_arr['creation_date'] = $data_arr['modification_date'];
2127
+ }
2128
+
2129
+
2130
  }
2131
 
2132
+ if ( ( 'hash' == $key ) && ( empty( $value ) ) ) { //FixIn: 9.2.3.4
2133
+ // Update booking Hash if it was empty
2134
+ wpbc_hash__update_booking_hash( $data_arr['id'], $data_arr['booking_type'] );
2135
+ // Get new booking hash
2136
+ $hash__arr = wpbc_hash__get_booking_hash__resource_id( $data_arr['id'] );
2137
+ if ( ! empty( $hash__arr ) ) {
2138
+ $data_arr[ $key ] = $hash__arr[0];
2139
+ }
2140
+ }
2141
  }
2142
  return $data_arr;
2143
  }
js/client.js CHANGED
@@ -523,10 +523,16 @@ function setReservedSelectedDates( bk_type ){
523
  var is_pay_now = false;
524
 
525
  if (document.getElementById('calendar_booking'+bk_type) === null ) {
526
-
527
  jQuery( '#submiting' + bk_type ).html( '' );
528
  jQuery( '#booking_form_div' + bk_type ).hide();
529
- makeScroll( '#ajax_respond_insert'+bk_type );
 
 
 
 
 
 
530
 
531
  if ( ( document.getElementById('gateway_payment_forms'+bk_type) != null ) &&
532
  ( document.getElementById('gateway_payment_forms'+bk_type).innerHTML != '' ) )
@@ -1177,12 +1183,25 @@ jQuery(document).ready( function(){
1177
  ////////////////////////////////////////////////////////////////////////////
1178
 
1179
  // Scroll to script
1180
- function makeScroll(object_name) {
 
1181
  var targetOffset = jQuery( object_name ).offset().top;
1182
- //targetOffset = targetOffset - 50;
1183
- if ( targetOffset < 0 ) targetOffset = 0;
1184
- if ( jQuery( '#wpadminbar' ).length > 0 ) targetOffset = targetOffset - 50;
1185
- else targetOffset = targetOffset - 20;
 
 
 
 
 
 
 
 
 
 
 
 
1186
  jQuery( 'html,body' ).animate( {scrollTop: targetOffset}, 500 );
1187
  }
1188
 
@@ -1574,4 +1593,95 @@ function wpbc_is_some_elements_visible( bk_type, elements_names ){
1574
  } );
1575
  }
1576
  return is_some_elements_visible;
1577
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
523
  var is_pay_now = false;
524
 
525
  if (document.getElementById('calendar_booking'+bk_type) === null ) {
526
+ // No calendar at the page, only booking form (BL)
527
  jQuery( '#submiting' + bk_type ).html( '' );
528
  jQuery( '#booking_form_div' + bk_type ).hide();
529
+
530
+ if ( jQuery( '#ajax_respond_insert' + bk_type ).offset().top > 0 ){ //FixIn: 9.2.3.9
531
+ // makeScroll( '#ajax_respond_insert' + bk_type );
532
+ } else {
533
+ makeScroll( '#submiting' + bk_type );
534
+ }
535
+
536
 
537
  if ( ( document.getElementById('gateway_payment_forms'+bk_type) != null ) &&
538
  ( document.getElementById('gateway_payment_forms'+bk_type).innerHTML != '' ) )
1183
  ////////////////////////////////////////////////////////////////////////////
1184
 
1185
  // Scroll to script
1186
+ function makeScroll( object_name ){
1187
+
1188
  var targetOffset = jQuery( object_name ).offset().top;
1189
+ if ( targetOffset <= 0 ){
1190
+
1191
+ if ( 0 != jQuery( object_name ).nextAll( ':visible' ).length ){
1192
+ targetOffset = jQuery( object_name ).nextAll( ':visible' ).first().offset().top; //FixIn: 9.2.3.9
1193
+ } else if ( 0 != jQuery( object_name ).parent().nextAll( ':visible' ).length ){
1194
+ targetOffset = jQuery( object_name ).parent().nextAll( ':visible' ).first().offset().top;
1195
+ }
1196
+
1197
+ }
1198
+
1199
+ if ( jQuery( '#wpadminbar' ).length > 0 ){
1200
+ targetOffset = targetOffset - 50;
1201
+ } else {
1202
+ targetOffset = targetOffset - 20;
1203
+ }
1204
+
1205
  jQuery( 'html,body' ).animate( {scrollTop: targetOffset}, 500 );
1206
  }
1207
 
1593
  } );
1594
  }
1595
  return is_some_elements_visible;
1596
+ }
1597
+
1598
+ //FixIn: 9.2.3.4
1599
+ /**
1600
+ * Select dates in calendar
1601
+ *
1602
+ * @param int resource_id 1
1603
+ * @param array selected_dates [ [ 2022, "09", 20 ], [ 2022, "09", 21 ], ... ]
1604
+ */
1605
+ function wpbc_select_days_in_calendar( resource_id, selected_dates ){
1606
+
1607
+ clearTimeout( timeout_DSwindow );
1608
+
1609
+ var inst = jQuery.datepick._getInst( document.getElementById( 'calendar_booking' + resource_id ) );
1610
+ inst.dates = [];
1611
+ var original_array = [];
1612
+ var date;
1613
+
1614
+ var bk_inputing = document.getElementById( 'date_booking' + resource_id );
1615
+ var bk_distinct_dates = [];
1616
+
1617
+ if ( 0 ){ // Select one additional day in calendar, during editing of booking //FixIn: 6.2.3.6
1618
+ var last_selected_date = new Date();
1619
+ last_selected_date.setFullYear( parseInt( selected_dates[ selected_dates.length - 1 ][ 0 ] ) );
1620
+ last_selected_date.setMonth( parseInt( selected_dates[ selected_dates.length - 1 ][ 1 ] - 1 ) );
1621
+ last_selected_date.setDate( parseInt( selected_dates[ selected_dates.length - 1 ][ 2 ] ) );
1622
+ last_selected_date.setHours( 0 );
1623
+ last_selected_date.setMinutes( 0 );
1624
+ last_selected_date.setSeconds( 0 );
1625
+ var last_selected_next_date = new Date( last_selected_date.getTime() + 1000 * 60 * 60 * 24 );
1626
+ selected_dates.push( new Array( last_selected_next_date.getFullYear(), (last_selected_next_date.getMonth() + 1), last_selected_next_date.getDate() ) );
1627
+ }
1628
+
1629
+ for ( var i = 0; i < selected_dates.length; i++ ){
1630
+
1631
+ var dta = selected_dates[ i ];
1632
+
1633
+ date = new Date();
1634
+ date.setFullYear( dta[ 0 ], (dta[ 1 ] - 1), dta[ 2 ] ); // get date
1635
+ original_array.push( jQuery.datepick._restrictMinMax( inst, jQuery.datepick._determineDate( inst, date, null ) ) ); //add date
1636
+
1637
+ // Add leading 0 for number from 1 to 9 //FixIn: 8.0.2.2
1638
+ dta[ 2 ] = parseInt( dta[ 2 ] );
1639
+ if ( dta[ 2 ] < 10 ){
1640
+ dta[ 2 ] = '0' + dta[ 2 ];
1641
+ }
1642
+ dta[ 1 ] = parseInt( dta[ 1 ] );
1643
+ if ( dta[ 1 ] < 10 ){
1644
+ dta[ 1 ] = '0' + dta[ 1 ];
1645
+ }
1646
+ if ( !wpdev_in_array( bk_distinct_dates, dta[ 2 ] + '.' + dta[ 1 ] + '.' + dta[ 0 ] ) )
1647
+ bk_distinct_dates.push( dta[ 2 ] + '.' + dta[ 1 ] + '.' + dta[ 0 ] );
1648
+ }
1649
+
1650
+ for ( var j = 0; j < original_array.length; j++ ){ //loop array of dates
1651
+ if ( original_array[ j ] != -1 ) inst.dates.push( original_array[ j ] );
1652
+ }
1653
+ var dateStr = (inst.dates.length == 0 ? '' : jQuery.datepick._formatDate( inst, inst.dates[ 0 ] )); // Get first date
1654
+ for ( i = 1; i < inst.dates.length; i++ )
1655
+ dateStr += jQuery.datepick._get( inst, 'multiSeparator' ) + jQuery.datepick._formatDate( inst, inst.dates[ i ] ); // Gathering all dates
1656
+ jQuery( '#date_booking' + resource_id ).val( dateStr ); // Fill the input box
1657
+
1658
+ if ( original_array.length > 0 ){ // Set showing of start month
1659
+ inst.cursorDate = original_array[ 0 ];
1660
+ inst.drawMonth = inst.cursorDate.getMonth();
1661
+ inst.drawYear = inst.cursorDate.getFullYear();
1662
+ }
1663
+
1664
+ // Update calendar
1665
+ jQuery.datepick._notifyChange( inst );
1666
+ jQuery.datepick._adjustInstDate( inst );
1667
+ jQuery.datepick._showDate( inst );
1668
+ jQuery.datepick._updateDatepick( inst );
1669
+
1670
+ if ( bk_inputing != null )
1671
+ bk_inputing.value = bk_distinct_dates.join( ', ' );
1672
+
1673
+
1674
+ if ( typeof (check_condition_sections_in_bkform) == 'function' ){
1675
+ check_condition_sections_in_bkform( jQuery( '#date_booking' + resource_id ).val(), resource_id );
1676
+ }
1677
+
1678
+ if ( typeof (bkDisableBookedTimeSlots) == 'function' ){
1679
+ /* HERE WE WILL DISABLE ALL OPTIONS IN RANGE TIME INTERVALS FOR SINGLE DAYS SELECTIONS FOR THAT DAYS WHERE HOURS ALREADY BOOKED */
1680
+ bkDisableBookedTimeSlots( jQuery( '#date_booking' + resource_id ).val(), resource_id );
1681
+ }
1682
+
1683
+ if ( typeof (showCostHintInsideBkForm) == 'function' ){
1684
+ showCostHintInsideBkForm( resource_id );
1685
+ }
1686
+ }
1687
+
js/wpbc_form_summary.js CHANGED
@@ -60,7 +60,7 @@ jQuery( document ).ready( function (){
60
 
61
  // Set Security - Nonce for Ajax - Listing
62
  oper_contacts_listing.set_secure_param( 'nonce', '<?php echo wp_create_nonce( 'oper_contacts_listing_ajx' . '_opernonce' ) ?>' );
63
- oper_contacts_listing.set_secure_param( 'user_id', '<?php echo get_current_user_id(); ?>' );
64
  oper_contacts_listing.set_secure_param( 'locale', '<?php echo get_user_locale(); ?>' );
65
 
66
  // Set other parameters
60
 
61
  // Set Security - Nonce for Ajax - Listing
62
  oper_contacts_listing.set_secure_param( 'nonce', '<?php echo wp_create_nonce( 'oper_contacts_listing_ajx' . '_opernonce' ) ?>' );
63
+ oper_contacts_listing.set_secure_param( 'user_id', '<?php echo wpbc_get_current_user_id(); ?>' );
64
  oper_contacts_listing.set_secure_param( 'locale', '<?php echo get_user_locale(); ?>' );
65
 
66
  // Set other parameters
js/wpbc_times.js CHANGED
@@ -812,7 +812,8 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
812
  function showErrorTimeMessage( my_message, element ){
813
 
814
  var element_name = element.name;
815
- makeScroll( element );
 
816
  //FixIn: 8.7.11.10
817
  if ( jQuery( "[name='" + element_name + "']" ).is( ':visible' ) ){
818
 
812
  function showErrorTimeMessage( my_message, element ){
813
 
814
  var element_name = element.name;
815
+ makeScroll( "[name='" + element_name + "']" ); //FixIn: 9.2.3.9
816
+
817
  //FixIn: 8.7.11.10
818
  if ( jQuery( "[name='" + element_name + "']" ).is( ':visible' ) ){
819
 
readme.txt CHANGED
@@ -4,8 +4,8 @@ Donate link: https://wpbookingcalendar.com/buy/
4
  Tags: booking calendar, booking system, availability calendar, events calendar, appointments , booking form, reservation, availability, booking, calendar, bookings, ical
5
  Requires at least: 4.0
6
  Requires PHP: 5.6
7
- Tested up to: 6.0
8
- Stable tag: 9.2.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -232,6 +232,29 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
232
 
233
 
234
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  = 9.2.2 =
236
  - Changes in **all** versions:
237
  * **Fix**. Added nonce field to URLs during updating translations or show system info (CSRF checking), to prevent potential unwanted actions from other users. (9.2.2.1)
@@ -587,7 +610,7 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
587
  * **Fix**. Issue in cost formatting during showing incorrect number of decimal points in discount cost, if used coupon code for discount ( 8.7.3.8) *(Business Large, MultiUser)*
588
  * **Fix**. Issue of not loading custom booking forms, if incorrectly was saved some custom booking form at the Booking > Settings > Form page. Currently if user saved custom booking form with some non standard symbols (like umlauts in names of form), which generate issue of not ability to load or create new forms, then system will reset such forms, and user need to re-create such forms from beginning. (8.7.3.7)
589
  * **Fix**. Issue of showing warning "Division by zero" at line 2199 of biz_m.php file (8.7.3.13) *(Business Medium/Large, MultiUser)*
590
- * **Fix**. Issue of countable creation of season filters with each page refresh, after activation of plugin, if prefix of tables in database, ony "_" *(Business Medium/Large, MultiUser)* (8.7.3.16)
591
 
592
  = 8.7.2 =
593
  - Changes in **all** versions:
@@ -1049,5 +1072,5 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
1049
  For more information, see the [full release notes](https://wpbookingcalendar.com/changelog/).
1050
 
1051
  == Upgrade Notice ==
1052
- = 9.2 =
1053
- New Booking Listing - modern looking & instant working. Single page app design for Booking Listing page with fully new modern design.
4
  Tags: booking calendar, booking system, availability calendar, events calendar, appointments , booking form, reservation, availability, booking, calendar, bookings, ical
5
  Requires at least: 4.0
6
  Requires PHP: 5.6
7
+ Tested up to: 6.1
8
+ Stable tag: 9.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
232
 
233
 
234
  == Changelog ==
235
+ = 9.3 =
236
+ - Changes in **all** versions:
237
+ * **New**. **Edit bookings** in Booking Calendar Free version. Ability to update booking details or reselect booking dates for existing bookings. (9.2.3.4)
238
+ * **Under Hood**. Added 'hash' field to the booking table in all versions of Booking Calendar (9.2.3.3)
239
+ * **Under Hood**. Added 'creation_date' field to the booking table (9.2.3.3)
240
+ * **Under Hood**. Added 'is_trash' field to the booking table, which define date, when booking was trashed (9.2.3.5)
241
+ * **Fix**. Scroll issue during showing warnings or showing payment forms. Scroll to exact elements, which we need to show. (9.2.3.9)
242
+ - Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
243
+ * **New**. **Simulate regular user login** from "super booking admin" account to change settings of such regular activated user in Booking Calendar MultiUser version. (9.2.4.1) *(MultiUser)*
244
+ * **Fix**. Notice: Undefined index: select_booking_form in ../core/any/class-admin-settings-api.php on line 1457 (9.2.4.2)
245
+ * **Fix**. Issue of missed decimal digits in Stripe payment (9.2.4.3)
246
+ * **Fix**. Issue in Stripe showing warning payment method bacs_debit requires payment_intent_data[setup_future_usage] to be set to off_session (9.2.4.4)
247
+ * **Fix**. Error: "Warning! Number of check in != check out times.", while using "change over" days functionality and selected only 1 day in calendar (usually during using auto-fill button at Booking > Add booking page). In this case, system make FULL day blocking.
248
+ * **Fix**. If yoiu will see the error: "Warning! Number of check in != check out times.", you will see the instruction how to resolve this issue. (9.2.4.5)
249
+
250
+ = 9.2.3 =
251
+ - Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
252
+ * **New**. Shortcode in emails [cost_digits_only] - to show booking cost without currency (9.2.3.1)
253
+ * **New**. Ability to define title of "Search availability" button in search form at the Booking > Settings > Search page. Use shortcodes like this: [search_button "Search availability"] (9.2.3.2)
254
+ * **New**. Receive payments for "Regular User" bookings to "Super Booking Admin" payment account. Activate this option at the Booking > Settings General page in "MultiUser" section. (9.2.3.8)
255
+ * **Improvement**. Replaced Stripe php library to newest 9.0.0 (9.2.3.7)
256
+ * **Fix**. Error message in Stripe payment form: "Caught exception: You cannot use 'line_items.amount', 'line_items.currency', 'line_items.name', 'line_items.description', or 'line_items.images' in this API version. Please use 'line_items.price' or 'line_items.price_data'." (9.2.3.7)
257
+
258
  = 9.2.2 =
259
  - Changes in **all** versions:
260
  * **Fix**. Added nonce field to URLs during updating translations or show system info (CSRF checking), to prevent potential unwanted actions from other users. (9.2.2.1)
610
  * **Fix**. Issue in cost formatting during showing incorrect number of decimal points in discount cost, if used coupon code for discount ( 8.7.3.8) *(Business Large, MultiUser)*
611
  * **Fix**. Issue of not loading custom booking forms, if incorrectly was saved some custom booking form at the Booking > Settings > Form page. Currently if user saved custom booking form with some non standard symbols (like umlauts in names of form), which generate issue of not ability to load or create new forms, then system will reset such forms, and user need to re-create such forms from beginning. (8.7.3.7)
612
  * **Fix**. Issue of showing warning "Division by zero" at line 2199 of biz_m.php file (8.7.3.13) *(Business Medium/Large, MultiUser)*
613
+ * **Fix**. Issue of countable creation of season filters with each page refresh, after activation of plugin, if prefix of tables in database, only "_" *(Business Medium/Large, MultiUser)* (8.7.3.16)
614
 
615
  = 8.7.2 =
616
  - Changes in **all** versions:
1072
  For more information, see the [full release notes](https://wpbookingcalendar.com/changelog/).
1073
 
1074
  == Upgrade Notice ==
1075
+ = 9.3 =
1076
+ Ability to Edit bookings in the Booking Calendar Free version. Simulate login of a regular user from a "super booking administrator" account in MultiUser version.
wpdev-booking.php CHANGED
@@ -7,7 +7,7 @@ Author: wpdevelop, oplugins
7
  Author URI: https://wpbookingcalendar.com/
8
  Text Domain: booking
9
  Domain Path: /languages/
10
- Version: 9.2.2
11
  */
12
 
13
  /* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
@@ -29,9 +29,32 @@ Version: 9.2.2
29
  if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
30
 
31
 
32
- if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.2.2' ); }
33
 
34
- if ( ! defined( 'WPBC_EXIST_NEW_BOOKING_LISTING' ) ) { define( 'WPBC_EXIST_NEW_BOOKING_LISTING', true ); } //FixIn: 9.2.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  ////////////////////////////////////////////////////////////////////////////////
37
  // PRIMARY URL CONSTANTS
@@ -54,23 +77,4 @@ if ( ! defined('WPBC_PLUGIN_URL' ) ) define('WPBC_PLUGIN_URL', untrailing
54
 
55
  if ( ! defined('WP_BK_MIN_WP_VERSION' ) ) define('WP_BK_MIN_WP_VERSION', '4.0'); //Minimum required WP version //FixIn: 7.0.1.6
56
 
57
- if (
58
- ( WP_DEBUG )
59
- && (
60
- ( ( isset( $_SERVER['HTTP_HOST'] ) ) && ( 'beta' === $_SERVER['HTTP_HOST'] ) )
61
- || ( ( isset( $_SERVER['SCRIPT_FILENAME'] ) ) && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'wpbookingcalendar.com' ) !== false ) )
62
- || ( ( isset( $_SERVER['HTTP_HOST'] ) ) && ( strpos( $_SERVER['HTTP_HOST'], 'wpbookingcalendar.com' ) !== false ) )
63
-
64
- )
65
- ) {
66
- $current_error_reporting = error_reporting();
67
- error_reporting( $current_error_reporting ^ ( E_DEPRECATED ) );
68
-
69
- add_filter( 'deprecated_constructor_trigger_error', '__return_false' );
70
- add_filter( 'deprecated_function_trigger_error', '__return_false' );
71
- add_filter( 'deprecated_file_trigger_error', '__return_false' );
72
- add_filter( 'deprecated_argument_trigger_error', '__return_false' );
73
- add_filter( 'deprecated_hook_trigger_error', '__return_false' );
74
- }
75
-
76
  require_once WPBC_PLUGIN_DIR . '/core/wpbc.php';
7
  Author URI: https://wpbookingcalendar.com/
8
  Text Domain: booking
9
  Domain Path: /languages/
10
+ Version: 9.3
11
  */
12
 
13
  /* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
29
  if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
30
 
31
 
32
+ if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.3' ); }
33
 
34
+ if ( ! defined( 'WPBC_EXIST_NEW_BOOKING_LISTING' ) ) { define( 'WPBC_EXIST_NEW_BOOKING_LISTING', true ); } //FixIn: 9.2.1
35
+ if ( ! defined( 'WPBC_EXIST_NEW_AVAILABILITY' ) ) { define( 'WPBC_EXIST_NEW_AVAILABILITY', !true ); } //FixIn: 9.3.0.1
36
+
37
+ if (
38
+ ( WP_DEBUG )
39
+ && ( version_compare( PHP_VERSION, '8.1', '>=' ) ) // If PHP >= 8.1
40
+ && ( version_compare( get_bloginfo( 'version' ), '6.1', '<' ) ) // WordPress < 6.1
41
+ && (
42
+ ( ( isset( $_SERVER['HTTP_HOST'] ) ) && ( 'beta' === $_SERVER['HTTP_HOST'] ) )
43
+ || ( ( isset( $_SERVER['SCRIPT_FILENAME'] ) ) && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'wpbookingcalendar.com' ) !== false ) )
44
+ || ( ( isset( $_SERVER['HTTP_HOST'] ) ) && ( strpos( $_SERVER['HTTP_HOST'], 'wpbookingcalendar.com' ) !== false ) )
45
+
46
+ )
47
+ ) {
48
+ // Remove it in WordPress 6.1, because there will be Update Requests library to version 2.0.0, which generate most of such messages: Deprecated: Return type of Requests_Cookie_Jar:
49
+ $current_error_reporting = error_reporting();
50
+ error_reporting( $current_error_reporting ^ ( E_DEPRECATED ) );
51
+
52
+ add_filter( 'deprecated_constructor_trigger_error', '__return_false' );
53
+ add_filter( 'deprecated_function_trigger_error', '__return_false' );
54
+ add_filter( 'deprecated_file_trigger_error', '__return_false' );
55
+ add_filter( 'deprecated_argument_trigger_error', '__return_false' );
56
+ add_filter( 'deprecated_hook_trigger_error', '__return_false' );
57
+ }
58
 
59
  ////////////////////////////////////////////////////////////////////////////////
60
  // PRIMARY URL CONSTANTS
77
 
78
  if ( ! defined('WP_BK_MIN_WP_VERSION' ) ) define('WP_BK_MIN_WP_VERSION', '4.0'); //Minimum required WP version //FixIn: 7.0.1.6
79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  require_once WPBC_PLUGIN_DIR . '/core/wpbc.php';