Google Analytics Dashboard for WP (GADWP) - Version 6.2.1

Version Description

Download this release

Release Info

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

Code changes from version 6.2.0 to 6.2.1

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: 6.2.0
8
  * Requires at least: 3.8.0
9
  * Requires PHP: 5.2
10
  * Author URI: https://exactmetrics.com
@@ -44,7 +44,7 @@ final class ExactMetrics_Lite {
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
- public $version = '6.2.0';
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: 6.2.1
8
  * Requires at least: 3.8.0
9
  * Requires PHP: 5.2
10
  * Author URI: https://exactmetrics.com
44
  * @access public
45
  * @var string $version Plugin version.
46
  */
47
+ public $version = '6.2.1';
48
 
49
  /**
50
  * Plugin file.
includes/admin/ajax.php CHANGED
@@ -90,9 +90,7 @@ function exactmetrics_ajax_install_addon() {
90
  }
91
 
92
  // We do not need any extra credentials if we have gotten this far, so let's install the plugin.
93
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
94
- $base = ExactMetrics();
95
- require_once plugin_dir_path( $base->file ) . '/includes/admin/licensing/skin.php';
96
 
97
  // Create the plugin upgrader with our custom skin.
98
  $installer = new Plugin_Upgrader( $skin = new ExactMetrics_Skin() );
@@ -206,4 +204,4 @@ function exactmetrics_ajax_dismiss_notice() {
206
  wp_die();
207
 
208
  }
209
- add_action( 'wp_ajax_exactmetrics_ajax_dismiss_notice', 'exactmetrics_ajax_dismiss_notice' );
90
  }
91
 
92
  // We do not need any extra credentials if we have gotten this far, so let's install the plugin.
93
+ exactmetrics_require_upgrader( false );
 
 
94
 
95
  // Create the plugin upgrader with our custom skin.
96
  $installer = new Plugin_Upgrader( $skin = new ExactMetrics_Skin() );
204
  wp_die();
205
 
206
  }
207
+ add_action( 'wp_ajax_exactmetrics_ajax_dismiss_notice', 'exactmetrics_ajax_dismiss_notice' );
includes/admin/licensing/autoupdate.php CHANGED
@@ -39,7 +39,7 @@ function exactmetrics_is_plugin_our_addon( $plugin_file ) {
39
  function exactmetrics_modify_wordpress_autoupdater_setting( $html, $plugin_file, $plugin_data ) {
40
  $is_pro = exactmetrics_is_pro_version();
41
  $is_addon = exactmetrics_is_plugin_our_addon( $plugin_file );
42
- $is_main_free = 'google-analytics-dashboard-for-wp' === $plugin_data['slug'];
43
  $is_main_pro = $is_pro && plugin_basename( EXACTMETRICS_PLUGIN_FILE ) === $plugin_file;
44
  $has_permission = current_user_can( 'exactmetrics_save_settings' );
45
 
39
  function exactmetrics_modify_wordpress_autoupdater_setting( $html, $plugin_file, $plugin_data ) {
40
  $is_pro = exactmetrics_is_pro_version();
41
  $is_addon = exactmetrics_is_plugin_our_addon( $plugin_file );
42
+ $is_main_free = isset( $plugin_data['slug'] ) && 'google-analytics-dashboard-for-wp' === $plugin_data['slug'];
43
  $is_main_pro = $is_pro && plugin_basename( EXACTMETRICS_PLUGIN_FILE ) === $plugin_file;
44
  $has_permission = current_user_can( 'exactmetrics_save_settings' );
45
 
includes/admin/licensing/plugin-upgrader-legacy.php ADDED
@@ -0,0 +1,571 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /** WP_Upgrader class */
4
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
5
+
6
+ /** Plugin_Upgrader class */
7
+ require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
8
+
9
+
10
+ /**
11
+ * In WP 5.3 a PHP 5.6 splat operator (...$args) was added to WP_Upgrader_Skin::feedback().
12
+ * We need to remove all calls to *Skin::feedback() method, as we can't override it in own Skins
13
+ * without breaking support for PHP 5.3-5.5.
14
+ *
15
+ * @internal Please do not use this class outside of core ExactMetrics development. May be removed at any time.
16
+ *
17
+ * @since 7.10.6
18
+ */
19
+ class ExactMetrics_Plugin_Upgrader extends Plugin_Upgrader {
20
+
21
+ /**
22
+ * Run an upgrade/installation.
23
+ *
24
+ * Attempt to download the package (if it is not a local file), unpack it, and
25
+ * install it in the destination folder.
26
+ *
27
+ * @since 1.5.6.1
28
+ *
29
+ * @param array $options {
30
+ * Array or string of arguments for upgrading/installing a package.
31
+ *
32
+ * @type string $package The full path or URI of the package to install.
33
+ * Default empty.
34
+ * @type string $destination The full path to the destination folder.
35
+ * Default empty.
36
+ * @type bool $clear_destination Whether to delete any files already in the
37
+ * destination folder. Default false.
38
+ * @type bool $clear_working Whether to delete the files form the working
39
+ * directory after copying to the destination.
40
+ * Default false.
41
+ * @type bool $abort_if_destination_exists Whether to abort the installation if the destination
42
+ * folder already exists. When true, `$clear_destination`
43
+ * should be false. Default true.
44
+ * @type bool $is_multi Whether this run is one of multiple upgrade/installation
45
+ * actions being performed in bulk. When true, the skin
46
+ * WP_Upgrader::header() and WP_Upgrader::footer()
47
+ * aren't called. Default false.
48
+ * @type array $hook_extra Extra arguments to pass to the filter hooks called by
49
+ * WP_Upgrader::run().
50
+ * }
51
+ * @return array|false|WP_error The result from self::install_package() on success, otherwise a WP_Error,
52
+ * or false if unable to connect to the filesystem.
53
+ */
54
+ public function run( $options ) {
55
+
56
+ $defaults = array(
57
+ 'package' => '', // Please always pass this.
58
+ 'destination' => '', // And this
59
+ 'clear_destination' => false,
60
+ 'abort_if_destination_exists' => true, // Abort if the Destination directory exists, Pass clear_destination as false please
61
+ 'clear_working' => true,
62
+ 'is_multi' => false,
63
+ 'hook_extra' => array(), // Pass any extra $hook_extra args here, this will be passed to any hooked filters.
64
+ );
65
+
66
+ $options = wp_parse_args( $options, $defaults );
67
+
68
+ /**
69
+ * Filter the package options before running an update.
70
+ *
71
+ * See also {@see 'upgrader_process_complete'}.
72
+ *
73
+ * @since 4.3.0
74
+ *
75
+ * @param array $options {
76
+ * Options used by the upgrader.
77
+ *
78
+ * @type string $package Package for update.
79
+ * @type string $destination Update location.
80
+ * @type bool $clear_destination Clear the destination resource.
81
+ * @type bool $clear_working Clear the working resource.
82
+ * @type bool $abort_if_destination_exists Abort if the Destination directory exists.
83
+ * @type bool $is_multi Whether the upgrader is running multiple times.
84
+ * @type array $hook_extra {
85
+ * Extra hook arguments.
86
+ *
87
+ * @type string $action Type of action. Default 'update'.
88
+ * @type string $type Type of update process. Accepts 'plugin', 'theme', or 'core'.
89
+ * @type bool $bulk Whether the update process is a bulk update. Default true.
90
+ * @type string $plugin Path to the plugin file relative to the plugins directory.
91
+ * @type string $theme The stylesheet or template name of the theme.
92
+ * @type string $language_update_type The language pack update type. Accepts 'plugin', 'theme',
93
+ * or 'core'.
94
+ * @type object $language_update The language pack update offer.
95
+ * }
96
+ * }
97
+ */
98
+ $options = apply_filters( 'upgrader_package_options', $options );
99
+
100
+ if ( ! $options['is_multi'] ) { // call $this->header separately if running multiple times
101
+ $this->skin->header();
102
+ }
103
+
104
+ // Connect to the Filesystem first.
105
+ $res = $this->fs_connect( array( WP_CONTENT_DIR, $options['destination'] ) );
106
+ // Mainly for non-connected filesystem.
107
+ if ( ! $res ) {
108
+ if ( ! $options['is_multi'] ) {
109
+ $this->skin->footer();
110
+ }
111
+ return false;
112
+ }
113
+
114
+ $this->skin->before();
115
+
116
+ if ( is_wp_error( $res ) ) {
117
+ $this->skin->error( $res );
118
+ $this->skin->after();
119
+ if ( ! $options['is_multi'] ) {
120
+ $this->skin->footer();
121
+ }
122
+ return $res;
123
+ }
124
+
125
+ /*
126
+ * Download the package (Note, This just returns the filename
127
+ * of the file if the package is a local file)
128
+ */
129
+ $download = $this->download_package( $options['package'], true );
130
+
131
+ // Allow for signature soft-fail.
132
+ // WARNING: This may be removed in the future.
133
+ if ( is_wp_error( $download ) && $download->get_error_data( 'softfail-filename' ) ) {
134
+
135
+ // Don't output the 'no signature could be found' failure message for now.
136
+ if ( 'signature_verification_no_signature' != $download->get_error_code() || WP_DEBUG ) {
137
+ // Outout the failure error as a normal feedback, and not as an error:
138
+ //$this->skin->feedback( $download->get_error_message() );
139
+
140
+ // Report this failure back to WordPress.org for debugging purposes.
141
+ wp_version_check(
142
+ array(
143
+ 'signature_failure_code' => $download->get_error_code(),
144
+ 'signature_failure_data' => $download->get_error_data(),
145
+ )
146
+ );
147
+ }
148
+
149
+ // Pretend this error didn't happen.
150
+ $download = $download->get_error_data( 'softfail-filename' );
151
+ }
152
+
153
+ if ( is_wp_error( $download ) ) {
154
+ $this->skin->error( $download );
155
+ $this->skin->after();
156
+ if ( ! $options['is_multi'] ) {
157
+ $this->skin->footer();
158
+ }
159
+ return $download;
160
+ }
161
+
162
+ $delete_package = ( $download != $options['package'] ); // Do not delete a "local" file
163
+
164
+ // Unzips the file into a temporary directory.
165
+ $working_dir = $this->unpack_package( $download, $delete_package );
166
+ if ( is_wp_error( $working_dir ) ) {
167
+ $this->skin->error( $working_dir );
168
+ $this->skin->after();
169
+ if ( ! $options['is_multi'] ) {
170
+ $this->skin->footer();
171
+ }
172
+ return $working_dir;
173
+ }
174
+
175
+ // With the given options, this installs it to the destination directory.
176
+ $result = $this->install_package(
177
+ array(
178
+ 'source' => $working_dir,
179
+ 'destination' => $options['destination'],
180
+ 'clear_destination' => $options['clear_destination'],
181
+ 'abort_if_destination_exists' => $options['abort_if_destination_exists'],
182
+ 'clear_working' => $options['clear_working'],
183
+ 'hook_extra' => $options['hook_extra'],
184
+ )
185
+ );
186
+
187
+ $this->skin->set_result( $result );
188
+ if ( is_wp_error( $result ) ) {
189
+ $this->skin->error( $result );
190
+ //$this->skin->feedback( 'process_failed' );
191
+ } else {
192
+ // Installation succeeded.
193
+ //$this->skin->feedback( 'process_success' );
194
+ }
195
+
196
+ $this->skin->after();
197
+
198
+ if ( ! $options['is_multi'] ) {
199
+
200
+ /**
201
+ * Fire when the upgrader process is complete.
202
+ *
203
+ * See also {@see 'upgrader_package_options'}.
204
+ *
205
+ * @since 3.6.0
206
+ * @since 3.7.0 Added to WP_Upgrader::run().
207
+ * @since 4.6.0 `$translations` was added as a possible argument to `$hook_extra`.
208
+ *
209
+ * @param WP_Upgrader $this WP_Upgrader instance. In other contexts, $this, might be a
210
+ * Theme_Upgrader, Plugin_Upgrader, Core_Upgrade, or Language_Pack_Upgrader instance.
211
+ * @param array $hook_extra {
212
+ * Array of bulk item update data.
213
+ *
214
+ * @type string $action Type of action. Default 'update'.
215
+ * @type string $type Type of update process. Accepts 'plugin', 'theme', 'translation', or 'core'.
216
+ * @type bool $bulk Whether the update process is a bulk update. Default true.
217
+ * @type array $plugins Array of the basename paths of the plugins' main files.
218
+ * @type array $themes The theme slugs.
219
+ * @type array $translations {
220
+ * Array of translations update data.
221
+ *
222
+ * @type string $language The locale the translation is for.
223
+ * @type string $type Type of translation. Accepts 'plugin', 'theme', or 'core'.
224
+ * @type string $slug Text domain the translation is for. The slug of a theme/plugin or
225
+ * 'default' for core translations.
226
+ * @type string $version The version of a theme, plugin, or core.
227
+ * }
228
+ * }
229
+ */
230
+ do_action( 'upgrader_process_complete', $this, $options['hook_extra'] );
231
+
232
+ $this->skin->footer();
233
+ }
234
+
235
+ return $result;
236
+ }
237
+
238
+ /**
239
+ * Toggle maintenance mode for the site.
240
+ *
241
+ * Create/delete the maintenance file to enable/disable maintenance mode.
242
+ *
243
+ * @since 2.8.0
244
+ *
245
+ * @global WP_Filesystem_Base $wp_filesystem Subclass
246
+ *
247
+ * @param bool $enable True to enable maintenance mode, false to disable.
248
+ */
249
+ public function maintenance_mode( $enable = false ) {
250
+ global $wp_filesystem;
251
+ $file = $wp_filesystem->abspath() . '.maintenance';
252
+ if ( $enable ) {
253
+ //$this->skin->feedback( 'maintenance_start' );
254
+ // Create maintenance file to signal that we are upgrading
255
+ $maintenance_string = '<?php $upgrading = ' . time() . '; ?>';
256
+ $wp_filesystem->delete( $file );
257
+ $wp_filesystem->put_contents( $file, $maintenance_string, FS_CHMOD_FILE );
258
+ } elseif ( ! $enable && $wp_filesystem->exists( $file ) ) {
259
+ //$this->skin->feedback( 'maintenance_end' );
260
+ $wp_filesystem->delete( $file );
261
+ }
262
+ }
263
+
264
+ /**
265
+ * Download a package.
266
+ *
267
+ * @since 2.8.0
268
+ *
269
+ * @param string $package The URI of the package. If this is the full path to an
270
+ * existing local file, it will be returned untouched.
271
+ * @param bool $check_signatures Whether to validate file signatures. Default false.
272
+ * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object.
273
+ */
274
+ public function download_package( $package, $check_signatures = false ) {
275
+
276
+ /**
277
+ * Filter whether to return the package.
278
+ *
279
+ * @since 3.7.0
280
+ *
281
+ * @param bool $reply Whether to bail without returning the package.
282
+ * Default false.
283
+ * @param string $package The package file name.
284
+ * @param WP_Upgrader $this The WP_Upgrader instance.
285
+ */
286
+ $reply = apply_filters( 'upgrader_pre_download', false, $package, $this );
287
+ if ( false !== $reply ) {
288
+ return $reply;
289
+ }
290
+
291
+ if ( ! preg_match( '!^(http|https|ftp)://!i', $package ) && file_exists( $package ) ) { //Local file or remote?
292
+ return $package; //must be a local file..
293
+ }
294
+
295
+ if ( empty( $package ) ) {
296
+ return new WP_Error( 'no_package', $this->strings['no_package'] );
297
+ }
298
+
299
+ //$this->skin->feedback( 'downloading_package', $package );
300
+
301
+ $download_file = download_url( $package, 300, $check_signatures );
302
+
303
+ if ( is_wp_error( $download_file ) && ! $download_file->get_error_data( 'softfail-filename' ) ) {
304
+ return new WP_Error( 'download_failed', $this->strings['download_failed'], $download_file->get_error_message() );
305
+ }
306
+
307
+ return $download_file;
308
+ }
309
+
310
+ /**
311
+ * Unpack a compressed package file.
312
+ *
313
+ * @since 2.8.0
314
+ *
315
+ * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
316
+ *
317
+ * @param string $package Full path to the package file.
318
+ * @param bool $delete_package Optional. Whether to delete the package file after attempting
319
+ * to unpack it. Default true.
320
+ * @return string|WP_Error The path to the unpacked contents, or a WP_Error on failure.
321
+ */
322
+ public function unpack_package( $package, $delete_package = true ) {
323
+ global $wp_filesystem;
324
+
325
+ //$this->skin->feedback( 'unpack_package' );
326
+
327
+ $upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/';
328
+
329
+ //Clean up contents of upgrade directory beforehand.
330
+ $upgrade_files = $wp_filesystem->dirlist( $upgrade_folder );
331
+ if ( ! empty( $upgrade_files ) ) {
332
+ foreach ( $upgrade_files as $file ) {
333
+ $wp_filesystem->delete( $upgrade_folder . $file['name'], true );
334
+ }
335
+ }
336
+
337
+ // We need a working directory - Strip off any .tmp or .zip suffixes
338
+ $working_dir = $upgrade_folder . basename( basename( $package, '.tmp' ), '.zip' );
339
+
340
+ // Clean up working directory
341
+ if ( $wp_filesystem->is_dir( $working_dir ) ) {
342
+ $wp_filesystem->delete( $working_dir, true );
343
+ }
344
+
345
+ // Unzip package to working directory
346
+ $result = unzip_file( $package, $working_dir );
347
+
348
+ // Once extracted, delete the package if required.
349
+ if ( $delete_package ) {
350
+ unlink( $package );
351
+ }
352
+
353
+ if ( is_wp_error( $result ) ) {
354
+ $wp_filesystem->delete( $working_dir, true );
355
+ if ( 'incompatible_archive' == $result->get_error_code() ) {
356
+ return new WP_Error( 'incompatible_archive', $this->strings['incompatible_archive'], $result->get_error_data() );
357
+ }
358
+ return $result;
359
+ }
360
+
361
+ return $working_dir;
362
+ }
363
+
364
+ /**
365
+ * Install a package.
366
+ *
367
+ * Copies the contents of a package form a source directory, and installs them in
368
+ * a destination directory. Optionally removes the source. It can also optionally
369
+ * clear out the destination folder if it already exists.
370
+ *
371
+ * @since 2.8.0
372
+ *
373
+ * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
374
+ * @global array $wp_theme_directories
375
+ *
376
+ * @param array|string $args {
377
+ * Optional. Array or string of arguments for installing a package. Default empty array.
378
+ *
379
+ * @type string $source Required path to the package source. Default empty.
380
+ * @type string $destination Required path to a folder to install the package in.
381
+ * Default empty.
382
+ * @type bool $clear_destination Whether to delete any files already in the destination
383
+ * folder. Default false.
384
+ * @type bool $clear_working Whether to delete the files form the working directory
385
+ * after copying to the destination. Default false.
386
+ * @type bool $abort_if_destination_exists Whether to abort the installation if
387
+ * the destination folder already exists. Default true.
388
+ * @type array $hook_extra Extra arguments to pass to the filter hooks called by
389
+ * WP_Upgrader::install_package(). Default empty array.
390
+ * }
391
+ *
392
+ * @return array|WP_Error The result (also stored in `WP_Upgrader::$result`), or a WP_Error on failure.
393
+ */
394
+ public function install_package( $args = array() ) {
395
+ global $wp_filesystem, $wp_theme_directories;
396
+
397
+ $defaults = array(
398
+ 'source' => '', // Please always pass this
399
+ 'destination' => '', // and this
400
+ 'clear_destination' => false,
401
+ 'clear_working' => false,
402
+ 'abort_if_destination_exists' => true,
403
+ 'hook_extra' => array(),
404
+ );
405
+
406
+ $args = wp_parse_args( $args, $defaults );
407
+
408
+ // These were previously extract()'d.
409
+ $source = $args['source'];
410
+ $destination = $args['destination'];
411
+ $clear_destination = $args['clear_destination'];
412
+
413
+ set_time_limit( 300 );
414
+
415
+ if ( empty( $source ) || empty( $destination ) ) {
416
+ return new WP_Error( 'bad_request', $this->strings['bad_request'] );
417
+ }
418
+ //$this->skin->feedback( 'installing_package' );
419
+
420
+ /**
421
+ * Filter the install response before the installation has started.
422
+ *
423
+ * Returning a truthy value, or one that could be evaluated as a WP_Error
424
+ * will effectively short-circuit the installation, returning that value
425
+ * instead.
426
+ *
427
+ * @since 2.8.0
428
+ *
429
+ * @param bool|WP_Error $response Response.
430
+ * @param array $hook_extra Extra arguments passed to hooked filters.
431
+ */
432
+ $res = apply_filters( 'upgrader_pre_install', true, $args['hook_extra'] );
433
+
434
+ if ( is_wp_error( $res ) ) {
435
+ return $res;
436
+ }
437
+
438
+ //Retain the Original source and destinations
439
+ $remote_source = $args['source'];
440
+ $local_destination = $destination;
441
+
442
+ $source_files = array_keys( $wp_filesystem->dirlist( $remote_source ) );
443
+ $remote_destination = $wp_filesystem->find_folder( $local_destination );
444
+
445
+ //Locate which directory to copy to the new folder, This is based on the actual folder holding the files.
446
+ if ( 1 == count( $source_files ) && $wp_filesystem->is_dir( trailingslashit( $args['source'] ) . $source_files[0] . '/' ) ) { //Only one folder? Then we want its contents.
447
+ $source = trailingslashit( $args['source'] ) . trailingslashit( $source_files[0] );
448
+ } elseif ( count( $source_files ) == 0 ) {
449
+ return new WP_Error( 'incompatible_archive_empty', $this->strings['incompatible_archive'], $this->strings['no_files'] ); // There are no files?
450
+ } else { // It's only a single file, the upgrader will use the folder name of this file as the destination folder. Folder name is based on zip filename.
451
+ $source = trailingslashit( $args['source'] );
452
+ }
453
+
454
+ /**
455
+ * Filter the source file location for the upgrade package.
456
+ *
457
+ * @since 2.8.0
458
+ * @since 4.4.0 The $hook_extra parameter became available.
459
+ *
460
+ * @param string $source File source location.
461
+ * @param string $remote_source Remote file source location.
462
+ * @param WP_Upgrader $this WP_Upgrader instance.
463
+ * @param array $hook_extra Extra arguments passed to hooked filters.
464
+ */
465
+ $source = apply_filters( 'upgrader_source_selection', $source, $remote_source, $this, $args['hook_extra'] );
466
+
467
+ if ( is_wp_error( $source ) ) {
468
+ return $source;
469
+ }
470
+
471
+ // Has the source location changed? If so, we need a new source_files list.
472
+ if ( $source !== $remote_source ) {
473
+ $source_files = array_keys( $wp_filesystem->dirlist( $source ) );
474
+ }
475
+
476
+ /*
477
+ * Protection against deleting files in any important base directories.
478
+ * Theme_Upgrader & Plugin_Upgrader also trigger this, as they pass the
479
+ * destination directory (WP_PLUGIN_DIR / wp-content/themes) intending
480
+ * to copy the directory into the directory, whilst they pass the source
481
+ * as the actual files to copy.
482
+ */
483
+ $protected_directories = array( ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes' );
484
+
485
+ if ( is_array( $wp_theme_directories ) ) {
486
+ $protected_directories = array_merge( $protected_directories, $wp_theme_directories );
487
+ }
488
+
489
+ if ( in_array( $destination, $protected_directories ) ) {
490
+ $remote_destination = trailingslashit( $remote_destination ) . trailingslashit( basename( $source ) );
491
+ $destination = trailingslashit( $destination ) . trailingslashit( basename( $source ) );
492
+ }
493
+
494
+ if ( $clear_destination ) {
495
+ // We're going to clear the destination if there's something there.
496
+ //$this->skin->feedback( 'remove_old' );
497
+
498
+ $removed = $this->clear_destination( $remote_destination );
499
+
500
+ /**
501
+ * Filter whether the upgrader cleared the destination.
502
+ *
503
+ * @since 2.8.0
504
+ *
505
+ * @param mixed $removed Whether the destination was cleared. true on success, WP_Error on failure
506
+ * @param string $local_destination The local package destination.
507
+ * @param string $remote_destination The remote package destination.
508
+ * @param array $hook_extra Extra arguments passed to hooked filters.
509
+ */
510
+ $removed = apply_filters( 'upgrader_clear_destination', $removed, $local_destination, $remote_destination, $args['hook_extra'] );
511
+
512
+ if ( is_wp_error( $removed ) ) {
513
+ return $removed;
514
+ }
515
+ } elseif ( $args['abort_if_destination_exists'] && $wp_filesystem->exists( $remote_destination ) ) {
516
+ //If we're not clearing the destination folder and something exists there already, Bail.
517
+ //But first check to see if there are actually any files in the folder.
518
+ $_files = $wp_filesystem->dirlist( $remote_destination );
519
+ if ( ! empty( $_files ) ) {
520
+ $wp_filesystem->delete( $remote_source, true ); //Clear out the source files.
521
+ return new WP_Error( 'folder_exists', $this->strings['folder_exists'], $remote_destination );
522
+ }
523
+ }
524
+
525
+ //Create destination if needed
526
+ if ( ! $wp_filesystem->exists( $remote_destination ) ) {
527
+ if ( ! $wp_filesystem->mkdir( $remote_destination, FS_CHMOD_DIR ) ) {
528
+ return new WP_Error( 'mkdir_failed_destination', $this->strings['mkdir_failed'], $remote_destination );
529
+ }
530
+ }
531
+ // Copy new version of item into place.
532
+ $result = copy_dir( $source, $remote_destination );
533
+ if ( is_wp_error( $result ) ) {
534
+ if ( $args['clear_working'] ) {
535
+ $wp_filesystem->delete( $remote_source, true );
536
+ }
537
+ return $result;
538
+ }
539
+
540
+ //Clear the Working folder?
541
+ if ( $args['clear_working'] ) {
542
+ $wp_filesystem->delete( $remote_source, true );
543
+ }
544
+
545
+ $destination_name = basename( str_replace( $local_destination, '', $destination ) );
546
+ if ( '.' == $destination_name ) {
547
+ $destination_name = '';
548
+ }
549
+
550
+ $this->result = compact( 'source', 'source_files', 'destination', 'destination_name', 'local_destination', 'remote_destination', 'clear_destination' );
551
+
552
+ /**
553
+ * Filter the installation response after the installation has finished.
554
+ *
555
+ * @since 2.8.0
556
+ *
557
+ * @param bool $response Installation response.
558
+ * @param array $hook_extra Extra arguments passed to hooked filters.
559
+ * @param array $result Installation result data.
560
+ */
561
+ $res = apply_filters( 'upgrader_post_install', true, $args['hook_extra'], $this->result );
562
+
563
+ if ( is_wp_error( $res ) ) {
564
+ $this->result = $res;
565
+ return $res;
566
+ }
567
+
568
+ //Bombard the calling function will all the info which we've just used.
569
+ return $this->result;
570
+ }
571
+ }
includes/admin/licensing/plugin-upgrader.php CHANGED
@@ -269,9 +269,11 @@ class ExactMetrics_Plugin_Upgrader extends Plugin_Upgrader {
269
  * @param string $package The URI of the package. If this is the full path to an
270
  * existing local file, it will be returned untouched.
271
  * @param bool $check_signatures Whether to validate file signatures. Default false.
 
 
272
  * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object.
273
  */
274
- public function download_package( $package, $check_signatures = false ) {
275
 
276
  /**
277
  * Filter whether to return the package.
269
  * @param string $package The URI of the package. If this is the full path to an
270
  * existing local file, it will be returned untouched.
271
  * @param bool $check_signatures Whether to validate file signatures. Default false.
272
+ * @param array $hook_extra Added in WP 5.5.
273
+ *
274
  * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object.
275
  */
276
+ public function download_package( $package, $check_signatures = false, $hook_extra = array() ) {
277
 
278
  /**
279
  * Filter whether to return the package.
includes/admin/licensing/skin-legacy.php ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Skin class.
4
+ *
5
+ * @since 6.0.0
6
+ *
7
+ * @package ExactMetrics
8
+ * @subpackage Upgrader Skin
9
+ * @author Chris Christoff
10
+ */
11
+
12
+ // Exit if accessed directly
13
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit;
15
+ }
16
+
17
+ class ExactMetrics_Skin extends WP_Upgrader_Skin {
18
+
19
+ /**
20
+ * Primary class constructor.
21
+ *
22
+ * @since 6.0.0
23
+ *
24
+ * @param array $args Empty array of args (we will use defaults).
25
+ */
26
+ public function __construct( $args = array() ) {
27
+
28
+ parent::__construct();
29
+
30
+ }
31
+
32
+ /**
33
+ * Set the upgrader object and store it as a property in the parent class.
34
+ *
35
+ * @since 6.0.0
36
+ *
37
+ * @param object $upgrader The upgrader object (passed by reference).
38
+ */
39
+ public function set_upgrader( &$upgrader ) {
40
+
41
+ if ( is_object( $upgrader ) ) {
42
+ $this->upgrader =& $upgrader;
43
+ }
44
+
45
+ }
46
+
47
+ /**
48
+ * Set the upgrader result and store it as a property in the parent class.
49
+ *
50
+ * @since 6.0.0
51
+ *
52
+ * @param object $result The result of the install process.
53
+ */
54
+ public function set_result( $result ) {
55
+
56
+ $this->result = $result;
57
+
58
+ }
59
+
60
+ /**
61
+ * Empty out the header of its HTML content and only check to see if it has
62
+ * been performed or not.
63
+ *
64
+ * @since 6.0.0
65
+ */
66
+ public function header() {}
67
+
68
+ /**
69
+ * Empty out the footer of its HTML contents.
70
+ *
71
+ * @since 6.0.0
72
+ */
73
+ function footer() {}
74
+
75
+ /**
76
+ * Instead of outputting HTML for errors, json_encode the errors and send them
77
+ * back to the Ajax script for processing.
78
+ *
79
+ * @since 6.0.0
80
+ *
81
+ * @param array $errors Array of errors with the install process.
82
+ */
83
+ function error( $errors ) {
84
+
85
+ if ( ! empty( $errors ) ) {
86
+ $error_message = esc_html__( 'There was an error installing the addon. Please try again.', 'google-analytics-dashboard-for-wp' );
87
+ if ( is_wp_error( $errors ) ) {
88
+ /**
89
+ * @var WP_Error $errors
90
+ */
91
+ $message = $errors->get_error_message();
92
+
93
+ if ( ! empty( $message ) ) {
94
+ // Translators: The name of the addon that can't be installed.
95
+ $error_message = sprintf( esc_html__( 'There was an error installing the addon: %s', 'google-analytics-dashboard-for-wp' ), esc_html( $message ) );
96
+ }
97
+ }
98
+
99
+ wp_send_json( array( 'error' => $error_message ) );
100
+ }
101
+
102
+ }
103
+
104
+ /**
105
+ * Empty out the feedback method to prevent outputting HTML strings as the install
106
+ * is progressing.
107
+ *
108
+ * @since 6.0.0
109
+ *
110
+ * @param string $string The feedback string.
111
+ */
112
+ function feedback( $string ) {
113
+
114
+ }
115
+
116
+ }
includes/admin/licensing/skin.php CHANGED
@@ -109,7 +109,7 @@ class ExactMetrics_Skin extends WP_Upgrader_Skin {
109
  *
110
  * @param string $string The feedback string.
111
  */
112
- function feedback( $string ) {
113
 
114
  }
115
 
109
  *
110
  * @param string $string The feedback string.
111
  */
112
+ function feedback( $string, ...$args ) {
113
 
114
  }
115
 
includes/admin/routes.php CHANGED
@@ -726,9 +726,7 @@ class ExactMetrics_Rest_Routes {
726
  }
727
 
728
  // We do not need any extra credentials if we have gotten this far, so let's install the plugin.
729
- $base = ExactMetrics();
730
- require_once plugin_dir_path( $base->file ) . '/includes/admin/licensing/plugin-upgrader.php';
731
- require_once plugin_dir_path( $base->file ) . '/includes/admin/licensing/skin.php';
732
 
733
  // Prevent language upgrade in ajax calls.
734
  remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
726
  }
727
 
728
  // We do not need any extra credentials if we have gotten this far, so let's install the plugin.
729
+ exactmetrics_require_upgrader();
 
 
730
 
731
  // Prevent language upgrade in ajax calls.
732
  remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
includes/helpers.php CHANGED
@@ -1563,3 +1563,33 @@ function exactmetrics_restore_prettylinks_onboard_value() {
1563
  }
1564
  }
1565
  add_action( 'wp_loaded', 'exactmetrics_restore_prettylinks_onboard_value', 15 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1563
  }
1564
  }
1565
  add_action( 'wp_loaded', 'exactmetrics_restore_prettylinks_onboard_value', 15 );
1566
+
1567
+ /**
1568
+ * Check WP version and include the compatible upgrader skin.
1569
+ *
1570
+ * @param bool $custom_upgrader If true it will include our custom upgrader, otherwise it will use the default WP one.
1571
+ */
1572
+ function exactmetrics_require_upgrader( $custom_upgrader = true ) {
1573
+
1574
+ global $wp_version;
1575
+
1576
+ $base = ExactMetrics();
1577
+
1578
+ if ( ! $custom_upgrader ) {
1579
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
1580
+ }
1581
+
1582
+ // WP 5.3 changes the upgrader skin.
1583
+ if ( version_compare( $wp_version, '5.3', '<' ) ) {
1584
+ if ( $custom_upgrader ) {
1585
+ require_once plugin_dir_path( $base->file ) . 'includes/admin/licensing/plugin-upgrader.php';
1586
+ }
1587
+ require_once plugin_dir_path( $base->file ) . '/includes/admin/licensing/skin-legacy.php';
1588
+ } else {
1589
+ if ( $custom_upgrader ) {
1590
+ require_once plugin_dir_path( $base->file ) . 'includes/admin/licensing/plugin-upgrader.php';
1591
+ }
1592
+ require_once plugin_dir_path( $base->file ) . '/includes/admin/licensing/skin.php';
1593
+ }
1594
+
1595
+ }
languages/google-analytics-dashboard-for-wp.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Google Analytics Dashboard for WP (GADWP) plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Google Analytics Dashboard for WP (GADWP) 6.2.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/google-analytics-dashboard-for-wp\n"
7
  "Last-Translator: ExactMetrics Team <support@exactmetrics.com>\n"
8
  "Language-Team: ExactMetrics Team <support@exactmetrics.com>\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: 2020-08-05T15:05:45+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.2.0\n"
15
  "X-Domain: google-analytics-dashboard-for-wp\n"
@@ -153,7 +153,7 @@ msgstr ""
153
  #: lite/includes/admin/wp-site-health.php:372
154
  #: lite/includes/admin/wp-site-health.php:398
155
  #: lite/includes/admin/wp-site-health.php:425
156
- #: languages/vue.php:627
157
  msgid "View Addons"
158
  msgstr ""
159
 
@@ -236,15 +236,15 @@ msgstr ""
236
 
237
  #: lite/includes/admin/connect.php:141
238
  #: lite/includes/admin/connect.php:147
239
- #: lite/includes/admin/connect.php:187
240
  msgid "Plugin installed & activated."
241
  msgstr ""
242
 
243
- #: lite/includes/admin/connect.php:171
244
  msgid "You are not licensed."
245
  msgstr ""
246
 
247
- #: lite/includes/admin/connect.php:191
248
  msgid "Pro version installed but needs to be activated from the Plugins page inside your WordPress admin."
249
  msgstr ""
250
 
@@ -303,12 +303,12 @@ msgid "You are not allowed to install plugins"
303
  msgstr ""
304
 
305
  #: lite/includes/admin/reports/report-queries.php:22
306
- #: languages/vue.php:80
307
  msgid "Search Console"
308
  msgstr ""
309
 
310
  #: lite/includes/admin/reports/report-ecommerce.php:22
311
- #: languages/vue.php:77
312
  msgid "eCommerce"
313
  msgstr ""
314
 
@@ -321,17 +321,17 @@ msgid "Real Time"
321
  msgstr ""
322
 
323
  #: lite/includes/admin/reports/report-publisher.php:22
324
- #: languages/vue.php:73
325
  msgid "Publishers"
326
  msgstr ""
327
 
328
  #: lite/includes/admin/reports/report-dimensions.php:22
329
- #: languages/vue.php:182
330
  msgid "Dimensions"
331
  msgstr ""
332
 
333
  #: lite/includes/admin/reports/report-forms.php:22
334
- #: languages/vue.php:86
335
  msgid "Forms"
336
  msgstr ""
337
 
@@ -589,7 +589,7 @@ msgid "Question"
589
  msgstr ""
590
 
591
  #: includes/gutenberg/headline-tool/headline-tool.php:302
592
- #: languages/vue.php:111
593
  msgid "General"
594
  msgstr ""
595
 
@@ -3017,11 +3017,13 @@ msgid "Could not deauthenticate."
3017
  msgstr ""
3018
 
3019
  #: includes/admin/licensing/skin.php:86
 
3020
  msgid "There was an error installing the addon. Please try again."
3021
  msgstr ""
3022
 
3023
  #. Translators: The name of the addon that can't be installed.
3024
  #: includes/admin/licensing/skin.php:95
 
3025
  msgid "There was an error installing the addon: %s"
3026
  msgstr ""
3027
 
@@ -3068,7 +3070,7 @@ msgstr ""
3068
 
3069
  #: includes/admin/admin.php:39
3070
  #: includes/admin/admin.php:95
3071
- #: languages/vue.php:922
3072
  msgid "Reports"
3073
  msgstr ""
3074
 
@@ -3097,7 +3099,7 @@ msgstr ""
3097
 
3098
  #: includes/admin/admin.php:60
3099
  #: includes/admin/admin.php:103
3100
- #: languages/vue.php:100
3101
  msgid "About Us"
3102
  msgstr ""
3103
 
@@ -3126,7 +3128,7 @@ msgstr ""
3126
 
3127
  #: includes/admin/admin.php:175
3128
  #: includes/admin/admin.php:178
3129
- #: languages/vue.php:1026
3130
  msgid "Support"
3131
  msgstr ""
3132
 
@@ -3136,22 +3138,22 @@ msgid "Please rate %1$sExactMetrics%2$s on %3$s %4$sWordPress.org%5$s to help us
3136
  msgstr ""
3137
 
3138
  #: includes/admin/admin.php:281
3139
- #: languages/vue.php:132
3140
  msgid "Please Setup Website Analytics to See Audience Insights"
3141
  msgstr ""
3142
 
3143
  #: includes/admin/admin.php:282
3144
- #: languages/vue.php:138
3145
  msgid "Connect ExactMetrics and Setup Website Analytics"
3146
  msgstr ""
3147
 
3148
  #: includes/admin/admin.php:284
3149
- #: languages/vue.php:141
3150
  msgid "Learn More"
3151
  msgstr ""
3152
 
3153
  #: includes/admin/admin.php:286
3154
- #: languages/vue.php:135
3155
  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 1 million website owners use ExactMetrics to see the stats that matter and grow their business."
3156
  msgstr ""
3157
 
@@ -3162,17 +3164,17 @@ msgstr ""
3162
 
3163
  #. Translators: Adds a link to the license renewal.
3164
  #: includes/admin/admin.php:307
3165
- #: languages/vue.php:458
3166
  msgid "Your license key for ExactMetrics has expired. %1$sPlease click here to renew your license key.%2$s"
3167
  msgstr ""
3168
 
3169
  #: includes/admin/admin.php:309
3170
- #: languages/vue.php:461
3171
  msgid "Your license key for ExactMetrics has been disabled. Please use a different key."
3172
  msgstr ""
3173
 
3174
  #: includes/admin/admin.php:311
3175
- #: languages/vue.php:464
3176
  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."
3177
  msgstr ""
3178
 
@@ -3258,7 +3260,7 @@ msgid "View supported browsers"
3258
  msgstr ""
3259
 
3260
  #: includes/admin/reports/overview.php:34
3261
- #: languages/vue.php:70
3262
  msgid "Overview"
3263
  msgstr ""
3264
 
@@ -3350,7 +3352,7 @@ msgid "Upgrading is easy! To upgrade, navigate to %1$ssour pricing page%2$s, pur
3350
  msgstr ""
3351
 
3352
  #: includes/admin/reports/abstract-report.php:375
3353
- #: languages/vue.php:268
3354
  msgid "Upgrade Now"
3355
  msgstr ""
3356
 
@@ -4652,7 +4654,7 @@ msgid "Goal: "
4652
  msgstr ""
4653
 
4654
  #: languages/gutenberg.php:171
4655
- #: languages/vue.php:2334
4656
  msgid "Headline Analyzer"
4657
  msgstr ""
4658
 
@@ -4672,143 +4674,143 @@ msgstr ""
4672
  msgid "2"
4673
  msgstr ""
4674
 
4675
- #: languages/vue.php:13
4676
  msgid "Error"
4677
  msgstr ""
4678
 
4679
- #: languages/vue.php:16
4680
  msgid "Please try again."
4681
  msgstr ""
4682
 
4683
- #: languages/vue.php:19
4684
  msgid "Loading settings"
4685
  msgstr ""
4686
 
4687
  #. Translators: Number of visitors.
4688
- #: languages/vue.php:23
4689
  msgid "See how %s visitors found your site!"
4690
  msgstr ""
4691
 
4692
  #. Translators: Number of visitors.
4693
- #: languages/vue.php:27
4694
  msgid "Your website was visited by %s users in the last 30 days."
4695
  msgstr ""
4696
 
4697
- #: languages/vue.php:30
4698
  msgid "See the full analytics report!"
4699
  msgstr ""
4700
 
4701
- #: languages/vue.php:33
4702
  msgid "Overview Report"
4703
  msgstr ""
4704
 
4705
  #. Translators: Current WordPress version.
4706
- #: languages/vue.php:37
4707
  msgid "ExactMetrics has detected that your site is running an outdated version of WordPress (%s). ExactMetrics will stop supporting WordPress versions lower than 4.6 in April, 2019. Updating WordPress takes just a few minutes and will also solve many bugs that exist in your WordPress install."
4708
  msgstr ""
4709
 
4710
- #: languages/vue.php:40
4711
  msgid "Yikes! PHP Update Required"
4712
  msgstr ""
4713
 
4714
  #. Translators: Current PHP version and recommended PHP version.
4715
- #: languages/vue.php:44
4716
  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."
4717
  msgstr ""
4718
 
4719
- #: languages/vue.php:47
4720
  msgid "Learn more about updating PHP"
4721
  msgstr ""
4722
 
4723
- #: languages/vue.php:50
4724
  msgid "Yikes! WordPress Update Required"
4725
  msgstr ""
4726
 
4727
  #. Translators: Current WordPress version.
4728
- #: languages/vue.php:54
4729
  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 October, 2019. Updating WordPress takes just a few minutes and will also solve many bugs that exist in your WordPress install."
4730
  msgstr ""
4731
 
4732
- #: languages/vue.php:57
4733
  msgid "Learn more about updating WordPress"
4734
  msgstr ""
4735
 
4736
- #: languages/vue.php:60
4737
  msgid "Success! "
4738
  msgstr ""
4739
 
4740
- #: languages/vue.php:63
4741
  msgid "You're now using ExactMetrics Pro with all the features."
4742
  msgstr ""
4743
 
4744
  #. Translators: Placeholder gets replaced with an arrow icon.
4745
- #: languages/vue.php:67
4746
  msgid "Get Started %s"
4747
  msgstr ""
4748
 
4749
- #: languages/vue.php:83
4750
  msgid "Dimensions Report"
4751
  msgstr ""
4752
 
4753
- #: languages/vue.php:89
4754
  msgid "Real-Time"
4755
  msgstr ""
4756
 
4757
  #. Translators: Error status and error text.
4758
- #: languages/vue.php:93
4759
  msgid "Can't load report data. Error: %1$s, %2$s"
4760
  msgstr ""
4761
 
4762
- #: languages/vue.php:96
4763
  msgid "Error loading report data"
4764
  msgstr ""
4765
 
4766
- #: languages/vue.php:104
4767
  msgid "Getting Started"
4768
  msgstr ""
4769
 
4770
- #: languages/vue.php:108
4771
  msgid "Lite vs Pro"
4772
  msgstr ""
4773
 
4774
- #: languages/vue.php:114
4775
  msgid "Engagement"
4776
  msgstr ""
4777
 
4778
- #: languages/vue.php:117
4779
  msgid "Publisher"
4780
  msgstr ""
4781
 
4782
- #: languages/vue.php:120
4783
  msgid "Conversions"
4784
  msgstr ""
4785
 
4786
- #: languages/vue.php:123
4787
  msgid "Advanced"
4788
  msgstr ""
4789
 
4790
- #: languages/vue.php:126
4791
  msgid "URL Builder"
4792
  msgstr ""
4793
 
4794
- #: languages/vue.php:129
4795
  msgid "Import Export"
4796
  msgstr ""
4797
 
4798
- #: languages/vue.php:144
4799
  msgid "ExactMetrics encountered an error loading your report data"
4800
  msgstr ""
4801
 
4802
- #: languages/vue.php:147
4803
  msgid "There is an issue with your Google Account authentication. Please use the button below to fix it by re-authenticating."
4804
  msgstr ""
4805
 
4806
- #: languages/vue.php:150
4807
- #: languages/vue.php:2099
4808
  msgid "Reconnect ExactMetrics"
4809
  msgstr ""
4810
 
4811
- #: languages/vue.php:153
4812
  msgid "Re-Authenticating"
4813
  msgstr ""
4814
 
@@ -4824,16 +4826,16 @@ msgstr ""
4824
  msgid "ExactMetrics makes it \"effortless\" for you to connect your site with Google Analytics and see reports right here in the WordPress dashboard."
4825
  msgstr ""
4826
 
4827
- #: languages/vue.php:166
4828
  msgid "Launch Setup Wizard"
4829
  msgstr ""
4830
 
4831
- #: languages/vue.php:169
4832
  msgid "Please ask your webmaster to connect ExactMetrics to Google Analytics."
4833
  msgstr ""
4834
 
4835
  #. Translators: Placeholder is replaced with WPForms.
4836
- #: languages/vue.php:173
4837
  msgid "Recommended Plugin: %s"
4838
  msgstr ""
4839
 
@@ -4841,2737 +4843,2737 @@ msgstr ""
4841
  msgid "Install"
4842
  msgstr ""
4843
 
4844
- #: languages/vue.php:179
4845
  msgid "Activate"
4846
  msgstr ""
4847
 
4848
- #: languages/vue.php:185
4849
  msgid "See Quick Links"
4850
  msgstr ""
4851
 
4852
- #: languages/vue.php:188
4853
  msgid "Suggest a Feature"
4854
  msgstr ""
4855
 
4856
- #: languages/vue.php:191
4857
  msgid "Join Our Community"
4858
  msgstr ""
4859
 
4860
- #: languages/vue.php:194
4861
  msgid "Support & Docs"
4862
  msgstr ""
4863
 
4864
- #: languages/vue.php:197
4865
  msgid "Upgrade to Pro &#187;"
4866
  msgstr ""
4867
 
4868
- #: languages/vue.php:200
4869
  msgid "Save Changes"
4870
  msgstr ""
4871
 
4872
- #: languages/vue.php:203
4873
  msgid "Exit Setup"
4874
  msgstr ""
4875
 
4876
- #: languages/vue.php:206
4877
- #: languages/vue.php:1569
4878
  msgid "ExactMetrics Addons"
4879
  msgstr ""
4880
 
4881
- #: languages/vue.php:209
4882
  msgid "Search Addons"
4883
  msgstr ""
4884
 
4885
  #. Translators: Placeholders are replaced with the current step number out of the total number of steps.
4886
- #: languages/vue.php:213
4887
  msgid "Step %1$s of %2$s"
4888
  msgstr ""
4889
 
4890
- #. Translators: Makes text bold.
4891
  #: languages/vue.php:218
4892
  msgid "%1$sUniversal Tracking%2$s – Setup universal website tracking across devices and campaigns with just a few clicks (without any code)."
4893
  msgstr ""
4894
 
4895
- #. Translators: Makes text bold.
4896
- #: languages/vue.php:223
4897
  msgid "%1$sGoogle Analytics Dashboard%2$s - See your website analytics report right inside your WordPress dashboard with actionable insights."
4898
  msgstr ""
4899
 
4900
- #. Translators: Makes text bold.
4901
- #: languages/vue.php:228
4902
  msgid "%1$sReal-time Stats%2$s - Get real-time stats inside WordPress to see who is online, what are they doing and more."
4903
  msgstr ""
4904
 
4905
  #. Translators: Makes text bold.
4906
- #: languages/vue.php:232
4907
  msgid "%1$sEnhanced Ecommerce Tracking%2$s - 1-click Google Analytics Enhanced eCommerce tracking for WooCommerce, Easy Digital Download & MemberPress."
4908
  msgstr ""
4909
 
4910
- #. Translators: Makes text bold.
4911
- #: languages/vue.php:237
4912
  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."
4913
  msgstr ""
4914
 
4915
- #. Translators: Makes text bold.
4916
- #: languages/vue.php:242
4917
  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."
4918
  msgstr ""
4919
 
4920
- #. Translators: Makes text bold.
4921
- #: languages/vue.php:247
4922
  msgid "%1$sEU Compilance (GDPR Friendly)%2$s - Make Google Analytics compliant with GDPR and other privacy regulations automatically."
4923
  msgstr ""
4924
 
4925
  #. Translators: Makes text bold.
4926
- #: languages/vue.php:251
4927
  msgid "%1$sCustom Dimensions%2$s - Setup tracking for authors, tags, searches, custom post types, users, and other events with 1-click."
4928
  msgstr ""
4929
 
4930
- #. Translators: Adds link to the features page.
4931
- #: languages/vue.php:256
4932
  msgid "%1$sSee All Features%2$s"
4933
  msgstr ""
4934
 
4935
- #: languages/vue.php:260
4936
  msgid "Pro Plan"
4937
  msgstr ""
4938
 
4939
- #: languages/vue.php:264
4940
  msgid "per year"
4941
  msgstr ""
4942
 
4943
- #: languages/vue.php:271
4944
  msgid "Upgrade to ExactMetrics Pro Now"
4945
  msgstr ""
4946
 
4947
- #: languages/vue.php:275
4948
  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!"
4949
  msgstr ""
4950
 
4951
- #: languages/vue.php:279
4952
  msgid "Daniel Monaghan - Experienced"
4953
  msgstr ""
4954
 
4955
- #: languages/vue.php:283
4956
  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."
4957
  msgstr ""
4958
 
4959
- #: languages/vue.php:287
4960
  msgid "Naomi Spirit - From This Day"
4961
  msgstr ""
4962
 
4963
- #: languages/vue.php:291
4964
  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!"
4965
  msgstr ""
4966
 
4967
- #: languages/vue.php:295
4968
  msgid "Julie Dupuis - Faraway Land Travel"
4969
  msgstr ""
4970
 
4971
- #: languages/vue.php:299
4972
  msgid "Guides and Documentation:"
4973
  msgstr ""
4974
 
4975
- #: languages/vue.php:307
4976
  msgid "Upgrade to PRO"
4977
  msgstr ""
4978
 
4979
- #: languages/vue.php:310
4980
  msgid "eCommerce Tracking"
4981
  msgstr ""
4982
 
4983
- #: languages/vue.php:313
4984
  msgid "Custom Dimensions"
4985
  msgstr ""
4986
 
4987
- #: languages/vue.php:317
4988
  msgid "Form Tracking"
4989
  msgstr ""
4990
 
4991
- #: languages/vue.php:321
4992
  msgid "AMP Support"
4993
  msgstr ""
4994
 
4995
- #: languages/vue.php:325
4996
  msgid "Author Tracking"
4997
  msgstr ""
4998
 
4999
- #: languages/vue.php:329
5000
  msgid "EU Compliance Addon"
5001
  msgstr ""
5002
 
5003
- #: languages/vue.php:333
5004
  msgid "Real Time Report"
5005
  msgstr ""
5006
 
5007
- #: languages/vue.php:337
5008
  msgid "Google Optimize"
5009
  msgstr ""
5010
 
5011
- #: languages/vue.php:341
5012
  msgid "Custom Date Ranges"
5013
  msgstr ""
5014
 
5015
- #: languages/vue.php:345
5016
  msgid "Getting Started with ExactMetrics"
5017
  msgstr ""
5018
 
5019
- #: languages/vue.php:349
5020
  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."
5021
  msgstr ""
5022
 
5023
- #: languages/vue.php:353
5024
  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."
5025
  msgstr ""
5026
 
5027
- #: languages/vue.php:357
5028
  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!."
5029
  msgstr ""
5030
 
5031
- #: languages/vue.php:361
5032
  msgid "Launch the wizard!"
5033
  msgstr ""
5034
 
5035
- #: languages/vue.php:364
5036
  msgid "Welcome to"
5037
  msgstr ""
5038
 
5039
  #. Translators: Adds a line break.
5040
- #: languages/vue.php:369
5041
  msgid "Thank you for choosing ExactMetrics -%s The Most Powerful WordPress Analytics Plugin"
5042
  msgstr ""
5043
 
5044
- #. Translators: Makes text bold.
5045
- #: languages/vue.php:374
5046
  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."
5047
  msgstr ""
5048
 
5049
- #: languages/vue.php:378
5050
  msgid "ExactMetrics Features & Addons"
5051
  msgstr ""
5052
 
5053
- #: languages/vue.php:382
5054
  msgid "Here are the features that make ExactMetrics the most powerful and user-friendly WordPress analytics plugin in the market."
5055
  msgstr ""
5056
 
5057
- #: languages/vue.php:385
5058
  msgid "Loading new report data"
5059
  msgstr ""
5060
 
5061
- #: languages/vue.php:389
5062
  msgid "Please wait..."
5063
  msgstr ""
5064
 
5065
- #. Translators: Adds an arrow icon.
5066
- #: languages/vue.php:393
5067
  msgid "Continue %s"
5068
  msgstr ""
5069
 
5070
- #: languages/vue.php:396
5071
  msgid "Unlock the Publishers Report and Focus on the Content that Matters"
5072
  msgstr ""
5073
 
5074
- #: languages/vue.php:399
5075
  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."
5076
  msgstr ""
5077
 
5078
- #: languages/vue.php:402
5079
  msgid "Unlock the Publishers Report and Focus on the Content That Matters"
5080
  msgstr ""
5081
 
5082
- #: languages/vue.php:405
5083
  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."
5084
  msgstr ""
5085
 
5086
- #: languages/vue.php:408
5087
  msgid "Unlock the eCommerce Report and See Your Important Store Metrics"
5088
  msgstr ""
5089
 
5090
- #: languages/vue.php:411
5091
  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."
5092
  msgstr ""
5093
 
5094
- #: languages/vue.php:414
5095
  msgid "Unlock the Dimensions Report and Track Your Own Custom Data"
5096
  msgstr ""
5097
 
5098
- #: languages/vue.php:417
5099
  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."
5100
  msgstr ""
5101
 
5102
- #: languages/vue.php:420
5103
  msgid "Unlock the Forms Report and Improve Conversions"
5104
  msgstr ""
5105
 
5106
- #: languages/vue.php:423
5107
  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."
5108
  msgstr ""
5109
 
5110
- #: languages/vue.php:426
5111
  msgid "Unlock the Search Console Report and See How People Find Your Website"
5112
  msgstr ""
5113
 
5114
- #: languages/vue.php:429
5115
  msgid "See exactly how people find your website, which keywords they searched for, how many times the results were viewed, and more."
5116
  msgstr ""
5117
 
5118
- #: languages/vue.php:432
5119
  msgid "Unlock the Real-Time Report and Track the Visitors on Your Site in Real-Time"
5120
  msgstr ""
5121
 
5122
- #: languages/vue.php:435
5123
  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."
5124
  msgstr ""
5125
 
5126
- #: languages/vue.php:438
5127
  msgid "Go back"
5128
  msgstr ""
5129
 
5130
  #. Translators: Adds a link to documentation.
5131
- #: languages/vue.php:442
5132
  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"
5133
  msgstr ""
5134
 
5135
  #. Translators: Adds link to activate/install plugin and documentation.
5136
- #: languages/vue.php:446
5137
  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"
5138
  msgstr ""
5139
 
5140
  #. Translators: Adds a link to documentation.
5141
- #: languages/vue.php:450
5142
  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"
5143
  msgstr ""
5144
 
5145
  #. Translators: Adds link to activate/install plugin and documentation.
5146
- #: languages/vue.php:454
5147
  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"
5148
  msgstr ""
5149
 
5150
- #: languages/vue.php:467
5151
  msgid "Time to Purchase"
5152
  msgstr ""
5153
 
5154
- #: languages/vue.php:470
5155
  msgid "This list shows how many days from first visit it took users to purchase products from your site."
5156
  msgstr ""
5157
 
5158
- #: languages/vue.php:473
5159
  msgid "Sessions to Purchase"
5160
  msgstr ""
5161
 
5162
- #: languages/vue.php:476
5163
  msgid "This list shows the number of sessions it took users before they purchased a product from your website."
5164
  msgstr ""
5165
 
5166
- #: languages/vue.php:479
5167
  msgid "Top Posts/Pages"
5168
  msgstr ""
5169
 
5170
- #: languages/vue.php:482
5171
  msgid "This list shows the most viewed posts and pages on your website."
5172
  msgstr ""
5173
 
5174
- #: languages/vue.php:485
5175
  msgid "New vs. Returning Visitors"
5176
  msgstr ""
5177
 
5178
- #: languages/vue.php:488
5179
  msgid "This graph shows what percent of your user sessions come from new versus repeat visitors."
5180
  msgstr ""
5181
 
5182
- #: languages/vue.php:491
5183
  msgid "Device Breakdown"
5184
  msgstr ""
5185
 
5186
- #: languages/vue.php:494
5187
  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."
5188
  msgstr ""
5189
 
5190
- #: languages/vue.php:497
5191
  msgid "Top Landing Pages"
5192
  msgstr ""
5193
 
5194
- #: languages/vue.php:500
5195
  msgid "This list shows the top pages users first land on when visiting your website."
5196
  msgstr ""
5197
 
5198
- #: languages/vue.php:503
5199
  msgid "Top Exit Pages"
5200
  msgstr ""
5201
 
5202
- #: languages/vue.php:506
5203
  msgid "This list shows the top pages users exit your website from."
5204
  msgstr ""
5205
 
5206
- #: languages/vue.php:509
5207
  msgid "Top Outbound Links"
5208
  msgstr ""
5209
 
5210
- #: languages/vue.php:512
5211
  msgid "This list shows the top links clicked on your website that go to another website."
5212
  msgstr ""
5213
 
5214
- #: languages/vue.php:515
5215
  msgid "Top Affiliate Links"
5216
  msgstr ""
5217
 
5218
- #: languages/vue.php:518
5219
  msgid "This list shows the top affiliate links your visitors clicked on."
5220
  msgstr ""
5221
 
5222
- #: languages/vue.php:521
5223
  msgid "Top Download Links"
5224
  msgstr ""
5225
 
5226
- #: languages/vue.php:524
5227
  msgid "This list shows the download links your visitors clicked the most."
5228
  msgstr ""
5229
 
5230
- #: languages/vue.php:527
5231
  msgid "Top Products"
5232
  msgstr ""
5233
 
5234
- #: languages/vue.php:530
5235
  msgid "This list shows the top selling products on your website."
5236
  msgstr ""
5237
 
5238
- #: languages/vue.php:533
5239
  msgid "Top Conversion Sources"
5240
  msgstr ""
5241
 
5242
- #: languages/vue.php:536
5243
  msgid "This list shows the top referral websites in terms of product revenue."
5244
  msgstr ""
5245
 
5246
- #: languages/vue.php:539
5247
  msgid "Total Add/Remove"
5248
  msgstr ""
5249
 
5250
- #: languages/vue.php:542
5251
  msgid "New"
5252
  msgstr ""
5253
 
5254
- #: languages/vue.php:545
5255
  msgid "Returning"
5256
  msgstr ""
5257
 
5258
- #: languages/vue.php:548
5259
  msgid "Desktop"
5260
  msgstr ""
5261
 
5262
- #: languages/vue.php:551
5263
  msgid "Tablet"
5264
  msgstr ""
5265
 
5266
- #: languages/vue.php:554
5267
  msgid "Mobile"
5268
  msgstr ""
5269
 
5270
- #: languages/vue.php:558
5271
  msgid "Sessions"
5272
  msgstr ""
5273
 
5274
- #: languages/vue.php:562
5275
  msgid "Pageviews"
5276
  msgstr ""
5277
 
5278
- #: languages/vue.php:565
5279
  msgid "Avg. Session Duration"
5280
  msgstr ""
5281
 
5282
- #: languages/vue.php:569
5283
  msgid "Bounce Rate"
5284
  msgstr ""
5285
 
5286
- #: languages/vue.php:572
5287
  msgid "Top 10 Countries"
5288
  msgstr ""
5289
 
5290
- #: languages/vue.php:575
5291
  msgid "View Countries Report"
5292
  msgstr ""
5293
 
5294
- #: languages/vue.php:578
5295
  msgid "Top 10 Referrals"
5296
  msgstr ""
5297
 
5298
- #: languages/vue.php:581
5299
  msgid "View All Referral Sources"
5300
  msgstr ""
5301
 
5302
- #: languages/vue.php:584
5303
  msgid "View Full Posts/Pages Report"
5304
  msgstr ""
5305
 
5306
- #: languages/vue.php:587
5307
  msgid "A session is the browsing session of a single user to your site."
5308
  msgstr ""
5309
 
5310
- #: languages/vue.php:590
5311
  msgid "A pageview is defined as a view of a page on your site that is being tracked by the Analytics tracking code. Each refresh of a page is also a new pageview."
5312
  msgstr ""
5313
 
5314
- #: languages/vue.php:593
5315
  msgid "Total duration of all sessions (in seconds) / number of sessions."
5316
  msgstr ""
5317
 
5318
- #: languages/vue.php:596
5319
  msgid "Percentage of single-page visits (or web sessions). It is the number of visits in which a person leaves your website from the landing page without browsing any further."
5320
  msgstr ""
5321
 
5322
- #: languages/vue.php:599
5323
  msgid "This list shows the top countries your website visitors are from."
5324
  msgstr ""
5325
 
5326
- #: languages/vue.php:602
5327
  msgid "This list shows the top websites that send your website traffic, known as referral traffic."
5328
  msgstr ""
5329
 
5330
- #: languages/vue.php:605
5331
  msgid "Installing Addon"
5332
  msgstr ""
5333
 
5334
- #: languages/vue.php:608
5335
  msgid "Activating Addon"
5336
  msgstr ""
5337
 
5338
- #: languages/vue.php:611
5339
  msgid "Addon Activated"
5340
  msgstr ""
5341
 
5342
- #: languages/vue.php:614
5343
  msgid "Loading report data"
5344
  msgstr ""
5345
 
5346
- #: languages/vue.php:617
5347
  msgid "Please activate manually"
5348
  msgstr ""
5349
 
5350
  #. Translators: Adds the error status and status text.
5351
- #: languages/vue.php:621
5352
  msgid "Error: %1$s, %2$s"
5353
  msgstr ""
5354
 
5355
- #: languages/vue.php:624
5356
  msgid "Error Activating Addon"
5357
  msgstr ""
5358
 
5359
- #: languages/vue.php:630
5360
  msgid "Dismiss"
5361
  msgstr ""
5362
 
5363
- #: languages/vue.php:633
5364
  msgid "Redirecting"
5365
  msgstr ""
5366
 
5367
- #: languages/vue.php:636
5368
  msgid "Please wait"
5369
  msgstr ""
5370
 
5371
- #: languages/vue.php:639
5372
  msgid "activate"
5373
  msgstr ""
5374
 
5375
- #: languages/vue.php:642
5376
  msgid "install"
5377
  msgstr ""
5378
 
5379
- #: languages/vue.php:645
5380
  msgid "Visit addons page"
5381
  msgstr ""
5382
 
5383
- #: languages/vue.php:648
5384
  msgid "Report Unavailable"
5385
  msgstr ""
5386
 
5387
  #. Translators: Install/Activate the addon.
5388
- #: languages/vue.php:652
5389
  msgid "%s Addon"
5390
  msgstr ""
5391
 
5392
- #: languages/vue.php:655
5393
  msgid "Go Back To Reports"
5394
  msgstr ""
5395
 
5396
- #: languages/vue.php:658
5397
  msgid "Enable Enhanced eCommerce"
5398
  msgstr ""
5399
 
5400
- #: languages/vue.php:661
5401
  msgid "Loading Settings"
5402
  msgstr ""
5403
 
5404
- #: languages/vue.php:664
5405
  msgid "Saving Changes..."
5406
  msgstr ""
5407
 
5408
- #: languages/vue.php:667
5409
  msgid "Settings Updated"
5410
  msgstr ""
5411
 
5412
  #. Translators: Add a link to the onboarding wizard.
5413
- #: languages/vue.php:671
5414
  msgid "You need to %1$sconnect ExactMetrics%2$s first"
5415
  msgstr ""
5416
 
5417
- #: languages/vue.php:674
5418
  msgid "Could Not Save Changes"
5419
  msgstr ""
5420
 
5421
  #. Translators: Gets replaced with the number of days.
5422
- #: languages/vue.php:678
5423
  msgid "Last %s days"
5424
  msgstr ""
5425
 
5426
- #: languages/vue.php:681
5427
  msgid "Analytics"
5428
  msgstr ""
5429
 
5430
  #. Translators: Adds an arrow icon.
5431
- #: languages/vue.php:685
5432
  msgid "View All Reports %s"
5433
  msgstr ""
5434
 
5435
  #. Translators: Placeholders are used for making text bold and adding a link.
5436
- #: languages/vue.php:689
5437
  msgid "You're using %1$s%2$s Lite%3$s. To unlock more features consider %4$supgrading to Pro%5$s."
5438
  msgstr ""
5439
 
5440
  #. Translators: Placeholders make the text highlighted.
5441
- #: languages/vue.php:693
5442
  msgid "%1$sNeed%2$s to Grow FASTER??"
5443
  msgstr ""
5444
 
5445
- #: languages/vue.php:696
5446
  msgid "Get additional, actionable insights by going Pro."
5447
  msgstr ""
5448
 
5449
- #: languages/vue.php:699
5450
  msgid "Skip"
5451
  msgstr ""
5452
 
5453
- #: languages/vue.php:702
5454
  msgid "See All Features"
5455
  msgstr ""
5456
 
5457
- #: languages/vue.php:705
5458
  msgid "Upgrade to Pro to get the complete ExactMetrics experience including 1 click tracking integrations for your favorite WordPress plugins and insightful reports backed by our legendary support team."
5459
  msgstr ""
5460
 
5461
- #: languages/vue.php:708
5462
  msgid "Our Pro plan includes:"
5463
  msgstr ""
5464
 
5465
- #: languages/vue.php:711
5466
  msgid "Awesome, You're All Set!"
5467
  msgstr ""
5468
 
5469
- #: languages/vue.php:714
5470
  msgid "ExactMetrics is all set up and ready to use. We've verified that the tracking code is deployed properly and collecting data."
5471
  msgstr ""
5472
 
5473
  #. Translators: Make the text bold.
5474
- #: languages/vue.php:718
5475
  msgid "%1$sPlease Note:%2$s While Google Analytics is properly setup and tracking everything, it does not send the data back to WordPress immediately. Depending on the size of your website, it can take between a few hours to 24 hours for reports to populate."
5476
  msgstr ""
5477
 
5478
  #. Translators: Add link to blog.
5479
- #: languages/vue.php:722
5480
  msgid "%1$sSubscribe to the ExactMetrics blog%2$s for tips on how to get more traffic and grow your business."
5481
  msgstr ""
5482
 
5483
- #: languages/vue.php:725
5484
  msgid "Finish Setup & Exit Wizard"
5485
  msgstr ""
5486
 
5487
- #: languages/vue.php:728
5488
  msgid "Google Analytics"
5489
  msgstr ""
5490
 
5491
- #: languages/vue.php:731
5492
  msgid "Subscribe"
5493
  msgstr ""
5494
 
5495
- #: languages/vue.php:734
5496
  msgid "Checking your website..."
5497
  msgstr ""
5498
 
5499
- #: languages/vue.php:737
5500
  msgid "Recommended Settings"
5501
  msgstr ""
5502
 
5503
- #: languages/vue.php:740
5504
  msgid "ExactMetrics recommends the following settings based on your configuration."
5505
  msgstr ""
5506
 
5507
- #: languages/vue.php:743
5508
  msgid "Events Tracking"
5509
  msgstr ""
5510
 
5511
- #: languages/vue.php:746
5512
  msgid "Must have for all click tracking on site."
5513
  msgstr ""
5514
 
5515
- #: languages/vue.php:749
5516
  msgid "ExactMetrics uses an advanced system to automatically detect all outbound links, download links, affiliate links, telephone links, mail links, and more automatically. We do all the work for you so you don't have to write any code."
5517
  msgstr ""
5518
 
5519
- #: languages/vue.php:752
5520
  msgid "Enhanced Link Attribution"
5521
  msgstr ""
5522
 
5523
- #: languages/vue.php:755
5524
  msgid "Improves the accuracy of your In-Page Analytics."
5525
  msgstr ""
5526
 
5527
- #: languages/vue.php:758
5528
  msgid "ExactMetrics will automatically help Google determine which links are unique and where they are on your site so that your In-Page Analytics reporting will be more accurate."
5529
  msgstr ""
5530
 
5531
- #: languages/vue.php:761
5532
  msgid "Install Updates Automatically"
5533
  msgstr ""
5534
 
5535
- #: languages/vue.php:764
5536
  msgid "Get the latest features, bug fixes, and security updates as they are released."
5537
  msgstr ""
5538
 
5539
- #: languages/vue.php:767
5540
  msgid "To ensure you get the latest bugfixes and security updates and avoid needing to spend time logging into your WordPress site to update ExactMetrics, we offer the ability to automatically have ExactMetrics update itself."
5541
  msgstr ""
5542
 
5543
- #: languages/vue.php:770
5544
  msgid "File Download Tracking"
5545
  msgstr ""
5546
 
5547
- #: languages/vue.php:773
5548
  msgid "Helps you see file downloads data."
5549
  msgstr ""
5550
 
5551
- #: languages/vue.php:776
5552
  msgid "ExactMetrics will automatically track downloads of common file types from links you have inserted onto your website. For example: want to know how many of your site's visitors have downloaded a PDF or other file you offer your visitors to download on your site? ExactMetrics makes this both easy, and code-free! You can customize the file types to track at any time from our settings panel."
5553
  msgstr ""
5554
 
5555
  #. Translators: Example path (/go/).
5556
- #: languages/vue.php:781
5557
  msgid "Path (example: %s)"
5558
  msgstr ""
5559
 
5560
- #: languages/vue.php:785
5561
  msgid "Path has to start with a / and have no spaces"
5562
  msgstr ""
5563
 
5564
  #. Translators: Example label (aff).
5565
- #: languages/vue.php:790
5566
  msgid "Label (example: %s)"
5567
  msgstr ""
5568
 
5569
- #: languages/vue.php:794
5570
  msgid "Label can't contain any spaces"
5571
  msgstr ""
5572
 
5573
- #: languages/vue.php:797
5574
  msgid "Helps you increase affiliate revenue."
5575
  msgstr ""
5576
 
5577
- #: languages/vue.php:800
5578
  msgid "ExactMetrics will automatically help you track affiliate links that use internal looking urls like example.com/go/ or example.com/refer/. You can add custom affiliate patterns on our settings panel when you finish the onboarding wizard."
5579
  msgstr ""
5580
 
5581
- #: languages/vue.php:803
5582
  msgid "Affiliate Link Tracking"
5583
  msgstr ""
5584
 
5585
- #: languages/vue.php:806
5586
  msgid "Who Can See Reports"
5587
  msgstr ""
5588
 
5589
- #: languages/vue.php:809
5590
  msgid "These user roles will be able to access ExactMetrics's reports in the WordPress admin area."
5591
  msgstr ""
5592
 
5593
- #: languages/vue.php:812
5594
  msgid "Users that have at least one of these roles will be able to view the reports, along with any user with the manage_options capability."
5595
  msgstr ""
5596
 
5597
- #: languages/vue.php:815
5598
  msgid "Save and continue"
5599
  msgstr ""
5600
 
5601
- #: languages/vue.php:818
5602
  msgid "Events Tracking is enabled the moment you set up ExactMetrics"
5603
  msgstr ""
5604
 
5605
- #: languages/vue.php:821
5606
  msgid "Enhanced Link Attribution is enabled the moment you set up ExactMetrics"
5607
  msgstr ""
5608
 
5609
- #: languages/vue.php:824
5610
  msgid "+ Add Role"
5611
  msgstr ""
5612
 
5613
- #: languages/vue.php:827
5614
  msgid "Affiliate Links"
5615
  msgstr ""
5616
 
5617
  #. Translators: Add links to documentation.
5618
- #: languages/vue.php:831
5619
  msgid "This allows you to track custom affiliate links. A path of /go/ would match urls that start with that. The label is appended onto the end of the string \"outbound-link-\", to provide unique labels for these links in Google Analytics. Complete documentation on affiliate links is available %1$shere%2$s."
5620
  msgstr ""
5621
 
5622
- #: languages/vue.php:834
5623
  msgid "Our affiliate link tracking works by setting path for internal links to track as outbound links."
5624
  msgstr ""
5625
 
5626
- #: languages/vue.php:837
5627
  msgid "Connect ExactMetrics to Your Website"
5628
  msgstr ""
5629
 
5630
- #: languages/vue.php:840
5631
  msgid "ExactMetrics connects Google Analytics to WordPress and shows you stats that matter."
5632
  msgstr ""
5633
 
5634
- #: languages/vue.php:843
5635
  msgid "Connect Google Analytics + WordPress"
5636
  msgstr ""
5637
 
5638
- #: languages/vue.php:846
5639
  msgid "You will be taken to the ExactMetrics website where you'll need to connect your Analytics account."
5640
  msgstr ""
5641
 
5642
- #: languages/vue.php:849
5643
  msgid "Whoops, something went wrong and we weren't able to connect to ExactMetrics. Please enter your Google UA code manually."
5644
  msgstr ""
5645
 
5646
- #: languages/vue.php:852
5647
  msgid "Manually enter your UA code"
5648
  msgstr ""
5649
 
5650
- #: languages/vue.php:855
5651
  msgid "Warning: If you use a manual UA code, you won't be able to use any of the reporting and some of the tracking features. Your UA code should look like UA-XXXXXX-XX where the X's are numbers."
5652
  msgstr ""
5653
 
5654
- #: languages/vue.php:858
5655
  msgid "Save and Continue"
5656
  msgstr ""
5657
 
5658
- #: languages/vue.php:861
5659
  msgid "UA code can't be empty"
5660
  msgstr ""
5661
 
5662
- #: languages/vue.php:864
5663
  msgid "Saving UA code..."
5664
  msgstr ""
5665
 
5666
  #. Translators: placeholders make text small.
5667
- #: languages/vue.php:868
5668
  msgid "Dashboard Widget Only %1$s- Disable reports, but show dashboard widget.%2$s"
5669
  msgstr ""
5670
 
5671
  #. Translators: placeholders make text small.
5672
- #: languages/vue.php:872
5673
  msgid "Disabled %1$s- Hide reports and dashboard widget.%2$s"
5674
  msgstr ""
5675
 
5676
  #. Translators: placeholders make text small.
5677
- #: languages/vue.php:876
5678
  msgid "Yes (recommended) %1$s- Get the latest features, bugfixes, and security updates as they are released.%2$s"
5679
  msgstr ""
5680
 
5681
  #. Translators: placeholders make text small.
5682
- #: languages/vue.php:880
5683
  msgid "Minor only %1$s- Get bugfixes and security updates, but not major features.%2$s"
5684
  msgstr ""
5685
 
5686
  #. Translators: placeholders make text small.
5687
- #: languages/vue.php:884
5688
  msgid "None %1$s- Manually update everything.%2$s"
5689
  msgstr ""
5690
 
5691
  #. Translators: Adds a link to the general settings tab.
5692
- #: languages/vue.php:888
5693
  msgid "It looks like you added a Google Analytics tracking code in the custom code area, this can potentially prevent proper tracking. If you want to use a manual UA please use the setting in the %1$sGeneral%2$s tab."
5694
  msgstr ""
5695
 
5696
- #: languages/vue.php:891
5697
  msgid "Permissions"
5698
  msgstr ""
5699
 
5700
- #: languages/vue.php:894
5701
  msgid "Allow These User Roles to See Reports"
5702
  msgstr ""
5703
 
5704
- #: languages/vue.php:897
5705
  msgid "Users that have at least one of these roles will be able to view the reports."
5706
  msgstr ""
5707
 
5708
- #: languages/vue.php:900
5709
  msgid "Allow These User Roles to Save Settings"
5710
  msgstr ""
5711
 
5712
- #: languages/vue.php:903
5713
  msgid "Users that have at least one of these roles will be able to view and save the settings panel."
5714
  msgstr ""
5715
 
5716
- #: languages/vue.php:906
5717
  msgid "Users that have at least one of these roles will be able to view and save the settings panel, along with any user with the manage_options capability."
5718
  msgstr ""
5719
 
5720
- #: languages/vue.php:909
5721
  msgid "Exclude These User Roles From Tracking"
5722
  msgstr ""
5723
 
5724
- #: languages/vue.php:912
5725
  msgid "Users that have at least one of these roles will not be tracked into Google Analytics."
5726
  msgstr ""
5727
 
5728
- #: languages/vue.php:915
5729
  msgid "Custom code"
5730
  msgstr ""
5731
 
5732
  #. Translators: Adds a link to the Google reference.
5733
- #: languages/vue.php:919
5734
  msgid "Not for the average user: this allows you to add a line of code, to be added before the %1$spageview is sent%2$s."
5735
  msgstr ""
5736
 
5737
- #: languages/vue.php:926
5738
  msgid "Automatic Updates"
5739
  msgstr ""
5740
 
5741
- #: languages/vue.php:929
5742
  msgid "You must have the \"unfiltered_html\" capability to view/edit this setting."
5743
  msgstr ""
5744
 
5745
- #: languages/vue.php:932
5746
  msgid "Hide Admin Bar Reports"
5747
  msgstr ""
5748
 
5749
  #. Translators: placeholders make text small.
5750
- #: languages/vue.php:936
5751
  msgid "Enabled %1$s- Show reports and dashboard widget.%2$s"
5752
  msgstr ""
5753
 
5754
- #: languages/vue.php:939
5755
  msgid "Last 30 Days Analytics for "
5756
  msgstr ""
5757
 
5758
- #: languages/vue.php:942
5759
  msgid "Your Website"
5760
  msgstr ""
5761
 
5762
- #: languages/vue.php:945
5763
  msgid "Avg. Duration"
5764
  msgstr ""
5765
 
5766
- #: languages/vue.php:948
5767
  msgid "More data is available"
5768
  msgstr ""
5769
 
5770
- #: languages/vue.php:951