Google Analytics Dashboard for WP (GADWP) - Version 8.11.0

Version Description

Download this release

Release Info

Developer manejaam
Plugin Icon 128x128 Google Analytics Dashboard for WP (GADWP)
Version 8.11.0
Comparing to
See all releases

Code changes from version 7.10.1 to 8.11.0

assets/images/plugin-seedprod.png CHANGED
Binary file
gadwp.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: https://exactmetrics.com
5
  * Description: Displays Google Analytics Reports and Real-Time Statistics in your Dashboard. Automatically inserts the tracking code in every page of your website.
6
  * Author: ExactMetrics
7
- * Version: 7.10.1
8
  * Requires at least: 4.8.0
9
  * Requires PHP: 5.6
10
  * Author URI: https://exactmetrics.com/lite/?utm_source=liteplugin&utm_medium=pluginheader&utm_campaign=authoruri&utm_content=7%2E0%2E0
@@ -44,7 +44,7 @@ final class ExactMetrics_Lite {
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
- public $version = '7.10.1';
48
 
49
  /**
50
  * Plugin file.
4
  * Plugin URI: https://exactmetrics.com
5
  * Description: Displays Google Analytics Reports and Real-Time Statistics in your Dashboard. Automatically inserts the tracking code in every page of your website.
6
  * Author: ExactMetrics
7
+ * Version: 7.11.0
8
  * Requires at least: 4.8.0
9
  * Requires PHP: 5.6
10
  * Author URI: https://exactmetrics.com/lite/?utm_source=liteplugin&utm_medium=pluginheader&utm_campaign=authoruri&utm_content=7%2E0%2E0
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
+ public $version = '7.11.0';
48
 
49
  /**
50
  * Plugin file.
includes/admin/common.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  /**
3
  * Common admin class.
4
  *
@@ -10,36 +11,37 @@
10
  */
11
 
12
  // Exit if accessed directly
13
- if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- function exactmetrics_is_settings_page() {
18
- $current_screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
 
19
  global $admin_page_hooks;
20
 
21
- if ( ! is_object( $current_screen ) || empty( $current_screen->id ) || empty( $admin_page_hooks ) ) {
22
  return false;
23
  }
24
 
25
  $settings_page = false;
26
- if ( ! empty( $admin_page_hooks['exactmetrics_settings'] ) && $current_screen->id === $admin_page_hooks['exactmetrics_settings'] ) {
27
  $settings_page = true;
28
  }
29
 
30
- if ( $current_screen->id === 'toplevel_page_exactmetrics_settings' ) {
31
  $settings_page = true;
32
  }
33
 
34
- if ( $current_screen->id === 'exactmetrics_page_exactmetrics_settings' ) {
35
  $settings_page = true;
36
  }
37
 
38
- if ( strpos( $current_screen->id, 'exactmetrics_settings' ) !== false ) {
39
  $settings_page = true;
40
  }
41
 
42
- if ( ! empty( $current_screen->base ) && strpos( $current_screen->base, 'exactmetrics_network' ) !== false ) {
43
  $settings_page = true;
44
  }
45
 
@@ -51,24 +53,25 @@ function exactmetrics_is_settings_page() {
51
  *
52
  * @return bool
53
  */
54
- function exactmetrics_is_reports_page() {
55
- $current_screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
 
56
  global $admin_page_hooks;
57
 
58
- if ( ! is_object( $current_screen ) || empty( $current_screen->id ) || empty( $admin_page_hooks ) ) {
59
  return false;
60
  }
61
 
62
  $reports_page = false;
63
- if ( ! empty( $admin_page_hooks['exactmetrics_reports'] ) && $current_screen->id === $admin_page_hooks['exactmetrics_reports'] ) {
64
  $reports_page = true;
65
  }
66
 
67
- if ( 'toplevel_page_exactmetrics_reports' === $current_screen->id ) {
68
  $reports_page = true;
69
  }
70
 
71
- if ( strpos( $current_screen->id, 'exactmetrics_reports' ) !== false ) {
72
  $reports_page = true;
73
  }
74
 
@@ -83,19 +86,20 @@ function exactmetrics_is_reports_page() {
83
  * @access public
84
  *
85
  */
86
- function exactmetrics_admin_styles() {
 
87
 
88
- $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
89
 
90
  // Load Common admin styles.
91
- wp_register_style( 'exactmetrics-admin-common-style', plugins_url( 'assets/css/admin-common' . $suffix . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
92
- wp_enqueue_style( 'exactmetrics-admin-common-style' );
93
 
94
  // Get current screen.
95
  $screen = get_current_screen();
96
 
97
  // Bail if we're not on a ExactMetrics screen.
98
- if ( empty( $screen->id ) || strpos( $screen->id, 'exactmetrics' ) === false ) {
99
  return;
100
  }
101
 
@@ -103,32 +107,32 @@ function exactmetrics_admin_styles() {
103
  $rtl = is_rtl() ? '.rtl' : '';
104
 
105
  // For the settings page, load the Vue app styles.
106
- if ( exactmetrics_is_settings_page() ) {
107
- if ( ! defined( 'EXACTMETRICS_LOCAL_JS_URL' ) ) {
108
- wp_enqueue_style( 'exactmetrics-vue-style-vendors', plugins_url( $version_path . '/assets/vue/css/chunk-vendors' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
109
- wp_enqueue_style( 'exactmetrics-vue-style-common', plugins_url( $version_path . '/assets/vue/css/chunk-common' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
110
- wp_enqueue_style( 'exactmetrics-vue-style', plugins_url( $version_path . '/assets/vue/css/settings' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
111
  }
112
 
113
  // Don't load other styles on the settings page.
114
  return;
115
  }
116
 
117
- if ( exactmetrics_is_reports_page() ) {
118
- if ( ! defined( 'EXACTMETRICS_LOCAL_REPORTS_JS_URL' ) ) {
119
- wp_enqueue_style( 'exactmetrics-vue-style-vendors', plugins_url( $version_path . '/assets/vue/css/chunk-vendors' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
120
- wp_enqueue_style( 'exactmetrics-vue-style-common', plugins_url( $version_path . '/assets/vue/css/chunk-common' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
121
- wp_enqueue_style( 'exactmetrics-vue-style', plugins_url( $version_path . '/assets/vue/css/reports' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version() );
122
  }
123
 
124
  return;
125
  }
126
 
127
  // Tooltips
128
- wp_enqueue_script( 'jquery-ui-tooltip' );
129
  }
130
 
131
- add_action( 'admin_enqueue_scripts', 'exactmetrics_admin_styles' );
132
 
133
  /**
134
  * Loads scripts for all ExactMetrics-based Administration Screens.
@@ -138,21 +142,22 @@ add_action( 'admin_enqueue_scripts', 'exactmetrics_admin_styles' );
138
  * @access public
139
  *
140
  */
141
- function exactmetrics_admin_scripts() {
 
142
 
143
  // Our Common Admin JS.
144
- $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
145
 
146
- wp_register_script( 'exactmetrics-admin-common-script', plugins_url( 'assets/js/admin-common' . $suffix . '.js', EXACTMETRICS_PLUGIN_FILE ), array( 'jquery' ), exactmetrics_get_asset_version(), true );
147
 
148
- wp_enqueue_script( 'exactmetrics-admin-common-script' );
149
 
150
  wp_localize_script(
151
  'exactmetrics-admin-common-script',
152
  'exactmetrics_admin_common',
153
  array(
154
- 'ajax' => admin_url( 'admin-ajax.php' ),
155
- 'dismiss_notice_nonce' => wp_create_nonce( 'exactmetrics-dismiss-notice' ),
156
  )
157
  );
158
 
@@ -160,109 +165,109 @@ function exactmetrics_admin_scripts() {
160
  $screen = get_current_screen();
161
 
162
  // Bail if we're not on a ExactMetrics screen.
163
- if ( empty( $screen->id ) || strpos( $screen->id, 'exactmetrics' ) === false ) {
164
  return;
165
  }
166
 
167
  $version_path = exactmetrics_is_pro_version() ? 'pro' : 'lite';
168
 
169
  // For the settings page, load the Vue app.
170
- if ( exactmetrics_is_settings_page() ) {
171
- if ( ! defined( 'EXACTMETRICS_LOCAL_VENDORS_JS_URL' ) ) {
172
- wp_enqueue_script( 'exactmetrics-vue-vendors', plugins_url( $version_path . '/assets/vue/js/chunk-vendors.js', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version(), true );
173
- wp_enqueue_script( 'exactmetrics-vue-common', plugins_url( $version_path . '/assets/vue/js/chunk-common.js', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version(), true );
174
  } else {
175
- wp_enqueue_script( 'exactmetrics-vue-vendors', EXACTMETRICS_LOCAL_VENDORS_JS_URL, array(), exactmetrics_get_asset_version(), true );
176
- wp_enqueue_script( 'exactmetrics-vue-common', EXACTMETRICS_LOCAL_COMMON_JS_URL, array(), exactmetrics_get_asset_version(), true );
177
  }
178
- $app_js_url = defined( 'EXACTMETRICS_LOCAL_JS_URL' ) && EXACTMETRICS_LOCAL_JS_URL ? EXACTMETRICS_LOCAL_JS_URL : plugins_url( $version_path . '/assets/vue/js/settings.js', EXACTMETRICS_PLUGIN_FILE );
179
- wp_register_script( 'exactmetrics-vue-script', $app_js_url, array(), exactmetrics_get_asset_version(), true );
180
- wp_enqueue_script( 'exactmetrics-vue-script' );
181
  $plugins = get_plugins();
182
  $install_amp_url = false;
183
- if ( exactmetrics_can_install_plugins() ) {
184
  $amp_key = 'amp/amp.php';
185
- if ( array_key_exists( $amp_key, $plugins ) ) {
186
- $install_amp_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $amp_key ), 'activate-plugin_' . $amp_key );
187
  } else {
188
- $install_amp_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=amp' ), 'install-plugin_amp' );
189
  }
190
  }
191
  $install_woocommerce_url = false;
192
- if ( exactmetrics_can_install_plugins() ) {
193
  $woo_key = 'woocommerce/woocommerce.php';
194
- if ( array_key_exists( $woo_key, $plugins ) ) {
195
- $install_woocommerce_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $woo_key ), 'activate-plugin_' . $woo_key );
196
  } else {
197
- $install_woocommerce_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=woocommerce' ), 'install-plugin_woocommerce' );
198
  }
199
  }
200
  $install_fbia_url = false;
201
- if ( exactmetrics_can_install_plugins() ) {
202
  $fbia_key = 'fb-instant-articles/facebook-instant-articles.php';
203
- if ( array_key_exists( $fbia_key, $plugins ) ) {
204
- $install_fbia_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=' . $fbia_key ), 'activate-plugin_' . $fbia_key );
205
  } else {
206
- $install_fbia_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=fb-instant-articles' ), 'install-plugin_fb-instant-articles' );
207
  }
208
  }
209
 
210
  $prepared_dimensions = array();
211
- if ( class_exists( 'ExactMetrics_Admin_Custom_Dimensions' ) ) {
212
  $dimensions = new ExactMetrics_Admin_Custom_Dimensions();
213
  $dimensions = $dimensions->custom_dimensions();
214
  $prepared_dimensions = array();
215
- foreach ( $dimensions as $dimension_type => $dimension ) {
216
  $dimension['type'] = $dimension_type;
217
  $prepared_dimensions[] = $dimension;
218
  }
219
  }
220
- $is_authed = ( ExactMetrics()->auth->is_authed() || ExactMetrics()->auth->is_network_authed() );
221
 
222
  wp_localize_script(
223
  'exactmetrics-vue-script',
224
  'exactmetrics',
225
  array(
226
- 'ajax' => admin_url( 'admin-ajax.php' ),
227
- 'nonce' => wp_create_nonce( 'mi-admin-nonce' ),
228
  'network' => is_network_admin(),
229
- 'translations' => wp_get_jed_locale_data( exactmetrics_is_pro_version() ? 'exactmetrics-premium' : 'google-analytics-dashboard-for-wp' ),
230
- 'assets' => plugins_url( $version_path . '/assets/vue', EXACTMETRICS_PLUGIN_FILE ),
231
  'roles' => exactmetrics_get_roles(),
232
  'roles_manage_options' => exactmetrics_get_manage_options_roles(),
233
  'shareasale_id' => exactmetrics_get_shareasale_id(),
234
- 'shareasale_url' => exactmetrics_get_shareasale_url( exactmetrics_get_shareasale_id(), '' ),
235
- 'addons_url' => is_multisite() ? network_admin_url( 'admin.php?page=exactmetrics_network#/addons' ) : admin_url( 'admin.php?page=exactmetrics_settings#/addons' ),
236
- 'seo_settings_page_url' => is_multisite() ? network_admin_url( 'admin.php?page=exactmetrics_network#/seo' ) : admin_url( 'admin.php?page=exactmetrics_settings#/seo' ),
237
- 'aioseo_dashboard_url' => is_multisite() ? network_admin_url( 'admin.php?page=aioseo' ) : admin_url( 'admin.php?page=aioseo' ),
238
- 'wp_plugins_page_url' => is_multisite() ? network_admin_url( 'plugins.php' ) : admin_url( 'plugins.php' ),
239
- 'email_summary_url' => admin_url( 'admin.php?exactmetrics_email_preview&exactmetrics_email_template=summary' ),
240
  'install_amp_url' => $install_amp_url,
241
  'install_fbia_url' => $install_fbia_url,
242
  'install_woo_url' => $install_woocommerce_url,
243
  'dimensions' => $prepared_dimensions,
244
- 'wizard_url' => is_network_admin() ? network_admin_url( 'index.php?page=exactmetrics-onboarding' ) : admin_url( 'index.php?page=exactmetrics-onboarding' ),
245
  'install_plugins' => exactmetrics_can_install_plugins(),
246
- 'unfiltered_html' => current_user_can( 'unfiltered_html' ),
247
- 'activate_nonce' => wp_create_nonce( 'exactmetrics-activate' ),
248
- 'deactivate_nonce' => wp_create_nonce( 'exactmetrics-deactivate' ),
249
- 'install_nonce' => wp_create_nonce( 'exactmetrics-install' ),
250
  // Used to add notices for future deprecations.
251
  'versions' => exactmetrics_get_php_wp_version_warning_data(),
252
  'plugin_version' => EXACTMETRICS_VERSION,
253
  'is_admin' => true,
254
- 'admin_email' => get_option( 'admin_email' ),
255
  'site_url' => get_site_url(),
256
- 'reports_url' => add_query_arg( 'page', 'exactmetrics_reports', admin_url( 'admin.php' ) ),
257
- 'ecommerce_report_url' => add_query_arg( 'page', 'exactmetrics_reports#/ecommerce', admin_url( 'admin.php' ) ),
258
- 'ecommerce_settings_tab_url' => add_query_arg( 'page', 'exactmetrics_settings#/ecommerce', admin_url( 'admin.php' ) ),
259
- 'first_run_notice' => apply_filters( 'exactmetrics_settings_first_time_notice_hide', exactmetrics_get_option( 'exactmetrics_first_run_notice' ) ),
260
- 'getting_started_url' => is_network_admin() ? network_admin_url( 'admin.php?page=exactmetrics_network#/about' ) : admin_url( 'admin.php?page=exactmetrics_settings#/about/getting-started' ),
261
  'authed' => $is_authed,
262
- 'new_pretty_link_url' => admin_url( 'post-new.php?post_type=pretty-link' ),
263
- 'wpmailsmtp_admin_url' => admin_url( 'admin.php?page=wp-mail-smtp' ),
264
  'load_headline_analyzer_settings' => exactmetrics_load_gutenberg_app() ? 'true' : 'false',
265
- 'exit_url' => add_query_arg( 'page', 'exactmetrics_settings', admin_url( 'admin.php' ) ),
266
  )
267
  );
268
 
@@ -270,18 +275,18 @@ function exactmetrics_admin_scripts() {
270
  return;
271
  }
272
 
273
- if ( exactmetrics_is_reports_page() ) {
274
  global $wp_version;
275
- if ( ! defined( 'EXACTMETRICS_LOCAL_VENDORS_JS_URL' ) ) {
276
- wp_enqueue_script( 'exactmetrics-vue-vendors', plugins_url( $version_path . '/assets/vue/js/chunk-vendors.js', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version(), true );
277
- wp_enqueue_script( 'exactmetrics-vue-common', plugins_url( $version_path . '/assets/vue/js/chunk-common.js', EXACTMETRICS_PLUGIN_FILE ), array(), exactmetrics_get_asset_version(), true );
278
  } else {
279
- wp_enqueue_script( 'exactmetrics-vue-vendors', EXACTMETRICS_LOCAL_VENDORS_JS_URL, array(), exactmetrics_get_asset_version(), true );
280
- wp_enqueue_script( 'exactmetrics-vue-common', EXACTMETRICS_LOCAL_COMMON_JS_URL, array(), exactmetrics_get_asset_version(), true );
281
  }
282
- $app_js_url = defined( 'EXACTMETRICS_LOCAL_REPORTS_JS_URL' ) && EXACTMETRICS_LOCAL_REPORTS_JS_URL ? EXACTMETRICS_LOCAL_REPORTS_JS_URL : plugins_url( $version_path . '/assets/vue/js/reports.js', EXACTMETRICS_PLUGIN_FILE );
283
- wp_register_script( 'exactmetrics-vue-reports', $app_js_url, array(), exactmetrics_get_asset_version(), true );
284
- wp_enqueue_script( 'exactmetrics-vue-reports' );
285
 
286
  // We do not have a current auth.
287
  $auth = ExactMetrics()->auth;
@@ -292,30 +297,31 @@ function exactmetrics_admin_scripts() {
292
  'exactmetrics-vue-reports',
293
  'exactmetrics',
294
  array(
295
- 'ajax' => admin_url( 'admin-ajax.php' ),
296
- 'nonce' => wp_create_nonce( 'mi-admin-nonce' ),
297
  'network' => is_network_admin(),
298
- 'translations' => wp_get_jed_locale_data( exactmetrics_is_pro_version() ? 'exactmetrics-premium' : 'google-analytics-dashboard-for-wp' ),
299
- 'assets' => plugins_url( $version_path . '/assets/vue', EXACTMETRICS_PLUGIN_FILE ),
300
  'shareasale_id' => exactmetrics_get_shareasale_id(),
301
- 'shareasale_url' => exactmetrics_get_shareasale_url( exactmetrics_get_shareasale_id(), '' ),
302
- 'addons_url' => is_multisite() ? network_admin_url( 'admin.php?page=exactmetrics_network#/addons' ) : admin_url( 'admin.php?page=exactmetrics_settings#/addons' ),
303
- 'timezone' => date( 'e' ),
304
  'authed' => $site_auth || $ms_auth,
305
  'auth_connected_type' => $auth->get_connected_type(),
306
- 'settings_url' => add_query_arg( 'page', 'exactmetrics_settings', admin_url( 'admin.php' ) ),
307
  // Used to add notices for future deprecations.
308
  'versions' => exactmetrics_get_php_wp_version_warning_data(),
309
  'plugin_version' => EXACTMETRICS_VERSION,
310
  'is_admin' => true,
311
- 'admin_email' => get_option( 'admin_email' ),
312
  'site_url' => get_site_url(),
313
- 'wizard_url' => is_network_admin() ? network_admin_url( 'index.php?page=exactmetrics-onboarding' ) : admin_url( 'index.php?page=exactmetrics-onboarding' ),
314
- 'install_nonce' => wp_create_nonce( 'exactmetrics-install' ),
315
- 'activate_nonce' => wp_create_nonce( 'exactmetrics-activate' ),
316
- 'deactivate_nonce' => wp_create_nonce( 'exactmetrics-deactivate' ),
317
- 'update_settings' => current_user_can( 'exactmetrics_save_settings' ),
318
- 'migrated' => exactmetrics_get_option( 'gadwp_migrated', 0 ),
 
319
  )
320
  );
321
 
@@ -323,10 +329,10 @@ function exactmetrics_admin_scripts() {
323
  }
324
 
325
  // ublock notice
326
- add_action( 'admin_print_footer_scripts', 'exactmetrics_settings_ublock_error_js', 9999999 );
327
  }
328
 
329
- add_action( 'admin_enqueue_scripts', 'exactmetrics_admin_scripts' );
330
 
331
  /**
332
  * Remove Assets that conflict with ours from our screens.
@@ -336,13 +342,14 @@ add_action( 'admin_enqueue_scripts', 'exactmetrics_admin_scripts' );
336
  * @access public
337
  *
338
  */
339
- function exactmetrics_remove_conflicting_asset_files() {
 
340
 
341
  // Get current screen.
342
  $screen = get_current_screen();
343
 
344
  // Bail if we're not on a ExactMetrics screen.
345
- if ( empty( $screen->id ) || strpos( $screen->id, 'exactmetrics' ) === false ) {
346
  return;
347
  }
348
 
@@ -479,16 +486,16 @@ function exactmetrics_remove_conflicting_asset_files() {
479
  'date-js', // Google Analytics by Web Dorado
480
  );
481
 
482
- if ( ! empty( $styles ) ) {
483
- foreach ( $styles as $style ) {
484
- wp_dequeue_style( $style ); // Remove CSS file from MI screen
485
- wp_deregister_style( $style );
486
  }
487
  }
488
- if ( ! empty( $scripts ) ) {
489
- foreach ( $scripts as $script ) {
490
- wp_dequeue_script( $script ); // Remove JS file from MI screen
491
- wp_deregister_script( $script );
492
  }
493
  }
494
 
@@ -507,46 +514,46 @@ function exactmetrics_remove_conflicting_asset_files() {
507
  );
508
 
509
  global $wp_styles;
510
- foreach ( $wp_styles->queue as $handle ) {
511
- if ( strpos( $wp_styles->registered[ $handle ]->src, 'wp-content' ) === false ) {
512
  return;
513
  }
514
 
515
- if ( strpos( $wp_styles->registered[ $handle ]->handle, 'exactmetrics' ) !== false ) {
516
  return;
517
  }
518
 
519
- foreach ( $third_party as $partial ) {
520
- if ( strpos( $wp_styles->registered[ $handle ]->handle, $partial ) !== false ) {
521
- wp_dequeue_style( $handle ); // Remove css file from MI screen
522
- wp_deregister_style( $handle );
523
  break;
524
- } else if ( strpos( $wp_styles->registered[ $handle ]->src, $partial ) !== false ) {
525
- wp_dequeue_style( $handle ); // Remove css file from MI screen
526
- wp_deregister_style( $handle );
527
  break;
528
  }
529
  }
530
  }
531
 
532
  global $wp_scripts;
533
- foreach ( $wp_scripts->queue as $handle ) {
534
- if ( strpos( $wp_scripts->registered[ $handle ]->src, 'wp-content' ) === false ) {
535
  return;
536
  }
537
 
538
- if ( strpos( $wp_scripts->registered[ $handle ]->handle, 'exactmetrics' ) !== false ) {
539
  return;
540
  }
541
 
542
- foreach ( $third_party as $partial ) {
543
- if ( strpos( $wp_scripts->registered[ $handle ]->handle, $partial ) !== false ) {
544
- wp_dequeue_script( $handle ); // Remove JS file from MI screen
545
- wp_deregister_script( $handle );
546
  break;
547
- } else if ( strpos( $wp_scripts->registered[ $handle ]->src, $partial ) !== false ) {
548
- wp_dequeue_script( $handle ); // Remove JS file from MI screen
549
- wp_deregister_script( $handle );
550
  break;
551
  }
552
  }
@@ -554,50 +561,50 @@ function exactmetrics_remove_conflicting_asset_files() {
554
 
555
  // Remove actions from themes that are not following best practices and break the admin doing so
556
  // Theme: Newspaper by tagDiv
557
- remove_action( 'admin_enqueue_scripts', 'load_wp_admin_js' );
558
- remove_action( 'admin_enqueue_scripts', 'load_wp_admin_css' );
559
- remove_action( 'admin_print_scripts-widgets.php', 'td_on_admin_print_scripts_farbtastic' );
560
- remove_action( 'admin_print_styles-widgets.php', 'td_on_admin_print_styles_farbtastic' );
561
- remove_action( 'admin_print_footer_scripts', 'check_if_media_uploads_is_loaded', 9999 );
562
- remove_action( 'print_media_templates', 'td_custom_gallery_settings_hook' );
563
- remove_action( 'print_media_templates', 'td_change_backbone_js_hook' );
564
- remove_action( 'admin_head', 'tdc_on_admin_head' ); // TagDiv Composer Fix
565
- remove_action( 'print_media_templates', 'us_media_templates' ); // Impreza Theme Fix
566
- remove_action( 'admin_footer', 'gt3pg_add_gallery_template' ); // GT3 Photo & Video Gallery By GT3 Themes Plugin Fix
567
  // Plugin WP Booklist:
568
- remove_action( 'admin_footer', 'wpbooklist_jre_dismiss_prem_notice_forever_action_javascript' );
569
- remove_action( 'admin_footer', 'wpbooklist_dashboard_add_book_action_javascript' );
570
- remove_action( 'admin_footer', 'wpbooklist_edit_book_show_form_action_javascript' );
571
- remove_action( 'admin_footer', 'wpbooklist_show_book_in_colorbox_action_javascript' );
572
- remove_action( 'admin_footer', 'wpbooklist_new_lib_shortcode_action_javascript' );
573
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_library_display_options_action_javascript' );
574
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_post_display_options_action_javascript' );
575
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_page_display_options_action_javascript' );
576
- remove_action( 'admin_footer', 'wpbooklist_update_display_options_action_javascript' );
577
- remove_action( 'admin_footer', 'wpbooklist_edit_book_pagination_action_javascript' );
578
- remove_action( 'admin_footer', 'wpbooklist_edit_book_switch_lib_action_javascript' );
579
- remove_action( 'admin_footer', 'wpbooklist_edit_book_search_action_javascript' );
580
- remove_action( 'admin_footer', 'wpbooklist_edit_book_actual_action_javascript' );
581
- remove_action( 'admin_footer', 'wpbooklist_delete_book_action_javascript' );
582
- remove_action( 'admin_footer', 'wpbooklist_user_apis_action_javascript' );
583
- remove_action( 'admin_footer', 'wpbooklist_upload_new_stylepak_action_javascript' );
584
- remove_action( 'admin_footer', 'wpbooklist_upload_new_post_template_action_javascript' );
585
- remove_action( 'admin_footer', 'wpbooklist_upload_new_page_template_action_javascript' );
586
- remove_action( 'admin_footer', 'wpbooklist_create_db_library_backup_action_javascript' );
587
- remove_action( 'admin_footer', 'wpbooklist_restore_db_library_backup_action_javascript' );
588
- remove_action( 'admin_footer', 'wpbooklist_create_csv_action_javascript' );
589
- remove_action( 'admin_footer', 'wpbooklist_amazon_localization_action_javascript' );
590
- remove_action( 'admin_footer', 'wpbooklist_delete_book_bulk_action_javascript' );
591
- remove_action( 'admin_footer', 'wpbooklist_reorder_action_javascript' );
592
- remove_action( 'admin_footer', 'wpbooklist_exit_results_action_javascript' );
593
- remove_action( 'admin_footer', 'wpbooklist_storytime_select_category_action_javascript' );
594
- remove_action( 'admin_footer', 'wpbooklist_storytime_get_story_action_javascript' );
595
- remove_action( 'admin_footer', 'wpbooklist_storytime_expand_browse_action_javascript' );
596
- remove_action( 'admin_footer', 'wpbooklist_storytime_save_settings_action_javascript' );
597
- remove_action( 'admin_footer', 'wpbooklist_delete_story_action_javascript' );
598
  }
599
 
600
- add_action( 'admin_enqueue_scripts', 'exactmetrics_remove_conflicting_asset_files', 9999 );
601
 
602
  /**
603
  * Remove non-MI notices from MI page.
@@ -607,67 +614,68 @@ add_action( 'admin_enqueue_scripts', 'exactmetrics_remove_conflicting_asset_file
607
  * @access public
608
  *
609
  */
610
- function hide_non_exactmetrics_warnings() {
 
611
  // Bail if we're not on a ExactMetrics screen.
612
- if ( empty( $_REQUEST['page'] ) || strpos( $_REQUEST['page'], 'exactmetrics' ) === false ) {
613
  return;
614
  }
615
 
616
  global $wp_filter;
617
- if ( ! empty( $wp_filter['user_admin_notices']->callbacks ) && is_array( $wp_filter['user_admin_notices']->callbacks ) ) {
618
- foreach ( $wp_filter['user_admin_notices']->callbacks as $priority => $hooks ) {
619
- foreach ( $hooks as $name => $arr ) {
620
- if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) {
621
- unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] );
622
  continue;
623
  }
624
- if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'exactmetrics' ) !== false ) {
625
  continue;
626
  }
627
- if ( ! empty( $name ) && strpos( $name, 'exactmetrics' ) === false ) {
628
- unset( $wp_filter['user_admin_notices']->callbacks[ $priority ][ $name ] );
629
  }
630
  }
631
  }
632
  }
633
 
634
- if ( ! empty( $wp_filter['admin_notices']->callbacks ) && is_array( $wp_filter['admin_notices']->callbacks ) ) {
635
- foreach ( $wp_filter['admin_notices']->callbacks as $priority => $hooks ) {
636
- foreach ( $hooks as $name => $arr ) {
637
- if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) {
638
- unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] );
639
  continue;
640
  }
641
- if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'exactmetrics' ) !== false ) {
642
  continue;
643
  }
644
- if ( ! empty( $name ) && strpos( $name, 'exactmetrics' ) === false ) {
645
- unset( $wp_filter['admin_notices']->callbacks[ $priority ][ $name ] );
646
  }
647
  }
648
  }
649
  }
650
 
651
- if ( ! empty( $wp_filter['all_admin_notices']->callbacks ) && is_array( $wp_filter['all_admin_notices']->callbacks ) ) {
652
- foreach ( $wp_filter['all_admin_notices']->callbacks as $priority => $hooks ) {
653
- foreach ( $hooks as $name => $arr ) {
654
- if ( is_object( $arr['function'] ) && $arr['function'] instanceof Closure ) {
655
- unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] );
656
  continue;
657
  }
658
- if ( ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) && strpos( strtolower( get_class( $arr['function'][0] ) ), 'exactmetrics' ) !== false ) {
659
  continue;
660
  }
661
- if ( ! empty( $name ) && strpos( $name, 'exactmetrics' ) === false ) {
662
- unset( $wp_filter['all_admin_notices']->callbacks[ $priority ][ $name ] );
663
  }
664
  }
665
  }
666
  }
667
  }
668
 
669
- add_action( 'admin_print_scripts', 'hide_non_exactmetrics_warnings' );
670
- add_action( 'admin_head', 'hide_non_exactmetrics_warnings', PHP_INT_MAX );
671
 
672
  /**
673
  * Called whenever an upgrade button / link is displayed in Lite, this function will
@@ -688,54 +696,57 @@ add_action( 'admin_head', 'hide_non_exactmetrics_warnings', PHP_INT_MAX );
688
  * @access public
689
  *
690
  */
691
- function exactmetrics_get_upgrade_link( $medium = '', $campaign = '', $url = '' ) {
692
- $url = exactmetrics_get_url( $medium, $campaign, $url, false );
 
693
 
694
- if ( exactmetrics_is_pro_version() ) {
695
- return esc_url( $url );
696
  }
697
 
698
  // Get the ShareASale ID
699
  $shareasale_id = exactmetrics_get_shareasale_id();
700
 
701
  // If we have a shareasale ID return the shareasale url
702
- if ( ! empty( $shareasale_id ) ) {
703
- $shareasale_id = absint( $shareasale_id );
704
 
705
- return esc_url( exactmetrics_get_shareasale_url( $shareasale_id, $url ) );
706
  } else {
707
- return esc_url( $url );
708
  }
709
  }
710
 
711
- function exactmetrics_get_url( $medium = '', $campaign = '', $url = '', $escape = true ) {
 
712
  // Setup Campaign variables
713
  $source = exactmetrics_is_pro_version() ? 'proplugin' : 'liteplugin';
714
- $medium = ! empty( $medium ) ? $medium : 'defaultmedium';
715
- $campaign = ! empty( $campaign ) ? $campaign : 'defaultcampaign';
716
  $content = EXACTMETRICS_VERSION;
717
  $default_url = exactmetrics_is_pro_version() ? '' : 'lite/';
718
- $url = ! empty( $url ) ? $url : 'https://www.exactmetrics.com/' . $default_url;
719
 
720
  // Put together redirect URL
721
  $url = add_query_arg(
722
  array(
723
  'utm_source' => $source, // Pro/Lite Plugin
724
- 'utm_medium' => sanitize_key( $medium ), // Area of ExactMetrics (example Reports)
725
- 'utm_campaign' => sanitize_key( $campaign ), // Which link (example eCommerce Report)
726
  'utm_content' => $content, // Version number of MI
727
  ),
728
- trailingslashit( $url )
729
  );
730
 
731
- if ( $escape ) {
732
- return esc_url( $url );
733
  } else {
734
  return $url;
735
  }
736
  }
737
 
738
- function exactmetrics_settings_ublock_error_js() {
 
739
  echo "<script type='text/javascript'>\n";
740
  echo "jQuery( document ).ready( function( $ ) {
741
  if ( window.uorigindetected == null){
@@ -750,69 +761,71 @@ function exactmetrics_settings_ublock_error_js() {
750
  echo "\n</script>";
751
  }
752
 
753
- function exactmetrics_ublock_notice() {
 
754
  ob_start(); ?>
755
  <div id="exactmetrics-ublock-origin-error" class="error inline" style="display:none;">
756
  <?php
757
  // Translators: Placeholders are for links to fix the issue.
758
- echo sprintf( esc_html__( 'ExactMetrics has detected that it\'s files are being blocked. This is usually caused by a adblock browser plugin (particularly uBlock Origin), or a conflicting WordPress theme or plugin. This issue only affects the admin side of ExactMetrics. To solve this, ensure ExactMetrics is whitelisted for your website URL in any adblock browser plugin you use. For step by step directions on how to do this, %1$sclick here%2$s. If this doesn\'t solve the issue (rare), send us a ticket %3$shere%2$s and we\'ll be happy to help diagnose the issue.', 'google-analytics-dashboard-for-wp' ), '<a href="https://exactmetrics.com/docs/exactmetrics-asset-files-blocked/" target="_blank" rel="noopener noreferrer" referrer="no-referrer">', '</a>', '<a href="https://exactmetrics.com/contact/" target="_blank" rel="noopener noreferrer" referrer="no-referrer">' );
759
  ?>
760
  </div>
761
- <?php
762
  return ob_get_clean();
763
  }
764
 
765
  /**
766
  * Some themes/plugins don't add proper checks and load JS code in all admin pages causing conflicts.
767
  */
768
- function exactmetrics_remove_unnecessary_footer_hooks() {
 
769
 
770
  $screen = get_current_screen();
771
  // Bail if we're not on a ExactMetrics screen.
772
- if ( empty( $screen->id ) || strpos( $screen->id, 'exactmetrics' ) === false ) {
773
  return;
774
  }
775
 
776
  // Remove js code added by Newspaper theme - version 8.8.0.
777
- remove_action( 'print_media_templates', 'td_custom_gallery_settings_hook' );
778
- remove_action( 'print_media_templates', 'td_change_backbone_js_hook' );
779
  // Remove js code added by the Brooklyn theme - version 4.5.3.1.
780
- remove_action( 'print_media_templates', 'ut_create_gallery_options' );
781
 
782
  // Remove js code added by WordPress Book List Plugin - version 5.8.1.
783
- remove_action( 'admin_footer', 'wpbooklist_jre_dismiss_prem_notice_forever_action_javascript' );
784
- remove_action( 'admin_footer', 'wpbooklist_dashboard_add_book_action_javascript' );
785
- remove_action( 'admin_footer', 'wpbooklist_edit_book_show_form_action_javascript' );
786
- remove_action( 'admin_footer', 'wpbooklist_show_book_in_colorbox_action_javascript' );
787
- remove_action( 'admin_footer', 'wpbooklist_new_lib_shortcode_action_javascript' );
788
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_library_display_options_action_javascript' );
789
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_post_display_options_action_javascript' );
790
- remove_action( 'admin_footer', 'wpbooklist_dashboard_save_page_display_options_action_javascript' );
791
- remove_action( 'admin_footer', 'wpbooklist_update_display_options_action_javascript' );
792
- remove_action( 'admin_footer', 'wpbooklist_edit_book_pagination_action_javascript' );
793
- remove_action( 'admin_footer', 'wpbooklist_edit_book_switch_lib_action_javascript' );
794
- remove_action( 'admin_footer', 'wpbooklist_edit_book_search_action_javascript' );
795
- remove_action( 'admin_footer', 'wpbooklist_edit_book_actual_action_javascript' );
796
- remove_action( 'admin_footer', 'wpbooklist_delete_book_action_javascript' );
797
- remove_action( 'admin_footer', 'wpbooklist_user_apis_action_javascript' );
798
- remove_action( 'admin_footer', 'wpbooklist_upload_new_stylepak_action_javascript' );
799
- remove_action( 'admin_footer', 'wpbooklist_upload_new_post_template_action_javascript' );
800
- remove_action( 'admin_footer', 'wpbooklist_upload_new_page_template_action_javascript' );
801
- remove_action( 'admin_footer', 'wpbooklist_create_db_library_backup_action_javascript' );
802
- remove_action( 'admin_footer', 'wpbooklist_restore_db_library_backup_action_javascript' );
803
- remove_action( 'admin_footer', 'wpbooklist_create_csv_action_javascript' );
804
- remove_action( 'admin_footer', 'wpbooklist_amazon_localization_action_javascript' );
805
- remove_action( 'admin_footer', 'wpbooklist_delete_book_bulk_action_javascript' );
806
- remove_action( 'admin_footer', 'wpbooklist_reorder_action_javascript' );
807
- remove_action( 'admin_footer', 'wpbooklist_exit_results_action_javascript' );
808
- remove_action( 'admin_footer', 'wpbooklist_storytime_select_category_action_javascript' );
809
- remove_action( 'admin_footer', 'wpbooklist_storytime_get_story_action_javascript' );
810
- remove_action( 'admin_footer', 'wpbooklist_storytime_expand_browse_action_javascript' );
811
- remove_action( 'admin_footer', 'wpbooklist_storytime_save_settings_action_javascript' );
812
- remove_action( 'admin_footer', 'wpbooklist_delete_story_action_javascript' );
813
  }
814
 
815
- add_action( 'admin_head', 'exactmetrics_remove_unnecessary_footer_hooks', 15 );
816
 
817
 
818
  /**
@@ -824,112 +837,114 @@ add_action( 'admin_head', 'exactmetrics_remove_unnecessary_footer_hooks', 15 );
824
  *
825
  * @return string
826
  */
827
- function exactmetrics_prevent_version_number_removal( $src ) {
 
828
  // Apply this only to admin-side scripts.
829
- if ( ! is_admin() ) {
830
  return $src;
831
  }
832
 
833
  // Make sure are only changing our scripts and only if the version number is missing.
834
- if ( ( false !== strpos( $src, 'exactmetrics' ) || false !== strpos( $src, 'google-analytics-dashboard-for-wp' ) || false !== strpos( $src, 'exactmetrics-premium' ) ) && false === strpos( $src, '?ver' ) ) {
835
- $src = add_query_arg( 'ver', exactmetrics_get_asset_version(), $src );
836
  }
837
 
838
  return $src;
839
  }
840
 
841
- add_filter( 'script_loader_src', 'exactmetrics_prevent_version_number_removal', 9999, 1 );
842
- add_filter( 'style_loader_src', 'exactmetrics_prevent_version_number_removal', 9999, 1 );
843
 
844
  /**
845
  * Data used for the Vue scripts to display old PHP and WP versions warnings.
846
  */
847
- function exactmetrics_get_php_wp_version_warning_data() {
 
848
  global $wp_version;
849
 
850
- $compatible_php_version = apply_filters( 'exactmetrics_compatible_php_version', false );
851
- $compatible_wp_version = apply_filters( 'exactmetrics_compatible_wp_version', false );
852
 
853
  return array(
854
  'php_version' => phpversion(),
855
- 'php_version_below_54' => apply_filters( 'exactmetrics_temporarily_hide_php_under_56_upgrade_warnings', version_compare( phpversion(), $compatible_php_version['warning'], '<' ) ),
856
- 'php_version_below_56' => apply_filters( 'exactmetrics_temporarily_hide_php_56_upgrade_warnings', version_compare( phpversion(), $compatible_php_version['warning'], '>=' ) && version_compare( phpversion(), $compatible_php_version['recommended'], '<' ) ),
857
- 'php_update_link' => exactmetrics_get_url( 'settings-notice', 'settings-page', 'https://www.exactmetrics.com/docs/update-php/' ),
858
  'wp_version' => $wp_version,
859
- 'wp_version_below_46' => version_compare( $wp_version, $compatible_wp_version['warning'], '<' ),
860
- 'wp_version_below_49' => version_compare( $wp_version, $compatible_wp_version['recommended'], '<' ),
861
- 'wp_update_link' => exactmetrics_get_url( 'settings-notice', 'settings-page', 'https://www.exactmetrics.com/docs/update-wordpress/' ),
862
  );
863
  }
864
 
865
  /**
866
  * Check WP and PHP version and add contextual notifications for upgrades.
867
  */
868
- function exactmetrics_maybe_add_wp_php_version_notification() {
 
869
  global $wp_version;
870
 
871
  $icon = '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="#FAD1D1"/><path d="M17.3634 19.0714C17.792 19.4821 18.0063 19.9821 18.0063 20.5714C18.0063 21.1607 17.792 21.6607 17.3634 22.0714C16.9527 22.5 16.4527 22.7143 15.8634 22.7143C15.2742 22.7143 14.7652 22.5 14.3367 22.0714C13.9259 21.6607 13.7206 21.1607 13.7206 20.5714C13.7206 19.9821 13.9259 19.4821 14.3367 19.0714C14.7652 18.6429 15.2742 18.4286 15.8634 18.4286C16.4527 18.4286 16.9527 18.6429 17.3634 19.0714ZM13.9617 9.66964C13.9617 9.49107 14.0242 9.33929 14.1492 9.21429C14.2742 9.07143 14.4259 9 14.6045 9H17.1224C17.3009 9 17.4527 9.07143 17.5777 9.21429C17.7027 9.33929 17.7652 9.49107 17.7652 9.66964L17.3902 16.9554C17.3902 17.1339 17.3277 17.2857 17.2027 17.4107C17.0777 17.5179 16.9259 17.5714 16.7474 17.5714H14.9795C14.8009 17.5714 14.6492 17.5179 14.5242 17.4107C14.3992 17.2857 14.3367 17.1339 14.3367 16.9554L13.9617 9.66964Z" fill="#EB5757"/></svg>';
872
- $needs_php_warning = version_compare( phpversion(), '5.6', '<' );
873
- $needs_wp_warning = version_compare( $wp_version, '4.9', '<' );
874
 
875
- if ( $needs_php_warning ) {
876
  $notification['id'] = 'upgrade_php_56_notification';
877
- $notification['title'] = __( 'ACTION REQUIRED: Your PHP version is putting your site at risk!', 'google-analytics-dashboard-for-wp' );
878
- if ( $needs_wp_warning ) {
879
- $notification['title'] = __( 'ACTION REQUIRED: Speed your website up 400% with a single email!', 'google-analytics-dashboard-for-wp' );
880
  }
881
 
882
- $php_url = exactmetrics_get_url( 'notifications', 'upgrade-php', 'https://www.exactmetrics.com/docs/update-php' );
883
 
884
- $notification['type'] = array( 'basic', 'lite', 'master', 'plus', 'pro' );
885
  // Translators: Placeholder is for the current PHP version.
886
- $notification['content'] = sprintf( esc_html__( 'In the next major release of ExactMetrics we are planning to remove support for the version of PHP you are using (%s). This insecure version is no longer supported by WordPress itself, so you are already missing out on the latest features of WordPress along with critical updates for security and performance (modern PHP versions make websites much faster).', 'google-analytics-dashboard-for-wp' ), phpversion() ) . "\n\n";
887
 
888
  // Translators: Placeholders add a link to an article.
889
- $notification['content'] .= sprintf( esc_html__( 'To ensure ExactMetrics and other plugins on your site continue to function properly, and avoid putting your site at risk, please take a few minutes to ask your website hosting provider to upgrade the version of PHP to a modern PHP version (7.2 or newer). We provide helpful templates for how to ask them %1$shere%2$s.', 'google-analytics-dashboard-for-wp' ), '<a target="_blank" href="' . $php_url . '">', '</a>' ) . "\n\n";
890
- $notification['content'] .= esc_html__( 'Upgrading your PHP version will make sure you are able to continue using WordPress without issues in the future, keep your site secure, and will also make your website up to 400% faster!', 'google-analytics-dashboard-for-wp' );
891
 
892
  $notification['icon'] = $icon;
893
  $notification['btns'] = array(
894
  'learn_more' => array(
895
  'url' => $php_url,
896
- 'text' => esc_html__( 'Learn More', 'google-analytics-dashboard-for-wp' ),
897
  ),
898
  );
899
 
900
  // Add the notification.
901
- ExactMetrics()->notifications->add( $notification );
902
  }
903
 
904
- if ( $needs_wp_warning ) {
905
  $isitwp_url = 'https://www.isitwp.com/upgrading-wordpress-is-easier-than-you-think/?utm_source=exactmetrics&utm_medium=notifications&utm_campaign=upgradewp';
906
- $wpbeginner_url = exactmetrics_get_url( 'notifications', 'pgradewp', 'https://www.wpbeginner.com/beginners-guide/why-you-should-always-use-the-latest-version-of-wordpress/' );
907
 
908
  $notification['id'] = 'upgrade_wp_49_notification';
909
- $notification['title'] = __( 'ACTION REQUIRED: Your WordPress version is putting your site at risk!', 'google-analytics-dashboard-for-wp' );
910
- $notification['type'] = array( 'basic', 'lite', 'master', 'plus', 'pro' );
911
  // Translators: Placeholder is for the current WordPress version.
912
- $notification['content'] = sprintf( esc_html__( 'In the next major release of ExactMetrics we are planning to remove support for the version of WordPress you are using (version %s). This version is several years out of date, and most plugins do not support this version anymore, so you could be missing out on critical updates for performance and security already!', 'google-analytics-dashboard-for-wp' ), $wp_version ) . "\n\n";
913
 
914
- $notification['content'] .= esc_html__( 'The good news: updating WordPress has never been easier and only takes a few moments.', 'google-analytics-dashboard-for-wp' );
915
  // Translators: Placeholders add links to articles.
916
- $notification['content'] .= sprintf( esc_html__( 'To update, we recommend following this %1$sstep by step guide for updating WordPress%2$s from IsItWP and afterwards check out %3$sWhy You Should Always Use the Latest Version of WordPress%4$s on WPBeginner.', 'google-analytics-dashboard-for-wp' ), '<a target="_blank" href="' . $isitwp_url . '">', '</a>', '<a target="_blank" href="' . $wpbeginner_url . '">', '</a>' ) . "\n\n";
917
 
918
  $notification['icon'] = $icon;
919
  $notification['btns'] = array(
920
  'learn_more' => array(
921
  'url' => $isitwp_url,
922
- 'text' => esc_html__( 'Learn More', 'google-analytics-dashboard-for-wp' ),
923
  ),
924
  );
925
 
926
  // Add the notification.
927
- ExactMetrics()->notifications->add( $notification );
928
  }
929
-
930
  }
931
 
932
- add_action( 'admin_init', 'exactmetrics_maybe_add_wp_php_version_notification' );
933
 
934
  /**
935
  * Add notification for Year In Review report for year 2021.
@@ -938,27 +953,51 @@ add_action( 'admin_init', 'exactmetrics_maybe_add_wp_php_version_notification' )
938
  * @since 7.13.2
939
  *
940
  */
941
- function exactmetrics_year_in_review_notification() {
 
942
 
943
  // Check if dates are between Jan 1st 2022 & 13th Jan 2022.
944
- if ( exactmetrics_date_is_between( '2022-01-01', '2022-01-14' ) ) {
945
 
946
  $notification['id'] = 'exactmetrics_notification_year_in_review';
947
- $notification['type'] = array( 'basic', 'lite', 'master', 'plus', 'pro' );
948
  $notification['start'] = '2022-01-01';
949
  $notification['end'] = '2022-01-14';
950
- $notification['title'] = esc_html__( 'View 2021 Year in Review report!', 'google-analytics-dashboard-for-wp' );
951
- $notification['content'] = esc_html__( 'See how your website performed this year and find tips along the way to help grow even more in 2022!', 'google-analytics-dashboard-for-wp' );
952
  $notification['btns'] = array(
953
  'learn_more' => array(
954
- 'url' => esc_url( admin_url( 'admin.php?page=exactmetrics_reports#/year-in-review' ) ),
955
- 'text' => esc_html__( 'Learn More', 'google-analytics-dashboard-for-wp' ),
956
  ),
957
  );
958
 
959
  // Add the notification.
960
- ExactMetrics()->notifications->add( $notification );
961
  }
962
  }
963
 
964
- add_action( 'admin_init', 'exactmetrics_year_in_review_notification' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+
3
  /**
4
  * Common admin class.
5
  *
11
  */
12
 
13
  // Exit if accessed directly
14
+ if (!defined('ABSPATH')) {
15
  exit;
16
  }
17
 
18
+ function exactmetrics_is_settings_page()
19
+ {
20
+ $current_screen = function_exists('get_current_screen') ? get_current_screen() : false;
21
  global $admin_page_hooks;
22
 
23
+ if (!is_object($current_screen) || empty($current_screen->id) || empty($admin_page_hooks)) {
24
  return false;
25
  }
26
 
27
  $settings_page = false;
28
+ if (!empty($admin_page_hooks['exactmetrics_settings']) && $current_screen->id === $admin_page_hooks['exactmetrics_settings']) {
29
  $settings_page = true;
30
  }
31
 
32
+ if ($current_screen->id === 'toplevel_page_exactmetrics_settings') {
33
  $settings_page = true;
34
  }
35
 
36
+ if ($current_screen->id === 'exactmetrics_page_exactmetrics_settings') {
37
  $settings_page = true;
38
  }
39
 
40
+ if (strpos($current_screen->id, 'exactmetrics_settings') !== false) {
41
  $settings_page = true;
42
  }
43
 
44
+ if (!empty($current_screen->base) && strpos($current_screen->base, 'exactmetrics_network') !== false) {
45
  $settings_page = true;
46
  }
47
 
53
  *
54
  * @return bool
55
  */
56
+ function exactmetrics_is_reports_page()
57
+ {
58
+ $current_screen = function_exists('get_current_screen') ? get_current_screen() : false;
59
  global $admin_page_hooks;
60
 
61
+ if (!is_object($current_screen) || empty($current_screen->id) || empty($admin_page_hooks)) {
62
  return false;
63
  }
64
 
65
  $reports_page = false;
66
+ if (!empty($admin_page_hooks['exactmetrics_reports']) && $current_screen->id === $admin_page_hooks['exactmetrics_reports']) {
67
  $reports_page = true;
68
  }
69
 
70
+ if ('toplevel_page_exactmetrics_reports' === $current_screen->id) {
71
  $reports_page = true;
72
  }
73
 
74
+ if (strpos($current_screen->id, 'exactmetrics_reports') !== false) {
75
  $reports_page = true;
76
  }
77
 
86
  * @access public
87
  *
88
  */
89
+ function exactmetrics_admin_styles()
90
+ {
91
 
92
+ $suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min';
93
 
94
  // Load Common admin styles.
95
+ wp_register_style('exactmetrics-admin-common-style', plugins_url('assets/css/admin-common' . $suffix . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
96
+ wp_enqueue_style('exactmetrics-admin-common-style');
97
 
98
  // Get current screen.
99
  $screen = get_current_screen();
100
 
101
  // Bail if we're not on a ExactMetrics screen.
102
+ if (empty($screen->id) || strpos($screen->id, 'exactmetrics') === false) {
103
  return;
104
  }
105
 
107
  $rtl = is_rtl() ? '.rtl' : '';
108
 
109
  // For the settings page, load the Vue app styles.
110
+ if (exactmetrics_is_settings_page()) {
111
+ if (!defined('EXACTMETRICS_LOCAL_JS_URL')) {
112
+ wp_enqueue_style('exactmetrics-vue-style-vendors', plugins_url($version_path . '/assets/vue/css/chunk-vendors' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
113
+ wp_enqueue_style('exactmetrics-vue-style-common', plugins_url($version_path . '/assets/vue/css/chunk-common' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
114
+ wp_enqueue_style('exactmetrics-vue-style', plugins_url($version_path . '/assets/vue/css/settings' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
115
  }
116
 
117
  // Don't load other styles on the settings page.
118
  return;
119
  }
120
 
121
+ if (exactmetrics_is_reports_page()) {
122
+ if (!defined('EXACTMETRICS_LOCAL_REPORTS_JS_URL')) {
123
+ wp_enqueue_style('exactmetrics-vue-style-vendors', plugins_url($version_path . '/assets/vue/css/chunk-vendors' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
124
+ wp_enqueue_style('exactmetrics-vue-style-common', plugins_url($version_path . '/assets/vue/css/chunk-common' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
125
+ wp_enqueue_style('exactmetrics-vue-style', plugins_url($version_path . '/assets/vue/css/reports' . $rtl . '.css', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version());
126
  }
127
 
128
  return;
129
  }
130
 
131
  // Tooltips
132
+ wp_enqueue_script('jquery-ui-tooltip');
133
  }
134
 
135
+ add_action('admin_enqueue_scripts', 'exactmetrics_admin_styles');
136
 
137
  /**
138
  * Loads scripts for all ExactMetrics-based Administration Screens.
142
  * @access public
143
  *
144
  */
145
+ function exactmetrics_admin_scripts()
146
+ {
147
 
148
  // Our Common Admin JS.
149
+ $suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min';
150
 
151
+ wp_register_script('exactmetrics-admin-common-script', plugins_url('assets/js/admin-common' . $suffix . '.js', EXACTMETRICS_PLUGIN_FILE), array('jquery'), exactmetrics_get_asset_version(), true);
152
 
153
+ wp_enqueue_script('exactmetrics-admin-common-script');
154
 
155
  wp_localize_script(
156
  'exactmetrics-admin-common-script',
157
  'exactmetrics_admin_common',
158
  array(
159
+ 'ajax' => admin_url('admin-ajax.php'),
160
+ 'dismiss_notice_nonce' => wp_create_nonce('exactmetrics-dismiss-notice'),
161
  )
162
  );
163
 
165
  $screen = get_current_screen();
166
 
167
  // Bail if we're not on a ExactMetrics screen.
168
+ if (empty($screen->id) || strpos($screen->id, 'exactmetrics') === false) {
169
  return;
170
  }
171
 
172
  $version_path = exactmetrics_is_pro_version() ? 'pro' : 'lite';
173
 
174
  // For the settings page, load the Vue app.
175
+ if (exactmetrics_is_settings_page()) {
176
+ if (!defined('EXACTMETRICS_LOCAL_VENDORS_JS_URL')) {
177
+ wp_enqueue_script('exactmetrics-vue-vendors', plugins_url($version_path . '/assets/vue/js/chunk-vendors.js', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version(), true);
178
+ wp_enqueue_script('exactmetrics-vue-common', plugins_url($version_path . '/assets/vue/js/chunk-common.js', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version(), true);
179
  } else {
180
+ wp_enqueue_script('exactmetrics-vue-vendors', EXACTMETRICS_LOCAL_VENDORS_JS_URL, array(), exactmetrics_get_asset_version(), true);
181
+ wp_enqueue_script('exactmetrics-vue-common', EXACTMETRICS_LOCAL_COMMON_JS_URL, array(), exactmetrics_get_asset_version(), true);
182
  }
183
+ $app_js_url = defined('EXACTMETRICS_LOCAL_JS_URL') && EXACTMETRICS_LOCAL_JS_URL ? EXACTMETRICS_LOCAL_JS_URL : plugins_url($version_path . '/assets/vue/js/settings.js', EXACTMETRICS_PLUGIN_FILE);
184
+ wp_register_script('exactmetrics-vue-script', $app_js_url, array(), exactmetrics_get_asset_version(), true);
185
+ wp_enqueue_script('exactmetrics-vue-script');
186
  $plugins = get_plugins();
187
  $install_amp_url = false;
188
+ if (exactmetrics_can_install_plugins()) {
189
  $amp_key = 'amp/amp.php';
190
+ if (array_key_exists($amp_key, $plugins)) {
191
+ $install_amp_url = wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=' . $amp_key), 'activate-plugin_' . $amp_key);
192
  } else {
193
+ $install_amp_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=amp'), 'install-plugin_amp');
194
  }
195
  }
196
  $install_woocommerce_url = false;
197
+ if (exactmetrics_can_install_plugins()) {
198
  $woo_key = 'woocommerce/woocommerce.php';
199
+ if (array_key_exists($woo_key, $plugins)) {
200
+ $install_woocommerce_url = wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=' . $woo_key), 'activate-plugin_' . $woo_key);
201
  } else {
202
+ $install_woocommerce_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=woocommerce'), 'install-plugin_woocommerce');
203
  }
204
  }
205
  $install_fbia_url = false;
206
+ if (exactmetrics_can_install_plugins()) {
207
  $fbia_key = 'fb-instant-articles/facebook-instant-articles.php';
208
+ if (array_key_exists($fbia_key, $plugins)) {
209
+ $install_fbia_url = wp_nonce_url(self_admin_url('plugins.php?action=activate&plugin=' . $fbia_key), 'activate-plugin_' . $fbia_key);
210
  } else {
211
+ $install_fbia_url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=fb-instant-articles'), 'install-plugin_fb-instant-articles');
212
  }
213
  }
214
 
215
  $prepared_dimensions = array();
216
+ if (class_exists('ExactMetrics_Admin_Custom_Dimensions')) {
217
  $dimensions = new ExactMetrics_Admin_Custom_Dimensions();
218
  $dimensions = $dimensions->custom_dimensions();
219
  $prepared_dimensions = array();
220
+ foreach ($dimensions as $dimension_type => $dimension) {
221
  $dimension['type'] = $dimension_type;
222
  $prepared_dimensions[] = $dimension;
223
  }
224
  }
225
+ $is_authed = (ExactMetrics()->auth->is_authed() || ExactMetrics()->auth->is_network_authed());
226
 
227
  wp_localize_script(
228
  'exactmetrics-vue-script',
229
  'exactmetrics',
230
  array(
231
+ 'ajax' => admin_url('admin-ajax.php'),
232
+ 'nonce' => wp_create_nonce('mi-admin-nonce'),
233
  'network' => is_network_admin(),
234
+ 'translations' => wp_get_jed_locale_data(exactmetrics_is_pro_version() ? 'exactmetrics-premium' : 'google-analytics-dashboard-for-wp'),
235
+ 'assets' => plugins_url($version_path . '/assets/vue', EXACTMETRICS_PLUGIN_FILE),
236
  'roles' => exactmetrics_get_roles(),
237
  'roles_manage_options' => exactmetrics_get_manage_options_roles(),
238
  'shareasale_id' => exactmetrics_get_shareasale_id(),
239
+ 'shareasale_url' => exactmetrics_get_shareasale_url(exactmetrics_get_shareasale_id(), ''),
240
+ 'addons_url' => is_multisite() ? network_admin_url('admin.php?page=exactmetrics_network#/addons') : admin_url('admin.php?page=exactmetrics_settings#/addons'),
241
+ 'seo_settings_page_url' => is_multisite() ? network_admin_url('admin.php?page=exactmetrics_network#/seo') : admin_url('admin.php?page=exactmetrics_settings#/seo'),
242
+ 'aioseo_dashboard_url' => is_multisite() ? network_admin_url('admin.php?page=aioseo') : admin_url('admin.php?page=aioseo'),
243
+ 'wp_plugins_page_url' => is_multisite() ? network_admin_url('plugins.php') : admin_url('plugins.php'),
244
+ 'email_summary_url' => admin_url('admin.php?exactmetrics_email_preview&exactmetrics_email_template=summary'),
245
  'install_amp_url' => $install_amp_url,
246
  'install_fbia_url' => $install_fbia_url,
247
  'install_woo_url' => $install_woocommerce_url,
248
  'dimensions' => $prepared_dimensions,
249
+ 'wizard_url' => is_network_admin() ? network_admin_url('index.php?page=exactmetrics-onboarding') : admin_url('index.php?page=exactmetrics-onboarding'),
250
  'install_plugins' => exactmetrics_can_install_plugins(),
251
+ 'unfiltered_html' => current_user_can('unfiltered_html'),
252
+ 'activate_nonce' => wp_create_nonce('exactmetrics-activate'),
253
+ 'deactivate_nonce' => wp_create_nonce('exactmetrics-deactivate'),
254
+ 'install_nonce' => wp_create_nonce('exactmetrics-install'),
255
  // Used to add notices for future deprecations.
256
  'versions' => exactmetrics_get_php_wp_version_warning_data(),
257
  'plugin_version' => EXACTMETRICS_VERSION,
258
  'is_admin' => true,
259
+ 'admin_email' => get_option('admin_email'),
260
  'site_url' => get_site_url(),
261
+ 'reports_url' => add_query_arg('page', 'exactmetrics_reports', admin_url('admin.php')),
262
+ 'ecommerce_report_url' => add_query_arg('page', 'exactmetrics_reports#/ecommerce', admin_url('admin.php')),
263
+ 'ecommerce_settings_tab_url' => add_query_arg('page', 'exactmetrics_settings#/ecommerce', admin_url('admin.php')),
264
+ 'first_run_notice' => apply_filters('exactmetrics_settings_first_time_notice_hide', exactmetrics_get_option('exactmetrics_first_run_notice')),
265
+ 'getting_started_url' => is_network_admin() ? network_admin_url('admin.php?page=exactmetrics_network#/about') : admin_url('admin.php?page=exactmetrics_settings#/about/getting-started'),
266
  'authed' => $is_authed,
267
+ 'new_pretty_link_url' => admin_url('post-new.php?post_type=pretty-link'),
268
+ 'wpmailsmtp_admin_url' => admin_url('admin.php?page=wp-mail-smtp'),
269
  'load_headline_analyzer_settings' => exactmetrics_load_gutenberg_app() ? 'true' : 'false',
270
+ 'exit_url' => add_query_arg('page', 'exactmetrics_settings', admin_url('admin.php')),
271
  )
272
  );
273
 
275
  return;
276
  }
277
 
278
+ if (exactmetrics_is_reports_page()) {
279
  global $wp_version;
280
+ if (!defined('EXACTMETRICS_LOCAL_VENDORS_JS_URL')) {
281
+ wp_enqueue_script('exactmetrics-vue-vendors', plugins_url($version_path . '/assets/vue/js/chunk-vendors.js', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version(), true);
282
+ wp_enqueue_script('exactmetrics-vue-common', plugins_url($version_path . '/assets/vue/js/chunk-common.js', EXACTMETRICS_PLUGIN_FILE), array(), exactmetrics_get_asset_version(), true);
283
  } else {
284
+ wp_enqueue_script('exactmetrics-vue-vendors', EXACTMETRICS_LOCAL_VENDORS_JS_URL, array(), exactmetrics_get_asset_version(), true);
285
+ wp_enqueue_script('exactmetrics-vue-common', EXACTMETRICS_LOCAL_COMMON_JS_URL, array(), exactmetrics_get_asset_version(), true);
286
  }
287
+ $app_js_url = defined('EXACTMETRICS_LOCAL_REPORTS_JS_URL') && EXACTMETRICS_LOCAL_REPORTS_JS_URL ? EXACTMETRICS_LOCAL_REPORTS_JS_URL : plugins_url($version_path . '/assets/vue/js/reports.js', EXACTMETRICS_PLUGIN_FILE);
288
+ wp_register_script('exactmetrics-vue-reports', $app_js_url, array(), exactmetrics_get_asset_version(), true);
289
+ wp_enqueue_script('exactmetrics-vue-reports');
290
 
291
  // We do not have a current auth.
292
  $auth = ExactMetrics()->auth;
297
  'exactmetrics-vue-reports',
298
  'exactmetrics',
299
  array(
300
+ 'ajax' => admin_url('admin-ajax.php'),
301
+ 'nonce' => wp_create_nonce('mi-admin-nonce'),
302
  'network' => is_network_admin(),
303
+ 'translations' => wp_get_jed_locale_data(exactmetrics_is_pro_version() ? 'exactmetrics-premium' : 'google-analytics-dashboard-for-wp'),
304
+ 'assets' => plugins_url($version_path . '/assets/vue', EXACTMETRICS_PLUGIN_FILE),
305
  'shareasale_id' => exactmetrics_get_shareasale_id(),
306
+ 'shareasale_url' => exactmetrics_get_shareasale_url(exactmetrics_get_shareasale_id(), ''),
307
+ 'addons_url' => is_multisite() ? network_admin_url('admin.php?page=exactmetrics_network#/addons') : admin_url('admin.php?page=exactmetrics_settings#/addons'),
308
+ 'timezone' => date('e'),
309
  'authed' => $site_auth || $ms_auth,
310
  'auth_connected_type' => $auth->get_connected_type(),
311
+ 'settings_url' => add_query_arg('page', 'exactmetrics_settings', admin_url('admin.php')),
312
  // Used to add notices for future deprecations.
313
  'versions' => exactmetrics_get_php_wp_version_warning_data(),
314
  'plugin_version' => EXACTMETRICS_VERSION,
315
  'is_admin' => true,
316
+ 'admin_email' => get_option('admin_email'),
317
  'site_url' => get_site_url(),
318
+ 'wizard_url' => is_network_admin() ? network_admin_url('index.php?page=exactmetrics-onboarding') : admin_url('index.php?page=exactmetrics-onboarding'),
319
+ 'install_nonce' => wp_create_nonce('exactmetrics-install'),
320
+ 'activate_nonce' => wp_create_nonce('exactmetrics-activate'),
321
+ 'deactivate_nonce' => wp_create_nonce('exactmetrics-deactivate'),
322
+ 'update_settings' => current_user_can('exactmetrics_save_settings'),
323
+ 'migrated' => exactmetrics_get_option('gadwp_migrated', 0),
324
+ 'yearinreview' => exactmetrics_yearinreview_dates(),
325
  )
326
  );
327
 
329
  }
330
 
331
  // ublock notice
332
+ add_action('admin_print_footer_scripts', 'exactmetrics_settings_ublock_error_js', 9999999);
333
  }
334
 
335
+ add_action('admin_enqueue_scripts', 'exactmetrics_admin_scripts');
336
 
337
  /**
338
  * Remove Assets that conflict with ours from our screens.
342
  * @access public
343
  *
344
  */
345
+ function exactmetrics_remove_conflicting_asset_files()
346
+ {
347
 
348
  // Get current screen.
349
  $screen = get_current_screen();
350
 
351
  // Bail if we're not on a ExactMetrics screen.
352
+ if (empty($screen->id) || strpos($screen->id, 'exactmetrics') === false) {
353
  return;
354
  }
355
 
486
  'date-js', // Google Analytics by Web Dorado
487
  );
488
 
489
+ if (!empty($styles)) {
490
+ foreach ($styles as $style) {
491
+ wp_dequeue_style($style); // Remove CSS file from MI screen
492
+ wp_deregister_style($style);
493
  }
494
  }
495
+ if (!empty($scripts)) {
496
+ foreach ($scripts as $script) {
497
+ wp_dequeue_script($script); // Remove JS file from MI screen
498
+ wp_deregister_script($script);
499
  }
500
  }
501
 
514
  );
515
 
516
  global $wp_styles;
517
+ foreach ($wp_styles->queue as $handle) {
518
+ if (strpos($wp_styles->registered[$handle]->src, 'wp-content') === false) {
519
  return;
520
  }
521
 
522
+ if (strpos($wp_styles->registered[$handle]->handle, 'exactmetrics') !== false) {
523
  return;
524
  }
525
 
526
+ foreach ($third_party as $partial) {
527
+ if (strpos($wp_styles->registered[$handle]->handle, $partial) !== false) {
528
+ wp_dequeue_style($handle); // Remove css file from MI screen
529
+ wp_deregister_style($handle);
530
  break;
531
+ } else if (strpos($wp_styles->registered[$handle]->src, $partial) !== false) {
532
+ wp_dequeue_style($handle); // Remove css file from MI screen
533
+ wp_deregister_style($handle);
534
  break;
535
  }
536
  }
537
  }
538
 
539
  global $wp_scripts;
540
+ foreach ($wp_scripts->queue as $handle) {
541
+ if (strpos($wp_scripts->registered[$handle]->src, 'wp-content') === false) {
542
  return;
543
  }
544
 
545
+ if (strpos($wp_scripts->registered[$handle]->handle, 'exactmetrics') !== false) {
546
  return;
547
  }
548
 
549
+ foreach ($third_party as $partial) {
550
+ if (strpos($wp_scripts->registered[$handle]->handle, $partial) !== false) {
551
+ wp_dequeue_script($handle); // Remove JS file from MI screen
552
+ wp_deregister_script($handle);
553
  break;
554
+ } else if (strpos($wp_scripts->registered[$handle]->src, $partial) !== false) {
555
+ wp_dequeue_script($handle); // Remove JS file from MI screen
556
+ wp_deregister_script($handle);
557
  break;
558
  }
559
  }
561
 
562
  // Remove actions from themes that are not following best practices and break the admin doing so
563
  // Theme: Newspaper by tagDiv
564
+ remove_action('admin_enqueue_scripts', 'load_wp_admin_js');
565
+ remove_action('admin_enqueue_scripts', 'load_wp_admin_css');
566
+ remove_action('admin_print_scripts-widgets.php', 'td_on_admin_print_scripts_farbtastic');
567
+ remove_action('admin_print_styles-widgets.php', 'td_on_admin_print_styles_farbtastic');
568
+ remove_action('admin_print_footer_scripts', 'check_if_media_uploads_is_loaded', 9999);
569
+ remove_action('print_media_templates', 'td_custom_gallery_settings_hook');
570
+ remove_action('print_media_templates', 'td_change_backbone_js_hook');
571
+ remove_action('admin_head', 'tdc_on_admin_head'); // TagDiv Composer Fix
572
+ remove_action('print_media_templates', 'us_media_templates'); // Impreza Theme Fix
573
+ remove_action('admin_footer', 'gt3pg_add_gallery_template'); // GT3 Photo & Video Gallery By GT3 Themes Plugin Fix
574
  // Plugin WP Booklist:
575
+ remove_action('admin_footer', 'wpbooklist_jre_dismiss_prem_notice_forever_action_javascript');
576
+ remove_action('admin_footer', 'wpbooklist_dashboard_add_book_action_javascript');
577
+ remove_action('admin_footer', 'wpbooklist_edit_book_show_form_action_javascript');
578
+ remove_action('admin_footer', 'wpbooklist_show_book_in_colorbox_action_javascript');
579
+ remove_action('admin_footer', 'wpbooklist_new_lib_shortcode_action_javascript');
580
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_library_display_options_action_javascript');
581
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_post_display_options_action_javascript');
582
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_page_display_options_action_javascript');
583
+ remove_action('admin_footer', 'wpbooklist_update_display_options_action_javascript');
584
+ remove_action('admin_footer', 'wpbooklist_edit_book_pagination_action_javascript');
585
+ remove_action('admin_footer', 'wpbooklist_edit_book_switch_lib_action_javascript');
586
+ remove_action('admin_footer', 'wpbooklist_edit_book_search_action_javascript');
587
+ remove_action('admin_footer', 'wpbooklist_edit_book_actual_action_javascript');
588
+ remove_action('admin_footer', 'wpbooklist_delete_book_action_javascript');
589
+ remove_action('admin_footer', 'wpbooklist_user_apis_action_javascript');
590
+ remove_action('admin_footer', 'wpbooklist_upload_new_stylepak_action_javascript');
591
+ remove_action('admin_footer', 'wpbooklist_upload_new_post_template_action_javascript');
592
+ remove_action('admin_footer', 'wpbooklist_upload_new_page_template_action_javascript');
593
+ remove_action('admin_footer', 'wpbooklist_create_db_library_backup_action_javascript');
594
+ remove_action('admin_footer', 'wpbooklist_restore_db_library_backup_action_javascript');
595
+ remove_action('admin_footer', 'wpbooklist_create_csv_action_javascript');
596
+ remove_action('admin_footer', 'wpbooklist_amazon_localization_action_javascript');
597
+ remove_action('admin_footer', 'wpbooklist_delete_book_bulk_action_javascript');
598
+ remove_action('admin_footer', 'wpbooklist_reorder_action_javascript');
599
+ remove_action('admin_footer', 'wpbooklist_exit_results_action_javascript');
600
+ remove_action('admin_footer', 'wpbooklist_storytime_select_category_action_javascript');
601
+ remove_action('admin_footer', 'wpbooklist_storytime_get_story_action_javascript');
602
+ remove_action('admin_footer', 'wpbooklist_storytime_expand_browse_action_javascript');
603
+ remove_action('admin_footer', 'wpbooklist_storytime_save_settings_action_javascript');
604
+ remove_action('admin_footer', 'wpbooklist_delete_story_action_javascript');
605
  }
606
 
607
+ add_action('admin_enqueue_scripts', 'exactmetrics_remove_conflicting_asset_files', 9999);
608
 
609
  /**
610
  * Remove non-MI notices from MI page.
614
  * @access public
615
  *
616
  */
617
+ function hide_non_exactmetrics_warnings()
618
+ {
619
  // Bail if we're not on a ExactMetrics screen.
620
+ if (empty($_REQUEST['page']) || strpos($_REQUEST['page'], 'exactmetrics') === false) {
621
  return;
622
  }
623
 
624
  global $wp_filter;
625
+ if (!empty($wp_filter['user_admin_notices']->callbacks) && is_array($wp_filter['user_admin_notices']->callbacks)) {
626
+ foreach ($wp_filter['user_admin_notices']->callbacks as $priority => $hooks) {
627
+ foreach ($hooks as $name => $arr) {
628
+ if (is_object($arr['function']) && $arr['function'] instanceof Closure) {
629
+ unset($wp_filter['user_admin_notices']->callbacks[$priority][$name]);
630
  continue;
631
  }
632
+ if (!empty($arr['function'][0]) && is_object($arr['function'][0]) && strpos(strtolower(get_class($arr['function'][0])), 'exactmetrics') !== false) {
633
  continue;
634
  }
635
+ if (!empty($name) && strpos($name, 'exactmetrics') === false) {
636
+ unset($wp_filter['user_admin_notices']->callbacks[$priority][$name]);
637
  }
638
  }
639
  }
640
  }
641
 
642
+ if (!empty($wp_filter['admin_notices']->callbacks) && is_array($wp_filter['admin_notices']->callbacks)) {
643
+ foreach ($wp_filter['admin_notices']->callbacks as $priority => $hooks) {
644
+ foreach ($hooks as $name => $arr) {
645
+ if (is_object($arr['function']) && $arr['function'] instanceof Closure) {
646
+ unset($wp_filter['admin_notices']->callbacks[$priority][$name]);
647
  continue;
648
  }
649
+ if (!empty($arr['function'][0]) && is_object($arr['function'][0]) && strpos(strtolower(get_class($arr['function'][0])), 'exactmetrics') !== false) {
650
  continue;
651
  }
652
+ if (!empty($name) && strpos($name, 'exactmetrics') === false) {
653
+ unset($wp_filter['admin_notices']->callbacks[$priority][$name]);
654
  }
655
  }
656
  }
657
  }
658
 
659
+ if (!empty($wp_filter['all_admin_notices']->callbacks) && is_array($wp_filter['all_admin_notices']->callbacks)) {
660
+ foreach ($wp_filter['all_admin_notices']->callbacks as $priority => $hooks) {
661
+ foreach ($hooks as $name => $arr) {
662
+ if (is_object($arr['function']) && $arr['function'] instanceof Closure) {
663
+ unset($wp_filter['all_admin_notices']->callbacks[$priority][$name]);
664
  continue;
665
  }
666
+ if (!empty($arr['function'][0]) && is_object($arr['function'][0]) && strpos(strtolower(get_class($arr['function'][0])), 'exactmetrics') !== false) {
667
  continue;
668
  }
669
+ if (!empty($name) && strpos($name, 'exactmetrics') === false) {
670
+ unset($wp_filter['all_admin_notices']->callbacks[$priority][$name]);
671
  }
672
  }
673
  }
674
  }
675
  }
676
 
677
+ add_action('admin_print_scripts', 'hide_non_exactmetrics_warnings');
678
+ add_action('admin_head', 'hide_non_exactmetrics_warnings', PHP_INT_MAX);
679
 
680
  /**
681
  * Called whenever an upgrade button / link is displayed in Lite, this function will
696
  * @access public
697
  *
698
  */
699
+ function exactmetrics_get_upgrade_link($medium = '', $campaign = '', $url = '')
700
+ {
701
+ $url = exactmetrics_get_url($medium, $campaign, $url, false);
702
 
703
+ if (exactmetrics_is_pro_version()) {
704
+ return esc_url($url);
705
  }
706
 
707
  // Get the ShareASale ID
708
  $shareasale_id = exactmetrics_get_shareasale_id();
709
 
710
  // If we have a shareasale ID return the shareasale url
711
+ if (!empty($shareasale_id)) {
712
+ $shareasale_id = absint($shareasale_id);
713
 
714
+ return esc_url(exactmetrics_get_shareasale_url($shareasale_id, $url));
715
  } else {
716
+ return esc_url($url);
717
  }
718
  }
719
 
720
+ function exactmetrics_get_url($medium = '', $campaign = '', $url = '', $escape = true)
721
+ {
722
  // Setup Campaign variables
723
  $source = exactmetrics_is_pro_version() ? 'proplugin' : 'liteplugin';
724
+ $medium = !empty($medium) ? $medium : 'defaultmedium';
725
+ $campaign = !empty($campaign) ? $campaign : 'defaultcampaign';
726
  $content = EXACTMETRICS_VERSION;
727
  $default_url = exactmetrics_is_pro_version() ? '' : 'lite/';
728
+ $url = !empty($url) ? $url : 'https://www.exactmetrics.com/' . $default_url;
729
 
730
  // Put together redirect URL
731
  $url = add_query_arg(
732
  array(
733
  'utm_source' => $source, // Pro/Lite Plugin
734
+ 'utm_medium' => sanitize_key($medium), // Area of ExactMetrics (example Reports)
735
+ 'utm_campaign' => sanitize_key($campaign), // Which link (example eCommerce Report)
736
  'utm_content' => $content, // Version number of MI
737
  ),
738
+ trailingslashit($url)
739
  );
740
 
741
+ if ($escape) {
742
+ return esc_url($url);
743
  } else {
744
  return $url;
745
  }
746
  }
747
 
748
+ function exactmetrics_settings_ublock_error_js()
749
+ {
750
  echo "<script type='text/javascript'>\n";
751
  echo "jQuery( document ).ready( function( $ ) {
752
  if ( window.uorigindetected == null){
761
  echo "\n</script>";
762
  }
763
 
764
+ function exactmetrics_ublock_notice()
765
+ {
766
  ob_start(); ?>
767
  <div id="exactmetrics-ublock-origin-error" class="error inline" style="display:none;">
768
  <?php
769
  // Translators: Placeholders are for links to fix the issue.
770
+ echo sprintf(esc_html__('ExactMetrics has detected that it\'s files are being blocked. This is usually caused by a adblock browser plugin (particularly uBlock Origin), or a conflicting WordPress theme or plugin. This issue only affects the admin side of ExactMetrics. To solve this, ensure ExactMetrics is whitelisted for your website URL in any adblock browser plugin you use. For step by step directions on how to do this, %1$sclick here%2$s. If this doesn\'t solve the issue (rare), send us a ticket %3$shere%2$s and we\'ll be happy to help diagnose the issue.', 'google-analytics-dashboard-for-wp'), '<a href="https://exactmetrics.com/docs/exactmetrics-asset-files-blocked/" target="_blank" rel="noopener noreferrer" referrer="no-referrer">', '</a>', '<a href="https://exactmetrics.com/contact/" target="_blank" rel="noopener noreferrer" referrer="no-referrer">');
771
  ?>
772
  </div>
773
+ <?php
774
  return ob_get_clean();
775
  }
776
 
777
  /**
778
  * Some themes/plugins don't add proper checks and load JS code in all admin pages causing conflicts.
779
  */
780
+ function exactmetrics_remove_unnecessary_footer_hooks()
781
+ {
782
 
783
  $screen = get_current_screen();
784
  // Bail if we're not on a ExactMetrics screen.
785
+ if (empty($screen->id) || strpos($screen->id, 'exactmetrics') === false) {
786
  return;
787
  }
788
 
789
  // Remove js code added by Newspaper theme - version 8.8.0.
790
+ remove_action('print_media_templates', 'td_custom_gallery_settings_hook');
791
+ remove_action('print_media_templates', 'td_change_backbone_js_hook');
792
  // Remove js code added by the Brooklyn theme - version 4.5.3.1.
793
+ remove_action('print_media_templates', 'ut_create_gallery_options');
794
 
795
  // Remove js code added by WordPress Book List Plugin - version 5.8.1.
796
+ remove_action('admin_footer', 'wpbooklist_jre_dismiss_prem_notice_forever_action_javascript');
797
+ remove_action('admin_footer', 'wpbooklist_dashboard_add_book_action_javascript');
798
+ remove_action('admin_footer', 'wpbooklist_edit_book_show_form_action_javascript');
799
+ remove_action('admin_footer', 'wpbooklist_show_book_in_colorbox_action_javascript');
800
+ remove_action('admin_footer', 'wpbooklist_new_lib_shortcode_action_javascript');
801
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_library_display_options_action_javascript');
802
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_post_display_options_action_javascript');
803
+ remove_action('admin_footer', 'wpbooklist_dashboard_save_page_display_options_action_javascript');
804
+ remove_action('admin_footer', 'wpbooklist_update_display_options_action_javascript');
805
+ remove_action('admin_footer', 'wpbooklist_edit_book_pagination_action_javascript');
806
+ remove_action('admin_footer', 'wpbooklist_edit_book_switch_lib_action_javascript');
807
+ remove_action('admin_footer', 'wpbooklist_edit_book_search_action_javascript');
808
+ remove_action('admin_footer', 'wpbooklist_edit_book_actual_action_javascript');
809
+ remove_action('admin_footer', 'wpbooklist_delete_book_action_javascript');
810
+ remove_action('admin_footer', 'wpbooklist_user_apis_action_javascript');
811
+ remove_action('admin_footer', 'wpbooklist_upload_new_stylepak_action_javascript');
812
+ remove_action('admin_footer', 'wpbooklist_upload_new_post_template_action_javascript');
813
+ remove_action('admin_footer', 'wpbooklist_upload_new_page_template_action_javascript');
814
+ remove_action('admin_footer', 'wpbooklist_create_db_library_backup_action_javascript');
815
+ remove_action('admin_footer', 'wpbooklist_restore_db_library_backup_action_javascript');
816
+ remove_action('admin_footer', 'wpbooklist_create_csv_action_javascript');
817
+ remove_action('admin_footer', 'wpbooklist_amazon_localization_action_javascript');
818
+ remove_action('admin_footer', 'wpbooklist_delete_book_bulk_action_javascript');
819
+ remove_action('admin_footer', 'wpbooklist_reorder_action_javascript');
820
+ remove_action('admin_footer', 'wpbooklist_exit_results_action_javascript');
821
+ remove_action('admin_footer', 'wpbooklist_storytime_select_category_action_javascript');
822
+ remove_action('admin_footer', 'wpbooklist_storytime_get_story_action_javascript');
823
+ remove_action('admin_footer', 'wpbooklist_storytime_expand_browse_action_javascript');
824
+ remove_action('admin_footer', 'wpbooklist_storytime_save_settings_action_javascript');
825
+ remove_action('admin_footer', 'wpbooklist_delete_story_action_javascript');
826
  }
827
 
828
+ add_action('admin_head', 'exactmetrics_remove_unnecessary_footer_hooks', 15);
829
 
830
 
831
  /**
837
  *
838
  * @return string
839
  */
840
+ function exactmetrics_prevent_version_number_removal($src)
841
+ {
842
  // Apply this only to admin-side scripts.
843
+ if (!is_admin()) {
844
  return $src;
845
  }
846
 
847
  // Make sure are only changing our scripts and only if the version number is missing.
848
+ if ((false !== strpos($src, 'exactmetrics') || false !== strpos($src, 'google-analytics-dashboard-for-wp') || false !== strpos($src, 'exactmetrics-premium')) && false === strpos($src, '?ver')) {
849
+ $src = add_query_arg('ver', exactmetrics_get_asset_version(), $src);
850
  }
851
 
852
  return $src;
853
  }
854
 
855
+ add_filter('script_loader_src', 'exactmetrics_prevent_version_number_removal', 9999, 1);
856
+ add_filter('style_loader_src', 'exactmetrics_prevent_version_number_removal', 9999, 1);
857
 
858
  /**
859
  * Data used for the Vue scripts to display old PHP and WP versions warnings.
860
  */
861
+ function exactmetrics_get_php_wp_version_warning_data()
862
+ {
863
  global $wp_version;
864
 
865
+ $compatible_php_version = apply_filters('exactmetrics_compatible_php_version', false);
866
+ $compatible_wp_version = apply_filters('exactmetrics_compatible_wp_version', false);
867
 
868
  return array(
869
  'php_version' => phpversion(),
870
+ 'php_version_below_54' => apply_filters('exactmetrics_temporarily_hide_php_under_56_upgrade_warnings', version_compare(phpversion(), $compatible_php_version['warning'], '<')),
871
+ 'php_version_below_56' => apply_filters('exactmetrics_temporarily_hide_php_56_upgrade_warnings', version_compare(phpversion(), $compatible_php_version['warning'], '>=') && version_compare(phpversion(), $compatible_php_version['recommended'], '<')),
872
+ 'php_update_link' => exactmetrics_get_url('settings-notice', 'settings-page', 'https://www.exactmetrics.com/docs/update-php/'),
873
  'wp_version' => $wp_version,
874
+ 'wp_version_below_46' => version_compare($wp_version, $compatible_wp_version['warning'], '<'),
875
+ 'wp_version_below_49' => version_compare($wp_version, $compatible_wp_version['recommended'], '<'),
876
+ 'wp_update_link' => exactmetrics_get_url('settings-notice', 'settings-page', 'https://www.exactmetrics.com/docs/update-wordpress/'),
877
  );
878
  }
879
 
880
  /**
881
  * Check WP and PHP version and add contextual notifications for upgrades.
882
  */
883
+ function exactmetrics_maybe_add_wp_php_version_notification()
884
+ {
885
  global $wp_version;
886
 
887
  $icon = '<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="16" cy="16" r="16" fill="#FAD1D1"/><path d="M17.3634 19.0714C17.792 19.4821 18.0063 19.9821 18.0063 20.5714C18.0063 21.1607 17.792 21.6607 17.3634 22.0714C16.9527 22.5 16.4527 22.7143 15.8634 22.7143C15.2742 22.7143 14.7652 22.5 14.3367 22.0714C13.9259 21.6607 13.7206 21.1607 13.7206 20.5714C13.7206 19.9821 13.9259 19.4821 14.3367 19.0714C14.7652 18.6429 15.2742 18.4286 15.8634 18.4286C16.4527 18.4286 16.9527 18.6429 17.3634 19.0714ZM13.9617 9.66964C13.9617 9.49107 14.0242 9.33929 14.1492 9.21429C14.2742 9.07143 14.4259 9 14.6045 9H17.1224C17.3009 9 17.4527 9.07143 17.5777 9.21429C17.7027 9.33929 17.7652 9.49107 17.7652 9.66964L17.3902 16.9554C17.3902 17.1339 17.3277 17.2857 17.2027 17.4107C17.0777 17.5179 16.9259 17.5714 16.7474 17.5714H14.9795C14.8009 17.5714 14.6492 17.5179 14.5242 17.4107C14.3992 17.2857 14.3367 17.1339 14.3367 16.9554L13.9617 9.66964Z" fill="#EB5757"/></svg>';
888
+ $needs_php_warning = version_compare(phpversion(), '5.6', '<');
889
+ $needs_wp_warning = version_compare($wp_version, '4.9', '<');
890
 
891
+ if ($needs_php_warning) {
892
  $notification['id'] = 'upgrade_php_56_notification';
893
+ $notification['title'] = __('ACTION REQUIRED: Your PHP version is putting your site at risk!', 'google-analytics-dashboard-for-wp');
894
+ if ($needs_wp_warning) {
895
+ $notification['title'] = __('ACTION REQUIRED: Speed your website up 400% with a single email!', 'google-analytics-dashboard-for-wp');
896
  }
897
 
898
+ $php_url = exactmetrics_get_url('notifications', 'upgrade-php', 'https://www.exactmetrics.com/docs/update-php');
899
 
900
+ $notification['type'] = array('basic', 'lite', 'master', 'plus', 'pro');
901
  // Translators: Placeholder is for the current PHP version.
902
+ $notification['content'] = sprintf(esc_html__('In the next major release of ExactMetrics we are planning to remove support for the version of PHP you are using (%s). This insecure version is no longer supported by WordPress itself, so you are already missing out on the latest features of WordPress along with critical updates for security and performance (modern PHP versions make websites much faster).', 'google-analytics-dashboard-for-wp'), phpversion()) . "\n\n";
903
 
904
  // Translators: Placeholders add a link to an article.
905
+ $notification['content'] .= sprintf(esc_html__('To ensure ExactMetrics and other plugins on your site continue to function properly, and avoid putting your site at risk, please take a few minutes to ask your website hosting provider to upgrade the version of PHP to a modern PHP version (7.2 or newer). We provide helpful templates for how to ask them %1$shere%2$s.', 'google-analytics-dashboard-for-wp'), '<a target="_blank" href="' . $php_url . '">', '</a>') . "\n\n";
906
+ $notification['content'] .= esc_html__('Upgrading your PHP version will make sure you are able to continue using WordPress without issues in the future, keep your site secure, and will also make your website up to 400% faster!', 'google-analytics-dashboard-for-wp');
907
 
908
  $notification['icon'] = $icon;
909
  $notification['btns'] = array(
910
  'learn_more' => array(
911
  'url' => $php_url,
912
+ 'text' => esc_html__('Learn More', 'google-analytics-dashboard-for-wp'),
913
  ),
914
  );
915
 
916
  // Add the notification.
917
+ ExactMetrics()->notifications->add($notification);
918
  }
919
 
920
+ if ($needs_wp_warning) {
921
  $isitwp_url = 'https://www.isitwp.com/upgrading-wordpress-is-easier-than-you-think/?utm_source=exactmetrics&utm_medium=notifications&utm_campaign=upgradewp';
922
+ $wpbeginner_url = exactmetrics_get_url('notifications', 'pgradewp', 'https://www.wpbeginner.com/beginners-guide/why-you-should-always-use-the-latest-version-of-wordpress/');
923
 
924
  $notification['id'] = 'upgrade_wp_49_notification';
925
+ $notification['title'] = __('ACTION REQUIRED: Your WordPress version is putting your site at risk!', 'google-analytics-dashboard-for-wp');
926
+ $notification['type'] = array('basic', 'lite', 'master', 'plus', 'pro');
927
  // Translators: Placeholder is for the current WordPress version.
928
+ $notification['content'] = sprintf(esc_html__('In the next major release of ExactMetrics we are planning to remove support for the version of WordPress you are using (version %s). This version is several years out of date, and most plugins do not support this version anymore, so you could be missing out on critical updates for performance and security already!', 'google-analytics-dashboard-for-wp'), $wp_version) . "\n\n";
929
 
930
+ $notification['content'] .= esc_html__('The good news: updating WordPress has never been easier and only takes a few moments.', 'google-analytics-dashboard-for-wp');
931
  // Translators: Placeholders add links to articles.
932
+ $notification['content'] .= sprintf(esc_html__('To update, we recommend following this %1$sstep by step guide for updating WordPress%2$s from IsItWP and afterwards check out %3$sWhy You Should Always Use the Latest Version of WordPress%4$s on WPBeginner.', 'google-analytics-dashboard-for-wp'), '<a target="_blank" href="' . $isitwp_url . '">', '</a>', '<a target="_blank" href="' . $wpbeginner_url . '">', '</a>') . "\n\n";
933
 
934
  $notification['icon'] = $icon;
935
  $notification['btns'] = array(
936
  'learn_more' => array(
937
  'url' => $isitwp_url,
938
+ 'text' => esc_html__('Learn More', 'google-analytics-dashboard-for-wp'),
939
  ),
940
  );
941
 
942
  // Add the notification.
943
+ ExactMetrics()->notifications->add($notification);
944
  }
 
945
  }
946
 
947
+ add_action('admin_init', 'exactmetrics_maybe_add_wp_php_version_notification');
948
 
949
  /**
950
  * Add notification for Year In Review report for year 2021.
953
  * @since 7.13.2
954
  *
955
  */
956
+ function exactmetrics_year_in_review_notification()
957
+ {
958
 
959
  // Check if dates are between Jan 1st 2022 & 13th Jan 2022.
960
+ if (exactmetrics_date_is_between('2022-01-01', '2022-01-14')) {
961
 
962
  $notification['id'] = 'exactmetrics_notification_year_in_review';
963
+ $notification['type'] = array('basic', 'lite', 'master', 'plus', 'pro');
964
  $notification['start'] = '2022-01-01';
965
  $notification['end'] = '2022-01-14';
966
+ $notification['title'] = esc_html__('View 2021 Year in Review report!', 'google-analytics-dashboard-for-wp');
967
+ $notification['content'] = esc_html__('See how your website performed this year and find tips along the way to help grow even more in 2022!', 'google-analytics-dashboard-for-wp');
968
  $notification['btns'] = array(
969
  'learn_more' => array(
970
+ 'url' => esc_url(admin_url('admin.php?page=exactmetrics_reports#/year-in-review')),
971
+ 'text' => esc_html__('Learn More', 'google-analytics-dashboard-for-wp'),
972
  ),
973
  );
974
 
975
  // Add the notification.
976
+ ExactMetrics()->notifications->add($notification);
977
  }
978
  }
979
 
980
+ add_action('admin_init', 'exactmetrics_year_in_review_notification');
981
+
982
+
983
+ /**
984
+ * Dynamic dates for Year In Review report
985
+ */
986
+ function exactmetrics_yearinreview_dates()
987
+ {
988
+ $current_date = date('Y-m-d');
989
+ $current_year = date('Y');
990
+ $report_year = $current_year - 1;
991
+ $show_report = false;
992
+ $next_year = (string) $report_year + 1;
993
+ $show_report_start_date = date('Y-m-d', strtotime("Jan 01, {$current_year}"));
994
+ $show_report_end_date = date('Y-m-d', strtotime("Jan 14, {$current_year}"));
995
+ if (($current_date >= $show_report_start_date) && ($current_date <= $show_report_end_date)) {
996
+ $show_report = true;
997
+ }
998
+ return [
999
+ 'report_year' => $report_year,
1000
+ 'next_year' => $next_year,
1001
+ 'show_report' => $show_report,
1002
+ ];
1003
+ }
includes/admin/licensing/autoupdate.php CHANGED
@@ -150,7 +150,7 @@ function exactmetrics_automatic_updates( $update, $item ) {
150
  $current_major = exactmetrics_get_major_version( $current_version );
151
  $new_major = exactmetrics_get_major_version( $new_version );
152
 
153
- // If the opt in update allows major updates but there is no major version update, return early.
154
  if ( version_compare( $current_major, $new_major, '<' ) ) {
155
  if ( $automatic_updates === 'all' ) {
156
  return true;
@@ -159,7 +159,7 @@ function exactmetrics_automatic_updates( $update, $item ) {
159
  }
160
  }
161
 
162
- // If the opt in update allows minor updates but there is no minor version update, return early.
163
  if ( version_compare( $current_major, $new_major, '==' ) && version_compare( $current_version, $new_version, '<' ) ) {
164
  if ( $automatic_updates === 'all' || $automatic_updates === 'minor' ) {
165
  return true;
@@ -168,7 +168,7 @@ function exactmetrics_automatic_updates( $update, $item ) {
168
  }
169
  }
170
 
171
- // All our checks have passed - this plugin can be updated!
172
  return $update;
173
  }
174
 
150
  $current_major = exactmetrics_get_major_version( $current_version );
151
  $new_major = exactmetrics_get_major_version( $new_version );
152
 
153
+ // If this is a major update, and they have opted in to all updates, then autoupdate
154
  if ( version_compare( $current_major, $new_major, '<' ) ) {
155
  if ( $automatic_updates === 'all' ) {
156
  return true;
159
  }
160
  }
161
 
162
+ // If this is a minor update, and they have opted in to all updates or minor updates, then autoupdate
163
  if ( version_compare( $current_major, $new_major, '==' ) && version_compare( $current_version, $new_version, '<' ) ) {
164
  if ( $automatic_updates === 'all' || $automatic_updates === 'minor' ) {
165
  return true;
168
  }
169
  }
170
 
171
+ // Otherwise stick with default value
172
  return $update;
173
  }
174
 
includes/admin/reports/abstract-report.php CHANGED
@@ -177,8 +177,10 @@ class ExactMetrics_Report {
177
  }
178
 
179
  if ( ( $start !== $this->default_start_date() || $end !== $this->default_end_date() ) && ! exactmetrics_is_pro_version() ) {
180
- $start = $this->default_start_date();
181
- $end = $this->default_end_date();
 
 
182
  // return array(
183
  // 'success' => false,
184
  // 'error' => __( 'Please upgrade to ExactMetrics Pro to use custom date ranges.', 'google-analytics-dashboard-for-wp' ),
177
  }
178
 
179
  if ( ( $start !== $this->default_start_date() || $end !== $this->default_end_date() ) && ! exactmetrics_is_pro_version() ) {
180
+ // On lite version, the date range is blocked with upgrade to pro message and this conflicts with getting YIR report.
181
+ // $start = $this->default_start_date();
182
+ // $end = $this->default_end_date();
183
+
184
  // return array(
185
  // 'success' => false,
186
  // 'error' => __( 'Please upgrade to ExactMetrics Pro to use custom date ranges.', 'google-analytics-dashboard-for-wp' ),
includes/frontend/frontend.php CHANGED
@@ -117,7 +117,7 @@ add_filter( 'the_permalink_rss', 'exactmetrics_rss_link_tagger', 99 );
117
  * Checks used for loading the frontend scripts/admin bar button.
118
  */
119
  function exactmetrics_prevent_loading_frontend_reports() {
120
- return ! current_user_can( 'exactmetrics_view_dashboard' ) || exactmetrics_get_option( 'hide_admin_bar_reports' ) || function_exists( 'exactmetrics_is_reports_page' ) && exactmetrics_is_reports_page() || function_exists( 'exactmetrics_is_settings_page' ) && exactmetrics_is_settings_page();
121
  }
122
 
123
  /**
117
  * Checks used for loading the frontend scripts/admin bar button.
118
  */
119
  function exactmetrics_prevent_loading_frontend_reports() {
120
+ return ! current_user_can( 'exactmetrics_view_dashboard' ) || exactmetrics_get_option( 'hide_admin_bar_reports' );
121
  }
122
 
123
  /**
includes/helpers.php CHANGED
@@ -1257,7 +1257,7 @@ function exactmetrics_get_page_title() {
1257
  } elseif ( is_tax() ) {
1258
  $tax = get_taxonomy( get_queried_object()->taxonomy );
1259
  /* translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: Current taxonomy term */
1260
- $title = sprintf( __( '%1$s: %2$s' ), $tax->labels->singular_name, single_term_title( '', false ) );
1261
  }
1262
 
1263
  return $title;
1257
  } elseif ( is_tax() ) {
1258
  $tax = get_taxonomy( get_queried_object()->taxonomy );
1259
  /* translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: Current taxonomy term */
1260
+ $title = sprintf( '%1$s: %2$s', $tax->labels->singular_name, single_term_title( '', false ) );
1261
  }
1262
 
1263
  return $title;
languages/google-analytics-dashboard-for-wp.pot CHANGED
@@ -2,20 +2,20 @@
2
  # This file is distributed under the same license as the ExactMetrics Pro plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: ExactMetrics Pro 7.10.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/monsterinsights-temp\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-11-09T15:13:25+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
- "X-Generator: WP-CLI 2.6.0\n"
15
  "X-Domain: google-analytics-dashboard-for-wp\n"
16
 
17
  #. Plugin Name of the plugin
18
- #: languages/vue.php:3493
19
  msgid "ExactMetrics Pro"
20
  msgstr ""
21
 
@@ -113,7 +113,7 @@ msgstr ""
113
  #: includes/admin/admin.php:34
114
  #: includes/admin/admin.php:42
115
  #: includes/admin/admin.php:230
116
- #: languages/vue.php:538
117
  msgid "Settings"
118
  msgstr ""
119
 
@@ -129,7 +129,7 @@ msgstr ""
129
 
130
  #: includes/admin/admin.php:39
131
  #: includes/admin/admin.php:131
132
- #: languages/vue.php:2316
133
  msgid "Reports"
134
  msgstr ""
135
 
@@ -139,7 +139,7 @@ msgstr ""
139
 
140
  #: includes/admin/admin.php:51
141
  #: languages/gutenberg.php:83
142
- #: languages/vue.php:997
143
  msgid "Popular Posts"
144
  msgstr ""
145
 
@@ -173,7 +173,7 @@ msgstr ""
173
 
174
  #: includes/admin/admin.php:71
175
  #: includes/admin/admin.php:147
176
- #: languages/vue.php:154
177
  msgid "About Us"
178
  msgstr ""
179
 
@@ -192,7 +192,7 @@ msgstr ""
192
  #: includes/admin/admin.php:76
193
  #: includes/admin/notifications/notification-upgrade-to-pro-high-traffic.php:41
194
  #: includes/admin/notifications/notification-upgrade-to-pro.php:33
195
- #: languages/vue.php:1045
196
  msgid "Upgrade to Pro"
197
  msgstr ""
198
 
@@ -220,7 +220,7 @@ msgstr ""
220
 
221
  #: includes/admin/admin.php:220
222
  #: includes/admin/admin.php:223
223
- #: languages/vue.php:1021
224
  msgid "Support"
225
  msgstr ""
226
 
@@ -231,8 +231,8 @@ msgstr ""
231
  #: includes/admin/notifications/notification-upgrade-for-events-reporting.php:31
232
  #: includes/admin/notifications/notification-upgrade-for-google-optimize.php:32
233
  #: includes/admin/notifications/notification-upgrade-for-post-templates.php:31
234
- #: includes/admin/reports/abstract-report.php:458
235
- #: languages/vue.php:1153
236
  msgid "Get ExactMetrics Pro"
237
  msgstr ""
238
 
@@ -242,31 +242,31 @@ msgid "Please rate %1$sExactMetrics%2$s on %3$s %4$sWordPress.org%5$s to help us
242
  msgstr ""
243
 
244
  #: includes/admin/admin.php:335
245
- #: languages/vue.php:1144
246
  msgid "Please Setup Website Analytics to See Audience Insights"
247
  msgstr ""
248
 
249
  #: includes/admin/admin.php:336
250
- #: languages/vue.php:1150
251
  msgid "Connect ExactMetrics and Setup Website Analytics"
252
  msgstr ""
253
 
254
  #: includes/admin/admin.php:338
255
- #: includes/admin/common.php:896
256
- #: includes/admin/common.php:922
257
- #: includes/admin/common.php:955
258
  #: includes/admin/notifications/notification-audience.php:45
259
  #: includes/admin/notifications/notification-bounce-rate.php:47
260
  #: includes/admin/notifications/notification-headline-analyzer.php:39
261
  #: includes/admin/notifications/notification-mobile-device-low-traffic.php:41
262
  #: includes/admin/notifications/notification-returning-visitors.php:43
263
  #: includes/admin/notifications/notification-traffic-dropping.php:43
264
- #: languages/vue.php:329
265
  msgid "Learn More"
266
  msgstr ""
267
 
268
  #: includes/admin/admin.php:340
269
- #: languages/vue.php:1147
270
  msgid "ExactMetrics, WordPress analytics plugin, helps you connect your website with Google Analytics, so you can see how people find and use your website. Over 3 million website owners use ExactMetrics to see the stats that matter and grow their business."
271
  msgstr ""
272
 
@@ -277,18 +277,18 @@ msgstr ""
277
 
278
  #. Translators: Adds a link to the license renewal.
279
  #: includes/admin/admin.php:363
280
- #: languages/vue.php:477
281
  msgid "Your license key for ExactMetrics has expired. %1$sPlease click here to renew your license key.%2$s"
282
  msgstr ""
283
 
284
  #: includes/admin/admin.php:365
285
- #: languages/vue.php:480
286
  msgid "Your license key for ExactMetrics has been disabled. Please use a different key."
287
  msgstr ""
288
 
289
  #: includes/admin/admin.php:367
290
  #: includes/admin/api-auth.php:303
291
- #: languages/vue.php:483
292
  msgid "Your license key for ExactMetrics is invalid. The key no longer exists or the user associated with the key has been deleted. Please use a different key."
293
  msgstr ""
294
 
@@ -435,57 +435,57 @@ msgid "Oops! There has been an error while trying to deauthenticate. Please try
435
  msgstr ""
436
 
437
  #. Translators: Placeholders are for links to fix the issue.
438
- #: includes/admin/common.php:758
439
  msgid "ExactMetrics has detected that it's files are being blocked. This is usually caused by a adblock browser plugin (particularly uBlock Origin), or a conflicting WordPress theme or plugin. This issue only affects the admin side of ExactMetrics. To solve this, ensure ExactMetrics is whitelisted for your website URL in any adblock browser plugin you use. For step by step directions on how to do this, %1$sclick here%2$s. If this doesn't solve the issue (rare), send us a ticket %3$shere%2$s and we'll be happy to help diagnose the issue."
440
  msgstr ""
441
 
442
- #: includes/admin/common.php:877
443
  msgid "ACTION REQUIRED: Your PHP version is putting your site at risk!"
444
  msgstr ""
445
 
446
- #: includes/admin/common.php:879
447
  msgid "ACTION REQUIRED: Speed your website up 400% with a single email!"
448
  msgstr ""
449
 
450
  #. Translators: Placeholder is for the current PHP version.
451
- #: includes/admin/common.php:886
452
  msgid "In the next major release of ExactMetrics we are planning to remove support for the version of PHP you are using (%s). This insecure version is no longer supported by WordPress itself, so you are already missing out on the latest features of WordPress along with critical updates for security and performance (modern PHP versions make websites much faster)."
453
  msgstr ""
454
 
455
  #. Translators: Placeholders add a link to an article.
456
- #: includes/admin/common.php:889
457
  msgid "To ensure ExactMetrics and other plugins on your site continue to function properly, and avoid putting your site at risk, please take a few minutes to ask your website hosting provider to upgrade the version of PHP to a modern PHP version (7.2 or newer). We provide helpful templates for how to ask them %1$shere%2$s."
458
  msgstr ""
459
 
460
  #. Translators: Placeholders add a link to an article.
461
- #: includes/admin/common.php:890
462
  msgid "Upgrading your PHP version will make sure you are able to continue using WordPress without issues in the future, keep your site secure, and will also make your website up to 400% faster!"
463
  msgstr ""
464
 
465
- #: includes/admin/common.php:909
466
  msgid "ACTION REQUIRED: Your WordPress version is putting your site at risk!"
467
  msgstr ""
468
 
469
  #. Translators: Placeholder is for the current WordPress version.
470
- #: includes/admin/common.php:912
471
  msgid "In the next major release of ExactMetrics we are planning to remove support for the version of WordPress you are using (version %s). This version is several years out of date, and most plugins do not support this version anymore, so you could be missing out on critical updates for performance and security already!"
472
  msgstr ""
473
 
474
- #: includes/admin/common.php:914
475
  msgid "The good news: updating WordPress has never been easier and only takes a few moments."
476
  msgstr ""
477
 
478
  #. Translators: Placeholders add links to articles.
479
- #: includes/admin/common.php:916
480
  msgid "To update, we recommend following this %1$sstep by step guide for updating WordPress%2$s from IsItWP and afterwards check out %3$sWhy You Should Always Use the Latest Version of WordPress%4$s on WPBeginner."
481
  msgstr ""
482
 
483
- #: includes/admin/common.php:950
484
  msgid "View 2021 Year in Review report!"
485
  msgstr ""
486
 
487
- #: includes/admin/common.php:951
488
- #: languages/vue.php:3337
489
  msgid "See how your website performed this year and find tips along the way to help grow even more in 2022!"
490
  msgstr ""
491
 
@@ -506,7 +506,7 @@ msgstr ""
506
 
507
  #: includes/admin/exclude-page-metabox.php:144
508
  #: languages/gutenberg.php:354
509
- #: languages/vue.php:3129
510
  msgid "Upgrade"
511
  msgstr ""
512
 
@@ -703,7 +703,7 @@ msgstr ""
703
  #: includes/admin/notifications/notification-upgrade-for-custom-dimensions.php:25
704
  #: includes/admin/notifications/notification-upgrade-for-events-reporting.php:25
705
  #: includes/admin/notifications/notification-upgrade-for-post-templates.php:25
706
- #: languages/vue.php:1742
707
  #: lite/includes/admin/helpers.php:85
708
  msgid "Upgrade to ExactMetrics Pro"
709
  msgstr ""
@@ -738,8 +738,8 @@ msgstr ""
738
 
739
  #: includes/admin/notifications/notification-upgrade-for-form-conversion.php:31
740
  #: includes/admin/notifications/notification-upgrade-for-search-console.php:32
741
- #: includes/admin/reports/abstract-report.php:455
742
- #: languages/vue.php:222
743
  msgid "Upgrade Now"
744
  msgstr ""
745
 
@@ -860,64 +860,64 @@ msgstr ""
860
  msgid "Invalid date range."
861
  msgstr ""
862
 
863
- #: includes/admin/reports/abstract-report.php:299
864
  msgid "You must be properly authenticated with ExactMetrics to use our reports. Please use our %1$ssetup wizard%2$s to get started."
865
  msgstr ""
866
 
867
  #. Translators: Placeholders add the license level and the report title.
868
- #: includes/admin/reports/abstract-report.php:386
869
  msgid "You currently have a %1$s level license, but this report requires at least a %2$s level license to view the %3$s. Please upgrade to view this report."
870
  msgstr ""
871
 
872
- #: includes/admin/reports/abstract-report.php:400
873
  msgid "Ready to Get Analytics Super-Powers?"
874
  msgstr ""
875
 
876
- #: includes/admin/reports/abstract-report.php:402
877
  msgid "(And Crush Your Competition?)"
878
  msgstr ""
879
 
880
  #. Translators: License level and smiley.
881
- #: includes/admin/reports/abstract-report.php:408
882
  msgid "Hey there! It looks like you've got the %1$s license installed on your site. That's awesome! %s"
883
  msgstr ""
884
 
885
  #. Translators: Placeholders add the report title and license level.
886
- #: includes/admin/reports/abstract-report.php:415
887
  msgid "Do you want to access to %1$s reporting right now%2$s in your WordPress Dashboard? That comes with the %3$s level%4$s of our paid packages. You'll need to upgrade your license to get instant access."
888
  msgstr ""
889
 
890
  #. Translators: Placeholdes add links to the account area and a guide.
891
- #: includes/admin/reports/abstract-report.php:422
892
  msgid "It's easy! To upgrade, navigate to %1$sMy Account%2$s on ExactMetrics.com, go to the licenses tab, and click upgrade. We also have a %3$sstep by step guide%4$s with pictures of this process."
893
  msgstr ""
894
 
895
- #: includes/admin/reports/abstract-report.php:426
896
- #: includes/admin/reports/abstract-report.php:449
897
  msgid "If you have any questions, don't hesitate to reach out. We're here to help."
898
  msgstr ""
899
 
900
  #. Translators: Placeholder adds a smiley face.
901
- #: includes/admin/reports/abstract-report.php:431
902
  msgid "Hey there! %s It looks like you've got the free version of ExactMetrics installed on your site. That's awesome!"
903
  msgstr ""
904
 
905
  #. Translators: Placeholders make the text bold, add the license level and add a link to upgrade.
906
- #: includes/admin/reports/abstract-report.php:438
907
  msgid "Do you you want to access to %1$s reporting right now%2$s in your WordPress Dashboard? That comes with %3$s level%4$s of our paid packages. To get instant access, you'll want to buy a ExactMetrics license, which also gives you access to powerful addons, expanded reporting (including the ability to use custom date ranges), comprehensive tracking features (like UserID tracking) and access to our world-class support team."
908
  msgstr ""
909
 
910
  #. Translators: Placeholders make the text bold, add the license level and add a link to upgrade.
911
- #: includes/admin/reports/abstract-report.php:445
912
  msgid "Upgrading is easy! To upgrade, navigate to %1$ssour pricing page%2$s, purchase the required license, and then follow the %3$sinstructions in the email receipt%4$s to upgrade. It only takes a few minutes to unlock the most powerful, yet easy to use analytics tracking system for WordPress."
913
  msgstr ""
914
 
915
- #: includes/admin/reports/abstract-report.php:492
916
  msgid "Please ask your webmaster to enable this addon."
917
  msgstr ""
918
 
919
  #: includes/admin/reports/overview.php:34
920
- #: languages/vue.php:437
921
  msgid "Overview"
922
  msgstr ""
923
 
@@ -1018,7 +1018,7 @@ msgid "ThirstyAffiliates is a revolution in affiliate link management. Collect,
1018
  msgstr ""
1019
 
1020
  #: includes/admin/routes.php:535
1021
- #: languages/vue.php:3691
1022
  msgid "Start accepting one-time and recurring payments on your WordPress site without setting up a shopping cart. No code required."
1023
  msgstr ""
1024
 
@@ -1474,7 +1474,7 @@ msgid "Question"
1474
  msgstr ""
1475
 
1476
  #: includes/gutenberg/headline-tool/headline-tool.php:318
1477
- #: languages/vue.php:544
1478
  msgid "General"
1479
  msgstr ""
1480
 
@@ -4874,7 +4874,7 @@ msgid "Theme"
4874
  msgstr ""
4875
 
4876
  #: languages/gutenberg.php:77
4877
- #: languages/vue.php:529
4878
  msgid "Inline Popular Posts"
4879
  msgstr ""
4880
 
@@ -4911,7 +4911,7 @@ msgid "Comment Color"
4911
  msgstr ""
4912
 
4913
  #: languages/gutenberg.php:107
4914
- #: languages/vue.php:3085
4915
  msgid "Wide-Layout Options"
4916
  msgstr ""
4917
 
@@ -4920,12 +4920,12 @@ msgid "Choose Layout"
4920
  msgstr ""
4921
 
4922
  #: languages/gutenberg.php:113
4923
- #: languages/vue.php:3088
4924
  msgid "Adjust the number of columns displayed when the widget is placed in a wide container."
4925
  msgstr ""
4926
 
4927
  #: languages/gutenberg.php:116
4928
- #: languages/vue.php:3109
4929
  msgid "Post Count"
4930
  msgstr ""
4931
 
@@ -4934,7 +4934,7 @@ msgid "Number of posts displayed."
4934
  msgstr ""
4935
 
4936
  #: languages/gutenberg.php:122
4937
- #: languages/vue.php:3091
4938
  msgid "Display Options"
4939
  msgstr ""
4940
 
@@ -4947,7 +4947,7 @@ msgid "Display Widget Title"
4947
  msgstr ""
4948
 
4949
  #: languages/gutenberg.php:131
4950
- #: languages/vue.php:1958
4951
  msgid "Widget Title"
4952
  msgstr ""
4953
 
@@ -4956,17 +4956,17 @@ msgid "Only Show Posts From These Categories"
4956
  msgstr ""
4957
 
4958
  #: languages/gutenberg.php:137
4959
- #: languages/vue.php:3097
4960
  msgid "Display Author"
4961
  msgstr ""
4962
 
4963
  #: languages/gutenberg.php:140
4964
- #: languages/vue.php:3100
4965
  msgid "Display Date"
4966
  msgstr ""
4967
 
4968
  #: languages/gutenberg.php:143
4969
- #: languages/vue.php:3103
4970
  msgid "Display Comments"
4971
  msgstr ""
4972
 
@@ -5187,7 +5187,7 @@ msgid "Goal: "
5187
  msgstr ""
5188
 
5189
  #: languages/gutenberg.php:312
5190
- #: languages/vue.php:985
5191
  msgid "Headline Analyzer"
5192
  msgstr ""
5193
 
@@ -5200,13 +5200,13 @@ msgid "This headline analyzer is part of ExactMetrics to help you increase your
5200
  msgstr ""
5201
 
5202
  #: languages/gutenberg.php:321
5203
- #: languages/vue.php:106
5204
  #: lite/includes/admin/metaboxes.php:47
5205
  msgid "Last 30 days"
5206
  msgstr ""
5207
 
5208
  #: languages/gutenberg.php:324
5209
- #: languages/vue.php:94
5210
  #: lite/includes/admin/metaboxes.php:51
5211
  msgid "Yesterday"
5212
  msgstr ""
@@ -5268,2506 +5268,2506 @@ msgstr ""
5268
  msgid "Loading Settings"
5269
  msgstr ""
5270
 
5271
- #: languages/vue.php:14
5272
  msgid "Please wait..."
5273
  msgstr ""
5274
 
5275
- #: languages/vue.php:17
5276
  msgid "Saving Changes..."
5277
  msgstr ""
5278
 
5279
- #: languages/vue.php:20
5280
  msgid "Settings Updated"
5281
  msgstr ""
5282
 
5283
  #. Translators: Add a link to the onboarding wizard.
5284
- #: languages/vue.php:24
5285
  msgid "You need to %1$sconnect ExactMetrics%2$s first"
5286
  msgstr ""
5287
 
5288
- #: languages/vue.php:27
5289
  msgid "Could Not Save Changes"
5290
  msgstr ""
5291
 
5292
- #: languages/vue.php:30
5293
  msgid "Loading new report data"
5294
  msgstr ""
5295
 
5296
  #. Translators: Adds an arrow icon.
5297
- #: languages/vue.php:34
5298
  msgid "Continue %s"
5299
  msgstr ""
5300
 
5301
- #: languages/vue.php:37
5302
  msgid "Error"
5303
  msgstr ""
5304
 
5305
- #: languages/vue.php:40
5306
  msgid "Please try again."
5307
  msgstr ""
5308
 
5309
- #: languages/vue.php:43
5310
  msgid "Unlock the Publishers Report and Focus on the Content that Matters"
5311
  msgstr ""
5312
 
5313
- #: languages/vue.php:46
5314
  msgid "Stop guessing about what content your visitors are interested in. ExactMetrics Publisher Report shows you exactly which content gets the most visits, so you can analyze and optimize it for higher conversions."
5315
  msgstr ""
5316
 
5317
- #: languages/vue.php:49
5318
  msgid "Unlock the Publishers Report and Focus on the Content That Matters"
5319
  msgstr ""
5320
 
5321
- #: languages/vue.php:52
5322
  msgid "Stop guessing about what content your visitors are interested in. The Publisher Report shows you exactly which content gets the most traffic, so you can analyze and optimize it for higher conversions."
5323
  msgstr ""
5324
 
5325
- #: languages/vue.php:55
5326
  msgid "Unlock the eCommerce Report and See Your Important Store Metrics"
5327
  msgstr ""
5328
 
5329
- #: languages/vue.php:58
5330
  msgid "Increase your sales & revenue with insights. ExactMetrics answers all your top eCommerce questions using metrics like total revenue, conversion rate, average order value, top products, top referral sources and more."
5331
  msgstr ""
5332
 
5333
- #: languages/vue.php:61
5334
  msgid "Unlock the Dimensions Report and Track Your Own Custom Data"
5335
  msgstr ""
5336
 
5337
- #: languages/vue.php:64
5338
  msgid "Decide what data is important using your own custom tracking parameters. The Dimensions report allows you to easily see what's working right inside your WordPress dashboard."
5339
  msgstr ""
5340
 
5341
- #: languages/vue.php:67
5342
  msgid "Unlock the Forms Report and Improve Conversions"
5343
  msgstr ""
5344
 
5345
- #: languages/vue.php:70
5346
  msgid "Easily track your form views and conversions. The Forms Report allows you to see which forms are performing better and which forms have lower conversion rates so you can optimize using real data."
5347
  msgstr ""
5348
 
5349
- #: languages/vue.php:73
5350
  msgid "Unlock the Search Console Report and See How People Find Your Website"
5351
  msgstr ""
5352
 
5353
- #: languages/vue.php:76
5354
  msgid "See exactly how people find your website, which keywords they searched for, how many times the results were viewed, and more."
5355
  msgstr ""
5356
 
5357
- #: languages/vue.php:79
5358
  msgid "Unlock the Real-Time Report and Track the Visitors on Your Site in Real-Time"
5359
  msgstr ""
5360
 
5361
- #: languages/vue.php:82
5362
  msgid "Track the results of your marketing efforts and product launches as-it-happens right from your WordPress site. The Real-Time report allows you to view your traffic sources and visitors activity when you need it."
5363
  msgstr ""
5364
 
5365
- #: languages/vue.php:85
5366
  msgid "Unlock the Site Speed Report and Improve the Performance of Your Site"
5367
  msgstr ""
5368
 
5369
- #: languages/vue.php:88
5370
  msgid "See How Your Homepage Performs According to Google’s Own Criteria and See How You Can Improve to Increase Your Ranking"
5371
  msgstr ""
5372
 
5373
- #: languages/vue.php:91
5374
  msgid "Today"
5375
  msgstr ""
5376
 
5377
- #: languages/vue.php:97
5378
  msgid "Last Week"
5379
  msgstr ""
5380
 
5381
- #: languages/vue.php:100
5382
  msgid "Last Month"
5383
  msgstr ""
5384
 
5385
- #: languages/vue.php:103
5386
  msgid "Last 7 days"
5387
  msgstr ""
5388
 
5389
- #: languages/vue.php:109
5390
  msgid "Loading settings"
5391
  msgstr ""
5392
 
5393
  #. Translators: Number of visitors.
5394
- #: languages/vue.php:113
5395
  msgid "See how %s visitors found your site!"
5396
  msgstr ""
5397
 
5398
  #. Translators: Number of visitors.
5399
- #: languages/vue.php:117
5400
  msgid "Your website was visited by %s users in the last 30 days."
5401
  msgstr ""
5402
 
5403
- #: languages/vue.php:120
5404
  msgid "See the full analytics report!"
5405
  msgstr ""
5406
 
5407
- #: languages/vue.php:123
5408
  msgid "Overview Report"
5409
  msgstr ""
5410
 
5411
  #. Translators: Current PHP version and recommended PHP version.
5412
- #: languages/vue.php:127
5413
  msgid "ExactMetrics has detected that your site is running an outdated, insecure version of PHP (%1$s), which could be putting your site at risk for being hacked. WordPress stopped supporting your PHP version in April, 2019. Updating to the recommended version (PHP %2$s) only takes a few minutes and will make your website significantly faster and more secure."
5414
  msgstr ""
5415
 
5416
  #. Translators: Current WordPress version.
5417
- #: languages/vue.php:131
5418
  msgid "ExactMetrics has detected that your site is running an outdated version of WordPress (%s). ExactMetrics will stop supporting WordPress versions lower than 4.9 in 2020. Updating WordPress takes just a few minutes and will also solve many bugs that exist in your WordPress install."
5419
  msgstr ""
5420
 
5421
- #: languages/vue.php:134
5422
  msgid "Yikes! PHP Update Required"
5423
  msgstr ""
5424
 
5425
  #. Translators: Current PHP version and recommended PHP version.
5426
- #: languages/vue.php:138
5427
  msgid "ExactMetrics has detected that your site is running an outdated, insecure version of PHP (%1$s), which could be putting your site at risk for being hacked. Updating to the recommended version (PHP %2$s) only takes a few minutes and will make your website significantly faster and more secure."
5428
  msgstr ""
5429
 
5430
- #: languages/vue.php:141
5431
  msgid "Learn more about updating PHP"
5432
  msgstr ""
5433
 
5434
- #: languages/vue.php:144
5435
  msgid "Yikes! WordPress Update Required"
5436
  msgstr ""
5437
 
5438
  #. Translators: Current WordPress version.
5439
- #: languages/vue.php:148
5440
  msgid "ExactMetrics has detected that your site is running an outdated version of WordPress (%s). Updating WordPress takes just a few minutes and will also solve many bugs that exist in your WordPress install."
5441
  msgstr ""
5442
 
5443
- #: languages/vue.php:151
5444
  msgid "Learn more about updating WordPress"
5445
  msgstr ""
5446
 
5447
- #: languages/vue.php:157
5448
  msgid "Getting Started"
5449
  msgstr ""
5450
 
5451
- #: languages/vue.php:160
5452
  msgid "Lite vs Pro"
5453
  msgstr ""
5454
 
5455
- #: languages/vue.php:163
5456
  msgid "Success! "
5457
  msgstr ""
5458
 
5459
- #: languages/vue.php:166
5460
  msgid "You're now using ExactMetrics Pro with all the features."
5461
  msgstr ""
5462
 
5463
  #. Translators: Placeholder gets replaced with an arrow icon.
5464
- #: languages/vue.php:170
5465
  msgid "Get Started %s"
5466
  msgstr ""
5467
 
5468
  #. Translators: Error status and error text.
5469
- #: languages/vue.php:174
5470
  msgid "Can't load report data. Error: %1$s, %2$s"
5471
  msgstr ""
5472
 
5473
- #: languages/vue.php:177
5474
  msgid "Error loading report data"
5475
  msgstr ""
5476
 
5477
  #. Translators: Makes the text bold.
5478
- #: languages/vue.php:181
5479
  msgid "%1$sUniversal Tracking%2$s – Setup universal website tracking across devices and campaigns with just a few clicks (without any code)."
5480
  msgstr ""
5481
 
5482
  #. Translators: Makes the text bold.
5483
- #: languages/vue.php:185
5484
  msgid "%1$sGoogle Analytics Dashboard%2$s - See your website analytics report right inside your WordPress dashboard with actionable insights."
5485
  msgstr ""
5486
 
5487
  #. Translators: Makes the text bold.
5488
- #: languages/vue.php:189
5489
  msgid "%1$sReal-time Stats%2$s - Get real-time stats inside WordPress to see who is online, what are they doing and more."
5490
  msgstr ""
5491
 
5492
  #. Translators: Makes text bold.
5493
- #: languages/vue.php:193
5494
  msgid "%1$sEnhanced Ecommerce Tracking%2$s - 1-click Google Analytics Enhanced eCommerce tracking for WooCommerce, Easy Digital Download & MemberPress."
5495
  msgstr ""
5496
 
5497
  #. Translators: Makes the text bold.
5498
- #: languages/vue.php:197
5499
  msgid "%1$sPage Level Analytics%2$s - Get detailed stats for each post and page, so you can see the most popular posts, pages, and sections of your site."
5500
  msgstr ""
5501
 
5502
  #. Translators: Makes the text bold.
5503
- #: languages/vue.php:201
5504
  msgid "%1$sAffiliate Link & Ads Tracking%2$s - Automatically track clicks on your affiliate links, banner ads, and other outbound links with our link tracking."
5505
  msgstr ""
5506
 
5507
  #. Translators: Makes the text bold.
5508
- #: languages/vue.php:205
5509
  msgid "%1$sEU Compilance (GDPR Friendly)%2$s - Make Google Analytics compliant with GDPR and other privacy regulations automatically."
5510
  msgstr ""
5511
 
5512
  #. Translators: Makes text bold.
5513
- #: languages/vue.php:209
5514
  msgid "%1$sCustom Dimensions%2$s - Setup tracking for authors, tags, searches, custom post types, users, and other events with 1-click."
5515
  msgstr ""
5516
 
5517
  #. Translators: Adds a link and an arrow icon.
5518
- #: languages/vue.php:213
5519
  msgid "%1$sSee All Features%2$s"
5520
  msgstr ""
5521
 
5522
- #: languages/vue.php:216
5523
  msgid "Pro Plan"
5524
  msgstr ""
5525
 
5526
- #: languages/vue.php:219
5527
  msgid "per year"
5528
  msgstr ""
5529
 
5530
- #: languages/vue.php:225
5531
  msgid "Upgrade to ExactMetrics Pro Now"
5532
  msgstr ""
5533
 
5534
- #: languages/vue.php:228
5535
  msgid "This is absolutely, positively, one of the TOP plugins to install on your WP site. There is no better way to quickly gauge traffic for spikes, surges, and consistency. I installed this on over a dozen WordPress installations and counting, thank you for an outstanding app!"
5536
  msgstr ""
5537
 
5538
- #: languages/vue.php:231
5539
  msgid "Daniel Monaghan - Experienced"
5540
  msgstr ""
5541
 
5542
- #: languages/vue.php:234
5543
  msgid "Very simple to configure and the results are very clearly displayed. So much easier for clients to view than in their own analytics account! Delighted with it."
5544
  msgstr ""
5545
 
5546
- #: languages/vue.php:237
5547
  msgid "Naomi Spirit - From This Day"
5548
  msgstr ""
5549
 
5550
- #: languages/vue.php:240
5551
  msgid "Love this plugin! It’s got powerful customization options, it’s easy to use, there’s good documentation, and if all that’s not enough, ExactMetrics is quick to provide support. Thanks for this wonderful plugin!"
5552
  msgstr ""
5553
 
5554
- #: languages/vue.php:243
5555
  msgid "Julie Dupuis - Faraway Land Travel"
5556
  msgstr ""
5557
 
5558
- #: languages/vue.php:246
5559
  msgid "Guides and Documentation:"
5560
  msgstr ""
5561
 
5562
- #: languages/vue.php:251
5563
  msgid "Upgrade to PRO"
5564
  msgstr ""
5565
 
5566
- #: languages/vue.php:254
5567
  msgid "eCommerce Tracking"
5568
  msgstr ""
5569
 
5570
- #: languages/vue.php:257
5571
  msgid "Custom Dimensions"
5572
  msgstr ""
5573
 
5574
- #: languages/vue.php:260
5575
  msgid "Form Tracking"
5576
  msgstr ""
5577
 
5578
- #: languages/vue.php:263
5579
  msgid "AMP Support"
5580
  msgstr ""
5581
 
5582
- #: languages/vue.php:266
5583
  msgid "Author Tracking"
5584
  msgstr ""
5585
 
5586
- #: languages/vue.php:269
5587
  msgid "EU Compliance Addon"
5588
  msgstr ""
5589
 
5590
- #: languages/vue.php:272
5591
  msgid "Real Time Report"
5592
  msgstr ""
5593
 
5594
- #: languages/vue.php:275
5595
  msgid "Google Optimize"
5596
  msgstr ""
5597
 
5598
- #: languages/vue.php:279
5599
  #: lite/includes/admin/reports/report-queries.php:22
5600
  msgid "Search Console"
5601
  msgstr ""
5602
 
5603
- #: languages/vue.php:282
5604
  msgid "Custom Date Ranges"
5605
  msgstr ""
5606
 
5607
- #: languages/vue.php:285
5608
- #: languages/vue.php:924
5609
  msgid "Getting Started with ExactMetrics"
5610
  msgstr ""
5611
 
5612
- #: languages/vue.php:288
5613
- #: languages/vue.php:927
5614
  msgid "ExactMetrics is the easiest analytics solution on the market to get started with, as we walk you through exactly what you need to do, in plain english, using our 3 minute setup wizard."
5615
  msgstr ""
5616
 
5617
- #: languages/vue.php:291
5618
  msgid "To begin with, we’ll get your site authorized with Google Analytics, so we can start tracking and generating reports for you right away."
5619
  msgstr ""
5620
 
5621
- #: languages/vue.php:294
5622
  msgid "In no time at all, and after just a few clicks, you'll have setup the most powerful Google Analytics tracking available for WordPress. It's easy to double your traffic and sales when you know exactly how people find and use your website. Let's get started!."
5623
  msgstr ""
5624
 
5625
- #: languages/vue.php:297
5626
  msgid "Launch the wizard!"
5627
  msgstr ""
5628
 
5629
- #: languages/vue.php:300
5630
  msgid "Welcome to"
5631
  msgstr ""
5632
 
5633
  #. Translators: Adds a line break.
5634
- #: languages/vue.php:304
5635
  msgid "Thank you for choosing ExactMetrics -%s The Most Powerful WordPress Analytics Plugin"
5636
  msgstr ""
5637
 
5638
  #. Translators: Makes the product name bold.
5639
- #: languages/vue.php:308
5640
  msgid "%1$sExactMetrics%2$s makes it “effortless” to setup Google Analytics in WordPress, the RIGHT Way. You can watch the video tutorial or use our 3 minute setup wizard."
5641
  msgstr ""
5642
 
5643
- #: languages/vue.php:311
5644
  msgid "ExactMetrics Features & Addons"
5645
  msgstr ""
5646
 
5647
- #: languages/vue.php:314
5648
  msgid "Here are the features that make ExactMetrics the most powerful and user-friendly WordPress analytics plugin in the market."
5649
  msgstr ""
5650
 
5651
  #. Translators: Placeholder is replaced with WPForms.
5652
- #: languages/vue.php:318
5653
  msgid "Recommended Plugin: %s"
5654
  msgstr ""
5655
 
5656
- #: languages/vue.php:322
5657
  msgid "Install"
5658
  msgstr ""
5659
 
5660
- #: languages/vue.php:326
5661
  msgid "Activate"
5662
  msgstr ""
5663
 
5664
- #: languages/vue.php:332
5665
  msgid "ExactMetrics encountered an error loading your report data"
5666
  msgstr ""
5667
 
5668
- #: languages/vue.php:335
5669
  msgid "There is an issue with your Google Account authentication. Please use the button below to fix it by re-authenticating."
5670
  msgstr ""
5671
 
5672
- #: languages/vue.php:338
5673
- #: languages/vue.php:1855
5674
  msgid "Reconnect ExactMetrics"
5675
  msgstr ""
5676
 
5677
- #: languages/vue.php:341
5678
  msgid "Re-Authenticating"
5679
  msgstr ""
5680
 
5681
- #: languages/vue.php:344
5682
  msgid "Ok"
5683
  msgstr ""
5684
 
5685
- #: languages/vue.php:347
5686
- #: languages/vue.php:863
5687
  msgid "ExactMetrics Addons"
5688
  msgstr ""
5689
 
5690
- #: languages/vue.php:350
5691
  msgid "Search Addons"
5692
  msgstr ""
5693
 
5694
- #: languages/vue.php:353
5695
  msgid "Save Changes"
5696
  msgstr ""
5697
 
5698
- #: languages/vue.php:356
5699
  msgid "Exit Setup"
5700
  msgstr ""
5701
 
5702
- #: languages/vue.php:360
5703
  msgid "Time to Purchase"
5704
  msgstr ""
5705
 
5706
- #: languages/vue.php:363
5707
  msgid "This list shows how many days from first visit it took users to purchase products from your site."
5708
  msgstr ""
5709
 
5710
- #: languages/vue.php:367
5711
  msgid "Sessions to Purchase"
5712
  msgstr ""
5713
 
5714
- #: languages/vue.php:370
5715
  msgid "This list shows the number of sessions it took users before they purchased a product from your website."
5716
  msgstr ""
5717
 
5718
- #: languages/vue.php:373
5719
  msgid "New Customers"
5720
  msgstr ""
5721
 
5722
- #: languages/vue.php:376
5723
  msgid "This list shows the percentage of new customers who purchased a product from your website."
5724
  msgstr ""
5725
 
5726
- #: languages/vue.php:379
5727
  msgid "Abandoned Checkouts"
5728
  msgstr ""
5729
 
5730
- #: languages/vue.php:382
5731
  msgid "This list shows the percentage of carts that never went through the checkout process."
5732
  msgstr ""
5733
 
5734
- #: languages/vue.php:385
5735
  msgid "Top Posts/Pages"
5736
  msgstr ""
5737
 
5738
- #: languages/vue.php:388
5739
  msgid "This list shows the most viewed posts and pages on your website."
5740
  msgstr ""
5741
 
5742
- #: languages/vue.php:391
5743
  msgid "New vs. Returning Visitors"
5744
  msgstr ""
5745
 
5746
- #: languages/vue.php:394
5747
  msgid "This graph shows what percent of your user sessions come from new versus repeat visitors."
5748
  msgstr ""
5749
 
5750
- #: languages/vue.php:397
5751
  msgid "Device Breakdown"
5752
  msgstr ""
5753
 
5754
- #: languages/vue.php:400
5755
  msgid "This graph shows what percent of your visitor sessions are done using a traditional computer or laptop, tablet or mobile device to view your site."
5756
  msgstr ""
5757
 
5758
- #: languages/vue.php:404
5759
  msgid "Top Landing Pages"
5760
  msgstr ""
5761
 
5762
- #: languages/vue.php:407
5763
  msgid "This list shows the top pages users first land on when visiting your website."
5764
  msgstr ""
5765
 
5766
- #: languages/vue.php:411
5767
  msgid "Top Exit Pages"
5768
  msgstr ""
5769
 
5770
- #: languages/vue.php:414
5771
  msgid "This list shows the top pages users exit your website from."
5772
  msgstr ""
5773
 
5774
- #: languages/vue.php:418
5775
  msgid "Top Outbound Links"
5776
  msgstr ""
5777
 
5778
- #: languages/vue.php:421
5779
  msgid "This list shows the top links clicked on your website that go to another website."
5780
  msgstr ""
5781
 
5782
- #: languages/vue.php:424
5783
  msgid "Top Affiliate Links"
5784
  msgstr ""
5785
 
5786
- #: languages/vue.php:427
5787
  msgid "This list shows the top affiliate links your visitors clicked on."
5788
  msgstr ""
5789
 
5790
- #: languages/vue.php:431
5791
  msgid "Top Download Links"
5792
  msgstr ""
5793
 
5794
- #: languages/vue.php:434
5795
  msgid "This list shows the download links your visitors clicked the most."
5796
  msgstr ""
5797
 
5798
- #: languages/vue.php:441
5799
  msgid "Top Products"
5800
  msgstr ""
5801
 
5802
- #: languages/vue.php:444
5803
  msgid "This list shows the top selling products on your website."
5804
  msgstr ""
5805
 
5806
- #: languages/vue.php:448
5807
  msgid "Top Conversion Sources"
5808
  msgstr ""
5809
 
5810
- #: languages/vue.php:451
5811
  msgid "This list shows the top referral websites in terms of product revenue."
5812
  msgstr ""
5813
 
5814
- #: languages/vue.php:454
5815
  msgid "Total Add/Remove"
5816
  msgstr ""
5817
 
5818
- #: languages/vue.php:457
5819
  msgid "Analytics"
5820
  msgstr ""
5821
 
5822
  #. Translators: Adds an arrow icon.
5823
- #: languages/vue.php:461
5824
  msgid "View All Reports %s"
5825
  msgstr ""
5826
 
5827
- #: languages/vue.php:464
5828
  msgid "You must connect with ExactMetrics before you can view reports."
5829
  msgstr ""
5830
 
5831
- #: languages/vue.php:467
5832
  msgid "ExactMetrics makes it \"effortless\" for you to connect your site with Google Analytics and see reports right here in the WordPress dashboard."
5833
  msgstr ""
5834
 
5835
- #: languages/vue.php:470
5836
  msgid "Launch Setup Wizard"
5837
  msgstr ""
5838
 
5839
- #: languages/vue.php:473
5840
  msgid "Please ask your webmaster to connect ExactMetrics to Google Analytics."
5841
  msgstr ""
5842
 
5843
- #: languages/vue.php:486
5844
  msgid "See Quick Links"
5845
  msgstr ""
5846
 
5847
- #: languages/vue.php:489
5848
  msgid "Suggest a Feature"
5849
  msgstr ""
5850
 
5851
- #: languages/vue.php:492
5852
  msgid "Join Our Community"
5853
  msgstr ""
5854
 
5855
- #: languages/vue.php:495
5856
  msgid "Support & Docs"
5857
  msgstr ""
5858
 
5859
- #: languages/vue.php:498
5860
  msgid "Upgrade to Pro &#187;"
5861
  msgstr ""
5862
 
5863
- #: languages/vue.php:501
5864
  #: lite/includes/admin/reports/report-publisher.php:22
5865
  msgid "Publishers"
5866
  msgstr ""
5867
 
5868
- #: languages/vue.php:504
5869
  #: lite/includes/admin/reports/report-ecommerce.php:22
5870
  msgid "eCommerce"
5871
  msgstr ""
5872
 
5873
- #: languages/vue.php:507
5874
  msgid "Dimensions Report"
5875
  msgstr ""
5876
 
5877
- #: languages/vue.php:510
5878
  #: lite/includes/admin/reports/report-forms.php:22
5879
  msgid "Forms"
5880
  msgstr ""
5881
 
5882
- #: languages/vue.php:513
5883
  msgid "Real-Time"
5884
  msgstr ""
5885
 
5886
- #: languages/vue.php:516
5887
  msgid "Site Speed Report"
5888
  msgstr ""
5889
 
5890
- #: languages/vue.php:520
5891
  msgid "2020 Year in Review"
5892
  msgstr ""
5893
 
5894
- #: languages/vue.php:523
5895
  msgid "Import Export"
5896
  msgstr ""
5897
 
5898
- #: languages/vue.php:526
5899
  msgid "PrettyLinks Integration"
5900
  msgstr ""
5901
 
5902
- #: languages/vue.php:532
5903
  msgid "Popular Posts Widget"
5904
  msgstr ""
5905
 
5906
- #: languages/vue.php:535
5907
  msgid "Popular Products"
5908
  msgstr ""
5909
 
5910
- #: languages/vue.php:541
5911
  msgid "Sub menu item for WooCommerce Analytics"
5912
  msgstr ""
5913
 
5914
- #: languages/vue.php:547
5915
  msgid "Engagement"
5916
  msgstr ""
5917
 
5918
- #: languages/vue.php:550
5919
  msgid "Publisher"
5920
  msgstr ""
5921
 
5922
- #: languages/vue.php:553
5923
  msgid "Conversions"
5924
  msgstr ""
5925
 
5926
- #: languages/vue.php:556
5927
  msgid "Advanced"
5928
  msgstr ""
5929
 
5930
- #: languages/vue.php:559
5931
  msgid "URL Builder"
5932
  msgstr ""
5933
 
5934
  #. Translators: Adds a link to documentation.
5935
- #: languages/vue.php:563
5936
  msgid "In order for the ExactMetrics Google AMP addon to work properly, please ask your webmaster to install the WordPress AMP plugin by Automattic. %1$sLearn More%2$s"
5937
  msgstr ""
5938
 
5939
  #. Translators: Adds link to activate/install plugin and documentation.
5940
- #: languages/vue.php:567
5941
  msgid "In order for the ExactMetrics Google AMP addon to work properly, you need to install the WordPress AMP plugin by Automattic. %1$s%2$s Plugin%3$s | %4$sLearn More%5$s"
5942
  msgstr ""
5943
 
5944
  #. Translators: Adds a link to documentation.
5945
- #: languages/vue.php:571
5946
  msgid "In order for the ExactMetrics Instant Articles addon to work properly, please ask your webmaster to install the Instant Articles for WP plugin by Automattic version 3.3.5 or newer. %1$sLearn More%2$s"
5947
  msgstr ""
5948
 
5949
  #. Translators: Adds link to activate/install plugin and documentation.
5950
- #: languages/vue.php:575
5951
  msgid "In order for the ExactMetrics Instant Articles addon to work properly, you need to install the Instant Articles for WP plugin by Automattic version 3.3.5 or newer. %1$s%2$s Plugin%3$s | %4$sLearn More%5$s"
5952
  msgstr ""
5953
 
5954
- #: languages/vue.php:578
5955
  msgid "Installing Addon"
5956
  msgstr ""
5957
 
5958
- #: languages/vue.php:581
5959
  msgid "Activating Addon"
5960
  msgstr ""
5961
 
5962
- #: languages/vue.php:584
5963
  msgid "Addon Activated"
5964
  msgstr ""
5965
 
5966
- #: languages/vue.php:587
5967
  msgid "Loading report data"
5968
  msgstr ""
5969
 
5970
- #: languages/vue.php:590
5971
  msgid "Please activate manually"
5972
  msgstr ""
5973
 
5974
  #. Translators: Adds the error status and status text.
5975
- #: languages/vue.php:594
5976
  msgid "Error: %1$s, %2$s"
5977
  msgstr ""
5978
 
5979
- #: languages/vue.php:597
5980
  msgid "Error Activating Addon"
5981
  msgstr ""
5982
 
5983
- #: languages/vue.php:600
5984
  #: lite/includes/admin/wp-site-health.php:375
5985
  #: lite/includes/admin/wp-site-health.php:401
5986
  #: lite/includes/admin/wp-site-health.php:428
5987
  msgid "View Addons"
5988
  msgstr ""
5989
 
5990
- #: languages/vue.php:605
5991
  msgid "Dismiss"
5992
  msgstr ""
5993
 
5994
- #: languages/vue.php:608
5995