PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more / 4.4.8
EmbedPress – PDF Embedder, Embed PDF viewer, YouTube Videos, 3D FlipBook, Social feeds & more v4.4.8
4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / EmbedPress / Analytics / Analytics.php
embedpress / EmbedPress / Analytics Last commit date
Analytics.php 9 months ago
Analytics.php
102 lines
1 <?php
2
3 namespace EmbedPress\Analytics;
4
5 /**
6 * EmbedPress Analytics Page Handler
7 *
8 * Manages the standalone analytics page with React component mounting
9 */
10 class Analytics
11 {
12 /**
13 * Initialize hooks
14 */
15 public function __construct()
16 {
17 add_action('admin_menu', [$this, 'register_submenu']);
18 add_action('admin_enqueue_scripts', [$this, 'enqueue_analytics_scripts']);
19 }
20
21 /**
22 * Register the submenu page under EmbedPress menu
23 */
24 public function register_submenu()
25 {
26 add_submenu_page(
27 'embedpress', // Parent slug
28 __('Analytics', 'embedpress'), // Page title
29 __('Analytics', 'embedpress'), // Menu title
30 'manage_options', // Capability
31 'embedpress-analytics', // Menu slug
32 [$this, 'render_analytics_page'] // Callback to render page
33 );
34 }
35
36 /**
37 * Enqueue analytics scripts and styles
38 */
39 public function enqueue_analytics_scripts($hook)
40 {
41 // Only load on the analytics page
42 if ($hook !== 'embedpress_page_embedpress-analytics') {
43 return;
44 }
45
46 // Enqueue the analytics script (this should be built by Vite)
47 wp_enqueue_script(
48 'embedpress-analytics',
49 EMBEDPRESS_URL_ASSETS . 'js/analytics.build.js',
50 ['wp-element'],
51 EMBEDPRESS_PLUGIN_VERSION,
52 true
53 );
54
55 // Add module attribute for ES modules
56 add_filter('script_loader_tag', function($tag, $handle) {
57 if ($handle === 'embedpress-analytics') {
58 return str_replace('<script ', '<script type="module" ', $tag);
59 }
60 return $tag;
61 }, 10, 2);
62
63 // Enqueue analytics styles
64 wp_enqueue_style(
65 'embedpress-analytics',
66 EMBEDPRESS_URL_ASSETS . 'css/analytics.build.css',
67 [],
68 EMBEDPRESS_PLUGIN_VERSION
69 );
70
71 // Localize script with API settings
72 $tracking_enabled = get_option('embedpress_analytics_tracking_enabled', true);
73 wp_localize_script('embedpress-analytics', 'embedpressAnalyticsData', [
74 'restUrl' => rest_url('embedpress/v1/analytics/'),
75 'nonce' => wp_create_nonce('wp_rest'),
76 'ajaxUrl' => admin_url('admin-ajax.php'),
77 'cacheNonce' => wp_create_nonce('embedpress_clear_cache'),
78 'isProActive' => defined('EMBEDPRESS_SL_ITEM_SLUG'),
79 'currentUser' => wp_get_current_user()->ID,
80 'siteUrl' => site_url(),
81 'trackingEnabled' => (bool) $tracking_enabled,
82 ]);
83
84 // Also make WordPress REST API settings available
85 wp_localize_script('embedpress-analytics', 'wpApiSettings', [
86 'root' => rest_url(),
87 'nonce' => wp_create_nonce('wp_rest'),
88 ]);
89 }
90
91 /**
92 * Render the Analytics page with a React root div
93 */
94 public function render_analytics_page()
95 {
96 ?>
97 <div id="embedpress-analytics-root"></div>
98
99 <?php
100 }
101 }
102