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 / analytics / class-analytics.php

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

129 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Analytics Admin Page
4 *
5 * Handles Analytics dashboard admin page.
6 *
7 * @package CTC
8 * @since 5.3.0
9 */
10
11 namespace CTC;
12
13 use CTC\Helper;
14
15 /**
16 * Analytics Class
17 *
18 * @since 5.3.0
19 */
20 class Analytics {
21
22 /**
23 * Instance
24 *
25 * @var Analytics|null
26 */
27 private static $instance = null;
28
29 /**
30 * Get instance.
31 *
32 * @return Analytics
33 */
34 public static function get() {
35 if ( null === self::$instance ) {
36 self::$instance = new self();
37 }
38 return self::$instance;
39 }
40
41 /**
42 * Constructor.
43 */
44 private function __construct() {
45 // Page rendering is handled by Base::register_menus().
46 }
47
48 /**
49 * Render Analytics page.
50 *
51 * @since 5.3.0
52 * @return void
53 */
54 public function render() {
55 add_filter( 'admin_footer_text', '__return_empty_string' );
56 add_filter( 'update_footer', '__return_empty_string', 11 );
57
58 $this->enqueue_assets();
59 $this->localize_data();
60 ?>
61 <div class="wrap ctc-admin-root ctc-analytics-page" id="ctc-analytics-root"></div>
62 <?php
63 }
64
65 /**
66 * Enqueue assets (scripts and styles).
67 *
68 * @since 5.3.0
69 * @return void
70 */
71 private function enqueue_assets() {
72 wp_enqueue_style(
73 'ctc-analytics',
74 CTC_URI . 'assets/admin/css/analytics.css',
75 [],
76 CTC_VER
77 );
78
79 wp_enqueue_script(
80 'ctc-analytics',
81 CTC_URI . 'assets/admin/js/analytics.js',
82 [
83 'wp-element',
84 'wp-data',
85 'wp-components',
86 'wp-i18n',
87 'wp-api-fetch',
88 'lodash',
89 'jquery',
90 ],
91 CTC_VER,
92 true
93 );
94 }
95
96 /**
97 * Localize script data.
98 *
99 * @since 5.3.0
100 * @return void
101 */
102 private function localize_data() {
103 $localize_data = [
104 'apiUrl' => rest_url( 'ctc/v1/analytics/' ),
105 'nonce' => wp_create_nonce( 'ctc_analytics' ),
106 'isPro' => Helper::is_pro(),
107 'version' => CTC_VER,
108 'urls' => [
109 'dashboard' => admin_url( 'options-general.php?page=ctc' ),
110 'editRuleBase' => admin_url( 'options-general.php?page=ctc-global-injector&rule=' ),
111 ],
112 ];
113
114 /**
115 * Filter analytics localize data.
116 *
117 * @since 5.3.0
118 * @param array $localize_data Localized data array.
119 */
120 $localize_data = apply_filters( 'ctc/analytics/localize_data', $localize_data );
121
122 wp_localize_script(
123 'ctc-analytics',
124 'ctcAnalytics',
125 $localize_data
126 );
127 }
128 }
129