script_version; } /** * Get current directory path * * @return string */ public function get_script_location() { return __FILE__; } public static function instance($text_domain) { self::$instance = new self(); return self::$instance->set_text_domain($text_domain); } protected function set_text_domain($val) { $this->text_domain = $val; return $this; } private function default_grid() { return [ 'url' => $this->default_grid_link, 'title' => $this->default_grid_title, 'thumbnail' => $this->default_grid_thumbnail, 'description' => $this->default_grid_desc, ]; } public function set_parent_menu_text($text) { $this->parent_menu_text = $text; return $this; } public function set_default_grid_link($url) { $this->default_grid_link = $url; return $this; } public function set_default_grid_title($title) { $this->default_grid_title = $title; return $this; } public function set_default_grid_desc($title) { $this->default_grid_desc = $title; return $this; } public function set_default_grid_thumbnail($thumbnail) { $this->default_grid_thumbnail = $thumbnail; return $this; } public function set_parent_menu_slug($slug) { $this->parent_menu_slug = $slug; return $this; } public function set_menu_slug($slug) { $this->menu_slug = $slug; return $this; } public function set_plugin_file($plugin_file) { $this->plugin_file = $plugin_file; return $this; } public function set_pro_link($url, $conf = []) { if($url == '') { return $this; } $this->pro_link_conf[] = [ 'url' => $url, 'anchor' => empty($conf['anchor']) ? 'Go Pro' : $conf['anchor'], 'permission' => empty($conf['permission']) ? 'manage_options' : $conf['permission'], ]; return $this; } /** * Set page grid */ public function set_page_grid($conf = []) { if(!empty($conf['url'])) { $this->grids[] = [ 'url' => $conf['url'], 'title' => empty($conf['title']) ? esc_html__('Default Title', 'timetics') : $conf['title'], 'thumbnail' => empty($conf['thumbnail']) ? '' : esc_url($conf['thumbnail']), 'description' => empty($conf['description']) ? '' : $conf['description'], ]; } return $this; } /** * @deprecated This method will be removed */ public function set_grid($conf = []) { $this->set_page_grid($conf); return $this; } protected function prepare_pro_links() { if(!empty($this->pro_link_conf)) { foreach($this->pro_link_conf as $conf) { add_submenu_page($this->parent_menu_slug, $conf['anchor'], $conf['anchor'], $conf['permission'], $conf['url'], ''); } } } protected function prepare_grid_links() { if(!empty($this->grids)) { add_submenu_page($this->parent_menu_slug, $this->parent_menu_text, $this->parent_menu_text, 'manage_options', $this->text_domain . $this->menu_slug, [$this, 'generate_grids']); } } public function generate_grids() { // Include plugin page header include_once( TIMETICS_PLUGIN_DIR . "templates/layout/header.php" ); /** * Adding default grid at first position */ array_unshift($this->grids, $this->default_grid()); ?>
Settings=>User data.', 'timetics'); ?>
Zoom to create a meeting.', 'timetics'); ?>
Loco Translate plugin. For multi-language translation, you can use the WPML translator plugin. Simply install the plugin and activate it. After that, please complete the basic settings and you are good to go.', 'timetics'); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
video tutorial and documentation. Also, for the WPML multi-language translation, here is the video and documentation link.', 'timetics'); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
Themewinter website then follow our documentation here for activating the PRO license.', 'timetics'); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
settings -> permalink -> Post name -> Save Changes.', 'timetics'); ?>
Eventin PRO will be required for a few specific widgets.', 'timetics'); ?>