PluginProbe
Timetics – Appointment Booking Calendar & Scheduling / 1.0.38
Timetics – Appointment Booking Calendar & Scheduling v1.0.38
1.0.61 1.0.60 1.0.59 1.0.58 1.0.57 1.0.56 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 All 62 releases
← All changes | core/admin/hooks.php +9 -85 trunk1.0.38 View file →
@@ -4,11 +4,8 @@
4 4 *
5 5 * @package Timetics
6 6 */
7 7 namespace Timetics\Core\Admin;
8 -
9 -defined( 'ABSPATH' ) || exit;
10 -
11 8 use Timetics\Utils\Singleton;
12 9
13 10
14 11 class Hooks {
@@ -33,11 +30,8 @@
33 30 add_action( 'wp_initialize_site', [ $this, 'update_user_role_on_insert_new_site' ], 110 );
34 31
35 32 add_action( 'set_user_role', [ $this, 'set_roles' ], 10, 2 );
36 33
37 - add_filter( 'show_admin_bar', [ $this, 'hide_admin_bar_for_customers' ] );
38 - add_action( 'admin_init', [ $this, 'block_admin_for_customers' ] );
39 -
40 34 add_filter( 'timetics_menu', [ $this, 'update_busyness_menu' ] );
41 35
42 36 add_filter( 'timetics_settings', [ $this, 'set_google_auth_url' ] );
43 37
@@ -76,9 +70,8 @@
76 70
77 71 echo wp_kses_post( $notice );
78 72
79 73 $admin_ajax_url = admin_url('admin-ajax.php');
80 - $nonce = wp_create_nonce( 'timetics_dismiss_wc_notice' );
81 74
82 75 ?>
83 76 <script>
84 77 jQuery(document).ready(function($) {
@@ -84,9 +77,8 @@
84 77 jQuery(document).ready(function($) {
85 78 $('.notice.is-dismissible').on('click', '.notice-dismiss', function() {
86 79 var data = {
87 80 action: 'dismiss_woocommerce_notice',
88 - nonce: '<?php echo esc_js( $nonce ); ?>',
89 81 };
90 82
91 83 $.post('<?php echo esc_url( $admin_ajax_url ); ?>', data, function(response) {
92 84 console.log(response);
@@ -102,10 +94,8 @@
102 94 *
103 95 * @return void
104 96 */
105 97 public function dismiss_woocommerce_notice() {
106 - check_ajax_referer( 'timetics_dismiss_wc_notice', 'nonce' );
107 -
108 98 // Store the notice state in user meta
109 99 update_user_meta( get_current_user_id(), 'timetics_woocommerce_notice_dismissed', true );
110 100
111 101 wp_send_json_success('Notice dismissed successfully.');
@@ -146,10 +136,9 @@
146 136
147 137 update_option( 'timetics_onboard_setup', true );
148 138 update_option( 'timetics_onboard_settings', false );
149 139
150 - wp_safe_redirect( admin_url('admin.php?page=timetics#/onboard') );
151 - exit;
140 + exit( esc_url( wp_redirect( admin_url('admin.php?page=timetics#/onboard') ) ) );
152 141 }
153 142
154 143 /**
155 144 * Update site admin roles whne new site created
@@ -186,61 +175,8 @@
186 175 $user->add_role('timetics-customer');
187 176 }
188 177
189 178 /**
190 - * Hide the WP admin toolbar for customer-only users.
191 - *
192 - * @param bool $show
193 - *
194 - * @return bool
195 - */
196 - public function hide_admin_bar_for_customers( $show ) {
197 - $user = wp_get_current_user();
198 -
199 - if ( ! $user || ! $user->exists() ) {
200 - return $show;
201 - }
202 -
203 - if ( $this->is_customer_only( $user ) ) {
204 - return false;
205 - }
206 -
207 - return $show;
208 - }
209 -
210 - /**
211 - * Redirect customer-only users away from /wp-admin/.
212 - *
213 - * @return void
214 - */
215 - public function block_admin_for_customers() {
216 - if ( wp_doing_ajax() ) {
217 - return;
218 - }
219 -
220 - $user = wp_get_current_user();
221 -
222 - if ( $user && $user->exists() && $this->is_customer_only( $user ) ) {
223 - wp_safe_redirect( home_url() );
224 - exit;
225 - }
226 - }
227 -
228 - /**
229 - * Whether the given user's only Timetics-relevant role is timetics-customer.
230 - *
231 - * @param \WP_User $user
232 - *
233 - * @return bool
234 - */
235 - private function is_customer_only( $user ) {
236 - $roles = (array) $user->roles;
237 -
238 - return in_array( 'timetics-customer', $roles, true )
239 - && ! array_intersect( $roles, [ 'administrator', 'editor', 'author', 'contributor', 'timetics-staff' ] );
240 - }
241 -
242 - /**
243 179 * Update busyness menu item
244 180 *
245 181 * @param array $menu_items
246 182 *
@@ -295,54 +231,42 @@
295 231
296 232
297 233 $admin_email = get_option( 'admin_email' );
298 234
299 - /* translators: {%customer_name%} is a token replaced at runtime with the recipient customer's name */
300 - $customer_greeting = __( 'Hi {%customer_name%}', 'timetics' );
301 - /* translators: {%host_name%} is a token replaced at runtime with the recipient host's name */
302 - $host_greeting = __( 'Hi {%host_name%}', 'timetics' );
303 - $new_meeting_msg = __( 'A new meeting has been scheduled.', 'timetics' );
304 - /* translators: {%meeting_title%} is a token replaced at runtime with the meeting title */
305 - $canceled_msg = __( '{%meeting_title%} has been canceled.', 'timetics' );
306 - /* translators: {%meeting_title%} is a token replaced at runtime with the meeting title */
307 - $rescheduled_msg = __( '{%meeting_title%} has been rescheduled', 'timetics' );
308 - /* translators: {%meeting_title%}, {%meeting_date%}, {%meeting_time%} are tokens replaced at runtime with the meeting details */
309 - $reminder_msg = __( '{%meeting_title%} at {%meeting_date%} {%meeting_time%}', 'timetics' );
310 -
311 235 $defaults = [
312 236
313 237 'booking_created_customer_email_from' => $admin_email,
314 238 'booking_created_customer_email_title' => sprintf('%s', __( 'New meeting scheduled!', 'timetics' )),
315 - 'booking_created_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', $customer_greeting, $new_meeting_msg),
239 + 'booking_created_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%customer_name%}', 'timetics' ), __( 'A new meeting has been scheduled.', 'timetics' )),
316 240
317 241 'booking_created_host_email_from' => $admin_email,
318 242 'booking_created_host_email_title' => sprintf('%s', __( 'New meeting scheduled!', 'timetics' )),
319 - 'booking_created_host_email_body' => sprintf('<p>%s</p><p>%s</p>', $host_greeting, $new_meeting_msg),
243 + 'booking_created_host_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%host_name%}', 'timetics' ), __( 'A new meeting has been scheduled.', 'timetics' )),
320 244
321 245
322 246 'booking_canceled_customer_email_from' => $admin_email,
323 247 'booking_canceled_customer_email_title' => sprintf('%s', __( 'Meeting cancelled', 'timetics' )),
324 - 'booking_canceled_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', $customer_greeting, $canceled_msg),
248 + 'booking_canceled_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%customer_name%}', 'timetics' ), __( '{%meeting_title%} has been canceled.', 'timetics' )),
325 249
326 250 'booking_canceled_host_email_from' => $admin_email,
327 251 'booking_canceled_host_email_title' => sprintf('%s', __( 'Meeting cancelled', 'timetics' )),
328 - 'booking_canceled_host_email_body' => sprintf('<p>%s</p><p>%s</p>', $host_greeting, $canceled_msg),
252 + 'booking_canceled_host_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been canceled.', 'timetics' )),
329 253
330 254 'booking_rescheduled_customer_email_from' => $admin_email,
331 255 'booking_rescheduled_customer_email_title' => sprintf('%s', __( 'Meeting rescheduled!', 'timetics' )),
332 - 'booking_rescheduled_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', $host_greeting, $rescheduled_msg),
256 + 'booking_rescheduled_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been rescheduled', 'timetics' )),
333 257
334 258 'booking_rescheduled_host_email_from' => $admin_email,
335 259 'booking_rescheduled_host_email_title' => sprintf('%s', __('Meeting rescheduled!', 'timetics' )),
336 - 'booking_rescheduled_host_email_body' => sprintf('<p>%s</p><p>%s</p>', $host_greeting, $rescheduled_msg),
260 + 'booking_rescheduled_host_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been rescheduled', 'timetics' )),
337 261
338 262 'booking_reminder_customer_email_from' => $admin_email,
339 263 'booking_reminder_customer_email_title' => sprintf('%s', __( 'Meeting time reminder', 'timetics' )),
340 - 'booking_reminder_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', $customer_greeting, $reminder_msg),
264 + 'booking_reminder_customer_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%customer_name%}', 'timetics' ), __( '{%meeting_title%} at {%meeting_date%} {%meeting_time%}', 'timetics' )),
341 265
342 266 'booking_reminder_host_email_from' => $admin_email,
343 267 'booking_reminder_host_email_title' => sprintf('%s', __( 'Meeting time reminder', 'timetics' )),
344 - 'booking_reminder_host_email_body' => sprintf('<p>%s</p><p>%s</p>', $host_greeting, $reminder_msg),
268 + 'booking_reminder_host_email_body' => sprintf('<p>%s</p><p>%s</p>', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} at {%meeting_date%} {%meeting_time%}', 'timetics' )),
345 269 ];
346 270
347 271 $settings = wp_parse_args( $settings, $defaults );
348 272