'; $notice .= sprintf('

%s

', __( 'Timetics requires WooCommerce to enable woocommerce integration. You can download WooCommerce here.', 'timetics' ) ); $notice .= ''; echo wp_kses_post( $notice ); $admin_ajax_url = admin_url('admin-ajax.php'); ?> sprintf( '%s', esc_url( admin_url('admin.php?page=timetics#/settings') ), __( 'Settings', 'timetics' ) ), ); // Merge the custom tab with existing actions $actions = array_merge( $settings_tab, $actions ); } return $actions; } /** * Redirect onboarding page after activating * * @return void */ public function redirect_onboard() { $onboarding_setup = get_option( 'timetics_onboard_settings' ); if ( ! $onboarding_setup ) { return; } update_option( 'timetics_onboard_setup', true ); update_option( 'timetics_onboard_settings', false ); exit( wp_redirect( admin_url('admin.php?page=timetics#/onboard') ) ); } /** * Update site admin roles whne new site created * * @param WP_Site $site_object * * @return void */ public function update_user_role_on_insert_new_site( $site_object ) { global $wpdb; $roles = wp_roles()->roles; $blog_id = $site_object->blog_id; $roles_option_key = $wpdb->get_blog_prefix( $blog_id ) . 'user_roles'; update_blog_option( $blog_id, $roles_option_key, $roles ); } /** * Update user role timetics staff and customer if user is admin * * @param integer $user_id * @param string $role * * @return void */ public function set_roles( $user_id, $role ) { if ( 'administrator' !== $role ) { return; } $user = get_userdata( $user_id ); $user->add_role('timetics-staff'); $user->add_role('timetics-customer'); } /** * Update busyness menu item * * @param array $menu_items * * @return array */ public function update_busyness_menu($menu_items) { $busyness_category = timetics_get_busyness_category(); if ( ! $busyness_category ) { return $menu_items; } $busyness = timetics_get_busyness( $busyness_category ); $new_menu_items = []; foreach ( $menu_items as $menu ) { if ( empty( $menu['id'] ) ) { continue; } if ( ! empty( $busyness[$menu['id']] ) ) { $menu['title'] = $busyness[$menu['id']]; } $new_menu_items[] = $menu; } return $new_menu_items; } /** * Set google auth url * * @param array $settings * * @return array */ public function set_google_auth_url( $settings ) { $settings['google_auth_redirect_uri'] = timetics_get_auth_redirect_uri( 'google-auth' ); return $settings; } /** * Set default settings * * @param array $settings [$settings description] * * @return array */ public function set_email_default_content( $settings ) { $admin_email = get_option( 'admin_email' ); $defaults = [ 'booking_created_customer_email_from' => $admin_email, 'booking_created_customer_email_title' => sprintf('%s', __( 'New meeting scheduled!', 'timetics' )), 'booking_created_customer_email_body' => sprintf('

%s

%s

', __( 'Hi {%customer_name%}', 'timetics' ), __( 'A new meeting has been scheduled.', 'timetics' )), 'booking_created_host_email_from' => $admin_email, 'booking_created_host_email_title' => sprintf('%s', __( 'New meeting scheduled!', 'timetics' )), 'booking_created_host_email_body' => sprintf('

%s

%s

', __( 'Hi {%host_name%}', 'timetics' ), __( 'A new meeting has been scheduled.', 'timetics' )), 'booking_canceled_customer_email_from' => $admin_email, 'booking_canceled_customer_email_title' => sprintf('%s', __( 'Meeting cancelled', 'timetics' )), 'booking_canceled_customer_email_body' => sprintf('

%s

%s

', __( 'Hi {%customer_name%}', 'timetics' ), __( '{%meeting_title%} has been canceled.', 'timetics' )), 'booking_canceled_host_email_from' => $admin_email, 'booking_canceled_host_email_title' => sprintf('%s', __( 'Meeting cancelled', 'timetics' )), 'booking_canceled_host_email_body' => sprintf('

%s

%s

', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been canceled.', 'timetics' )), 'booking_rescheduled_customer_email_from' => $admin_email, 'booking_rescheduled_customer_email_title' => sprintf('%s', __( 'Meeting rescheduled!', 'timetics' )), 'booking_rescheduled_customer_email_body' => sprintf('

%s

%s

', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been rescheduled', 'timetics' )), 'booking_rescheduled_host_email_from' => $admin_email, 'booking_rescheduled_host_email_title' => sprintf('%s', __('Meeting rescheduled!', 'timetics' )), 'booking_rescheduled_host_email_body' => sprintf('

%s

%s

', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} has been rescheduled', 'timetics' )), 'booking_reminder_customer_email_from' => $admin_email, 'booking_reminder_customer_email_title' => sprintf('%s', __( 'Meeting time reminder', 'timetics' )), 'booking_reminder_customer_email_body' => sprintf('

%s

%s

', __( 'Hi {%customer_name%}', 'timetics' ), __( '{%meeting_title%} at {%meeting_date%} {%meeting_time%}', 'timetics' )), 'booking_reminder_host_email_from' => $admin_email, 'booking_reminder_host_email_title' => sprintf('%s', __( 'Meeting time reminder', 'timetics' )), 'booking_reminder_host_email_body' => sprintf('

%s

%s

', __( 'Hi {%host_name%}', 'timetics' ), __( '{%meeting_title%} at {%meeting_date%} {%meeting_time%}', 'timetics' )), ]; $settings = wp_parse_args( $settings, $defaults ); return $settings; } }