Version Description
Download this release
Release Info
Developer | NateWr |
Plugin | Restaurant Reservations |
Version | 1.7.1 |
Comparing to | |
See all releases |
Code changes from version 1.7 to 1.7.1
- includes/Booking.class.php +10 -0
- includes/MultipleLocations.class.php +102 -33
- includes/Query.class.php +2 -0
- includes/WP_List_Table.BookingsTable.class.php +1 -1
- languages/restaurant-reservations.pot +36 -36
- package.json +1 -1
- readme.md +11 -3
- restaurant-reservations.php +2 -2
includes/Booking.class.php
CHANGED
@@ -124,6 +124,16 @@ class rtbBooking {
|
|
124 |
return apply_filters( 'get_the_date', $date );
|
125 |
}
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
/**
|
128 |
* Insert a new booking submission into the database
|
129 |
*
|
124 |
return apply_filters( 'get_the_date', $date );
|
125 |
}
|
126 |
|
127 |
+
/**
|
128 |
+
* Format a timestamp into a human-readable date
|
129 |
+
*
|
130 |
+
* @since 1.7.1
|
131 |
+
*/
|
132 |
+
public function format_timestamp( $timestamp ) {
|
133 |
+
$time = date( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), $timestamp );
|
134 |
+
return $time;
|
135 |
+
}
|
136 |
+
|
137 |
/**
|
138 |
* Insert a new booking submission into the database
|
139 |
*
|
includes/MultipleLocations.class.php
CHANGED
@@ -89,6 +89,7 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
89 |
add_filter( 'rtb_notification_email_from_name', array( $this, 'notification_from_name' ), 10, 2 );
|
90 |
add_filter( 'rtb_notification_template_tags', array( $this, 'notification_template_tags' ), 10, 2 );
|
91 |
add_filter( 'rtb_notification_template_tag_descriptions', array( $this, 'notification_template_tag_descriptions' ) );
|
|
|
92 |
}
|
93 |
|
94 |
/**
|
@@ -124,12 +125,13 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
124 |
*/
|
125 |
public function save_location( $post_id, $post, $update ) {
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
|
|
133 |
return $post_id;
|
134 |
}
|
135 |
|
@@ -137,16 +139,17 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
137 |
|
138 |
// Create a new term for this location
|
139 |
if ( !$term_id ) {
|
|
|
140 |
$term = wp_insert_term(
|
141 |
sanitize_text_field( $post->post_title ),
|
142 |
$this->location_taxonomy
|
143 |
);
|
|
|
144 |
if ( !is_a( $term, 'WP_Error' ) ) {
|
145 |
update_post_meta( $post_id, $this->location_taxonomy, $term['term_id'] );
|
|
|
146 |
}
|
147 |
|
148 |
-
$term_id = $term['term_id'];
|
149 |
-
|
150 |
// Update the term for this location
|
151 |
} else {
|
152 |
wp_update_term(
|
@@ -159,36 +162,34 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
159 |
);
|
160 |
}
|
161 |
|
162 |
-
// Save post and and term meta data
|
163 |
-
if ( !isset( $_POST['rtb_location_meta_nonce'] ) || !wp_verify_nonce( $_POST['rtb_location_meta_nonce'], 'rtb_location_meta' ) ) {
|
164 |
-
return $post_id;
|
165 |
-
}
|
166 |
-
|
167 |
if ( !empty( $_POST['rtb_append_booking_form'] ) ) {
|
168 |
update_post_meta( $post_id, 'rtb_append_booking_form', true );
|
169 |
} else {
|
170 |
delete_post_meta( $post_id, 'rtb_append_booking_form' );
|
171 |
}
|
172 |
|
173 |
-
if (
|
174 |
-
$reply_to_name = sanitize_text_field( $_POST['rtb_reply_to_name'] );
|
175 |
-
update_term_meta( $term_id, 'rtb_reply_to_name', $reply_to_name );
|
176 |
-
} else {
|
177 |
-
delete_term_meta( $term_id, 'rtb_reply_to_name' );
|
178 |
-
}
|
179 |
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
}
|
193 |
|
194 |
return $post_id;
|
@@ -206,7 +207,7 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
206 |
public function delete_location( $post_id ) {
|
207 |
|
208 |
if ( !current_user_can( 'delete_posts' ) ) {
|
209 |
-
return;
|
210 |
}
|
211 |
|
212 |
$term_id = get_post_meta( $post_id, $this->location_taxonomy, true );
|
@@ -226,10 +227,10 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
226 |
// historical data.
|
227 |
if ( count( $query->bookings ) ) {
|
228 |
add_term_meta( $term_id, 'rtb_location_removed', true );
|
229 |
-
|
|
|
230 |
}
|
231 |
|
232 |
-
wp_delete_term( $term_id, $this->location_taxonomy );
|
233 |
}
|
234 |
|
235 |
/**
|
@@ -682,5 +683,73 @@ if ( ! class_exists( 'rtbMultipleLocations', false ) ) {
|
|
682 |
$descriptions
|
683 |
);
|
684 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
685 |
}
|
686 |
}
|
89 |
add_filter( 'rtb_notification_email_from_name', array( $this, 'notification_from_name' ), 10, 2 );
|
90 |
add_filter( 'rtb_notification_template_tags', array( $this, 'notification_template_tags' ), 10, 2 );
|
91 |
add_filter( 'rtb_notification_template_tag_descriptions', array( $this, 'notification_template_tag_descriptions' ) );
|
92 |
+
add_action( 'admin_init', array( $this, 'fix_autodraft_term_error' ) );
|
93 |
}
|
94 |
|
95 |
/**
|
125 |
*/
|
126 |
public function save_location( $post_id, $post, $update ) {
|
127 |
|
128 |
+
if (
|
129 |
+
$post->post_status === 'auto-draft' ||
|
130 |
+
( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) ||
|
131 |
+
!current_user_can( 'edit_post', $post_id ) ||
|
132 |
+
!isset( $_POST['rtb_location_meta_nonce'] ) ||
|
133 |
+
!wp_verify_nonce( $_POST['rtb_location_meta_nonce'], 'rtb_location_meta' )
|
134 |
+
) {
|
135 |
return $post_id;
|
136 |
}
|
137 |
|
139 |
|
140 |
// Create a new term for this location
|
141 |
if ( !$term_id ) {
|
142 |
+
|
143 |
$term = wp_insert_term(
|
144 |
sanitize_text_field( $post->post_title ),
|
145 |
$this->location_taxonomy
|
146 |
);
|
147 |
+
|
148 |
if ( !is_a( $term, 'WP_Error' ) ) {
|
149 |
update_post_meta( $post_id, $this->location_taxonomy, $term['term_id'] );
|
150 |
+
$term_id = $term['term_id'];
|
151 |
}
|
152 |
|
|
|
|
|
153 |
// Update the term for this location
|
154 |
} else {
|
155 |
wp_update_term(
|
162 |
);
|
163 |
}
|
164 |
|
|
|
|
|
|
|
|
|
|
|
165 |
if ( !empty( $_POST['rtb_append_booking_form'] ) ) {
|
166 |
update_post_meta( $post_id, 'rtb_append_booking_form', true );
|
167 |
} else {
|
168 |
delete_post_meta( $post_id, 'rtb_append_booking_form' );
|
169 |
}
|
170 |
|
171 |
+
if ( $term_id ) {
|
|
|
|
|
|
|
|
|
|
|
172 |
|
173 |
+
if ( !empty( $_POST['rtb_reply_to_name'] ) ) {
|
174 |
+
$reply_to_name = sanitize_text_field( $_POST['rtb_reply_to_name'] );
|
175 |
+
update_term_meta( $term_id, 'rtb_reply_to_name', $reply_to_name );
|
176 |
+
} else {
|
177 |
+
delete_term_meta( $term_id, 'rtb_reply_to_name' );
|
178 |
+
}
|
179 |
|
180 |
+
if ( !empty( $_POST['rtb_reply_to_address'] ) ) {
|
181 |
+
$reply_to_address = sanitize_email( $_POST['rtb_reply_to_address'] );
|
182 |
+
update_term_meta( $term_id, 'rtb_reply_to_address', $reply_to_address );
|
183 |
+
} else {
|
184 |
+
delete_term_meta( $term_id, 'rtb_reply_to_address' );
|
185 |
+
}
|
186 |
+
|
187 |
+
if ( !empty( $_POST['rtb_admin_email_address'] ) ) {
|
188 |
+
$email = sanitize_email( $_POST['rtb_admin_email_address'] );
|
189 |
+
update_term_meta( $term_id, 'rtb_admin_email_address', $email );
|
190 |
+
} else {
|
191 |
+
delete_term_meta( $term_id, 'rtb_admin_email_address' );
|
192 |
+
}
|
193 |
}
|
194 |
|
195 |
return $post_id;
|
207 |
public function delete_location( $post_id ) {
|
208 |
|
209 |
if ( !current_user_can( 'delete_posts' ) ) {
|
210 |
+
return $post_id;
|
211 |
}
|
212 |
|
213 |
$term_id = get_post_meta( $post_id, $this->location_taxonomy, true );
|
227 |
// historical data.
|
228 |
if ( count( $query->bookings ) ) {
|
229 |
add_term_meta( $term_id, 'rtb_location_removed', true );
|
230 |
+
} else {
|
231 |
+
wp_delete_term( $term_id, $this->location_taxonomy );
|
232 |
}
|
233 |
|
|
|
234 |
}
|
235 |
|
236 |
/**
|
683 |
$descriptions
|
684 |
);
|
685 |
}
|
686 |
+
|
687 |
+
/**
|
688 |
+
* Removes Auto-Draft locations that were added due to a bug in v1.7
|
689 |
+
*
|
690 |
+
* Version 1.7 introduced a bug which caused a location term to be
|
691 |
+
* created if the location Add New page was loaded. This term
|
692 |
+
* corresponded to an auto-draft post object and will be removed when
|
693 |
+
* that object is removed. This provides a one-time fix in v1.7.1
|
694 |
+
*
|
695 |
+
* @see https://github.com/NateWr/restaurant-reservations/issues/91
|
696 |
+
* @see https://developer.wordpress.org/reference/functions/wp_delete_auto_drafts/
|
697 |
+
* @since 1.7.1
|
698 |
+
*/
|
699 |
+
public function fix_autodraft_term_error() {
|
700 |
+
|
701 |
+
if ( get_option( 'rtb_autodraft_terms_fixed', false ) ) {
|
702 |
+
return;
|
703 |
+
}
|
704 |
+
|
705 |
+
global $wpdb;
|
706 |
+
|
707 |
+
if ( !$wpdb ) {
|
708 |
+
return;
|
709 |
+
}
|
710 |
+
|
711 |
+
$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$this->post_type';" );
|
712 |
+
foreach ( (array) $old_posts as $delete ) {
|
713 |
+
// Force delete.
|
714 |
+
wp_delete_post( $delete, true );
|
715 |
+
}
|
716 |
+
|
717 |
+
// Set the `rtb_location_removed` term meta on any terms that are
|
718 |
+
// no longer attached to posts
|
719 |
+
global $wp_version;
|
720 |
+
if ( version_compare( $wp_version, '3.9', '>=' ) ) {
|
721 |
+
$live_terms = $wpdb->get_col( "SELECT meta_value FROM $wpdb->postmeta WHERE meta_key='$this->location_taxonomy';" );
|
722 |
+
$all_terms = get_terms( array(
|
723 |
+
'taxonomy' => $this->location_taxonomy,
|
724 |
+
'hide_empty' => false,
|
725 |
+
'meta_query' => array(
|
726 |
+
array(
|
727 |
+
'compare' => 'NOT EXISTS',
|
728 |
+
'key' => 'rtb_location_removed',
|
729 |
+
)
|
730 |
+
)
|
731 |
+
) );
|
732 |
+
if ( is_array( $all_terms ) ) {
|
733 |
+
foreach( $all_terms as $term ) {
|
734 |
+
if ( !in_array( $term->term_id, $live_terms ) ) {
|
735 |
+
$query = new rtbQuery( array( 'location' => $term->term_id ), 'delete-location-term-check' );
|
736 |
+
$query->prepare_args();
|
737 |
+
$query->get_bookings();
|
738 |
+
|
739 |
+
// Don't delete taxonomy terms if there are bookings assigned to
|
740 |
+
// this location, so the booking associations can remain as
|
741 |
+
// historical data.
|
742 |
+
if ( count( $query->bookings ) ) {
|
743 |
+
add_term_meta( $term->term_id, 'rtb_location_removed', true );
|
744 |
+
} else {
|
745 |
+
wp_delete_term( $term->term_id, $this->location_taxonomy );
|
746 |
+
}
|
747 |
+
}
|
748 |
+
}
|
749 |
+
}
|
750 |
+
}
|
751 |
+
|
752 |
+
update_option( 'rtb_autodraft_terms_fixed', true );
|
753 |
+
}
|
754 |
}
|
755 |
}
|
includes/Query.class.php
CHANGED
@@ -227,6 +227,8 @@ class rtbQuery {
|
|
227 |
|
228 |
$this->bookings = $bookings;
|
229 |
|
|
|
|
|
230 |
return $this->bookings;
|
231 |
}
|
232 |
|
227 |
|
228 |
$this->bookings = $bookings;
|
229 |
|
230 |
+
wp_reset_query();
|
231 |
+
|
232 |
return $this->bookings;
|
233 |
}
|
234 |
|
includes/WP_List_Table.BookingsTable.class.php
CHANGED
@@ -466,7 +466,7 @@ class rtbBookingsTable extends WP_List_Table {
|
|
466 |
|
467 |
case 'submitted-by' :
|
468 |
$ip = !empty( $booking->ip ) ? $booking->ip : __( 'Unknown IP', 'restaurant-reservations' );
|
469 |
-
$date_submission = isset( $booking->date_submission ) ? $booking->
|
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 . '">';
|
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 . '">';
|
languages/restaurant-reservations.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
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\n"
|
6 |
"Report-Msgid-Bugs-To: https://themeofthecrop.com\n"
|
7 |
-
"POT-Creation-Date: 2016-12-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -139,87 +139,87 @@ msgstr ""
|
|
139 |
msgid "Invalid"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: includes/Booking.class.php:
|
143 |
msgid "Please enter the date you would like to book."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: includes/Booking.class.php:
|
147 |
msgid ""
|
148 |
"The date you entered is not valid. Please select from one of the dates in "
|
149 |
"the calendar."
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: includes/Booking.class.php:
|
153 |
msgid "Please enter the time you would like to book."
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: includes/Booking.class.php:
|
157 |
msgid ""
|
158 |
"The time you entered is not valid. Please select from one of the times "
|
159 |
"provided."
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: includes/Booking.class.php:
|
163 |
msgid "Sorry, bookings can not be made more than %s days in advance."
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: includes/Booking.class.php:
|
167 |
msgid "Sorry, bookings can not be made in the past."
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: includes/Booking.class.php:
|
171 |
msgid "Sorry, bookings can not be made for the same day."
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: includes/Booking.class.php:
|
175 |
msgid "Sorry, bookings must be made more than %s days in advance."
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: includes/Booking.class.php:
|
179 |
msgid "Sorry, bookings must be made more than %s hours in advance."
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: includes/Booking.class.php:
|
183 |
msgid "Sorry, bookings must be made more than %s minutes in advance."
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: includes/Booking.class.php:
|
187 |
msgid "Sorry, no bookings are being accepted then."
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: includes/Booking.class.php:
|
191 |
msgid "Sorry, no bookings are being accepted on that date."
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: includes/Booking.class.php:
|
195 |
msgid "Sorry, no bookings are being accepted at that time."
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: includes/Booking.class.php:
|
199 |
msgid "Please enter a name for this booking."
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: includes/Booking.class.php:
|
203 |
msgid "Please let us know how many people will be in your party."
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: includes/Booking.class.php:
|
207 |
msgid "We only accept bookings for parties of up to %d people."
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: includes/Booking.class.php:
|
211 |
msgid "We only accept bookings for parties of more than %d people."
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: includes/Booking.class.php:
|
215 |
msgid "Please enter an email address so we can confirm your booking."
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: includes/Booking.class.php:
|
219 |
msgid "Please complete this field to request a booking."
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: includes/Booking.class.php:
|
223 |
msgid ""
|
224 |
"Your booking has been rejected. Please call us if you would like to make a "
|
225 |
"booking."
|
@@ -309,58 +309,58 @@ msgid ""
|
|
309 |
"and try again."
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: includes/MultipleLocations.class.php:
|
313 |
-
#: includes/MultipleLocations.class.php:
|
314 |
msgid "Location"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: includes/MultipleLocations.class.php:
|
318 |
msgid "Please select a location for your booking."
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: includes/MultipleLocations.class.php:
|
322 |
msgid "The location you selected is not valid. Please select another location."
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: includes/MultipleLocations.class.php:
|
326 |
msgid "Reservations"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: includes/MultipleLocations.class.php:
|
330 |
msgid "Show booking form with this location."
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: includes/MultipleLocations.class.php:
|
334 |
msgid "Reply-To Name"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: includes/MultipleLocations.class.php:
|
338 |
msgid ""
|
339 |
"The name which should appear in the Reply-To field of a user notification "
|
340 |
"email."
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: includes/MultipleLocations.class.php:
|
344 |
msgid "Reply-To Email Address"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: includes/MultipleLocations.class.php:
|
348 |
msgid ""
|
349 |
"The email address which should appear in the Reply-To field of a user "
|
350 |
"notification email."
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: includes/MultipleLocations.class.php:
|
354 |
msgid "Admin Notification Email Address"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: includes/MultipleLocations.class.php:
|
358 |
msgid ""
|
359 |
"The email address where admin notifications for bookings at this location "
|
360 |
"should be sent."
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: includes/MultipleLocations.class.php:
|
364 |
msgid "Location for which this booking was made."
|
365 |
msgstr ""
|
366 |
|
@@ -1180,7 +1180,7 @@ msgctxt "Booking status for a closed booking"
|
|
1180 |
msgid "Closed"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
-
#: includes/MultipleLocations.class.php:
|
1184 |
msgctxt "Name for grouping bookings"
|
1185 |
msgid "Location"
|
1186 |
msgstr ""
|
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.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://themeofthecrop.com\n"
|
7 |
+
"POT-Creation-Date: 2016-12-14 16:51:35+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
139 |
msgid "Invalid"
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: includes/Booking.class.php:192
|
143 |
msgid "Please enter the date you would like to book."
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: includes/Booking.class.php:202
|
147 |
msgid ""
|
148 |
"The date you entered is not valid. Please select from one of the dates in "
|
149 |
"the calendar."
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: includes/Booking.class.php:213
|
153 |
msgid "Please enter the time you would like to book."
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: includes/Booking.class.php:223
|
157 |
msgid ""
|
158 |
"The time you entered is not valid. Please select from one of the times "
|
159 |
"provided."
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: includes/Booking.class.php:243
|
163 |
msgid "Sorry, bookings can not be made more than %s days in advance."
|
164 |
msgstr ""
|
165 |
|
166 |
+
#: includes/Booking.class.php:254
|
167 |
msgid "Sorry, bookings can not be made in the past."
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: includes/Booking.class.php:263
|
171 |
msgid "Sorry, bookings can not be made for the same day."
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: includes/Booking.class.php:271
|
175 |
msgid "Sorry, bookings must be made more than %s days in advance."
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: includes/Booking.class.php:273
|
179 |
msgid "Sorry, bookings must be made more than %s hours in advance."
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: includes/Booking.class.php:275
|
183 |
msgid "Sorry, bookings must be made more than %s minutes in advance."
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: includes/Booking.class.php:315
|
187 |
msgid "Sorry, no bookings are being accepted then."
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: includes/Booking.class.php:367
|
191 |
msgid "Sorry, no bookings are being accepted on that date."
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: includes/Booking.class.php:373
|
195 |
msgid "Sorry, no bookings are being accepted at that time."
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: includes/Booking.class.php:395
|
199 |
msgid "Please enter a name for this booking."
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: includes/Booking.class.php:405
|
203 |
msgid "Please let us know how many people will be in your party."
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: includes/Booking.class.php:415
|
207 |
msgid "We only accept bookings for parties of up to %d people."
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: includes/Booking.class.php:423
|
211 |
msgid "We only accept bookings for parties of more than %d people."
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: includes/Booking.class.php:434
|
215 |
msgid "Please enter an email address so we can confirm your booking."
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: includes/Booking.class.php:456
|
219 |
msgid "Please complete this field to request a booking."
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: includes/Booking.class.php:468
|
223 |
msgid ""
|
224 |
"Your booking has been rejected. Please call us if you would like to make a "
|
225 |
"booking."
|
309 |
"and try again."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: includes/MultipleLocations.class.php:304
|
313 |
+
#: includes/MultipleLocations.class.php:407
|
314 |
msgid "Location"
|
315 |
msgstr ""
|
316 |
|
317 |
+
#: includes/MultipleLocations.class.php:359
|
318 |
msgid "Please select a location for your booking."
|
319 |
msgstr ""
|
320 |
|
321 |
+
#: includes/MultipleLocations.class.php:366
|
322 |
msgid "The location you selected is not valid. Please select another location."
|
323 |
msgstr ""
|
324 |
|
325 |
+
#: includes/MultipleLocations.class.php:475
|
326 |
msgid "Reservations"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: includes/MultipleLocations.class.php:542
|
330 |
msgid "Show booking form with this location."
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: includes/MultipleLocations.class.php:548 includes/Settings.class.php:550
|
334 |
msgid "Reply-To Name"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: includes/MultipleLocations.class.php:552
|
338 |
msgid ""
|
339 |
"The name which should appear in the Reply-To field of a user notification "
|
340 |
"email."
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: includes/MultipleLocations.class.php:558 includes/Settings.class.php:562
|
344 |
msgid "Reply-To Email Address"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: includes/MultipleLocations.class.php:562 includes/Settings.class.php:563
|
348 |
msgid ""
|
349 |
"The email address which should appear in the Reply-To field of a user "
|
350 |
"notification email."
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: includes/MultipleLocations.class.php:569
|
354 |
msgid "Admin Notification Email Address"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: includes/MultipleLocations.class.php:573
|
358 |
msgid ""
|
359 |
"The email address where admin notifications for bookings at this location "
|
360 |
"should be sent."
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: includes/MultipleLocations.class.php:682
|
364 |
msgid "Location for which this booking was made."
|
365 |
msgstr ""
|
366 |
|
1180 |
msgid "Closed"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: includes/MultipleLocations.class.php:103
|
1184 |
msgctxt "Name for grouping bookings"
|
1185 |
msgid "Location"
|
1186 |
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",
|
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.1",
|
5 |
"author": {
|
6 |
"name": "Theme of the Crop",
|
7 |
"url": "https://themeofthecrop.com"
|
readme.md
CHANGED
@@ -7,11 +7,11 @@ Plugin URL: https://themeofthecrop.com
|
|
7 |
<br/>
|
8 |
Requires at Least: 4.4
|
9 |
<br/>
|
10 |
-
Tested Up To: 4.
|
11 |
<br/>
|
12 |
Tags: restaurant, reservations, bookings, table bookings, restaurant reservation, table reservation
|
13 |
<br/>
|
14 |
-
Stable tag: 1.7
|
15 |
<br/>
|
16 |
License: GPLv2 or later
|
17 |
<br/>
|
@@ -39,7 +39,7 @@ Accept restaurant reservations and table bookings online. Quickly confirm or rej
|
|
39 |
|
40 |
## How to use
|
41 |
|
42 |
-
Read the [User Guide](http://doc.themeofthecrop.com/plugins/restaurant-reservations/?utm_source=Plugin&utm_medium=Plugin%20Description&utm_campaign=Restaurant%20Reservations) for
|
43 |
|
44 |
### Addons
|
45 |
[Custom Fields for Restaurant Reservations](https://themeofthecrop.com/plugins/custom-fields-restaurant-reservations/?utm_source=Plugin&utm_medium=Plugin%20Description&utm_campaign=Restaurant%20Reservations) - Add custom fields and edit your booking form with ease.
|
@@ -125,6 +125,11 @@ Find answers to even more questions in the [FAQ](http://doc.themeofthecrop.com/p
|
|
125 |
|
126 |
## Changelog
|
127 |
|
|
|
|
|
|
|
|
|
|
|
128 |
#### 1.7 (2016-12-05)
|
129 |
* Add: Allow customer banning by email and IP address
|
130 |
* Add: HTML5 required and aria-required attributes where appropriate
|
@@ -323,6 +328,9 @@ Find answers to even more questions in the [FAQ](http://doc.themeofthecrop.com/p
|
|
323 |
|
324 |
## Upgrade Notice
|
325 |
|
|
|
|
|
|
|
326 |
#### 1.7
|
327 |
This update adds new features for banning bookings from no-shows and preventing blocked times from appearing in the time picker. New options for min party size and same-day bookings have been added. Bookings Managers can now edit bookings in the past.
|
328 |
|
7 |
<br/>
|
8 |
Requires at Least: 4.4
|
9 |
<br/>
|
10 |
+
Tested Up To: 4.7
|
11 |
<br/>
|
12 |
Tags: restaurant, reservations, bookings, table bookings, restaurant reservation, table reservation
|
13 |
<br/>
|
14 |
+
Stable tag: 1.7.1
|
15 |
<br/>
|
16 |
License: GPLv2 or later
|
17 |
<br/>
|
39 |
|
40 |
## How to use
|
41 |
|
42 |
+
Read the [User Guide](http://doc.themeofthecrop.com/plugins/restaurant-reservations/?utm_source=Plugin&utm_medium=Plugin%20Description&utm_campaign=Restaurant%20Reservations) for quick tips on how to get started taking reservations.
|
43 |
|
44 |
### Addons
|
45 |
[Custom Fields for Restaurant Reservations](https://themeofthecrop.com/plugins/custom-fields-restaurant-reservations/?utm_source=Plugin&utm_medium=Plugin%20Description&utm_campaign=Restaurant%20Reservations) - Add custom fields and edit your booking form with ease.
|
125 |
|
126 |
## Changelog
|
127 |
|
128 |
+
#### 1.7.1 (2016-12-14)
|
129 |
+
* Fix: Submitted by date and time in the bookings list
|
130 |
+
* Fix: Fatal error when creating a new location with the Business Profile plugin
|
131 |
+
* Fix: Remove or archive unexpected "Auto Draft" that was created in some circumstances
|
132 |
+
|
133 |
#### 1.7 (2016-12-05)
|
134 |
* Add: Allow customer banning by email and IP address
|
135 |
* Add: HTML5 required and aria-required attributes where appropriate
|
328 |
|
329 |
## Upgrade Notice
|
330 |
|
331 |
+
#### 1.7.1
|
332 |
+
This update fixes a critical bug introduced in v1.7 if you use bookings with the multi-location features of Business Profile. You are encouraged to update as soon as possible.
|
333 |
+
|
334 |
#### 1.7
|
335 |
This update adds new features for banning bookings from no-shows and preventing blocked times from appearing in the time picker. New options for min party size and same-day bookings have been added. Bookings Managers can now edit bookings in the past.
|
336 |
|
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
|
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' );
|
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.1
|
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.1' );
|
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__ ) );
|