Restaurant Reservations - Version 1.7.7

Version Description

Download this release

Release Info

Developer NateWr
Plugin Icon 128x128 Restaurant Reservations
Version 1.7.7
Comparing to
See all releases

Code changes from version 1.7.6 to 1.7.7

assets/css/admin.css CHANGED
@@ -205,7 +205,7 @@
205
  }
206
 
207
  #rtb-bookings-table td .actions {
208
- line-height: 28px;
209
  opacity: 0;
210
  -webkit-transition: opacity 0.3s 0;
211
  -moz-transition: opacity 0.3s 0;
@@ -216,11 +216,13 @@
216
  opacity: 1;
217
  }
218
 
219
- #rtb-bookings-table .column-date .actions .trash {
 
220
  color: #a00;
221
  }
222
 
223
- #rtb-bookings-table .column-date .actions .trash:hover {
 
224
  color: red;
225
  }
226
 
@@ -258,6 +260,10 @@
258
  margin: 0;
259
  }
260
 
 
 
 
 
261
  .rtb-details-data {
262
  display: none;
263
  }
@@ -513,6 +519,43 @@
513
  min-height: 12em;
514
  }
515
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
  .rtb-description {
517
  margin: 0.5em 0;
518
  color: #777;
205
  }
206
 
207
  #rtb-bookings-table td .actions {
208
+ line-height: 1.5em;
209
  opacity: 0;
210
  -webkit-transition: opacity 0.3s 0;
211
  -moz-transition: opacity 0.3s 0;
216
  opacity: 1;
217
  }
218
 
219
+ #rtb-bookings-table .column-date .actions .trash,
220
+ #rtb-bookings-table .actions [data-action="delete"] {
221
  color: #a00;
222
  }
223
 
224
+ #rtb-bookings-table .column-date .actions .trash:hover,
225
+ #rtb-bookings-table .actions [data-action="delete"]:hover {
226
  color: red;
227
  }
228
 
260
  margin: 0;
261
  }
262
 
263
+ #rtb-bookings-table .consent {
264
+ margin-top: 0.5em;
265
+ }
266
+
267
  .rtb-details-data {
268
  display: none;
269
  }
519
  min-height: 12em;
520
  }
521
 
522
+ #rtb-delete-modal #rtb-delete-status {
523
+ display: none;
524
+ margin-top: 2em;
525
+ margin-bottom: 1em;
526
+ }
527
+
528
+ #rtb-delete-modal #rtb-delete-status.is-visible {
529
+ display: block;
530
+ }
531
+
532
+ #rtb-delete-modal .rtb-delete-status-total {
533
+ position: relative;
534
+ display: block;
535
+ width: 100%;
536
+ height: 16px;
537
+ border: 1px solid #0085ba;
538
+ }
539
+
540
+ #rtb-delete-modal .rtb-delete-status-progress {
541
+ position: absolute;
542
+ display: block;
543
+ width: 0;
544
+ height: 100%;
545
+ background: #0085ba;
546
+ transition: width 0.2s;
547
+ }
548
+
549
+ #rtb-delete-modal #rtb-delete-status-deleted {
550
+ margin-top: 0.5em;
551
+ text-align: right;
552
+ }
553
+
554
+ #rtb-delete-modal #rtb-cancel-delete-modal {
555
+ padding-left: 1em;
556
+ padding-right: 1em;
557
+ }
558
+
559
  .rtb-description {
560
  margin: 0.5em 0;
561
  color: #777;
assets/js/admin.js CHANGED
@@ -59,6 +59,9 @@ jQuery(document).ready(function ($) {
59
 
60
  } else if ( target.data( 'action' ) == 'ban') {
61
  rtb_toggle_ban_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'ip' ) );
 
 
 
62
  }
63
 
64
  e.preventDefault();
@@ -112,7 +115,14 @@ jQuery(document).ready(function ($) {
112
  rtb_ban_modal_submit_email = rtb_ban_modal.find( '#rtb-ban-modal-email-btn' ),
113
  rtb_ban_modal_submit_ip = rtb_ban_modal.find( '#rtb-ban-modal-ip-btn' ),
114
  rtb_ban_modal_cancel = rtb_ban_modal.find( '#rtb-cancel-ban-modal' ),
115
- rtb_ban_modal_action_status = rtb_ban_modal.find( '.action-status' );
 
 
 
 
 
 
 
116
 
117
  /**
118
  * Show or hide the booking form modal
@@ -222,6 +232,8 @@ jQuery(document).ready(function ($) {
222
  rtb_toggle_email_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'name' ) );
223
  } else if ( target.data( 'action' ) == 'ban') {
224
  rtb_toggle_ban_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'ip' ) );
 
 
225
  }
226
  });
227
 
@@ -264,6 +276,23 @@ jQuery(document).ready(function ($) {
264
  }
265
  }
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  /**
268
  * Initialize form field events
269
  */
@@ -444,6 +473,17 @@ jQuery(document).ready(function ($) {
444
  }
445
  });
446
 
 
 
 
 
 
 
 
 
 
 
 
447
  // Close modals when ESC is keyed
448
  $(document).keyup( function(e) {
449
  if ( e.which == '27' ) {
@@ -453,6 +493,7 @@ jQuery(document).ready(function ($) {
453
  rtb_toggle_details_modal( false );
454
  rtb_toggle_booking_form_error_modal( false );
455
  rtb_toggle_ban_modal( false );
 
456
  }
457
  });
458
 
@@ -715,4 +756,75 @@ jQuery(document).ready(function ($) {
715
  rtb_ban_modal_submit( e, 'ip' );
716
  });
717
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
718
  });
59
 
60
  } else if ( target.data( 'action' ) == 'ban') {
61
  rtb_toggle_ban_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'ip' ) );
62
+
63
+ } else if ( target.data( 'action' ) == 'delete') {
64
+ rtb_toggle_delete_modal( true, target.data( 'id'), target.data( 'email' ) );
65
  }
66
 
67
  e.preventDefault();
115
  rtb_ban_modal_submit_email = rtb_ban_modal.find( '#rtb-ban-modal-email-btn' ),
116
  rtb_ban_modal_submit_ip = rtb_ban_modal.find( '#rtb-ban-modal-ip-btn' ),
117
  rtb_ban_modal_cancel = rtb_ban_modal.find( '#rtb-cancel-ban-modal' ),
118
+ rtb_ban_modal_action_status = rtb_ban_modal.find( '.action-status' ),
119
+ rtb_delete_modal = $( '#rtb-delete-modal' ),
120
+ rtb_delete_modal_submit_btn = rtb_delete_modal.find( '#rtb-delete-modal-btn' ),
121
+ rtb_delete_modal_cancel = rtb_delete_modal.find( '#rtb-cancel-delete-modal' ),
122
+ rtb_delete_modal_action_status = rtb_delete_modal.find( '.action-status' ),
123
+ rtb_delete_modal_status = rtb_delete_modal.find( '#rtb-delete-status' ),
124
+ rtb_delete_modal_progress = rtb_delete_modal_status.find( '#rtb-delete-status-progress' ),
125
+ rtb_delete_modal_deleted = rtb_delete_modal_status.find( '#rtb-delete-status-deleted' );
126
 
127
  /**
128
  * Show or hide the booking form modal
232
  rtb_toggle_email_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'name' ) );
233
  } else if ( target.data( 'action' ) == 'ban') {
234
  rtb_toggle_ban_modal( true, target.data( 'id'), target.data( 'email' ), target.data( 'ip' ) );
235
+ } else if ( target.data( 'action' ) == 'delete') {
236
+ rtb_toggle_delete_modal( true, target.data( 'id'), target.data( 'email' ) );
237
  }
238
  });
239
 
276
  }
277
  }
278
 
279
+ /**
280
+ * Show or hide the delete customer form modal
281
+ */
282
+ function rtb_toggle_delete_modal( show, id, email ) {
283
+
284
+ if ( show ) {
285
+ rtb_delete_modal.scrollTop( 0 ).addClass( 'is-visible' );
286
+ rtb_delete_modal.find( '#rtb-delete-modal-email' ).text( email );
287
+ $( 'body' ).addClass( 'rtb-hide-body-scroll' );
288
+
289
+ } else {
290
+ rtb_delete_modal.removeClass( 'is-visible' );
291
+ rtb_delete_modal.find( '#rtb-ban-modal-email' ).text( '' );
292
+ $( 'body' ).removeClass( 'rtb-hide-body-scroll' );
293
+ }
294
+ }
295
+
296
  /**
297
  * Initialize form field events
298
  */
473
  }
474
  });
475
 
476
+ // Close delete modal when background or cancel button is clicked
477
+ rtb_delete_modal.click( function(e) {
478
+ if ( $(e.target).is( rtb_delete_modal ) ) {
479
+ rtb_toggle_delete_modal( false );
480
+ }
481
+
482
+ if ( $(e.target).is( rtb_delete_modal_cancel ) && rtb_delete_modal_cancel.prop( 'disabled' ) !== true ) {
483
+ rtb_toggle_delete_modal( false );
484
+ }
485
+ });
486
+
487
  // Close modals when ESC is keyed
488
  $(document).keyup( function(e) {
489
  if ( e.which == '27' ) {
493
  rtb_toggle_details_modal( false );
494
  rtb_toggle_booking_form_error_modal( false );
495
  rtb_toggle_ban_modal( false );
496
+ rtb_toggle_delete_modal( false );
497
  }
498
  });
499
 
756
  rtb_ban_modal_submit( e, 'ip' );
757
  });
758
 
759
+ // Delete customers by email
760
+ function rtb_delete_modal_submit( e ) {
761
+
762
+ e.preventDefault();
763
+ e.stopPropagation();
764
+
765
+ // Loading
766
+ rtb_delete_modal_submit_btn.prop( 'disabled', true );
767
+ rtb_delete_modal_cancel.prop( 'disabled', true );
768
+ rtb_delete_modal_action_status.addClass( 'is-visible' );
769
+ rtb_delete_modal_status.addClass('is-visible');
770
+ rtb_show_action_status( rtb_delete_modal_action_status, 'loading' );
771
+
772
+ function delete_page( params ) {
773
+
774
+ var jqhxr = $.post( ajaxurl, $.param( params ), function( r ) {
775
+
776
+ if ( r.success ) {
777
+
778
+ processed = processed + r.data.processed;
779
+ deleted = deleted + r.data.deleted;
780
+ var percent = Math.ceil( ( processed / r.data.total ) * 100 );
781
+ rtb_delete_modal_progress.css( 'width', percent + '%' );
782
+ rtb_delete_modal_deleted.text( deleted + ' bookings deleted' );
783
+
784
+ if ( processed < r.data.total ) {
785
+ params.page++;
786
+ delete_page( params );
787
+ } else {
788
+ rtb_delete_modal_cancel.click(function(e) {
789
+ window.location.reload();
790
+ });
791
+ rtb_delete_modal_deleted.text( 'Finished! ' + deleted + ' bookings deleted' );
792
+ rtb_delete_modal_cancel.prop( 'disabled', false );
793
+ rtb_delete_modal_submit_btn.css('display', 'none');
794
+ rtb_delete_modal_action_status.removeClass( 'is-visible' );
795
+ rtb_show_action_status( rtb_delete_modal_action_status, false );
796
+ }
797
+
798
+ } else {
799
+
800
+ if ( typeof r.data == 'undefined' || typeof r.data.error == 'undefined' ) {
801
+ rtb_toggle_booking_form_error_modal( true, rtb_admin.strings.error_unspecified );
802
+ } else {
803
+ rtb_toggle_booking_form_error_modal( true, r.data.msg );
804
+ }
805
+
806
+ rtb_delete_modal_submit_btn.prop( 'disabled', false );
807
+ rtb_delete_modal_cancel.prop( 'disabled', false );
808
+ rtb_delete_modal_action_status.removeClass( 'is-visible' );
809
+ rtb_delete_modal_status.removeClass( 'is-visible' );
810
+ rtb_show_action_status( rtb_delete_modal_action_status, false );
811
+ }
812
+ });
813
+ }
814
+
815
+ var processed = 0;
816
+ var deleted = 0;
817
+ delete_page({
818
+ action: 'rtb-admin-delete-modal',
819
+ nonce: rtb_admin.nonce,
820
+ email: rtb_delete_modal.find( '#rtb-delete-modal-email' ).text(),
821
+ page: 1,
822
+ });
823
+ }
824
+
825
+ // Submit ban email form modal
826
+ rtb_delete_modal_submit_btn.click( function(e) {
827
+ rtb_delete_modal_submit( e );
828
+ });
829
+
830
  });
includes/AdminBookings.class.php CHANGED
@@ -40,6 +40,8 @@ class rtbAdminBookings {
40
  add_action( 'wp_ajax_rtb-admin-column-modal', array( $this, 'column_modal_ajax' ) );
41
  add_action( 'wp_ajax_nopriv_rtb-admin-ban-modal' , array( $this , 'nopriv_ajax' ) );
42
  add_action( 'wp_ajax_rtb-admin-ban-modal', array( $this, 'ban_modal_ajax' ) );
 
 
43
 
44
  // Validate post status and notification fields
45
  add_action( 'rtb_validate_booking_submission', array( $this, 'validate_admin_fields' ) );
@@ -305,6 +307,33 @@ class rtbAdminBookings {
305
  </div>
306
  </div>
307
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
  <!-- Restaurant Reservations error message modal -->
309
  <div id="rtb-error-modal" class="rtb-admin-modal">
310
  <div class="rtb-error rtb-container">
@@ -751,6 +780,67 @@ class rtbAdminBookings {
751
  );
752
  }
753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
  /**
755
  * Validate post status and notification fields
756
  * @since 1.3
40
  add_action( 'wp_ajax_rtb-admin-column-modal', array( $this, 'column_modal_ajax' ) );
41
  add_action( 'wp_ajax_nopriv_rtb-admin-ban-modal' , array( $this , 'nopriv_ajax' ) );
42
  add_action( 'wp_ajax_rtb-admin-ban-modal', array( $this, 'ban_modal_ajax' ) );
43
+ add_action( 'wp_ajax_nopriv_rtb-admin-delete-modal' , array( $this , 'nopriv_ajax' ) );
44
+ add_action( 'wp_ajax_rtb-admin-delete-modal', array( $this, 'delete_modal_ajax' ) );
45
 
46
  // Validate post status and notification fields
47
  add_action( 'rtb_validate_booking_submission', array( $this, 'validate_admin_fields' ) );
307
  </div>
308
  </div>
309
 
310
+ <!-- Restaurant Reservations delete customer modal -->
311
+ <div id="rtb-delete-modal" class="rtb-admin-modal">
312
+ <div class="rtb-delete-form rtb-container">
313
+ <div class="rtb-delete-msg">
314
+ <?php
315
+ printf(
316
+ __( 'Delete all booking records related to email address %s? This action can not be undone.', 'restaurant-reservations' ),
317
+ '<span id="rtb-delete-modal-email"></span>'
318
+ );
319
+ ?>
320
+ </div>
321
+ <div id="rtb-delete-status">
322
+ <span class="rtb-delete-status-total">
323
+ <span id="rtb-delete-status-progress" class="rtb-delete-status-progress"></span>
324
+ </span>
325
+ <div id="rtb-delete-status-deleted"></div>
326
+ </div>
327
+ <button class="button button-primary" id="rtb-delete-modal-btn">Delete Bookings</button>
328
+ <button id="rtb-cancel-delete-modal" class="button"><?php _e( 'Close', 'restaurant-reservations' ); ?></button>
329
+ <div class="action-status">
330
+ <span class="spinner loading"></span>
331
+ <span class="dashicons dashicons-no-alt error"></span>
332
+ <span class="dashicons dashicons-yes success"></span>
333
+ </div>
334
+ </div>
335
+ </div>
336
+
337
  <!-- Restaurant Reservations error message modal -->
338
  <div id="rtb-error-modal" class="rtb-admin-modal">
339
  <div class="rtb-error rtb-container">
780
  );
781
  }
782
 
783
+ /**
784
+ * Handle ajax requests to delete bookings by email
785
+ *
786
+ * @since 1.7.7
787
+ */
788
+ public function delete_modal_ajax() {
789
+
790
+ global $rtb_controller;
791
+
792
+ // Authenticate request
793
+ if ( !check_ajax_referer( 'rtb-admin', 'nonce' ) || !current_user_can( 'manage_bookings' ) ) {
794
+ $this->nopriv_ajax();
795
+ }
796
+
797
+ if ( !empty( $_POST['email'] ) ) {
798
+ $email = sanitize_email( $_POST['email'] );
799
+
800
+ $args = array(
801
+ 'date_range' => null,
802
+ 'posts_per_page' => 100,
803
+ 'paged' => !empty( $_POST['page'] ) ? (int) $_POST['page'] : 1,
804
+ );
805
+
806
+ $query = new rtbQuery( $args, 'delete-by-email' );
807
+ $query->prepare_args();
808
+
809
+ $bookings = $query->get_bookings();
810
+ $deleted = 0;
811
+ foreach( $bookings as $booking ) {
812
+ if ( isset( $booking->email ) && $booking->email === $email) {
813
+ wp_delete_post( $booking->ID, true );
814
+ $deleted++;
815
+ }
816
+ }
817
+
818
+ // Get count of all bookings
819
+ global $wpdb;
820
+ $where = "WHERE p.post_type = '" . RTB_BOOKING_POST_TYPE . "'";
821
+ $query = "SELECT count( * ) AS num_posts
822
+ FROM $wpdb->posts p
823
+ $where
824
+ ";
825
+
826
+ $count = $wpdb->get_results( $query );
827
+ $count = (int) $count[0]->num_posts;
828
+
829
+ wp_send_json_success(array(
830
+ 'processed' => count($bookings),
831
+ 'deleted' => $deleted,
832
+ 'total' => $count,
833
+ ));
834
+ }
835
+
836
+ wp_send_json_error(
837
+ array(
838
+ 'error' => 'no_data',
839
+ 'msg' => __( 'No email address could be found for this delete request.', 'restaurant-reservations' ),
840
+ )
841
+ );
842
+ }
843
+
844
  /**
845
  * Validate post status and notification fields
846
  * @since 1.3
includes/Booking.class.php CHANGED
@@ -81,6 +81,7 @@ class rtbBooking {
81
  'date_submission' => '',
82
  'logs' => array(),
83
  'ip' => '',
 
84
  );
85
 
86
  $meta_defaults = apply_filters( 'rtb_booking_metadata_defaults', $meta_defaults );
@@ -97,6 +98,7 @@ class rtbBooking {
97
  $this->date_submission = $meta['date_submission'];
98
  $this->logs = $meta['logs'];
99
  $this->ip = $meta['ip'];
 
100
  }
101
 
102
  /**
@@ -462,6 +464,13 @@ class rtbBooking {
462
  $this->post_status = 'pending';
463
  }
464
 
 
 
 
 
 
 
 
465
  // Check if any required fields are empty
466
  $required_fields = $rtb_controller->settings->get_required_fields();
467
  foreach( $required_fields as $slug => $field ) {
@@ -639,23 +648,47 @@ class rtbBooking {
639
 
640
  $args = apply_filters( 'rtb_insert_booking_data', $args, $this );
641
 
642
- $id = wp_insert_post( $args );
643
-
644
- if ( is_wp_error( $id ) || $id === false ) {
645
- $this->insert_post_error = $id;
646
- return false;
 
 
647
  } else {
648
- $this->ID = $id;
 
 
 
 
649
  }
650
 
 
 
 
 
 
 
 
 
 
651
  $meta = array(
652
- 'party' => $this->party,
653
- 'email' => $this->email,
654
- 'phone' => $this->phone,
655
- 'date_submission' => current_time( 'timestamp' ),
656
- 'ip' => $this->ip,
657
  );
658
 
 
 
 
 
 
 
 
 
 
 
659
  if ( !empty( $this->logs ) ) {
660
  $meta['logs'] = $this->logs;
661
  }
@@ -663,7 +696,6 @@ class rtbBooking {
663
  $meta = apply_filters( 'rtb_insert_booking_metadata', $meta, $this );
664
 
665
  return update_post_meta( $this->ID, 'rtb', $meta );
666
-
667
  }
668
 
669
  }
81
  'date_submission' => '',
82
  'logs' => array(),
83
  'ip' => '',
84
+ 'consent_acquired' => '',
85
  );
86
 
87
  $meta_defaults = apply_filters( 'rtb_booking_metadata_defaults', $meta_defaults );
98
  $this->date_submission = $meta['date_submission'];
99
  $this->logs = $meta['logs'];
100
  $this->ip = $meta['ip'];
101
+ $this->consent_acquired = $meta['consent_acquired'];
102
  }
103
 
104
  /**
464
  $this->post_status = 'pending';
465
  }
466
 
467
+ // Consent
468
+ $require_consent = $rtb_controller->settings->get_setting( 'require-consent' );
469
+ $consent_statement = $rtb_controller->settings->get_setting( 'consent-statement' );
470
+ if ( $require_consent && $consent_statement ) {
471
+ $this->consent_acquired = !empty( $_POST['rtb-consent-statement'] );
472
+ }
473
+
474
  // Check if any required fields are empty
475
  $required_fields = $rtb_controller->settings->get_required_fields();
476
  foreach( $required_fields as $slug => $field ) {
648
 
649
  $args = apply_filters( 'rtb_insert_booking_data', $args, $this );
650
 
651
+ // When updating a booking, we need to update the metadata first, so that
652
+ // notifications hooked to the status changes go out with the new metadata.
653
+ // If we're inserting a new booking, we have to insert it before we can
654
+ // add metadata, and the default notifications don't fire until it's all done.
655
+ if ( !empty( $this->ID ) ) {
656
+ $this->insert_post_meta();
657
+ $id = wp_insert_post( $args );
658
  } else {
659
+ $id = wp_insert_post( $args );
660
+ if ( $id && !is_wp_error( $id ) ) {
661
+ $this->ID = $id;
662
+ $this->insert_post_meta();
663
+ }
664
  }
665
 
666
+ return !is_wp_error( $id ) && $id !== false;
667
+ }
668
+
669
+ /**
670
+ * Insert the post metadata for a new booking or when updating a booking
671
+ * @since 1.7.7
672
+ */
673
+ public function insert_post_meta() {
674
+
675
  $meta = array(
676
+ 'party' => $this->party,
677
+ 'email' => $this->email,
678
+ 'phone' => $this->phone,
679
+ 'ip' => $this->ip,
 
680
  );
681
 
682
+ if ( empty( $this->date_submission ) ) {
683
+ $meta['date_submission'] = current_time( 'timestamp' );
684
+ } else {
685
+ $meta['date_submission'] = $this->date_submission;
686
+ }
687
+
688
+ if ( !empty( $this->consent_acquired ) ) {
689
+ $meta['consent_acquired'] = $this->consent_acquired;
690
+ }
691
+
692
  if ( !empty( $this->logs ) ) {
693
  $meta['logs'] = $this->logs;
694
  }
696
  $meta = apply_filters( 'rtb_insert_booking_metadata', $meta, $this );
697
 
698
  return update_post_meta( $this->ID, 'rtb', $meta );
 
699
  }
700
 
701
  }
includes/Notification.Email.class.php CHANGED
@@ -224,7 +224,7 @@ class rtbNotificationEmail extends rtbNotification {
224
  * @since 0.0.1
225
  */
226
  public function send_notification() {
227
- wp_mail( $this->to_email, $this->subject, $this->message, $this->headers );
228
  }
229
  }
230
  } // endif;
224
  * @since 0.0.1
225
  */
226
  public function send_notification() {
227
+ wp_mail( $this->to_email, $this->subject, $this->message, $this->headers, apply_filters( 'rtb_notification_email_attachments', array(), $this ) );
228
  }
229
  }
230
  } // endif;
includes/Notification.class.php CHANGED
@@ -90,7 +90,7 @@ abstract class rtbNotification {
90
  '{close_link}' => '<a href="' . admin_url( 'admin.php?page=rtb-bookings&rtb-quicklink=close&booking=' . esc_attr( $this->booking->ID ) ) . '">' . __( 'Reject this booking', 'restaurant-reservations' ) . '</a>',
91
  '{site_name}' => get_bloginfo( 'name' ),
92
  '{site_link}' => '<a href="' . home_url( '/' ) . '">' . get_bloginfo( 'name' ) . '</a>',
93
- '{current_time}' => date( get_option( 'date_format' ), current_time( 'timestamp' ) ) . ' ' . date( get_option( 'time_format' ), current_time( 'timestamp' ) ),
94
  );
95
 
96
  $template_tags = apply_filters( 'rtb_notification_template_tags', $template_tags, $this );
90
  '{close_link}' => '<a href="' . admin_url( 'admin.php?page=rtb-bookings&rtb-quicklink=close&booking=' . esc_attr( $this->booking->ID ) ) . '">' . __( 'Reject this booking', 'restaurant-reservations' ) . '</a>',
91
  '{site_name}' => get_bloginfo( 'name' ),
92
  '{site_link}' => '<a href="' . home_url( '/' ) . '">' . get_bloginfo( 'name' ) . '</a>',
93
+ '{current_time}' => date_i18n( get_option( 'date_format' ), current_time( 'timestamp' ) ) . ' ' . date_i18n( get_option( 'time_format' ), current_time( 'timestamp' ) ),
94
  );
95
 
96
  $template_tags = apply_filters( 'rtb_notification_template_tags', $template_tags, $this );
includes/Settings.class.php CHANGED
@@ -316,9 +316,18 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
316
  )
317
  );
318
 
 
 
 
 
 
 
 
 
 
319
  $sap->add_setting(
320
  'rtb-settings',
321
- 'rtb-general',
322
  'text',
323
  array(
324
  'id' => 'date-format',
@@ -330,7 +339,7 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
330
 
331
  $sap->add_setting(
332
  'rtb-settings',
333
- 'rtb-general',
334
  'text',
335
  array(
336
  'id' => 'time-format',
@@ -355,9 +364,18 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
355
  );
356
  }
357
 
 
 
 
 
 
 
 
 
 
358
  $sap->add_setting(
359
  'rtb-settings',
360
- 'rtb-general',
361
  'textarea',
362
  array(
363
  'id' => 'ban-emails',
@@ -368,7 +386,7 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
368
 
369
  $sap->add_setting(
370
  'rtb-settings',
371
- 'rtb-general',
372
  'textarea',
373
  array(
374
  'id' => 'ban-ips',
@@ -377,6 +395,54 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
377
  )
378
  );
379
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
380
  $sap->add_section(
381
  'rtb-settings',
382
  array(
@@ -768,6 +834,8 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
768
  */
769
  public function get_form_party_options() {
770
 
 
 
771
  $party_size = (int) $this->get_setting( 'party-size' );
772
  $party_size_min = (int) $this->get_setting( 'party-size-min' );
773
 
@@ -791,12 +859,13 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
791
  */
792
  public function get_booking_form_fields( $request = null, $args = array() ) {
793
 
 
 
794
  // $request will represent a rtbBooking object with the request
795
  // details when the form is being printed and $_POST data exists
796
  // to populate the request. All other times $request will just
797
  // be an empty object
798
  if ( $request === null ) {
799
- global $rtb_controller;
800
  $request = $rtb_controller->request;
801
  }
802
 
@@ -907,6 +976,29 @@ Sorry, we could not accomodate your booking request. We\'re full or not open at
907
  ),
908
  );
909
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
910
  return apply_filters( 'rtb_booking_form_fields', $fields, $request, $args );
911
  }
912
 
316
  )
317
  );
318
 
319
+ $sap->add_section(
320
+ 'rtb-settings',
321
+ array(
322
+ 'id' => 'rtb-booking-form',
323
+ 'title' => __( 'Booking Form', 'restaurant-reservations' ),
324
+ 'tab' => 'rtb-general',
325
+ )
326
+ );
327
+
328
  $sap->add_setting(
329
  'rtb-settings',
330
+ 'rtb-booking-form',
331
  'text',
332
  array(
333
  'id' => 'date-format',
339
 
340
  $sap->add_setting(
341
  'rtb-settings',
342
+ 'rtb-booking-form',
343
  'text',
344
  array(
345
  'id' => 'time-format',
364
  );
365
  }
366
 
367
+ $sap->add_section(
368
+ 'rtb-settings',
369
+ array(
370
+ 'id' => 'rtb-security',
371
+ 'title' => __( 'Security', 'restaurant-reservations' ),
372
+ 'tab' => 'rtb-general',
373
+ )
374
+ );
375
+
376
  $sap->add_setting(
377
  'rtb-settings',
378
+ 'rtb-security',
379
  'textarea',
380
  array(
381
  'id' => 'ban-emails',
386
 
387
  $sap->add_setting(
388
  'rtb-settings',
389
+ 'rtb-security',
390
  'textarea',
391
  array(
392
  'id' => 'ban-ips',
395
  )
396
  );
397
 
398
+ $sap->add_section(
399
+ 'rtb-settings',
400
+ array(
401
+ 'id' => 'rtb-privacy',
402
+ 'title' => __( 'Privacy', 'restaurant-reservations' ),
403
+ 'tab' => 'rtb-general',
404
+ )
405
+ );
406
+
407
+ $sap->add_setting(
408
+ 'rtb-settings',
409
+ 'rtb-privacy',
410
+ 'toggle',
411
+ array(
412
+ 'id' => 'require-consent',
413
+ 'title' => __( 'Require Consent', 'restaurant-reservations' ),
414
+ 'label' => __( 'Require customers to consent to the collection of their details when making a booking. This may be required to comply with privacy laws in your country.', 'restaurant-reservations' )
415
+ )
416
+ );
417
+
418
+ $sap->add_setting(
419
+ 'rtb-settings',
420
+ 'rtb-privacy',
421
+ 'textarea',
422
+ array(
423
+ 'id' => 'consent-statement',
424
+ 'title' => __( 'Consent Statement', 'restaurant-reservations' ),
425
+ 'description' => __( 'Enter the statement you would like customers to confirm when making a booking.', 'restaurant-reservations' ),
426
+ )
427
+ );
428
+
429
+ $sap->add_setting(
430
+ 'rtb-settings',
431
+ 'rtb-privacy',
432
+ 'post',
433
+ array(
434
+ 'id' => 'privacy-page',
435
+ 'title' => __( 'Privacy Statement Page', 'restaurant-reservations' ),
436
+ 'description' => __( 'Select a page on your site which contains a privacy statement. If selected, it will be linked to in your consent statement.', 'restaurant-reservations' ),
437
+ 'blank_option' => true,
438
+ 'args' => array(
439
+ 'post_type' => 'page',
440
+ 'posts_per_page' => -1,
441
+ 'post_status' => 'publish',
442
+ ),
443
+ )
444
+ );
445
+
446
  $sap->add_section(
447
  'rtb-settings',
448
  array(
834
  */
835
  public function get_form_party_options() {
836
 
837
+ $options = array();
838
+
839
  $party_size = (int) $this->get_setting( 'party-size' );
840
  $party_size_min = (int) $this->get_setting( 'party-size-min' );
841
 
859
  */
860
  public function get_booking_form_fields( $request = null, $args = array() ) {
861
 
862
+ global $rtb_controller;
863
+
864
  // $request will represent a rtbBooking object with the request
865
  // details when the form is being printed and $_POST data exists
866
  // to populate the request. All other times $request will just
867
  // be an empty object
868
  if ( $request === null ) {
 
869
  $request = $rtb_controller->request;
870
  }
871
 
976
  ),
977
  );
978
 
979
+ // Add a consent request if setting is selected and it's not the admin page
980
+ $require_consent = $rtb_controller->settings->get_setting( 'require-consent' );
981
+ $consent_statement = $rtb_controller->settings->get_setting( 'consent-statement' );
982
+ $privacy_page = $rtb_controller->settings->get_setting( 'privacy-page' );
983
+ if ( !is_admin() && $require_consent && $consent_statement ) {
984
+
985
+ if ( $privacy_page && get_post_status( $privacy_page ) !== false ) {
986
+ $consent_statement .= sprintf(' <a href="%s">%s</a>', get_permalink( $privacy_page ), get_the_title( $privacy_page ) );
987
+ }
988
+
989
+ $fields['consent'] = array(
990
+ 'fields' => array(
991
+ 'consent-statement' => array(
992
+ 'title' => $consent_statement,
993
+ 'request_input' => empty( $request->consent_statement ) ? '' : $request->consent_statement,
994
+ 'callback' => 'rtb_print_form_confirm_field',
995
+ 'required' => true,
996
+ ),
997
+ ),
998
+ 'order' => 900,
999
+ );
1000
+ }
1001
+
1002
  return apply_filters( 'rtb_booking_form_fields', $fields, $request, $args );
1003
  }
1004
 
includes/WP_List_Table.BookingsTable.class.php CHANGED
@@ -465,12 +465,23 @@ class rtbBookingsTable extends WP_List_Table {
465
  break;
466
 
467
  case 'submitted-by' :
 
468
  $ip = !empty( $booking->ip ) ? $booking->ip : __( 'Unknown IP', 'restaurant-reservations' );
469
- $date_submission = isset( $booking->date_submission ) ? $booking->format_timestamp( $booking->date_submission ) : __( 'Unknown Date', 'restaurant-reservations' );
470
  $value = sprintf( esc_html__( 'Request from %s on %s.', 'restaurant-reservations' ), $ip, $date_submission );
 
 
 
 
 
 
 
471
  $value .= '<div class="actions">';
472
  $value .= '<a href="#" data-action="ban" data-email="' . esc_attr( $booking->email ) . '" data-id="' . absint( $booking->ID ) . '" data-ip="' . $ip . '">';
473
- $value .= __( 'Ban Customer', 'restaurant-reservations' );
 
 
 
474
  $value .= '</a>';
475
  $value .= '</div>';
476
  break;
465
  break;
466
 
467
  case 'submitted-by' :
468
+ global $rtb_controller;
469
  $ip = !empty( $booking->ip ) ? $booking->ip : __( 'Unknown IP', 'restaurant-reservations' );
470
+ $date_submission = !empty( $booking->date_submission ) ? $booking->format_timestamp( $booking->date_submission ) : __( 'Unknown Date', 'restaurant-reservations' );
471
  $value = sprintf( esc_html__( 'Request from %s on %s.', 'restaurant-reservations' ), $ip, $date_submission );
472
+ if ( $rtb_controller->settings->get_setting( 'require-consent' ) ) {
473
+ if ( !empty( $booking->consent_acquired ) ) {
474
+ $value .= '<div class="consent">' . sprintf( esc_html__( '✓ Consent acquired', 'restaurant-reservations' ) ) . '</div>';
475
+ } else {
476
+ $value .= '<div class="consent">' . sprintf( esc_html__( '✘ Consent not acquired', 'restaurant-reservations' ) ) . '</div>';
477
+ }
478
+ }
479
  $value .= '<div class="actions">';
480
  $value .= '<a href="#" data-action="ban" data-email="' . esc_attr( $booking->email ) . '" data-id="' . absint( $booking->ID ) . '" data-ip="' . $ip . '">';
481
+ $value .= __( 'Ban', 'restaurant-reservations' );
482
+ $value .= '</a>';
483
+ $value .= ' | <a href="#" data-action="delete" data-email="' . esc_attr( $booking->email ) . '" data-id="' . absint( $booking->ID ) . '">';
484
+ $value .= __( 'Delete Customer', 'restaurant-reservations' );
485
  $value .= '</a>';
486
  $value .= '</div>';
487
  break;
languages/restaurant-reservations.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2017 Theme of the Crop
2
  # This file is distributed under the GNU General Public License v2.0 or later.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Restaurant Reservations 1.7.6\n"
6
  "Report-Msgid-Bugs-To: https://themeofthecrop.com\n"
7
- "POT-Creation-Date: 2017-05-15 11:21:11+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
  "X-Generator: grunt-wp-i18n 0.5.4\n"
@@ -43,7 +43,7 @@ msgid ""
43
  "services."
44
  msgstr ""
45
 
46
- #: includes/Addons.class.php:86 includes/Settings.class.php:611
47
  msgid "Email Templates"
48
  msgstr ""
49
 
@@ -182,217 +182,227 @@ msgid ""
182
  "restaurant as well."
183
  msgstr ""
184
 
185
- #: includes/AdminBookings.class.php:86
186
  msgid "Restaurant Bookings"
187
  msgstr ""
188
 
189
- #: includes/AdminBookings.class.php:87 includes/CustomPostTypes.class.php:50
190
  msgid "Add New"
191
  msgstr ""
192
 
193
- #: includes/AdminBookings.class.php:125 includes/AdminBookings.class.php:227
194
  msgid "Columns"
195
  msgstr ""
196
 
197
- #: includes/AdminBookings.class.php:165 restaurant-reservations.php:231
198
  msgid "Add Booking"
199
  msgstr ""
200
 
201
- #: includes/AdminBookings.class.php:168 includes/AdminBookings.class.php:209
202
- #: includes/AdminBookings.class.php:254
203
  msgid "Cancel"
204
  msgstr ""
205
 
206
- #: includes/AdminBookings.class.php:189 includes/AdminBookings.class.php:206
207
  #: includes/WP_List_Table.BookingsTable.class.php:425
208
  msgid "Send Email"
209
  msgstr ""
210
 
211
- #: includes/AdminBookings.class.php:196
212
  msgid "Subject"
213
  msgstr ""
214
 
215
- #: includes/AdminBookings.class.php:200 includes/Settings.class.php:902
216
  #: includes/WP_List_Table.BookingsTable.class.php:450
217
  msgid "Message"
218
  msgstr ""
219
 
220
- #: includes/AdminBookings.class.php:251
221
  msgid "Update"
222
  msgstr ""
223
 
224
- #: includes/AdminBookings.class.php:270 includes/AdminBookings.class.php:296
225
- #: includes/AdminBookings.class.php:312
226
  msgid "Close"
227
  msgstr ""
228
 
229
- #: includes/AdminBookings.class.php:282
230
  msgid "Ban future bookings from the email address %s or the IP address %s?"
231
  msgstr ""
232
 
233
- #: includes/AdminBookings.class.php:290
234
  msgid ""
235
  "It is recommended to ban by email address instead of IP. Only ban by IP "
236
  "address to block a malicious user who is using different email addresses to "
237
  "avoid a previous ban."
238
  msgstr ""
239
 
240
- #: includes/AdminBookings.class.php:298
241
  msgid "View all bans"
242
  msgstr ""
243
 
244
- #: includes/AdminBookings.class.php:378
 
 
 
 
 
 
245
  msgid "Booking Status"
246
  msgstr ""
247
 
248
- #: includes/AdminBookings.class.php:386
249
  msgid "Send notifications"
250
  msgstr ""
251
 
252
- #: includes/AdminBookings.class.php:391
253
  msgid "Learn more"
254
  msgstr ""
255
 
256
- #: includes/AdminBookings.class.php:392
257
  msgid ""
258
  "When adding a booking or changing a booking's status with this form, no "
259
  "email notifications will be sent. Check this option if you want to send "
260
  "email notifications."
261
  msgstr ""
262
 
263
- #: includes/AdminBookings.class.php:446
264
  msgid "You have been logged out. Please %slogin again%s."
265
  msgstr ""
266
 
267
- #: includes/AdminBookings.class.php:482
268
  msgid ""
269
  "This booking has been sent to the %sTrash%s where it can not be edited. Set "
270
  "the booking to Pending or Confirmed to edit it."
271
  msgstr ""
272
 
273
- #: includes/AdminBookings.class.php:499
274
  msgid "The booking could not be retrieved. Please reload the page and try again."
275
  msgstr ""
276
 
277
- #: includes/AdminBookings.class.php:590
278
  msgid ""
279
  "Unable to trash this post. Please try again. If you continue to have "
280
  "trouble, please refresh the page."
281
  msgstr ""
282
 
283
- #: includes/AdminBookings.class.php:632
284
  msgid "Please enter a message before sending the email."
285
  msgstr ""
286
 
287
- #: includes/AdminBookings.class.php:641
288
  msgid "The email could not be sent because some critical information was missing."
289
  msgstr ""
290
 
291
- #: includes/AdminBookings.class.php:653
292
  msgid "There was an error loading the booking and the email was not sent."
293
  msgstr ""
294
 
295
- #: includes/AdminBookings.class.php:693
296
  msgid "You must select at least one column to display."
297
  msgstr ""
298
 
299
- #: includes/AdminBookings.class.php:749
300
  msgid "No IP or email address could be found for this ban request."
301
  msgstr ""
302
 
 
 
 
 
303
  #: includes/AdminPageSettingLicenseKey.class.php:193
304
  msgid "Invalid"
305
  msgstr ""
306
 
307
- #: includes/Booking.class.php:192
308
  msgid "Please enter the date you would like to book."
309
  msgstr ""
310
 
311
- #: includes/Booking.class.php:202
312
  msgid ""
313
  "The date you entered is not valid. Please select from one of the dates in "
314
  "the calendar."
315
  msgstr ""
316
 
317
- #: includes/Booking.class.php:213
318
  msgid "Please enter the time you would like to book."
319
  msgstr ""
320
 
321
- #: includes/Booking.class.php:223
322
  msgid ""
323
  "The time you entered is not valid. Please select from one of the times "
324
  "provided."
325
  msgstr ""
326
 
327
- #: includes/Booking.class.php:243
328
  msgid "Sorry, bookings can not be made more than %s days in advance."
329
  msgstr ""
330
 
331
- #: includes/Booking.class.php:254
332
  msgid "Sorry, bookings can not be made in the past."
333
  msgstr ""
334
 
335
- #: includes/Booking.class.php:263
336
  msgid "Sorry, bookings can not be made for the same day."
337
  msgstr ""
338
 
339
- #: includes/Booking.class.php:271
340
  msgid "Sorry, bookings must be made more than %s days in advance."
341
  msgstr ""
342
 
343
- #: includes/Booking.class.php:273
344
  msgid "Sorry, bookings must be made more than %s hours in advance."
345
  msgstr ""
346
 
347
- #: includes/Booking.class.php:275
348
  msgid "Sorry, bookings must be made more than %s minutes in advance."
349
  msgstr ""
350
 
351
- #: includes/Booking.class.php:315
352
  msgid "Sorry, no bookings are being accepted then."
353
  msgstr ""
354
 
355
- #: includes/Booking.class.php:367
356
  msgid "Sorry, no bookings are being accepted on that date."
357
  msgstr ""
358
 
359
- #: includes/Booking.class.php:373
360
  msgid "Sorry, no bookings are being accepted at that time."
361
  msgstr ""
362
 
363
- #: includes/Booking.class.php:395
364
  msgid "Please enter a name for this booking."
365
  msgstr ""
366
 
367
- #: includes/Booking.class.php:405
368
  msgid "Please let us know how many people will be in your party."
369
  msgstr ""
370
 
371
- #: includes/Booking.class.php:415
372
  msgid "We only accept bookings for parties of up to %d people."
373
  msgstr ""
374
 
375
- #: includes/Booking.class.php:423
376
  msgid "We only accept bookings for parties of more than %d people."
377
  msgstr ""
378
 
379
- #: includes/Booking.class.php:434
380
  msgid "Please enter an email address so we can confirm your booking."
381
  msgstr ""
382
 
383
- #: includes/Booking.class.php:440
384
  msgid "Please enter a valid email address so we can confirm your booking."
385
  msgstr ""
386
 
387
- #: includes/Booking.class.php:451
388
  msgid "Please provide a phone number so we can confirm your booking."
389
  msgstr ""
390
 
391
- #: includes/Booking.class.php:472
392
  msgid "Please complete this field to request a booking."
393
  msgstr ""
394
 
395
- #: includes/Booking.class.php:484
396
  msgid ""
397
  "Your booking has been rejected. Please call us if you would like to make a "
398
  "booking."
@@ -503,7 +513,7 @@ msgstr ""
503
  msgid "Show booking form with this location."
504
  msgstr ""
505
 
506
- #: includes/MultipleLocations.class.php:548 includes/Settings.class.php:566
507
  msgid "Reply-To Name"
508
  msgstr ""
509
 
@@ -513,11 +523,11 @@ msgid ""
513
  "email."
514
  msgstr ""
515
 
516
- #: includes/MultipleLocations.class.php:558 includes/Settings.class.php:578
517
  msgid "Reply-To Email Address"
518
  msgstr ""
519
 
520
- #: includes/MultipleLocations.class.php:562 includes/Settings.class.php:579
521
  msgid ""
522
  "The email address which should appear in the Reply-To field of a user "
523
  "notification email."
@@ -607,53 +617,62 @@ msgstr ""
607
  msgid "Enter the message to display when a booking request is made."
608
  msgstr ""
609
 
610
- #: includes/Settings.class.php:325
 
 
 
 
 
611
  msgid "Date Format"
612
  msgstr ""
613
 
614
- #: includes/Settings.class.php:326
615
  msgid ""
616
  "Define how the date is formatted on the booking form. %sFormatting rules%s. "
617
  "This only changes the format on the booking form. To change the date format "
618
  "in notification messages, modify your general %sWordPress Settings%s."
619
  msgstr ""
620
 
621
- #: includes/Settings.class.php:337
622
  msgid "Time Format"
623
  msgstr ""
624
 
625
- #: includes/Settings.class.php:338
626
  msgid ""
627
  "Define how the time is formatted on the booking form. %sFormatting rules%s. "
628
  "This only changes the format on the booking form. To change the time format "
629
  "in notification messages, modify your general %sWordPress Settings%s."
630
  msgstr ""
631
 
632
- #: includes/Settings.class.php:351
633
  msgid "Language"
634
  msgstr ""
635
 
636
- #: includes/Settings.class.php:352
637
  msgid ""
638
  "Select a language to use for the booking form datepicker if it is different "
639
  "than your WordPress language setting."
640
  msgstr ""
641
 
642
- #: includes/Settings.class.php:364
 
 
 
 
643
  msgid "Banned Email Addresses"
644
  msgstr ""
645
 
646
- #: includes/Settings.class.php:365
647
  msgid ""
648
  "You can block bookings from specific email addresses. Enter each email "
649
  "address on a separate line."
650
  msgstr ""
651
 
652
- #: includes/Settings.class.php:375
653
  msgid "Banned IP Addresses"
654
  msgstr ""
655
 
656
- #: includes/Settings.class.php:376
657
  msgid ""
658
  "You can block bookings from specific IP addresses. Enter each IP address on "
659
  "a separate line. Be aware that many internet providers rotate their IP "
@@ -663,394 +682,428 @@ msgid ""
663
  "block several people."
664
  msgstr ""
665
 
666
- #: includes/Settings.class.php:384
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
667
  msgid "Booking Schedule"
668
  msgstr ""
669
 
670
- #: includes/Settings.class.php:391
671
  msgid "Add new scheduling rule"
672
  msgstr ""
673
 
674
- #: includes/Settings.class.php:405
675
  msgid "Delete scheduling rule"
676
  msgstr ""
677
 
678
- #: includes/Settings.class.php:422
679
  msgid "Schedule"
680
  msgstr ""
681
 
682
- #: includes/Settings.class.php:423
683
  msgid "Define the weekly schedule during which you accept bookings."
684
  msgstr ""
685
 
686
- #: includes/Settings.class.php:448
687
  msgid "Exceptions"
688
  msgstr ""
689
 
690
- #: includes/Settings.class.php:449
691
  msgid ""
692
  "Define special opening hours for holidays, events or other needs. Leave the "
693
  "time empty if you're closed all day."
694
  msgstr ""
695
 
696
- #: includes/Settings.class.php:464
697
  msgid "Early Bookings"
698
  msgstr ""
699
 
700
- #: includes/Settings.class.php:465
701
  msgid ""
702
  "Select how early customers can make their booking. (Administrators and "
703
  "Booking Managers are not restricted by this setting.)"
704
  msgstr ""
705
 
706
- #: includes/Settings.class.php:468
707
  msgid "Any time"
708
  msgstr ""
709
 
710
- #: includes/Settings.class.php:469
711
  msgid "From 1 day in advance"
712
  msgstr ""
713
 
714
- #: includes/Settings.class.php:470
715
  msgid "From 1 week in advance"
716
  msgstr ""
717
 
718
- #: includes/Settings.class.php:471
719
  msgid "From 2 weeks in advance"
720
  msgstr ""
721
 
722
- #: includes/Settings.class.php:472
723
  msgid "From 30 days in advance"
724
  msgstr ""
725
 
726
- #: includes/Settings.class.php:473
727
  msgid "From 90 days in advance"
728
  msgstr ""
729
 
730
- #: includes/Settings.class.php:484
731
  msgid "Late Bookings"
732
  msgstr ""
733
 
734
- #: includes/Settings.class.php:485
735
  msgid ""
736
  "Select how late customers can make their booking. (Administrators and "
737
  "Booking Managers are not restricted by this setting.)"
738
  msgstr ""
739
 
740
- #: includes/Settings.class.php:488
741
  msgid "Up to the last minute"
742
  msgstr ""
743
 
744
- #: includes/Settings.class.php:489
745
  msgid "At least 15 minutes in advance"
746
  msgstr ""
747
 
748
- #: includes/Settings.class.php:490
749
  msgid "At least 30 minutes in advance"
750
  msgstr ""
751
 
752
- #: includes/Settings.class.php:491
753
  msgid "At least 45 minutes in advance"
754
  msgstr ""
755
 
756
- #: includes/Settings.class.php:492
757
  msgid "At least 1 hour in advance"
758
  msgstr ""
759
 
760
- #: includes/Settings.class.php:493
761
  msgid "At least 4 hours in advance"
762
  msgstr ""
763
 
764
- #: includes/Settings.class.php:494
765
  msgid "At least 24 hours in advance"
766
  msgstr ""
767
 
768
- #: includes/Settings.class.php:495
769
  msgid "Block same-day bookings"
770
  msgstr ""
771
 
772
- #: includes/Settings.class.php:506
773
  msgid "Date Pre-selection"
774
  msgstr ""
775
 
776
- #: includes/Settings.class.php:507
777
  msgid ""
778
  "When the booking form is loaded, should it automatically attempt to select "
779
  "a valid date?"
780
  msgstr ""
781
 
782
- #: includes/Settings.class.php:510
783
  msgid "Select today if valid"
784
  msgstr ""
785
 
786
- #: includes/Settings.class.php:511
787
  msgid "Select today or next valid date"
788
  msgstr ""
789
 
790
- #: includes/Settings.class.php:512
791
  msgid "Leave empty"
792
  msgstr ""
793
 
794
- #: includes/Settings.class.php:523
795
  msgid "Time Interval"
796
  msgstr ""
797
 
798
- #: includes/Settings.class.php:524
799
  msgid "Select the number of minutes between each available time."
800
  msgstr ""
801
 
802
- #: includes/Settings.class.php:527
803
  msgid "Every 30 minutes"
804
  msgstr ""
805
 
806
- #: includes/Settings.class.php:528
807
  msgid "Every 15 minutes"
808
  msgstr ""
809
 
810
- #: includes/Settings.class.php:529
811
  msgid "Every 10 minutes"
812
  msgstr ""
813
 
814
- #: includes/Settings.class.php:530
815
  msgid "Every 5 minutes"
816
  msgstr ""
817
 
818
- #: includes/Settings.class.php:541
819
  msgid "Week Starts On"
820
  msgstr ""
821
 
822
- #: includes/Settings.class.php:542
823
  msgid "Select the first day of the week"
824
  msgstr ""
825
 
826
- #: includes/Settings.class.php:545
827
  msgid "Sunday"
828
  msgstr ""
829
 
830
- #: includes/Settings.class.php:546
831
  msgid "Monday"
832
  msgstr ""
833
 
834
- #: includes/Settings.class.php:555
835
  msgid "Notifications"
836
  msgstr ""
837
 
838
- #: includes/Settings.class.php:567
839
  msgid ""
840
  "The name which should appear in the Reply-To field of a user notification "
841
  "email"
842
  msgstr ""
843
 
844
- #: includes/Settings.class.php:590
845
  msgid "Admin Notification"
846
  msgstr ""
847
 
848
- #: includes/Settings.class.php:591
849
  msgid ""
850
  "Send an email notification to an administrator when a new booking is "
851
  "requested."
852
  msgstr ""
853
 
854
- #: includes/Settings.class.php:601
855
  msgid "Admin Email Address"
856
  msgstr ""
857
 
858
- #: includes/Settings.class.php:602
859
  msgid "The email address where admin notifications should be sent."
860
  msgstr ""
861
 
862
- #: includes/Settings.class.php:613
863
  msgid ""
864
  "Adjust the messages that are emailed to users and admins during the booking "
865
  "process."
866
  msgstr ""
867
 
868
- #: includes/Settings.class.php:623
869
  msgid "Template Tags"
870
  msgstr ""
871
 
872
- #: includes/Settings.class.php:625
873
  msgid ""
874
  "Use the following tags to automatically add booking information to the "
875
  "emails. Tags labeled with an asterisk (*) can be used in the email subject "
876
  "as well."
877
  msgstr ""
878
 
879
- #: includes/Settings.class.php:636
880
  msgid "Admin Notification Subject"
881
  msgstr ""
882
 
883
- #: includes/Settings.class.php:637
884
  msgid "The email subject for admin notifications."
885
  msgstr ""
886
 
887
- #: includes/Settings.class.php:648
888
  msgid "Admin Notification Email"
889
  msgstr ""
890
 
891
- #: includes/Settings.class.php:649
892
  msgid ""
893
  "Enter the email an admin should receive when an initial booking request is "
894
  "made."
895
  msgstr ""
896
 
897
- #: includes/Settings.class.php:660
898
  msgid "New Request Email Subject"
899
  msgstr ""
900
 
901
- #: includes/Settings.class.php:661
902
  msgid ""
903
  "The email subject a user should receive when they make an initial booking "
904
  "request."
905
  msgstr ""
906
 
907
- #: includes/Settings.class.php:672
908
  msgid "New Request Email"
909
  msgstr ""
910
 
911
- #: includes/Settings.class.php:673
912
  msgid ""
913
  "Enter the email a user should receive when they make an initial booking "
914
  "request."
915
  msgstr ""
916
 
917
- #: includes/Settings.class.php:684
918
  msgid "Confirmed Email Subject"
919
  msgstr ""
920
 
921
- #: includes/Settings.class.php:685
922
  msgid ""
923
  "The email subject a user should receive when their booking has been "
924
  "confirmed."
925
  msgstr ""
926
 
927
- #: includes/Settings.class.php:696
928
  msgid "Confirmed Email"
929
  msgstr ""
930
 
931
- #: includes/Settings.class.php:697
932
  msgid "Enter the email a user should receive when their booking has been confirmed."
933
  msgstr ""
934
 
935
- #: includes/Settings.class.php:708
936
  msgid "Rejected Email Subject"
937
  msgstr ""
938
 
939
- #: includes/Settings.class.php:709
940
  msgid ""
941
  "The email subject a user should receive when their booking has been "
942
  "rejected."
943
  msgstr ""
944
 
945
- #: includes/Settings.class.php:720
946
  msgid "Rejected Email"
947
  msgstr ""
948
 
949
- #: includes/Settings.class.php:721
950
  msgid "Enter the email a user should receive when their booking has been rejected."
951
  msgstr ""
952
 
953
- #: includes/Settings.class.php:732
954
  msgid "Admin Update Subject"
955
  msgstr ""
956
 
957
- #: includes/Settings.class.php:733
958
  msgid ""
959
  "The email subject a user should receive when an admin sends them a custom "
960
  "email message from the %sbookings panel%s."
961
  msgstr ""
962
 
963
- #: includes/Settings.class.php:753
964
  msgid "Any size"
965
  msgstr ""
966
 
967
- #: includes/Settings.class.php:843
968
  #: includes/integrations/business-profile.php:100
969
  msgid "Book a table"
970
  msgstr ""
971
 
972
- #: includes/Settings.class.php:846
973
  #: includes/WP_List_Table.BookingsTable.class.php:358
974
  msgid "Date"
975
  msgstr ""
976
 
977
- #: includes/Settings.class.php:852
978
  msgid "Time"
979
  msgstr ""
980
 
981
- #: includes/Settings.class.php:858
982
  #: includes/WP_List_Table.BookingsTable.class.php:359
983
  msgid "Party"
984
  msgstr ""
985
 
986
- #: includes/Settings.class.php:871
987
  msgid "Contact Details"
988
  msgstr ""
989
 
990
- #: includes/Settings.class.php:874
991
  #: includes/WP_List_Table.BookingsTable.class.php:360
992
  msgid "Name"
993
  msgstr ""
994
 
995
- #: includes/Settings.class.php:880
996
  #: includes/WP_List_Table.BookingsTable.class.php:361
997
  msgid "Email"
998
  msgstr ""
999
 
1000
- #: includes/Settings.class.php:889
1001
  #: includes/WP_List_Table.BookingsTable.class.php:362
1002
  msgid "Phone"
1003
  msgstr ""
1004
 
1005
- #: includes/Settings.class.php:897
1006
  msgid "Add a Message"
1007
  msgstr ""
1008
 
1009
- #: includes/Settings.class.php:947
1010
  msgid "Email of the user who made the booking"
1011
  msgstr ""
1012
 
1013
- #: includes/Settings.class.php:948
1014
  msgid "* Name of the user who made the booking"
1015
  msgstr ""
1016
 
1017
- #: includes/Settings.class.php:949
1018
  msgid "* Number of people booked"
1019
  msgstr ""
1020
 
1021
- #: includes/Settings.class.php:950
1022
  msgid "* Date and time of the booking"
1023
  msgstr ""
1024
 
1025
- #: includes/Settings.class.php:951
1026
  msgid "Phone number if supplied with the request"
1027
  msgstr ""
1028
 
1029
- #: includes/Settings.class.php:952
1030
  msgid "Message added to the request"
1031
  msgstr ""
1032
 
1033
- #: includes/Settings.class.php:953
1034
  msgid "A link to the admin panel showing pending bookings"
1035
  msgstr ""
1036
 
1037
- #: includes/Settings.class.php:954
1038
  msgid "A link to confirm this booking. Only include this in admin notifications"
1039
  msgstr ""
1040
 
1041
- #: includes/Settings.class.php:955
1042
  msgid "A link to reject this booking. Only include this in admin notifications"
1043
  msgstr ""
1044
 
1045
- #: includes/Settings.class.php:956
1046
  msgid "The name of this website"
1047
  msgstr ""
1048
 
1049
- #: includes/Settings.class.php:957
1050
  msgid "A link to this website"
1051
  msgstr ""
1052
 
1053
- #: includes/Settings.class.php:958
1054
  msgid "Current date and time"
1055
  msgstr ""
1056
 
@@ -1132,97 +1185,105 @@ msgstr ""
1132
  msgid "Edit"
1133
  msgstr ""
1134
 
1135
- #: includes/WP_List_Table.BookingsTable.class.php:468
1136
  msgid "Unknown IP"
1137
  msgstr ""
1138
 
1139
- #: includes/WP_List_Table.BookingsTable.class.php:469
1140
  msgid "Unknown Date"
1141
  msgstr ""
1142
 
1143
- #: includes/WP_List_Table.BookingsTable.class.php:470
1144
  msgid "Request from %s on %s."
1145
  msgstr ""
1146
 
1147
- #: includes/WP_List_Table.BookingsTable.class.php:473
1148
- msgid "Ban Customer"
 
 
 
 
 
 
 
 
 
 
 
 
1149
  msgstr ""
1150
 
1151
- #: includes/WP_List_Table.BookingsTable.class.php:536
1152
  msgid "Delete"
1153
  msgstr ""
1154
 
1155
- #: includes/WP_List_Table.BookingsTable.class.php:537
1156
  msgid "Set To Confirmed"
1157
  msgstr ""
1158
 
1159
- #: includes/WP_List_Table.BookingsTable.class.php:538
1160
  msgid "Set To Pending Review"
1161
  msgstr ""
1162
 
1163
- #: includes/WP_List_Table.BookingsTable.class.php:539
1164
  msgid "Set To Closed"
1165
  msgstr ""
1166
 
1167
- #: includes/WP_List_Table.BookingsTable.class.php:653
1168
  msgid "%d booking deleted successfully."
1169
  msgid_plural "%d bookings deleted successfully."
1170
  msgstr[0] ""
1171
  msgstr[1] ""
1172
 
1173
- #: includes/WP_List_Table.BookingsTable.class.php:656
1174
  msgid "%d booking confirmed."
1175
  msgid_plural "%d bookings confirmed."
1176
  msgstr[0] ""
1177
  msgstr[1] ""
1178
 
1179
- #: includes/WP_List_Table.BookingsTable.class.php:659
1180
  msgid "%d booking set to pending."
1181
  msgid_plural "%d bookings set to pending."
1182
  msgstr[0] ""
1183
  msgstr[1] ""
1184
 
1185
- #: includes/WP_List_Table.BookingsTable.class.php:662
1186
  msgid "%d booking closed."
1187
  msgid_plural "%d bookings closed."
1188
  msgstr[0] ""
1189
  msgstr[1] ""
1190
 
1191
- #: includes/WP_List_Table.BookingsTable.class.php:674
1192
  msgid "%d booking had errors and could not be processed."
1193
  msgid_plural "%d bookings had errors and could not be processed."
1194
  msgstr[0] ""
1195
  msgstr[1] ""
1196
 
1197
- #: includes/WP_List_Table.BookingsTable.class.php:726
1198
- #: includes/WP_List_Table.BookingsTable.class.php:747
1199
  msgid "All Locations"
1200
  msgstr ""
1201
 
1202
- #: includes/WP_List_Table.BookingsTable.class.php:754
1203
  msgid "Inactive Locations"
1204
  msgstr ""
1205
 
1206
- #: includes/WP_List_Table.BookingsTable.class.php:763
1207
  msgid "Switch"
1208
  msgstr ""
1209
 
1210
- #: includes/WP_List_Table.BookingsTable.class.php:795
1211
  msgid "You're viewing bookings that have been moved to the trash."
1212
  msgstr ""
1213
 
1214
- #: includes/WP_List_Table.BookingsTable.class.php:804
1215
  msgid "Only today's bookings are being shown."
1216
  msgstr ""
1217
 
1218
- #: includes/WP_List_Table.BookingsTable.class.php:806
1219
  msgid "Only upcoming bookings are being shown."
1220
  msgstr ""
1221
 
1222
- #: includes/WP_Widget.BookingFormWidget.class.php:25
1223
- msgid "Booking Form"
1224
- msgstr ""
1225
-
1226
  #: includes/WP_Widget.BookingFormWidget.class.php:26
1227
  msgid "Display a form to accept bookings."
1228
  msgstr ""
@@ -1335,17 +1396,17 @@ msgid ""
1335
  "sent to the email address you provided."
1336
  msgstr ""
1337
 
1338
- #: includes/AdminBookings.class.php:62
1339
  msgctxt "Title of admin page that lists bookings"
1340
  msgid "Bookings"
1341
  msgstr ""
1342
 
1343
- #: includes/AdminBookings.class.php:63
1344
  msgctxt "Title of bookings admin menu item"
1345
  msgid "Bookings"
1346
  msgstr ""
1347
 
1348
- #: includes/AdminBookings.class.php:192
1349
  msgctxt "Label next to the email address to which an email will be sent"
1350
  msgid "To"
1351
  msgstr ""
@@ -1513,86 +1574,86 @@ msgctxt ""
1513
  msgid "Update regarding your booking at %s"
1514
  msgstr ""
1515
 
1516
- #: includes/Settings.class.php:392
1517
  msgctxt "Format of a scheduling rule"
1518
  msgid "Weekly"
1519
  msgstr ""
1520
 
1521
- #: includes/Settings.class.php:393
1522
  msgctxt "Format of a scheduling rule"
1523
  msgid "Monthly"
1524
  msgstr ""
1525
 
1526
- #: includes/Settings.class.php:394
1527
  msgctxt "Format of a scheduling rule"
1528
  msgid "Date"
1529
  msgstr ""
1530
 
1531
- #: includes/Settings.class.php:395
1532
  msgctxt "Label for selecting days of the week in a scheduling rule"
1533
  msgid "Days of the week"
1534
  msgstr ""
1535
 
1536
- #: includes/Settings.class.php:396
1537
  msgctxt "Label for selecting weeks of the month in a scheduling rule"
1538
  msgid "Weeks of the month"
1539
  msgstr ""
1540
 
1541
- #: includes/Settings.class.php:397
1542
  msgctxt "Label to select a date for a scheduling rule"
1543
  msgid "Date"
1544
  msgstr ""
1545
 
1546
- #: includes/Settings.class.php:398
1547
  msgctxt "Label to select a time slot for a scheduling rule"
1548
  msgid "Time"
1549
  msgstr ""
1550
 
1551
- #: includes/Settings.class.php:399
1552
  msgctxt "Label to set a scheduling rule to last all day"
1553
  msgid "All day"
1554
  msgstr ""
1555
 
1556
- #: includes/Settings.class.php:400
1557
  msgctxt "Label for the starting time of a scheduling rule"
1558
  msgid "Start"
1559
  msgstr ""
1560
 
1561
- #: includes/Settings.class.php:401
1562
  msgctxt "Label for the ending time of a scheduling rule"
1563
  msgid "End"
1564
  msgstr ""
1565
 
1566
- #: includes/Settings.class.php:402
1567
  msgctxt "Prompt displayed when a scheduling rule is set without any time restrictions"
1568
  msgid "All day long. Want to %sset a time slot%s?"
1569
  msgstr ""
1570
 
1571
- #: includes/Settings.class.php:403
1572
  msgctxt "Toggle a scheduling rule open and closed"
1573
  msgid "Open and close this rule"
1574
  msgstr ""
1575
 
1576
- #: includes/Settings.class.php:404
1577
  msgctxt "Delete a scheduling rule"
1578
  msgid "Delete rule"
1579
  msgstr ""
1580
 
1581
- #: includes/Settings.class.php:406
1582
  msgctxt ""
1583
  "Brief default description of a scheduling rule when no weekdays or weeks "
1584
  "are included in the rule"
1585
  msgid "Never"
1586
  msgstr ""
1587
 
1588
- #: includes/Settings.class.php:407
1589
  msgctxt ""
1590
  "Brief default description of a scheduling rule when all the weekdays/weeks "
1591
  "are included in the rule"
1592
  msgid "Every day"
1593
  msgstr ""
1594
 
1595
- #: includes/Settings.class.php:408
1596
  msgctxt ""
1597
  "Brief default description of a scheduling rule when some weekdays are "
1598
  "included on only some weeks of the month. %s should be left alone and will "
@@ -1601,7 +1662,7 @@ msgctxt ""
1601
  msgid "%s on the %s week of the month"
1602
  msgstr ""
1603
 
1604
- #: includes/Settings.class.php:409
1605
  msgctxt ""
1606
  "Brief default description of a scheduling rule when some weeks of the month "
1607
  "are included but all or no weekdays are selected. %s should be left alone "
@@ -1610,66 +1671,66 @@ msgctxt ""
1610
  msgid "%s week of the month"
1611
  msgstr ""
1612
 
1613
- #: includes/Settings.class.php:410
1614
  msgctxt "Brief default description of a scheduling rule when no times are set"
1615
  msgid "All day"
1616
  msgstr ""
1617
 
1618
- #: includes/Settings.class.php:411
1619
  msgctxt ""
1620
  "Brief default description of a scheduling rule when an end time is set but "
1621
  "no start time. If the end time is 6pm, it will read: Ends at 6pm"
1622
  msgid "Ends at"
1623
  msgstr ""
1624
 
1625
- #: includes/Settings.class.php:412
1626
  msgctxt ""
1627
  "Brief default description of a scheduling rule when a start time is set but "
1628
  "no end time. If the start time is 6pm, it will read: Starts at 6pm"
1629
  msgid "Starts at"
1630
  msgstr ""
1631
 
1632
- #: includes/Settings.class.php:413
1633
  msgctxt "Separator between times of a scheduling rule"
1634
  msgid "&mdash;"
1635
  msgstr ""
1636
 
1637
- #: includes/Settings.class.php:425
1638
  msgctxt "Monday abbreviation"
1639
  msgid "Mo"
1640
  msgstr ""
1641
 
1642
- #: includes/Settings.class.php:426
1643
  msgctxt "Tuesday abbreviation"
1644
  msgid "Tu"
1645
  msgstr ""
1646
 
1647
- #: includes/Settings.class.php:427
1648
  msgctxt "Wednesday abbreviation"
1649
  msgid "We"
1650
  msgstr ""
1651
 
1652
- #: includes/Settings.class.php:428
1653
  msgctxt "Thursday abbreviation"
1654
  msgid "Th"
1655
  msgstr ""
1656
 
1657
- #: includes/Settings.class.php:429
1658
  msgctxt "Friday abbreviation"
1659
  msgid "Fr"
1660
  msgstr ""
1661
 
1662
- #: includes/Settings.class.php:430
1663
  msgctxt "Saturday abbreviation"
1664
  msgid "Sa"
1665
  msgstr ""
1666
 
1667
- #: includes/Settings.class.php:431
1668
  msgctxt "Sunday abbreviation"
1669
  msgid "Su"
1670
  msgstr ""
1671
 
1672
- #: includes/Settings.class.php:441
1673
  msgctxt "Brief default description of a scheduling exception when no times are set"
1674
  msgid "Closed all day"
1675
  msgstr ""
@@ -1692,14 +1753,14 @@ msgctxt "Status label for bookings put in the trash"
1692
  msgid "Trash"
1693
  msgstr ""
1694
 
1695
- #: includes/WP_List_Table.BookingsTable.class.php:797
1696
  msgctxt ""
1697
  "Indicates which booking status is currently being filtered in the list of "
1698
  "bookings."
1699
  msgid "You're viewing bookings that have been marked as %s."
1700
  msgstr ""
1701
 
1702
- #: includes/WP_List_Table.BookingsTable.class.php:802
1703
  msgctxt "Notification of booking date range, eg - bookings from 2014-12-02-2014-12-05"
1704
  msgid "Only bookings from %s are being shown."
1705
  msgstr ""
1
+ # Copyright (C) 2018 Theme of the Crop
2
  # This file is distributed under the GNU General Public License v2.0 or later.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Restaurant Reservations 1.7.7\n"
6
  "Report-Msgid-Bugs-To: https://themeofthecrop.com\n"
7
+ "POT-Creation-Date: 2018-04-27 15:19:32+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
  "X-Generator: grunt-wp-i18n 0.5.4\n"
43
  "services."
44
  msgstr ""
45
 
46
+ #: includes/Addons.class.php:86 includes/Settings.class.php:677
47
  msgid "Email Templates"
48
  msgstr ""
49
 
182
  "restaurant as well."
183
  msgstr ""
184
 
185
+ #: includes/AdminBookings.class.php:88
186
  msgid "Restaurant Bookings"
187
  msgstr ""
188
 
189
+ #: includes/AdminBookings.class.php:89 includes/CustomPostTypes.class.php:50
190
  msgid "Add New"
191
  msgstr ""
192
 
193
+ #: includes/AdminBookings.class.php:127 includes/AdminBookings.class.php:229
194
  msgid "Columns"
195
  msgstr ""
196
 
197
+ #: includes/AdminBookings.class.php:167 restaurant-reservations.php:231
198
  msgid "Add Booking"
199
  msgstr ""
200
 
201
+ #: includes/AdminBookings.class.php:170 includes/AdminBookings.class.php:211
202
+ #: includes/AdminBookings.class.php:256
203
  msgid "Cancel"
204
  msgstr ""
205
 
206
+ #: includes/AdminBookings.class.php:191 includes/AdminBookings.class.php:208
207
  #: includes/WP_List_Table.BookingsTable.class.php:425
208
  msgid "Send Email"
209
  msgstr ""
210
 
211
+ #: includes/AdminBookings.class.php:198
212
  msgid "Subject"
213
  msgstr ""
214
 
215
+ #: includes/AdminBookings.class.php:202 includes/Settings.class.php:971
216
  #: includes/WP_List_Table.BookingsTable.class.php:450
217
  msgid "Message"
218
  msgstr ""
219
 
220
+ #: includes/AdminBookings.class.php:253
221
  msgid "Update"
222
  msgstr ""
223
 
224
+ #: includes/AdminBookings.class.php:272 includes/AdminBookings.class.php:298
225
+ #: includes/AdminBookings.class.php:328 includes/AdminBookings.class.php:341
226
  msgid "Close"
227
  msgstr ""
228
 
229
+ #: includes/AdminBookings.class.php:284
230
  msgid "Ban future bookings from the email address %s or the IP address %s?"
231
  msgstr ""
232
 
233
+ #: includes/AdminBookings.class.php:292
234
  msgid ""
235
  "It is recommended to ban by email address instead of IP. Only ban by IP "
236
  "address to block a malicious user who is using different email addresses to "
237
  "avoid a previous ban."
238
  msgstr ""
239
 
240
+ #: includes/AdminBookings.class.php:300
241
  msgid "View all bans"
242
  msgstr ""
243
 
244
+ #: includes/AdminBookings.class.php:316
245
+ msgid ""
246
+ "Delete all booking records related to email address %s? This action can not "
247
+ "be undone."
248
+ msgstr ""
249
+
250
+ #: includes/AdminBookings.class.php:407
251
  msgid "Booking Status"
252
  msgstr ""
253
 
254
+ #: includes/AdminBookings.class.php:415
255
  msgid "Send notifications"
256
  msgstr ""
257
 
258
+ #: includes/AdminBookings.class.php:420
259
  msgid "Learn more"
260
  msgstr ""
261
 
262
+ #: includes/AdminBookings.class.php:421
263
  msgid ""
264
  "When adding a booking or changing a booking's status with this form, no "
265
  "email notifications will be sent. Check this option if you want to send "
266
  "email notifications."
267
  msgstr ""
268
 
269
+ #: includes/AdminBookings.class.php:475
270
  msgid "You have been logged out. Please %slogin again%s."
271
  msgstr ""
272
 
273
+ #: includes/AdminBookings.class.php:511
274
  msgid ""
275
  "This booking has been sent to the %sTrash%s where it can not be edited. Set "
276
  "the booking to Pending or Confirmed to edit it."
277
  msgstr ""
278
 
279
+ #: includes/AdminBookings.class.php:528
280
  msgid "The booking could not be retrieved. Please reload the page and try again."
281
  msgstr ""
282
 
283
+ #: includes/AdminBookings.class.php:619
284
  msgid ""
285
  "Unable to trash this post. Please try again. If you continue to have "
286
  "trouble, please refresh the page."
287
  msgstr ""
288
 
289
+ #: includes/AdminBookings.class.php:661
290
  msgid "Please enter a message before sending the email."
291
  msgstr ""
292
 
293
+ #: includes/AdminBookings.class.php:670
294
  msgid "The email could not be sent because some critical information was missing."
295
  msgstr ""
296
 
297
+ #: includes/AdminBookings.class.php:682
298
  msgid "There was an error loading the booking and the email was not sent."
299
  msgstr ""
300
 
301
+ #: includes/AdminBookings.class.php:722
302
  msgid "You must select at least one column to display."
303
  msgstr ""
304
 
305
+ #: includes/AdminBookings.class.php:778
306
  msgid "No IP or email address could be found for this ban request."
307
  msgstr ""
308
 
309
+ #: includes/AdminBookings.class.php:839
310
+ msgid "No email address could be found for this delete request."
311
+ msgstr ""
312
+
313
  #: includes/AdminPageSettingLicenseKey.class.php:193
314
  msgid "Invalid"
315
  msgstr ""
316
 
317
+ #: includes/Booking.class.php:194
318
  msgid "Please enter the date you would like to book."
319
  msgstr ""
320
 
321
+ #: includes/Booking.class.php:204
322
  msgid ""
323
  "The date you entered is not valid. Please select from one of the dates in "
324
  "the calendar."
325
  msgstr ""
326
 
327
+ #: includes/Booking.class.php:215
328
  msgid "Please enter the time you would like to book."
329
  msgstr ""
330
 
331
+ #: includes/Booking.class.php:225
332
  msgid ""
333
  "The time you entered is not valid. Please select from one of the times "
334
  "provided."
335
  msgstr ""
336
 
337
+ #: includes/Booking.class.php:245
338
  msgid "Sorry, bookings can not be made more than %s days in advance."
339
  msgstr ""
340
 
341
+ #: includes/Booking.class.php:256
342
  msgid "Sorry, bookings can not be made in the past."
343
  msgstr ""
344
 
345
+ #: includes/Booking.class.php:265
346
  msgid "Sorry, bookings can not be made for the same day."
347
  msgstr ""
348
 
349
+ #: includes/Booking.class.php:273
350
  msgid "Sorry, bookings must be made more than %s days in advance."
351
  msgstr ""
352
 
353
+ #: includes/Booking.class.php:275
354
  msgid "Sorry, bookings must be made more than %s hours in advance."
355
  msgstr ""
356
 
357
+ #: includes/Booking.class.php:277
358
  msgid "Sorry, bookings must be made more than %s minutes in advance."
359
  msgstr ""
360
 
361
+ #: includes/Booking.class.php:317
362
  msgid "Sorry, no bookings are being accepted then."
363
  msgstr ""
364
 
365
+ #: includes/Booking.class.php:369
366
  msgid "Sorry, no bookings are being accepted on that date."
367
  msgstr ""
368
 
369
+ #: includes/Booking.class.php:375
370
  msgid "Sorry, no bookings are being accepted at that time."
371
  msgstr ""
372
 
373
+ #: includes/Booking.class.php:397
374
  msgid "Please enter a name for this booking."
375
  msgstr ""
376
 
377
+ #: includes/Booking.class.php:407
378
  msgid "Please let us know how many people will be in your party."
379
  msgstr ""
380
 
381
+ #: includes/Booking.class.php:417
382
  msgid "We only accept bookings for parties of up to %d people."
383
  msgstr ""
384
 
385
+ #: includes/Booking.class.php:425
386
  msgid "We only accept bookings for parties of more than %d people."
387
  msgstr ""
388
 
389
+ #: includes/Booking.class.php:436
390
  msgid "Please enter an email address so we can confirm your booking."
391
  msgstr ""
392
 
393
+ #: includes/Booking.class.php:442
394
  msgid "Please enter a valid email address so we can confirm your booking."
395
  msgstr ""
396
 
397
+ #: includes/Booking.class.php:453
398
  msgid "Please provide a phone number so we can confirm your booking."
399
  msgstr ""
400
 
401
+ #: includes/Booking.class.php:481
402
  msgid "Please complete this field to request a booking."
403
  msgstr ""
404
 
405
+ #: includes/Booking.class.php:493
406
  msgid ""
407
  "Your booking has been rejected. Please call us if you would like to make a "
408
  "booking."
513
  msgid "Show booking form with this location."
514
  msgstr ""
515
 
516
+ #: includes/MultipleLocations.class.php:548 includes/Settings.class.php:632
517
  msgid "Reply-To Name"
518
  msgstr ""
519
 
523
  "email."
524
  msgstr ""
525
 
526
+ #: includes/MultipleLocations.class.php:558 includes/Settings.class.php:644
527
  msgid "Reply-To Email Address"
528
  msgstr ""
529
 
530
+ #: includes/MultipleLocations.class.php:562 includes/Settings.class.php:645
531
  msgid ""
532
  "The email address which should appear in the Reply-To field of a user "
533
  "notification email."
617
  msgid "Enter the message to display when a booking request is made."
618
  msgstr ""
619
 
620
+ #: includes/Settings.class.php:323
621
+ #: includes/WP_Widget.BookingFormWidget.class.php:25
622
+ msgid "Booking Form"
623
+ msgstr ""
624
+
625
+ #: includes/Settings.class.php:334
626
  msgid "Date Format"
627
  msgstr ""
628
 
629
+ #: includes/Settings.class.php:335
630
  msgid ""
631
  "Define how the date is formatted on the booking form. %sFormatting rules%s. "
632
  "This only changes the format on the booking form. To change the date format "
633
  "in notification messages, modify your general %sWordPress Settings%s."
634
  msgstr ""
635
 
636
+ #: includes/Settings.class.php:346
637
  msgid "Time Format"
638
  msgstr ""
639
 
640
+ #: includes/Settings.class.php:347
641
  msgid ""
642
  "Define how the time is formatted on the booking form. %sFormatting rules%s. "
643
  "This only changes the format on the booking form. To change the time format "
644
  "in notification messages, modify your general %sWordPress Settings%s."
645
  msgstr ""
646
 
647
+ #: includes/Settings.class.php:360
648
  msgid "Language"
649
  msgstr ""
650
 
651
+ #: includes/Settings.class.php:361
652
  msgid ""
653
  "Select a language to use for the booking form datepicker if it is different "
654
  "than your WordPress language setting."
655
  msgstr ""
656
 
657
+ #: includes/Settings.class.php:371
658
+ msgid "Security"
659
+ msgstr ""
660
+
661
+ #: includes/Settings.class.php:382
662
  msgid "Banned Email Addresses"
663
  msgstr ""
664
 
665
+ #: includes/Settings.class.php:383
666
  msgid ""
667
  "You can block bookings from specific email addresses. Enter each email "
668
  "address on a separate line."
669
  msgstr ""
670
 
671
+ #: includes/Settings.class.php:393
672
  msgid "Banned IP Addresses"
673
  msgstr ""
674
 
675
+ #: includes/Settings.class.php:394
676
  msgid ""
677
  "You can block bookings from specific IP addresses. Enter each IP address on "
678
  "a separate line. Be aware that many internet providers rotate their IP "
682
  "block several people."
683
  msgstr ""
684
 
685
+ #: includes/Settings.class.php:402
686
+ msgid "Privacy"
687
+ msgstr ""
688
+
689
+ #: includes/Settings.class.php:413
690
+ msgid "Require Consent"
691
+ msgstr ""
692
+
693
+ #: includes/Settings.class.php:414
694
+ msgid ""
695
+ "Require customers to consent to the collection of their details when making "
696
+ "a booking. This may be required to comply with privacy laws in your country."
697
+ msgstr ""
698
+
699
+ #: includes/Settings.class.php:424
700
+ msgid "Consent Statement"
701
+ msgstr ""
702
+
703
+ #: includes/Settings.class.php:425
704
+ msgid ""
705
+ "Enter the statement you would like customers to confirm when making a "
706
+ "booking."
707
+ msgstr ""
708
+
709
+ #: includes/Settings.class.php:435
710
+ msgid "Privacy Statement Page"
711
+ msgstr ""
712
+
713
+ #: includes/Settings.class.php:436
714
+ msgid ""
715
+ "Select a page on your site which contains a privacy statement. If selected, "
716
+ "it will be linked to in your consent statement."
717
+ msgstr ""
718
+
719
+ #: includes/Settings.class.php:450
720
  msgid "Booking Schedule"
721
  msgstr ""
722
 
723
+ #: includes/Settings.class.php:457
724
  msgid "Add new scheduling rule"
725
  msgstr ""
726
 
727
+ #: includes/Settings.class.php:471
728
  msgid "Delete scheduling rule"
729
  msgstr ""
730
 
731
+ #: includes/Settings.class.php:488
732
  msgid "Schedule"
733
  msgstr ""
734
 
735
+ #: includes/Settings.class.php:489
736
  msgid "Define the weekly schedule during which you accept bookings."
737
  msgstr ""
738
 
739
+ #: includes/Settings.class.php:514
740
  msgid "Exceptions"
741
  msgstr ""
742
 
743
+ #: includes/Settings.class.php:515
744
  msgid ""
745
  "Define special opening hours for holidays, events or other needs. Leave the "
746
  "time empty if you're closed all day."
747
  msgstr ""
748
 
749
+ #: includes/Settings.class.php:530
750
  msgid "Early Bookings"
751
  msgstr ""
752
 
753
+ #: includes/Settings.class.php:531
754
  msgid ""
755
  "Select how early customers can make their booking. (Administrators and "
756
  "Booking Managers are not restricted by this setting.)"
757
  msgstr ""
758
 
759
+ #: includes/Settings.class.php:534
760
  msgid "Any time"
761
  msgstr ""
762
 
763
+ #: includes/Settings.class.php:535
764
  msgid "From 1 day in advance"
765
  msgstr ""
766
 
767
+ #: includes/Settings.class.php:536
768
  msgid "From 1 week in advance"
769
  msgstr ""
770
 
771
+ #: includes/Settings.class.php:537
772
  msgid "From 2 weeks in advance"
773
  msgstr ""
774
 
775
+ #: includes/Settings.class.php:538
776
  msgid "From 30 days in advance"
777
  msgstr ""
778
 
779
+ #: includes/Settings.class.php:539
780
  msgid "From 90 days in advance"
781
  msgstr ""
782
 
783
+ #: includes/Settings.class.php:550
784
  msgid "Late Bookings"
785
  msgstr ""
786
 
787
+ #: includes/Settings.class.php:551
788
  msgid ""
789
  "Select how late customers can make their booking. (Administrators and "
790
  "Booking Managers are not restricted by this setting.)"
791
  msgstr ""
792
 
793
+ #: includes/Settings.class.php:554
794
  msgid "Up to the last minute"
795
  msgstr ""
796
 
797
+ #: includes/Settings.class.php:555
798
  msgid "At least 15 minutes in advance"
799
  msgstr ""
800
 
801
+ #: includes/Settings.class.php:556
802
  msgid "At least 30 minutes in advance"
803
  msgstr ""
804
 
805
+ #: includes/Settings.class.php:557
806
  msgid "At least 45 minutes in advance"
807
  msgstr ""
808
 
809
+ #: includes/Settings.class.php:558
810
  msgid "At least 1 hour in advance"
811
  msgstr ""
812
 
813
+ #: includes/Settings.class.php:559
814
  msgid "At least 4 hours in advance"
815
  msgstr ""
816
 
817
+ #: includes/Settings.class.php:560
818
  msgid "At least 24 hours in advance"
819
  msgstr ""
820
 
821
+ #: includes/Settings.class.php:561
822
  msgid "Block same-day bookings"
823
  msgstr ""
824
 
825
+ #: includes/Settings.class.php:572
826
  msgid "Date Pre-selection"
827
  msgstr ""
828
 
829
+ #: includes/Settings.class.php:573
830
  msgid ""
831
  "When the booking form is loaded, should it automatically attempt to select "
832
  "a valid date?"
833
  msgstr ""
834
 
835
+ #: includes/Settings.class.php:576
836
  msgid "Select today if valid"
837
  msgstr ""
838
 
839
+ #: includes/Settings.class.php:577
840
  msgid "Select today or next valid date"
841
  msgstr ""
842
 
843
+ #: includes/Settings.class.php:578
844
  msgid "Leave empty"
845
  msgstr ""
846
 
847
+ #: includes/Settings.class.php:589
848
  msgid "Time Interval"
849
  msgstr ""
850
 
851
+ #: includes/Settings.class.php:590
852
  msgid "Select the number of minutes between each available time."
853
  msgstr ""
854
 
855
+ #: includes/Settings.class.php:593
856
  msgid "Every 30 minutes"
857
  msgstr ""
858
 
859
+ #: includes/Settings.class.php:594
860
  msgid "Every 15 minutes"
861
  msgstr ""
862
 
863
+ #: includes/Settings.class.php:595
864
  msgid "Every 10 minutes"
865
  msgstr ""
866
 
867
+ #: includes/Settings.class.php:596
868
  msgid "Every 5 minutes"
869
  msgstr ""
870
 
871
+ #: includes/Settings.class.php:607
872
  msgid "Week Starts On"
873
  msgstr ""
874
 
875
+ #: includes/Settings.class.php:608
876
  msgid "Select the first day of the week"
877
  msgstr ""
878
 
879
+ #: includes/Settings.class.php:611
880
  msgid "Sunday"
881
  msgstr ""
882
 
883
+ #: includes/Settings.class.php:612
884
  msgid "Monday"
885
  msgstr ""
886
 
887
+ #: includes/Settings.class.php:621
888
  msgid "Notifications"
889
  msgstr ""
890
 
891
+ #: includes/Settings.class.php:633
892
  msgid ""
893
  "The name which should appear in the Reply-To field of a user notification "
894
  "email"
895
  msgstr ""
896
 
897
+ #: includes/Settings.class.php:656
898
  msgid "Admin Notification"
899
  msgstr ""
900
 
901
+ #: includes/Settings.class.php:657
902
  msgid ""
903
  "Send an email notification to an administrator when a new booking is "
904
  "requested."
905
  msgstr ""
906
 
907
+ #: includes/Settings.class.php:667
908
  msgid "Admin Email Address"
909
  msgstr ""
910
 
911
+ #: includes/Settings.class.php:668
912
  msgid "The email address where admin notifications should be sent."
913
  msgstr ""
914
 
915
+ #: includes/Settings.class.php:679
916
  msgid ""
917
  "Adjust the messages that are emailed to users and admins during the booking "
918
  "process."
919
  msgstr ""
920
 
921
+ #: includes/Settings.class.php:689
922
  msgid "Template Tags"
923
  msgstr ""
924
 
925
+ #: includes/Settings.class.php:691
926
  msgid ""
927
  "Use the following tags to automatically add booking information to the "
928
  "emails. Tags labeled with an asterisk (*) can be used in the email subject "
929
  "as well."
930
  msgstr ""
931
 
932
+ #: includes/Settings.class.php:702
933
  msgid "Admin Notification Subject"
934
  msgstr ""
935
 
936
+ #: includes/Settings.class.php:703
937
  msgid "The email subject for admin notifications."
938
  msgstr ""
939
 
940
+ #: includes/Settings.class.php:714
941
  msgid "Admin Notification Email"
942
  msgstr ""
943
 
944
+ #: includes/Settings.class.php:715
945
  msgid ""
946
  "Enter the email an admin should receive when an initial booking request is "
947
  "made."
948
  msgstr ""
949
 
950
+ #: includes/Settings.class.php:726
951
  msgid "New Request Email Subject"
952
  msgstr ""
953
 
954
+ #: includes/Settings.class.php:727
955
  msgid ""
956
  "The email subject a user should receive when they make an initial booking "
957
  "request."
958
  msgstr ""
959
 
960
+ #: includes/Settings.class.php:738
961
  msgid "New Request Email"
962
  msgstr ""
963
 
964
+ #: includes/Settings.class.php:739
965
  msgid ""
966
  "Enter the email a user should receive when they make an initial booking "
967
  "request."
968
  msgstr ""
969
 
970
+ #: includes/Settings.class.php:750
971
  msgid "Confirmed Email Subject"
972
  msgstr ""
973
 
974
+ #: includes/Settings.class.php:751
975
  msgid ""
976
  "The email subject a user should receive when their booking has been "
977
  "confirmed."
978
  msgstr ""
979
 
980
+ #: includes/Settings.class.php:762
981
  msgid "Confirmed Email"
982
  msgstr ""
983
 
984
+ #: includes/Settings.class.php:763
985
  msgid "Enter the email a user should receive when their booking has been confirmed."
986
  msgstr ""
987
 
988
+ #: includes/Settings.class.php:774
989
  msgid "Rejected Email Subject"
990
  msgstr ""
991
 
992
+ #: includes/Settings.class.php:775
993
  msgid ""
994
  "The email subject a user should receive when their booking has been "
995
  "rejected."
996
  msgstr ""
997
 
998
+ #: includes/Settings.class.php:786
999
  msgid "Rejected Email"
1000
  msgstr ""
1001
 
1002
+ #: includes/Settings.class.php:787
1003
  msgid "Enter the email a user should receive when their booking has been rejected."
1004
  msgstr ""
1005
 
1006
+ #: includes/Settings.class.php:798
1007
  msgid "Admin Update Subject"
1008
  msgstr ""
1009
 
1010
+ #: includes/Settings.class.php:799
1011
  msgid ""
1012
  "The email subject a user should receive when an admin sends them a custom "
1013
  "email message from the %sbookings panel%s."
1014
  msgstr ""
1015
 
1016
+ #: includes/Settings.class.php:819
1017
  msgid "Any size"
1018
  msgstr ""
1019
 
1020
+ #: includes/Settings.class.php:912
1021
  #: includes/integrations/business-profile.php:100
1022
  msgid "Book a table"
1023
  msgstr ""
1024
 
1025
+ #: includes/Settings.class.php:915
1026
  #: includes/WP_List_Table.BookingsTable.class.php:358
1027
  msgid "Date"
1028
  msgstr ""
1029
 
1030
+ #: includes/Settings.class.php:921
1031
  msgid "Time"
1032
  msgstr ""
1033
 
1034
+ #: includes/Settings.class.php:927
1035
  #: includes/WP_List_Table.BookingsTable.class.php:359
1036
  msgid "Party"
1037
  msgstr ""
1038
 
1039
+ #: includes/Settings.class.php:940
1040
  msgid "Contact Details"
1041
  msgstr ""
1042
 
1043
+ #: includes/Settings.class.php:943
1044
  #: includes/WP_List_Table.BookingsTable.class.php:360
1045
  msgid "Name"
1046
  msgstr ""
1047
 
1048
+ #: includes/Settings.class.php:949
1049
  #: includes/WP_List_Table.BookingsTable.class.php:361
1050
  msgid "Email"
1051
  msgstr ""
1052
 
1053
+ #: includes/Settings.class.php:958
1054
  #: includes/WP_List_Table.BookingsTable.class.php:362
1055
  msgid "Phone"
1056
  msgstr ""
1057
 
1058
+ #: includes/Settings.class.php:966
1059
  msgid "Add a Message"
1060
  msgstr ""
1061
 
1062
+ #: includes/Settings.class.php:1039
1063
  msgid "Email of the user who made the booking"
1064
  msgstr ""
1065
 
1066
+ #: includes/Settings.class.php:1040
1067
  msgid "* Name of the user who made the booking"
1068
  msgstr ""
1069
 
1070
+ #: includes/Settings.class.php:1041
1071
  msgid "* Number of people booked"
1072
  msgstr ""
1073
 
1074
+ #: includes/Settings.class.php:1042
1075
  msgid "* Date and time of the booking"
1076
  msgstr ""
1077
 
1078
+ #: includes/Settings.class.php:1043
1079
  msgid "Phone number if supplied with the request"
1080
  msgstr ""
1081
 
1082
+ #: includes/Settings.class.php:1044
1083
  msgid "Message added to the request"
1084
  msgstr ""
1085
 
1086
+ #: includes/Settings.class.php:1045
1087
  msgid "A link to the admin panel showing pending bookings"
1088
  msgstr ""
1089
 
1090
+ #: includes/Settings.class.php:1046
1091
  msgid "A link to confirm this booking. Only include this in admin notifications"
1092
  msgstr ""
1093
 
1094
+ #: includes/Settings.class.php:1047
1095
  msgid "A link to reject this booking. Only include this in admin notifications"
1096
  msgstr ""
1097
 
1098
+ #: includes/Settings.class.php:1048
1099
  msgid "The name of this website"
1100
  msgstr ""
1101
 
1102
+ #: includes/Settings.class.php:1049
1103
  msgid "A link to this website"
1104
  msgstr ""
1105
 
1106
+ #: includes/Settings.class.php:1050
1107
  msgid "Current date and time"
1108
  msgstr ""
1109
 
1185
  msgid "Edit"
1186
  msgstr ""
1187
 
1188
+ #: includes/WP_List_Table.BookingsTable.class.php:469
1189
  msgid "Unknown IP"
1190
  msgstr ""
1191
 
1192
+ #: includes/WP_List_Table.BookingsTable.class.php:470
1193
  msgid "Unknown Date"
1194
  msgstr ""
1195
 
1196
+ #: includes/WP_List_Table.BookingsTable.class.php:471
1197
  msgid "Request from %s on %s."
1198
  msgstr ""
1199
 
1200
+ #: includes/WP_List_Table.BookingsTable.class.php:474
1201
+ msgid " Consent acquired"
1202
+ msgstr ""
1203
+
1204
+ #: includes/WP_List_Table.BookingsTable.class.php:476
1205
+ msgid "✘ Consent not acquired"
1206
+ msgstr ""
1207
+
1208
+ #: includes/WP_List_Table.BookingsTable.class.php:481
1209
+ msgid "Ban"
1210
+ msgstr ""
1211
+
1212
+ #: includes/WP_List_Table.BookingsTable.class.php:484
1213
+ msgid "Delete Customer"
1214
  msgstr ""
1215
 
1216
+ #: includes/WP_List_Table.BookingsTable.class.php:547
1217
  msgid "Delete"
1218
  msgstr ""
1219
 
1220
+ #: includes/WP_List_Table.BookingsTable.class.php:548
1221
  msgid "Set To Confirmed"
1222
  msgstr ""
1223
 
1224
+ #: includes/WP_List_Table.BookingsTable.class.php:549
1225
  msgid "Set To Pending Review"
1226
  msgstr ""
1227
 
1228
+ #: includes/WP_List_Table.BookingsTable.class.php:550
1229
  msgid "Set To Closed"
1230
  msgstr ""
1231
 
1232
+ #: includes/WP_List_Table.BookingsTable.class.php:664
1233
  msgid "%d booking deleted successfully."
1234
  msgid_plural "%d bookings deleted successfully."
1235
  msgstr[0] ""
1236
  msgstr[1] ""
1237
 
1238
+ #: includes/WP_List_Table.BookingsTable.class.php:667
1239
  msgid "%d booking confirmed."
1240
  msgid_plural "%d bookings confirmed."
1241
  msgstr[0] ""
1242
  msgstr[1] ""
1243
 
1244
+ #: includes/WP_List_Table.BookingsTable.class.php:670
1245
  msgid "%d booking set to pending."
1246
  msgid_plural "%d bookings set to pending."
1247
  msgstr[0] ""
1248
  msgstr[1] ""
1249
 
1250
+ #: includes/WP_List_Table.BookingsTable.class.php:673
1251
  msgid "%d booking closed."
1252
  msgid_plural "%d bookings closed."
1253
  msgstr[0] ""
1254
  msgstr[1] ""
1255
 
1256
+ #: includes/WP_List_Table.BookingsTable.class.php:685
1257
  msgid "%d booking had errors and could not be processed."
1258
  msgid_plural "%d bookings had errors and could not be processed."
1259
  msgstr[0] ""
1260
  msgstr[1] ""
1261
 
1262
+ #: includes/WP_List_Table.BookingsTable.class.php:737
1263
+ #: includes/WP_List_Table.BookingsTable.class.php:758
1264
  msgid "All Locations"
1265
  msgstr ""
1266
 
1267
+ #: includes/WP_List_Table.BookingsTable.class.php:765
1268
  msgid "Inactive Locations"
1269
  msgstr ""
1270
 
1271
+ #: includes/WP_List_Table.BookingsTable.class.php:774
1272
  msgid "Switch"
1273
  msgstr ""
1274
 
1275
+ #: includes/WP_List_Table.BookingsTable.class.php:806
1276
  msgid "You're viewing bookings that have been moved to the trash."
1277
  msgstr ""
1278
 
1279
+ #: includes/WP_List_Table.BookingsTable.class.php:815
1280
  msgid "Only today's bookings are being shown."
1281
  msgstr ""
1282
 
1283
+ #: includes/WP_List_Table.BookingsTable.class.php:817
1284
  msgid "Only upcoming bookings are being shown."
1285
  msgstr ""
1286
 
 
 
 
 
1287
  #: includes/WP_Widget.BookingFormWidget.class.php:26
1288
  msgid "Display a form to accept bookings."
1289
  msgstr ""
1396
  "sent to the email address you provided."
1397
  msgstr ""
1398
 
1399
+ #: includes/AdminBookings.class.php:64
1400
  msgctxt "Title of admin page that lists bookings"
1401
  msgid "Bookings"
1402
  msgstr ""
1403
 
1404
+ #: includes/AdminBookings.class.php:65
1405
  msgctxt "Title of bookings admin menu item"
1406
  msgid "Bookings"
1407
  msgstr ""
1408
 
1409
+ #: includes/AdminBookings.class.php:194
1410
  msgctxt "Label next to the email address to which an email will be sent"
1411
  msgid "To"
1412
  msgstr ""
1574
  msgid "Update regarding your booking at %s"
1575
  msgstr ""
1576
 
1577
+ #: includes/Settings.class.php:458
1578
  msgctxt "Format of a scheduling rule"
1579
  msgid "Weekly"
1580
  msgstr ""
1581
 
1582
+ #: includes/Settings.class.php:459
1583
  msgctxt "Format of a scheduling rule"
1584
  msgid "Monthly"
1585
  msgstr ""
1586
 
1587
+ #: includes/Settings.class.php:460
1588
  msgctxt "Format of a scheduling rule"
1589
  msgid "Date"
1590
  msgstr ""
1591
 
1592
+ #: includes/Settings.class.php:461
1593
  msgctxt "Label for selecting days of the week in a scheduling rule"
1594
  msgid "Days of the week"
1595
  msgstr ""
1596
 
1597
+ #: includes/Settings.class.php:462
1598
  msgctxt "Label for selecting weeks of the month in a scheduling rule"
1599
  msgid "Weeks of the month"
1600
  msgstr ""
1601
 
1602
+ #: includes/Settings.class.php:463
1603
  msgctxt "Label to select a date for a scheduling rule"
1604
  msgid "Date"
1605
  msgstr ""
1606
 
1607
+ #: includes/Settings.class.php:464
1608
  msgctxt "Label to select a time slot for a scheduling rule"
1609
  msgid "Time"
1610
  msgstr ""
1611
 
1612
+ #: includes/Settings.class.php:465
1613
  msgctxt "Label to set a scheduling rule to last all day"
1614
  msgid "All day"
1615
  msgstr ""
1616
 
1617
+ #: includes/Settings.class.php:466
1618
  msgctxt "Label for the starting time of a scheduling rule"
1619
  msgid "Start"
1620
  msgstr ""
1621
 
1622
+ #: includes/Settings.class.php:467
1623
  msgctxt "Label for the ending time of a scheduling rule"
1624
  msgid "End"
1625
  msgstr ""
1626
 
1627
+ #: includes/Settings.class.php:468
1628
  msgctxt "Prompt displayed when a scheduling rule is set without any time restrictions"
1629
  msgid "All day long. Want to %sset a time slot%s?"
1630
  msgstr ""
1631
 
1632
+ #: includes/Settings.class.php:469
1633
  msgctxt "Toggle a scheduling rule open and closed"
1634
  msgid "Open and close this rule"
1635
  msgstr ""
1636
 
1637
+ #: includes/Settings.class.php:470
1638
  msgctxt "Delete a scheduling rule"
1639
  msgid "Delete rule"
1640
  msgstr ""
1641
 
1642
+ #: includes/Settings.class.php:472
1643
  msgctxt ""
1644
  "Brief default description of a scheduling rule when no weekdays or weeks "
1645
  "are included in the rule"
1646
  msgid "Never"
1647
  msgstr ""
1648
 
1649
+ #: includes/Settings.class.php:473
1650
  msgctxt ""
1651
  "Brief default description of a scheduling rule when all the weekdays/weeks "
1652
  "are included in the rule"
1653
  msgid "Every day"
1654
  msgstr ""
1655
 
1656
+ #: includes/Settings.class.php:474
1657
  msgctxt ""
1658
  "Brief default description of a scheduling rule when some weekdays are "
1659
  "included on only some weeks of the month. %s should be left alone and will "
1662
  msgid "%s on the %s week of the month"
1663
  msgstr ""
1664
 
1665
+ #: includes/Settings.class.php:475
1666
  msgctxt ""
1667
  "Brief default description of a scheduling rule when some weeks of the month "
1668
  "are included but all or no weekdays are selected. %s should be left alone "
1671
  msgid "%s week of the month"
1672
  msgstr ""
1673
 
1674
+ #: includes/Settings.class.php:476
1675
  msgctxt "Brief default description of a scheduling rule when no times are set"
1676
  msgid "All day"
1677
  msgstr ""
1678
 
1679
+ #: includes/Settings.class.php:477
1680
  msgctxt ""
1681
  "Brief default description of a scheduling rule when an end time is set but "
1682
  "no start time. If the end time is 6pm, it will read: Ends at 6pm"
1683
  msgid "Ends at"
1684
  msgstr ""
1685
 
1686
+ #: includes/Settings.class.php:478
1687
  msgctxt ""
1688
  "Brief default description of a scheduling rule when a start time is set but "
1689
  "no end time. If the start time is 6pm, it will read: Starts at 6pm"
1690
  msgid "Starts at"
1691
  msgstr ""
1692
 
1693
+ #: includes/Settings.class.php:479
1694
  msgctxt "Separator between times of a scheduling rule"
1695
  msgid "&mdash;"
1696
  msgstr ""
1697
 
1698
+ #: includes/Settings.class.php:491
1699
  msgctxt "Monday abbreviation"
1700
  msgid "Mo"
1701
  msgstr ""
1702
 
1703
+ #: includes/Settings.class.php:492
1704
  msgctxt "Tuesday abbreviation"
1705
  msgid "Tu"
1706
  msgstr ""
1707
 
1708
+ #: includes/Settings.class.php:493
1709
  msgctxt "Wednesday abbreviation"
1710
  msgid "We"
1711
  msgstr ""
1712
 
1713
+ #: includes/Settings.class.php:494
1714
  msgctxt "Thursday abbreviation"
1715
  msgid "Th"
1716
  msgstr ""
1717
 
1718
+ #: includes/Settings.class.php:495
1719
  msgctxt "Friday abbreviation"
1720
  msgid "Fr"
1721
  msgstr ""
1722
 
1723
+ #: includes/Settings.class.php:496
1724
  msgctxt "Saturday abbreviation"
1725
  msgid "Sa"
1726
  msgstr ""
1727
 
1728
+ #: includes/Settings.class.php:497
1729
  msgctxt "Sunday abbreviation"
1730
  msgid "Su"
1731
  msgstr ""
1732
 
1733
+ #: includes/Settings.class.php:507
1734
  msgctxt "Brief default description of a scheduling exception when no times are set"
1735
  msgid "Closed all day"
1736
  msgstr ""
1753
  msgid "Trash"
1754
  msgstr ""
1755
 
1756
+ #: includes/WP_List_Table.BookingsTable.class.php:808
1757
  msgctxt ""
1758
  "Indicates which booking status is currently being filtered in the list of "
1759
  "bookings."
1760
  msgid "You're viewing bookings that have been marked as %s."
1761
  msgstr ""
1762
 
1763
+ #: includes/WP_List_Table.BookingsTable.class.php:813
1764
  msgctxt "Notification of booking date range, eg - bookings from 2014-12-02-2014-12-05"
1765
  msgid "Only bookings from %s are being shown."
1766
  msgstr ""
package.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "name": "restaurant-reservations",
3
  "description": "Accept restaurant reservations and bookings online.",
4
- "version": "1.7.6",
5
  "author": {
6
  "name": "Theme of the Crop",
7
  "url": "https://themeofthecrop.com"
1
  {
2
  "name": "restaurant-reservations",
3
  "description": "Accept restaurant reservations and bookings online.",
4
+ "version": "1.7.7",
5
  "author": {
6
  "name": "Theme of the Crop",
7
  "url": "https://themeofthecrop.com"
readme.md CHANGED
@@ -3,9 +3,9 @@ Contributors: NateWr
3
  Author URI: https://github.com/NateWr
4
  Plugin URL: https://themeofthecrop.com
5
  Requires at Least: 4.4
6
- Tested Up To: 4.9.1
7
  Tags: restaurant, reservations, bookings, table bookings, restaurant reservation, table reservation
8
- Stable tag: 1.7.6
9
  License: GPLv2 or later
10
  Donate link: https://themeofthecrop.com
11
 
@@ -119,6 +119,11 @@ Find answers to even more questions in the [FAQ](http://doc.themeofthecrop.com/p
119
 
120
  ## Changelog
121
 
 
 
 
 
 
122
  #### 1.7.6 (2017-05-15)
123
  * Fix: Prevent IP address from being modified after initial submission
124
  * Fix: Schema type for Bakery used when integrating with Business Profile
@@ -347,6 +352,9 @@ Find answers to even more questions in the [FAQ](http://doc.themeofthecrop.com/p
347
 
348
  ## Upgrade Notice
349
 
 
 
 
350
  #### 1.7.5
351
  This update adds an option to require a phone, email address validation and a notification bubble showing the number of upcoming pending bookings in the admin area.
352
 
3
  Author URI: https://github.com/NateWr
4
  Plugin URL: https://themeofthecrop.com
5
  Requires at Least: 4.4
6
+ Tested Up To: 4.9.5
7
  Tags: restaurant, reservations, bookings, table bookings, restaurant reservation, table reservation
8
+ Stable tag: 1.7.7
9
  License: GPLv2 or later
10
  Donate link: https://themeofthecrop.com
11
 
119
 
120
  ## Changelog
121
 
122
+ #### 1.7.7 (2018-04-27)
123
+ * Add: #135 Option to collect consent to store data (GDPR)
124
+ * Add: #135 Ability to delete all bookings related to an email address (GDPR)
125
+ * Fix: Some data not updated in confirm/reject emails when changed
126
+
127
  #### 1.7.6 (2017-05-15)
128
  * Fix: Prevent IP address from being modified after initial submission
129
  * Fix: Schema type for Bakery used when integrating with Business Profile
352
 
353
  ## Upgrade Notice
354
 
355
+ #### 1.7.8
356
+ This update adds two features to help you comply with GDPR privacy regulations in Europe: a confirmation field can be added to the booking form to collect a customer's consent to store their data. And you can delete all bookings related to an email address.
357
+
358
  #### 1.7.5
359
  This update adds an option to require a phone, email address validation and a notification bubble showing the number of upcoming pending bookings in the admin area.
360
 
restaurant-reservations.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Restaurant Reservations
4
  * Plugin URI: http://themeofthecrop.com
5
  * Description: Accept restaurant reservations and bookings online.
6
- * Version: 1.7.6
7
  * Author: Theme of the Crop
8
  * Author URI: http://themeofthecrop.com
9
  * License: GNU General Public License v2.0 or later
@@ -47,7 +47,7 @@ class rtbInit {
47
  public function __construct() {
48
 
49
  // Common strings
50
- define( 'RTB_VERSION', '1.7.6' );
51
  define( 'RTB_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
52
  define( 'RTB_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
53
  define( 'RTB_PLUGIN_FNAME', plugin_basename( __FILE__ ) );
3
  * Plugin Name: Restaurant Reservations
4
  * Plugin URI: http://themeofthecrop.com
5
  * Description: Accept restaurant reservations and bookings online.
6
+ * Version: 1.7.7
7
  * Author: Theme of the Crop
8
  * Author URI: http://themeofthecrop.com
9
  * License: GNU General Public License v2.0 or later
47
  public function __construct() {
48
 
49
  // Common strings
50
+ define( 'RTB_VERSION', '1.7.7' );
51
  define( 'RTB_PLUGIN_DIR', untrailingslashit( plugin_dir_path( __FILE__ ) ) );
52
  define( 'RTB_PLUGIN_URL', untrailingslashit( plugins_url( basename( plugin_dir_path( __FILE__ ) ), basename( __FILE__ ) ) ) );
53
  define( 'RTB_PLUGIN_FNAME', plugin_basename( __FILE__ ) );