PluginProbe
Copy Anything to Clipboard for WordPress – Copy Button, Copy Text & Copy Code / 5.5.3
Copy Anything to Clipboard for WordPress – Copy Button, Copy Text & Copy Code v5.5.3
5.5.3 3.1.0 3.2.0 3.2.1 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.6.0 3.7.0 3.8.0 3.8.1 3.8.2 3.8.3 4.0.0 4.0.2 4.0.3 4.0.4 4.0.5 4.1.0 4.1.1 All 78 releases
copy-the-code / includes / class-dashboard.php

class-dashboard.php in Copy Anything to Clipboard for WordPress – Copy Button, Copy Text & Copy Code 5.5.3, at includes/class-dashboard.php

126 lines 2.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Dashboard
4 *
5 * @package CTC
6 * @since 5.1.0
7 */
8
9 namespace CTC;
10
11 use CTC\Global_Injector;
12 use CTC\Helper;
13 use CTC\Telemetry;
14
15 /**
16 * Dashboard class.
17 *
18 * Renders the Copy to Clipboard admin dashboard (page=ctc).
19 *
20 * @since 5.1.0
21 */
22 class Dashboard {
23
24 /**
25 * Instance
26 *
27 * @since 5.1.0
28 *
29 * @access private
30 * @var object Class object.
31 */
32 private static $instance;
33
34 /**
35 * Initiator
36 *
37 * @since 5.1.0
38 *
39 * @return object
40 */
41 public static function get() {
42 if ( null === self::$instance ) {
43 self::$instance = new self();
44 }
45 return self::$instance;
46 }
47
48 /**
49 * Bootstrap the Dashboard UI.
50 *
51 * @since 5.1.0
52 * @return void
53 */
54 public function bootstrap() {
55 if ( ! current_user_can( 'manage_options' ) ) {
56 return;
57 }
58
59 $this->enqueue_assets();
60 }
61
62 /**
63 * Enqueue assets and localize data.
64 *
65 * @since 5.1.0
66 * @return void
67 */
68 public function enqueue_assets() {
69 wp_enqueue_style(
70 'ctc-dashboard',
71 CTC_URI . 'assets/admin/css/dashboard.css',
72 [],
73 CTC_VER
74 );
75
76 wp_enqueue_script(
77 'ctc-dashboard',
78 CTC_URI . 'assets/admin/js/dashboard.js',
79 [
80 'wp-api-fetch',
81 'wp-element',
82 'wp-i18n',
83 'jquery',
84 ],
85 CTC_VER,
86 true
87 );
88
89 $rules = Global_Injector::get()->get_admin_rules();
90 $active_count = array_reduce(
91 $rules,
92 function ( $n, $r ) {
93 return $n + ( ! empty( $r['is_active'] ) ? 1 : 0 );
94 },
95 0
96 );
97 $paused_count = count( $rules ) - $active_count;
98 $recent_rules = array_slice( array_values( $rules ), 0, 5 );
99
100 wp_localize_script(
101 'ctc-dashboard',
102 'CTCDashboard',
103 [
104 'isPro' => Helper::is_pro(),
105 'rulesCount' => count( $rules ),
106 'activeCount' => $active_count,
107 'pausedCount' => $paused_count,
108 'version' => CTC_VER,
109 'recentRules' => $recent_rules,
110 'telemetryOptIn' => Telemetry::get_opt_in(),
111 'telemetryNonce' => wp_create_nonce( 'ctc_telemetry_opt_in' ),
112 'urls' => [
113 'rules' => admin_url( 'options-general.php?page=ctc-rules' ),
114 'addNew' => admin_url( 'options-general.php?page=ctc-global-injector' ),
115 'docs' => 'https://docs.clipboard.agency/',
116 'changelog' => 'https://docs.clipboard.agency/changelog',
117 'gettingStarted' => 'https://docs.clipboard.agency/getting-started',
118 'globalInjector' => 'https://docs.clipboard.agency/guides/global-injector',
119 'visualStyles' => 'https://docs.clipboard.agency/guides/visual-styles',
120 'editRule' => admin_url( 'options-general.php?page=ctc-global-injector&rule=' ),
121 ],
122 ]
123 );
124 }
125 }
126