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 | bootstrap.php +43 -10 1.0.201.0.38 View file →
@@ -22,8 +22,9 @@
22 22
23 23
24 24 private $file;
25 25 public $version;
26 + private $has_pro;
26 27
27 28 /**
28 29 * Throw Error While Trying To Clone Object
29 30 *
@@ -209,8 +210,12 @@
209 210 /**
210 211 * Core helpers.
211 212 */
212 213 require_once TIMETICS_PLUGIN_DIR . 'utils/global-helper.php';
214 + require_once TIMETICS_PLUGIN_DIR . 'core/staffs/calendars/CalendarSyncFacade.php';
215 + require_once TIMETICS_PLUGIN_DIR . 'core/staffs/calendars/CalendarSyncFactory.php';
216 + require_once TIMETICS_PLUGIN_DIR . 'core/staffs/calendars/CalendarSyncInterface.php';
217 + require_once TIMETICS_PLUGIN_DIR . 'core/staffs/calendars/GoogleCalendarSync.php';
213 218 }
214 219
215 220 /**
216 221 * Initialize All Components
@@ -235,8 +240,9 @@
235 240 Core\Services\Hooks::instance()->init();
236 241 Base\Custom_Endpoint::instance()->init();
237 242
238 243 global $current_screen;
244 + $this->has_pro = class_exists('TimeticsPro');
239 245
240 246 $this->handle_buy_pro_module();
241 247
242 248 if ( function_exists('WC') ) {
@@ -258,9 +264,25 @@
258 264 *
259 265 * @return void
260 266 */
261 267 public function admin_scripts( $handle ) {
262 - if ( 'toplevel_page_timetics' !== $handle ) {
268 +
269 + if('plugins.php' === $handle){
270 +
271 + wp_register_script( 'timetics-feedback-modal', TIMETICS_ASSETS_URL . 'js/feedback-modal.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
272 + wp_enqueue_script( 'timetics-feedback-modal', TIMETICS_ASSETS_URL . 'js/feedback-modal.js', [], TIMETICS_VERSION, true );
273 + wp_register_style( 'timetics-feedback-modal', TIMETICS_ASSETS_URL . 'css/feedback-modal.css', [], TIMETICS_VERSION, 'all' );
274 + wp_enqueue_style( 'timetics-feedback-modal', TIMETICS_ASSETS_URL . 'css/feedback-modal.css', [], TIMETICS_VERSION, 'all' );
275 +
276 + $feedback_obj = array(
277 + 'site_url' => site_url()
278 + );
279 +
280 + wp_localize_script( 'timetics-feedback-modal', 'timetics_feedback', $feedback_obj );
281 +
282 + }
283 +
284 + if ( 'toplevel_page_timetics' !== $handle) {
263 285 return;
264 286 }
265 287 global $wp_locale;
266 288
@@ -267,14 +289,14 @@
267 289 wp_enqueue_media();
268 290 wp_enqueue_style( 'wp-color-picker' );
269 291 wp_enqueue_style( 'timetics-admin-style', TIMETICS_ASSETS_URL . 'css/admin.css', [], TIMETICS_VERSION, 'all' );
270 292 wp_enqueue_style( 'timetics-vendor', TIMETICS_ASSETS_URL . 'css/vendor.css', [], TIMETICS_VERSION, 'all' );
271 - wp_enqueue_script( 'timetics-antd-scripts', TIMETICS_ASSETS_URL . 'js/vendors/antd.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
272 293 wp_enqueue_script( 'timetics-flatpickr-scripts', TIMETICS_ASSETS_URL . 'js/vendors/flatpickr.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
294 + wp_enqueue_script( 'timetics-packages', TIMETICS_ASSETS_URL . 'js/packages.js', [ 'timetics-flatpickr-scripts' ], TIMETICS_VERSION, true );
273 295
274 296 $calendar_locale = timetics_get_option('calendar_locale');
275 297 if (!empty($calendar_locale)) {
276 - wp_enqueue_script( 'calendar-locale', "https://npmcdn.com/flatpickr/dist/l10n/{$calendar_locale}.js", [ 'jquery', 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
298 + wp_enqueue_script( 'calendar-locale', TIMETICS_ASSETS_URL . "js/local/{$calendar_locale}.js", [ 'jquery', 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
277 299 }
278 300
279 301 wp_enqueue_script( 'timetics-dashboard-scripts', TIMETICS_ASSETS_URL . 'js/dashboard.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data', 'wp-color-picker' ], TIMETICS_VERSION, true );
280 302
@@ -309,13 +331,15 @@
309 331 *
310 332 * @return void
311 333 */
312 334 public function frontend_scripts() {
335 +
313 336 wp_register_style( 'timetics-vendor', TIMETICS_ASSETS_URL . 'css/vendor.css', [], TIMETICS_VERSION, 'all' );
314 337 wp_register_style( 'timetics-frontend', TIMETICS_ASSETS_URL . 'css/frontend.css', [], TIMETICS_VERSION, 'all' );
315 338
316 - wp_register_script( 'timetics-antd-scripts', TIMETICS_ASSETS_URL . 'js/vendors/antd.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
317 339 wp_register_script( 'timetics-flatpickr-scripts', TIMETICS_ASSETS_URL . 'js/vendors/flatpickr.js', [ 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
340 + wp_enqueue_script( 'timetics-packages', TIMETICS_ASSETS_URL . 'js/packages.js', [ 'timetics-flatpickr-scripts' ], TIMETICS_VERSION, true );
341 +
318 342 wp_register_script( 'timetics-frontend-scripts', TIMETICS_ASSETS_URL . 'js/frontend.js', [ 'jquery', 'wp-plugins', 'wp-i18n', 'wp-element', 'wp-dom', 'wp-data' ], TIMETICS_VERSION, true );
319 343
320 344 $calendar_locale = timetics_get_option('calendar_locale');
321 345 if (!empty($calendar_locale)) {
@@ -341,8 +365,9 @@
341 365 'stripe_configure' => $stripe_configure,
342 366 'current_user_id' => get_current_user_id(),
343 367 'start_of_week' => get_option( 'start_of_week', 0 ),
344 368 'currency_list' => timetics_get_currencies(),
369 + 'locale_name' => strtolower( str_replace( '_', '-', get_locale() ) )
345 370
346 371 );
347 372
348 373 $localize_obj = apply_filters( 'timetics_frontned_localize_data', $localize_obj );
@@ -395,25 +420,33 @@
395 420 */
396 421 public function handle_buy_pro_module() {
397 422 $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
398 423
424 +
399 425 if ( 'timetics' !== $page ) {
400 426 return;
401 427 }
402 428
429 +
403 430 /**
404 431 * Show banner (codename: jhanda)
405 432 */
406 433 $filter_string = 'timetics,timetics-free-only';
407 434
435 + if( $this->has_pro ) {
436 +
437 + $filter_string .= ',timetics-pro';
438 + $filter_string = str_replace(',timetics-free-only', '', $filter_string);
439 +
440 + }
441 +
442 +
408 443 \Wpmet\Libs\Banner::instance('timetics')
409 - // ->is_test(true)
444 + ->is_test(true)
410 445 ->set_filter(ltrim($filter_string, ','))
411 - ->set_api_url('https://demo.themewinter.com/public/jhanda')
412 - ->set_plugin_screens('edit-timetics')
413 - ->set_plugin_screens('timetics_page_timetics_sales_report')
414 - ->set_plugin_screens('edit-timetics-attendee')
415 - ->set_plugin_screens('timetics_page_timetics_get_help')
446 + ->set_api_url('https://product.themewinter.com/auth/public/jhanda')
447 + ->set_plugin_screens('timetics')
448 + ->set_plugin_screens('toplevel_page_timetics')
416 449 ->call();
417 450 // show get-help and upgrade-to-premium menu.
418 451 // $this->handle_get_help_and_upgrade_menu();
419 452 }