PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / trunk
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization vtrunk
4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 All 135 releases
← All changes | inc/dashboard_widget.php +21 -3 4.2.8 → trunk View file →
@@ -30,9 +30,9 @@
30 30 /**
31 31 * Add the dashboard widget.
32 32 */
33 33 public function add_dashboard_widget() {
34 - if ( ! $this->has_at_least_ten_visits() ) {
34 + if ( ! current_user_can( 'manage_options' ) || ! $this->has_at_least_ten_visits() ) {
35 35 return;
36 36 }
37 37
38 38 wp_add_dashboard_widget( $this->handle, sprintf( 'Optimole - %s', __( 'Image Optimization Stats', 'optimole-wp' ) ), [ $this, 'render_widget' ] );
@@ -41,9 +41,9 @@
41 41 /**
42 42 * Enqueue the widget assets.
43 43 */
44 44 public function enqueue_widget() {
45 - if ( ! $this->is_main_dashboard_page() || ! $this->has_at_least_ten_visits() ) {
45 + if ( ! current_user_can( 'manage_options' ) || ! $this->is_main_dashboard_page() || ! $this->has_at_least_ten_visits() ) {
46 46 return;
47 47 }
48 48
49 49 $asset_file = include OPTML_PATH . 'assets/build/widget/index.asset.php';
@@ -111,9 +111,9 @@
111 111 'upgrade' => __( 'Upgrade', 'optimole-wp' ),
112 112 ],
113 113 'skeletonLoader' => $this->get_skeleton_loader(),
114 114 'billingURL' => tsdk_translate_link( 'https://dashboard.optimole.com/settings/billing', 'query' ),
115 - 'serviceData' => $this->get_service_data(),
115 + 'serviceData' => $this->get_widget_service_data(),
116 116 'assetsURL' => OPTML_URL . 'assets/',
117 117 'dashboardMetricsURL' => esc_url( 'https://dashboard.optimole.com/metrics' ),
118 118 'dashboardURL' => esc_url( tsdk_translate_link( 'https://dashboard.optimole.com' ) ),
119 119 ];
@@ -127,8 +127,26 @@
127 127 private function get_service_data() {
128 128 $settings = new Optml_Settings();
129 129
130 130 return $settings->get( 'service_data' );
131 + }
132 +
133 + /**
134 + * Get the service data fields the widget displays, keeping keys and secrets out of the page.
135 + *
136 + * @return array<string, mixed>
137 + */
138 + private function get_widget_service_data() {
139 + $service_data = $this->get_service_data();
140 +
141 + if ( ! is_array( $service_data ) ) {
142 + return [];
143 + }
144 +
145 + return array_intersect_key(
146 + $service_data,
147 + array_flip( [ 'visitors', 'visitors_pretty', 'visitors_limit', 'visitors_limit_pretty', 'compression_percentage', 'traffic' ] )
148 + );
131 149 }
132 150
133 151 /**
134 152 * Get the skeleton loader markup.