PluginProbe
TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables / 2.2.5
TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables v2.2.5
2.3.0 2.2.14 2.2.13 2.2.12 2.2.11 2.2.10 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 trunk 1.0.0 1.0.1 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2
table-builder-block / includes / Admin / Admin.php

Admin.php in TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables 2.2.5, at includes/Admin/Admin.php

101 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace TableBuilder\Admin;
4 use TableBuilder\Traits\PluginHelper;
5
6 defined('ABSPATH') || exit;
7
8 //The admin class for TableBuilder
9 class Admin
10 {
11 use \TableBuilder\Traits\Singleton;
12 use PluginHelper;
13
14 // slug of the admin menu
15 private $menu_slug = 'tablebuilder';
16
17 // $menu_link_part Part of the menu link used in the admin panel.
18 private $menu_link_part;
19
20 //Initialize the class
21 public function __construct()
22 {
23 $this->menu_link_part = admin_url('admin.php?page=tablebuilder');
24
25 // Register Settings API
26 new Api\SettingsData();
27 new Api\OnboardData();
28 new Api\ChangelogData();
29 add_action('admin_menu', [$this, 'add_admin_menu'], 9);
30 }
31
32 public function add_admin_menu()
33 {
34 add_menu_page(
35 esc_html__('TableKit', 'table-builder-block'),
36 esc_html__('TableKit', 'table-builder-block'),
37 'manage_options',
38 $this->menu_slug,
39 [$this, 'settings_menu_callback'],
40 TABLE_BUILDER_BLOCK_PLUGIN_URL . 'assets/icons/admin-menu.svg',
41 26
42 );
43
44 add_submenu_page(
45 $this->menu_slug,
46 esc_html__('TableKit', 'table-builder-block'),
47 esc_html__('TableKit', 'table-builder-block'),
48 'manage_options',
49 admin_url('admin.php?page=tablebuilder&onboard=1'),
50 '',
51 1
52 );
53
54 add_submenu_page(
55 $this->menu_slug,
56 esc_html__('Welcome', 'table-builder-block'),
57 esc_html__('Welcome', 'table-builder-block'),
58 'manage_options',
59 $this->menu_link_part . '#welcome',
60 '',
61 2
62 );
63
64 add_submenu_page(
65 $this->menu_slug,
66 esc_html__('Features', 'table-builder-block'),
67 esc_html__('Features', 'table-builder-block'),
68 'manage_options',
69 $this->menu_link_part . '#features',
70 '',
71 3
72 );
73
74 remove_submenu_page($this->menu_slug, $this->menu_slug);
75 }
76
77 private function should_show_onboard(): bool
78 {
79 if ( get_option( 'tablebuilder_onboard_completed', false ) ) {
80 return false;
81 }
82
83 if ( isset( $_GET['onboard'] ) && '1' === sanitize_text_field( wp_unslash( $_GET['onboard'] ) ) ) {
84 return true;
85 }
86
87 return (bool) get_transient( 'tablebuilder_show_onboard' );
88 }
89
90 // Callback for settings submenu
91 public function settings_menu_callback()
92 {
93 $admin_mode = $this->should_show_onboard() ? 'onboard' : 'dashboard';
94 ?>
95 <div class="wrap">
96 <div class="tablebuilder-dashboard" data-admin="<?php echo esc_attr( $admin_mode ); ?>"></div>
97 </div>
98 <?php
99 }
100 }
101