Coder Social home page Coder Social logo

matomo-org / matomo-for-wordpress Goto Github PK

View Code? Open in Web Editor NEW
120.0 22.0 25.0 71.37 MB

Get a fully functioning Matomo Analytics for your WordPress. Star us on Github? +1. Matomo is the leading open alternative to Google Analytics that gives you full control over your data. Privacy is built-in. 100% data ownership, no one else can see your data. We love Pull Requests!

Home Page: https://matomo.org

License: GNU General Public License v3.0

PHP 74.07% JavaScript 9.84% Shell 0.30% CSS 0.22% Smarty 0.01% Less 1.77% Twig 2.86% TypeScript 2.93% Vue 8.01%
matomo analytics wordpress tagmanager web statistics privacy intranet piwik

matomo-for-wordpress's Issues

Detect if custom content directory is used and if so, mention it won't fully work

We should check if WP_CONTENT_DIR was customized. Need to see how to best check this. Maybe if(ABSPATH.'wp-content' != WP_CONTENT_DIR). To be seen.

If the directory is customized, the Matomo reporting UI won't fully work and the plugin should not do anything in that case besides showing a warning or an error basically. Or we could execute the plugin as usual and show only a warning on Matomo pages in WP that the Matomo reporting UI won't work. The summary reporting will still work very likely.

plugin not work

Hello

First, sorry if my english isn't correct.

I try to install the beta version of your wordpress plugin. when i activate the plugin, administration panel of WP isn't operationnal
(only solution - ssh access, remove directory matomo, - and now WP admin is OK)

some errors in php (see file add to the issue)

bests regards

Jean-Marie

(edit by @Findus23: Inlined text file)

[10-Nov-2019 16:43:36 UTC] PHP Fatal error:  Uncaught Piwik\Exception\NotYetInstalledException: Matomo is not set up yet in htdocs/wp-content/plugins/matomo/app/core/Application/Kernel/EnvironmentValidator.php:85
Stack trace:
#0 htdocs/wp-content/plugins/matomo/app/core/Application/Kernel/EnvironmentValidator.php(65): Piwik\Application\Kernel\EnvironmentValidator->checkConfigFileExists('/srv/data/web/v...', true)
#1 htdocs/wp-content/plugins/matomo/app/core/Application/Environment.php(185): Piwik\Application\Kernel\EnvironmentValidator->validate()
#2 htdocs/wp-content/plugins/matomo/app/core/Application/Environment.php(94): Piwik\Application\Environment->validateEnvironment()
#3 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Bootstrap.php(72): Piwik\Application\Environment->init()
#4 /srv/data/web/vhosts/agirpourma in htdocs/wp-content/plugins/matomo/app/core/Application/Kernel/EnvironmentValidator.php on line 85
[10-Nov-2019 16:43:37 UTC] PHP Deprecated:  strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in htdocs/wp-content/plugins/matomo/app/core/Access.php on line 717
[10-Nov-2019 16:43:37 UTC] PHP Fatal error:  Uncaught Exception: SitesManager_ExceptionEmptyName in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php:1595
Stack trace:
#0 htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php(620): Piwik\Plugins\SitesManager\API->checkName('')
#1 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(132): Piwik\Plugins\SitesManager\API->addSite('', Array, 1, NULL, NULL, NULL, NULL, NULL, 'Europe/London')
#2 htdocs/wp-content/plugins/matomo/app/core/Access.php(639): WpMatomo\Site\Sync->WpMatomo\Site\{closure}()
#3 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(142): Piwik\Access::doAsSuperUser(Object(Closure))
#4 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(84): WpMa in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php on line 1595
[10-Nov-2019 16:44:44 UTC] Erreur de la base de données WordPress Duplicate column name 'custom_var_k1' pour la requête ALTER TABLE pza_matomo_log_link_visit_action ADD COLUMN custom_var_k1 VARCHAR(200) DEFAULT NULL,ADD COLUMN custom_var_v1 VARCHAR(200) DEFAULT NULL; faite par do_action_ref_array('matomo_scheduled_sync'), WP_Hook->do_action, WP_Hook->apply_filters, WpMatomo\ScheduledTasks->sync, WpMatomo\Site\Sync->sync_all, WpMatomo\Bootstrap::do_bootstrap, WpMatomo\Bootstrap->bootstrap, Piwik\FrontController->init, Piwik\Plugin\Manager->installLoadedPlugins, Piwik\Plugin\Manager->installPluginIfNecessary, Piwik\Plugin\Manager->executePluginInstall, Piwik\Plugins\CustomVariables\CustomVariables->install, Piwik\Plugins\CustomVariables\Model::install, Piwik\Plugins\CustomVariables\Model->addCustomVariable, Piwik\Db::exec, Piwik\Db\Adapter\Wordpress->exec
[10-Nov-2019 16:44:44 UTC] Erreur de la base de données WordPress Duplicate column name 'custom_var_k4' pour la requête ALTER TABLE pza_matomo_log_visit ADD COLUMN custom_var_k4 VARCHAR(200) DEFAULT NULL,ADD COLUMN custom_var_v4 VARCHAR(200) DEFAULT NULL; faite par require_once('wp-admin/admin.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, WpMatomo->init_plugin, WpMatomo\Updater->update_if_needed, WpMatomo\Installer::is_intalled, WpMatomo\Bootstrap::do_bootstrap, WpMatomo\Bootstrap->bootstrap, Piwik\FrontController->init, Piwik\Plugin\Manager->installLoadedPlugins, Piwik\Plugin\Manager->installPluginIfNecessary, Piwik\Plugin\Manager->executePluginInstall, Piwik\Plugins\CustomVariables\CustomVariables->install, Piwik\Plugins\CustomVariables\Model::install, Piwik\Plugins\CustomVariables\Model->addCustomVariable, Piwik\Db::exec, Piwik\Db\Adapter\Wordpress->exec
[10-Nov-2019 16:44:44 UTC] Erreur de la base de données WordPress Duplicate column name 'custom_var_k1' pour la requête ALTER TABLE pza_matomo_log_conversion ADD COLUMN custom_var_k1 VARCHAR(200) DEFAULT NULL,ADD COLUMN custom_var_v1 VARCHAR(200) DEFAULT NULL; faite par do_action_ref_array('matomo_scheduled_sync'), WP_Hook->do_action, WP_Hook->apply_filters, WpMatomo\ScheduledTasks->sync, WpMatomo\Site\Sync->sync_all, WpMatomo\Bootstrap::do_bootstrap, WpMatomo\Bootstrap->bootstrap, Piwik\FrontController->init, Piwik\Plugin\Manager->installLoadedPlugins, Piwik\Plugin\Manager->installPluginIfNecessary, Piwik\Plugin\Manager->executePluginInstall, Piwik\Plugins\CustomVariables\CustomVariables->install, Piwik\Plugins\CustomVariables\Model::install, Piwik\Plugins\CustomVariables\Model->addCustomVariable, Piwik\Db::exec, Piwik\Db\Adapter\Wordpress->exec
[10-Nov-2019 16:44:45 UTC] PHP Deprecated:  strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in htdocs/wp-content/plugins/matomo/app/core/Access.php on line 717
[10-Nov-2019 16:44:45 UTC] PHP Deprecated:  strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in htdocs/wp-content/plugins/matomo/app/core/Access.php on line 717
[10-Nov-2019 16:44:45 UTC] PHP Fatal error:  Uncaught Exception: Le nom du site ne peut être vide. in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php:1595
Stack trace:
#0 htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php(620): Piwik\Plugins\SitesManager\API->checkName('')
#1 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(132): Piwik\Plugins\SitesManager\API->addSite('', Array, 1, NULL, NULL, NULL, NULL, NULL, 'Europe/London')
#2 htdocs/wp-content/plugins/matomo/app/core/Access.php(639): WpMatomo\Site\Sync->WpMatomo\Site\{closure}()
#3 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(142): Piwik\Access::doAsSuperUser(Object(Closure))
#4 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(84): W in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php on line 1595
[10-Nov-2019 16:44:45 UTC] PHP Fatal error:  Uncaught Exception: The website name can't be empty. in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php:1595
Stack trace:
#0 htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php(620): Piwik\Plugins\SitesManager\API->checkName('')
#1 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(132): Piwik\Plugins\SitesManager\API->addSite('', Array, 1, NULL, NULL, NULL, NULL, NULL, 'Europe/London')
#2 htdocs/wp-content/plugins/matomo/app/core/Access.php(639): WpMatomo\Site\Sync->WpMatomo\Site\{closure}()
#3 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(142): Piwik\Access::doAsSuperUser(Object(Closure))
#4 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(84): WpM in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php on line 1595
[10-Nov-2019 16:45:05 UTC] PHP Deprecated:  strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in htdocs/wp-content/plugins/matomo/app/core/Access.php on line 717
[10-Nov-2019 16:45:05 UTC] PHP Fatal error:  Uncaught Exception: Le nom du site ne peut être vide. in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php:1595
Stack trace:
#0 htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php(620): Piwik\Plugins\SitesManager\API->checkName('')
#1 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(132): Piwik\Plugins\SitesManager\API->addSite('', Array, 1, NULL, NULL, NULL, NULL, NULL, 'Europe/London')
#2 htdocs/wp-content/plugins/matomo/app/core/Access.php(639): WpMatomo\Site\Sync->WpMatomo\Site\{closure}()
#3 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(142): Piwik\Access::doAsSuperUser(Object(Closure))
#4 htdocs/wp-content/plugins/matomo/classes/WpMatomo/Site/Sync.php(84): W in htdocs/wp-content/plugins/matomo/app/plugins/SitesManager/API.php on line 1595

Make all words translatable

There are many words/sentences untranslated as the wording is not 100% final yet. Especially in classes/WpMatomo/Admin/views/*

Matomo for Wordpress: Tag Manager forces escape characters

I'm using the latest version (Oct 21 '19) of the Wordpress-based (Beta) version of Matomo, and when creating custom HTML tags in Tag Manager, the system seems to force escape characters into the records when saving.

For instance, entering the below custom HTML:

<script> _paq.push(['trackEvent', 'podcast', 'play-button',{{PageUrl}}]); </script>

...results in this (non-functioning) script:

<script> _paq.push([\'trackEvent\', \'podcast\', \'play-button\',{{PageUrl}}]); </script>

Any clues on how to fix this?

Page design breaks and returns error

The layout of the subpages of my website breaks (looks a bit like the mobile version) and underneath this error appears:

Fatal error: Uncaught Error: [] operator not supported for strings in /wp-content/plugins/matomo/classes/WpMatomo/TrackingCode/TrackingCodeGenerator.php:175 Stack trace: #0 /wp-content/plugins/matomo/classes/WpMatomo/TrackingCode/TrackingCodeGenerator.php(68): WpMatomo\TrackingCode\TrackingCodeGenerator->prepare_tracking_code('1', Object(WpMatomo\Settings), Object(WpMatomo\Logger)) #1 /wp-content/plugins/matomo/classes/WpMatomo/TrackingCode/TrackingCodeGenerator.php(88): WpMatomo\TrackingCode\TrackingCodeGenerator->update_tracking_code() #2 /wp-content/plugins/matomo/classes/WpMatomo/TrackingCode.php(96): WpMatomo\TrackingCode\TrackingCodeGenerator->get_tracking_code() #3 /wp-includes/class-wp-hook.php(286): WpMatomo\TrackingCode->add_javascript_code('') #4 /wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #5 /wp-includes/ in /wp-content/plugins/matomo/classes/WpMatomo/TrackingCode/TrackingCodeGenerator.php on line 175

Tracking Not Working

Hi,

Just some feedback. It would be great to get this working as I look after a couple of sites in China where tracking is very difficult.

There's been a few issues that I've been able to spot. The first is that the default tracking included things like: -
\/\/www.webxopt.com\/wp-content\/uploads\/matomo\/matomo.js
Obviously this didn't get the required files. I updated this to remove the escape characters and added the "https:" at the start just to be sure. At the moment I am still seeing nothing though. Looking at console I am seeing the following errors: -

The method setTrackerUrl is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers 2 analytics.js:22:500
ag https://stats.wpmucdn.com/analytics.js:22
c https://stats.wpmucdn.com/analytics.js:70
aa https://stats.wpmucdn.com/analytics.js:71
addTracker https://stats.wpmucdn.com/analytics.js:72
https://stats.wpmucdn.com/analytics.js:75
https://stats.wpmucdn.com/analytics.js:75

he method setSiteId is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers 2 analytics.js:22:500
ag https://stats.wpmucdn.com/analytics.js:22
c https://stats.wpmucdn.com/analytics.js:70
aa https://stats.wpmucdn.com/analytics.js:71
addTracker https://stats.wpmucdn.com/analytics.js:72
https://stats.wpmucdn.com/analytics.js:75
https://stats.wpmucdn.com/analytics.js:75

The method enableLinkTracking is registered more than once in "_paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: https://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers analytics.js:22:500
ag https://stats.wpmucdn.com/analytics.js:22
c https://stats.wpmucdn.com/analytics.js:70
aa https://stats.wpmucdn.com/analytics.js:71
addTracker https://stats.wpmucdn.com/analytics.js:72
https://stats.wpmucdn.com/analytics.js:75
https://stats.wpmucdn.com/analytics.js:75

My site is https://www.webxopt.com. I have analytics and Zoho Pagesense running on it too, so you can see traffice from other sources if you wanted to have a look.

Cheers
Simon

Opt-out does not work

Hello,

I'm not sure whether this is really an issue or rather I do not setup the plugin properly, but if I use the string

[matomo_opt_out]

anywhere on my wp site (I tried the Privacy Policy page, the Cookies pop-out, the home page...), the text is visualized correctly (despite those annoying vertical and horizontal bars).

Screenshot (24)

But then nothing happens when the box is unchecked (the text should change, and the opt-out information stored), and if the page is reloaded the box appears checked again (while on a functional website the information is retained).

Screenshot (25)

Then I don't know if this is related, but this is how the admin page appears:

Screenshot (26)

No font family can be selected, when setting the font size and saving the settings, upon reload of the page it goes back to this, and the preview stays blank. I tried to use the iframe html code and it either shows a blank box or the WP default "page not found" message.

Couple of info on my current installation:

  • WordPress 5.2.4
  • Matomo 0.1.3 for wordpress

Any hints?

Installed fine but no visits being reported

Hi,
I installed this but I see no data reported.
I checked and the tag appears on each page.
I visited many pages of my WP site but all reports indicate 0 visits. Even in real time.
I tried several different users.
I did not block any user level from being reported: I used the default values everywhere.
Is there a troubleshooting guide?
thanks!

Possible error: Cannot start session when headers already sent

Looks like a compatibility issue with codecanyon.net/item/woocommerce-variations-to-table-grid

archive_main 2019-12-17 15:20:16 2 total errors during this script execution, please investigate and try and fix these errors. => CronArchive.php:594; CronArchive.php:587; CronArchive.php:326; Access.php:639; CronArchive.php:327; ScheduledTasks.php:220; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;
archive_errors 2019-12-17 15:20:16 'Got invalid response from API request: ?module=API&method=API.get&idSite=1&period=day&date=last39&format=php&trigger=archivephp. Response was '#!/usr/bin/env php PHP Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 PHP Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 '' 'Empty or invalid response '' for website id 1, Time elapsed: 7.434s, skipping' '2 total errors during this script execution, please investigate and try and fix these errors.' => ScheduledTasks.php:234; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;
archive_main 2019-12-17 16:20:17 2 total errors during this script execution, please investigate and try and fix these errors. => CronArchive.php:594; CronArchive.php:587; CronArchive.php:326; Access.php:639; CronArchive.php:327; ScheduledTasks.php:220; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;
archive_errors 2019-12-17 16:20:17 'Got invalid response from API request: ?module=API&method=API.get&idSite=1&period=day&date=last39&format=php&trigger=archivephp. Response was '#!/usr/bin/env php PHP Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 PHP Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 '' 'Empty or invalid response '' for website id 1, Time elapsed: 7.411s, skipping' '2 total errors during this script execution, please investigate and try and fix these errors.' => ScheduledTasks.php:234; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;
archive_main 2019-12-17 17:20:16 2 total errors during this script execution, please investigate and try and fix these errors. => CronArchive.php:594; CronArchive.php:587; CronArchive.php:326; Access.php:639; CronArchive.php:327; ScheduledTasks.php:220; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;
archive_errors 2019-12-17 17:20:16 'Got invalid response from API request: ?module=API&method=API.get&idSite=1&period=day&date=last39&format=php&trigger=archivephp. Response was '#!/usr/bin/env php PHP Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 PHP Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 Warning: session_start(): Cannot start session when headers already sent in /datastore/html/wp-content/plugins/woo-variations-table-grid/woo-variations-table.php on line 41 Warning: Use of undefined constant MATOMO_PHPUNIT_TEST - assumed 'MATOMO_PHPUNIT_TEST' (this will throw an Error in a future version of PHP) in /datastore/html/wp-content/plugins/wp-matomo/app/bootstrap.php on line 48 '' 'Empty or invalid response '' for website id 1, Time elapsed: 7.916s, skipping' '2 total errors during this script execution, please investigate and try and fix these errors.' => ScheduledTasks.php:234; class-wp-hook.php:286; class-wp-hook.php:312; plugin.php:544; wp-cron.php:138;

In Access settings tab let users choose to make their data public

Haven't added it yet as it's rarely needed.

  • Add a new global setting "allow_anonymous_access"
  • In Access Settings template show form (see below) to enable this feature => after successful change of setting value we should trigger a user re-sync
  • In AccessSettings class process that form post and configure the above global setting accordingly
  • Capabilitiy class needs to add the MATOMO_VIEW capability to all users when feature is enabled
  • User Sync needs to make sure to enable/disable anonymous access in Matomo by giving the anonymous user view access

Tests for all of this...

The form could look like this

<h2>
    Public access: Give everyone view access to your reporting data - including not logged in users
</h2>
<p>Enabling this feature makes your reports available to everyone. Anyone will be able to view how many visitors you had, what pages have been viewed on your website how often, and more.
    <a rel="noreferrer noopener" href="https://matomo.org/faq/how-to/faq_20130/">Learn more about making your report data public and viewable by anyone</a>
<br /><br />

    <form method="post" onsubmit="confirm only if prompt('TEXT FROM BELOW').toLowerCase() === 'ok'">
        <?php wp_nonce_field( AccessSettings::NONCE_NAME_ANONYMOUS ); ?>
        <input type="hidden">
        <input name="Submit" type="submit" class="button-primary"
               value="<?php echo esc_attr__( 'Make all reports public', 'matomo' ) ?>"/>
    </form>
</p>
<p id="MOVE THIS INTO CONFIRM">Are you sure you want to change anonymous's role to View for your reports?
     Giving the anonymous user the View role will make this website's data public and available to everyone, even if they do not have a Matomo login. Please type OK to confirm this change</p>
</p>

Personal Email Reports : PDF generation failure

When HTML is used, the report generates perfectly.

When PDF is used, the following error is thrown:
Opera Snapshot_2019-11-20_022900
Opera Snapshot_2019-11-20_023155

view source of the error page
%PDF-1.7 %]_w�e�-WtT홨Υw�.{r8 /Filter /FlateDecode /DecodeParms << /Predictor 15 /Colors 3 /BitsPerComponent 8 /Columns 1050 >> /Length 24633 >> stream xǜxď٩'�Ͳ^�t<I HH*� 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 341.703539 186.480000 352.179539] /P 171 0 R /NM (0039-0012) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product-category/locksmith-tools/)>> /H /I>> endobj 41 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 324.128736 167.913000 334.604736] /P 171 0 R /NM (0039-0013) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/honda-city-door-lock/)>> /H /I>> endobj 42 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 306.553933 295.029000 317.029933] /P 171 0 R /NM (0039-0014) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/honda-hon66-2-plus-1-remote-key-blank-without-transponder-space/)>> /H /I>> endobj 43 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 288.979130 278.010000 299.455130] /P 171 0 R /NM (0039-0015) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/lishi-2-in-1-auto-lock-pick-decoder-suzuki-hu87/)>> /H /I>> endobj 44 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 271.404327 275.616000 281.880327] /P 171 0 R /NM (0039-0016) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/lishi-2-in-1-auto-lock-pick-decoder-toyota-toy38r-toy41/)>> /H /I>> endobj 45 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 253.829523 296.154000 264.305523] /P 171 0 R /NM (0039-0017) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/vw-passat-b5-transponder-key-blank-new-with-excellent-quality/)>> /H /I>> endobj 46 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 236.254720 58.869000 246.730720] /P 171 0 R /NM (0039-0018) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/shop/)>> /H /I>> endobj 47 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 218.679917 312.471000 229.155917] /P 171 0 R /NM (0039-0019) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/checkout/order-received/127811/?key=wc_order_Adn33Un0Gf20&utm_nooverride=1&amt=194.33&cc=USD&cm={"order_id":127811,"order_key":"wc_order_Adn33n0Gf20"}&st=Completed&tx=16E7430W1264941D)>> /H /I>> endobj 48 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 201.105114 293.445000 211.581114] /P 171 0 R /NM (0039-0020) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/de/produkt/goso-bauschlosserwerkzeuge-honda-lockpick/)>> /H /I>> endobj 49 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 183.530311 47.475000 194.006311] /P 171 0 R /NM (0039-0021) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/es/)>> /H /I>> endobj 50 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 165.955508 80.847000 176.431508] /P 171 0 R /NM (0039-0022) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/for/dodge/)>> /H /I>> endobj 51 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 148.380705 61.425000 158.856705] /P 171 0 R /NM (0039-0023) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/for/dodge/)>> /H /I>> endobj 52 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 552.601177 34.214457 563.077177] /P 175 0 R /NM (0041-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/)>> /H /I>> endobj 53 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 535.026374 90.459000 545.502374] /P 175 0 R /NM (0041-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/my-account/)>> /H /I>> endobj 54 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 517.451571 122.337000 527.927571] /P 175 0 R /NM (0041-0002) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/my-account/orders/)>> /H /I>> endobj 55 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 499.876768 54.945000 510.352768] /P 175 0 R /NM (0041-0003) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/cart/)>> /H /I>> endobj 56 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 482.301964 96.219000 492.777964] /P 175 0 R /NM (0041-0004) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/maintenance/)>> /H /I>> endobj 57 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 464.727161 283.581000 475.203161] /P 175 0 R /NM (0041-0005) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/es/producto/lishi-2-en-1-de-bloqueo-automático-recoger-chrysler-cy-24-camiones/)>> /H /I>> endobj 58 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 447.152358 105.732000 457.628358] /P 175 0 R /NM (0041-0006) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/for/volkswagen/)>> /H /I>> endobj 59 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 429.577555 140.004000 440.053555] /P 175 0 R /NM (0041-0007) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/for/volkswagen/page/2/)>> /H /I>> endobj 60 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 412.002752 56.709000 422.478752] /P 175 0 R /NM (0041-0008) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/help/)>> /H /I>> endobj 61 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 394.427949 165.393000 404.903949] /P 175 0 R /NM (0041-0009) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/my-account/?action=register)>> /H /I>> endobj 62 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 376.853145 156.555000 387.329145] /P 175 0 R /NM (0041-0010) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/my-account/support-ticket/)>> /H /I>> endobj 63 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 359.278342 156.312000 369.754342] /P 175 0 R /NM (0041-0011) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product-category/car-keys/)>> /H /I>> endobj 64 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 341.703539 154.548000 352.179539] /P 175 0 R /NM (0041-0012) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product-category/gadgets/)>> /H /I>> endobj 65 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 324.128736 186.480000 334.604736] /P 175 0 R /NM (0041-0013) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product-category/locksmith-tools/)>> /H /I>> endobj 66 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 306.553933 167.913000 317.029933] /P 175 0 R /NM (0041-0014) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/honda-city-door-lock/)>> /H /I>> endobj 67 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 288.979130 295.029000 299.455130] /P 175 0 R /NM (0041-0015) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/honda-hon66-2-plus-1-remote-key-blank-without-transponder-space/)>> /H /I>> endobj 68 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 271.404327 278.010000 281.880327] /P 175 0 R /NM (0041-0016) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/lishi-2-in-1-auto-lock-pick-decoder-suzuki-hu87/)>> /H /I>> endobj 69 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 253.829523 275.616000 264.305523] /P 175 0 R /NM (0041-0017) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/lishi-2-in-1-auto-lock-pick-decoder-toyota-toy38r-toy41/)>> /H /I>> endobj 70 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 236.254720 296.154000 246.730720] /P 175 0 R /NM (0041-0018) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/vw-passat-b5-transponder-key-blank-new-with-excellent-quality/)>> /H /I>> endobj 71 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 218.679917 58.869000 229.155917] /P 175 0 R /NM (0041-0019) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/shop/)>> /H /I>> endobj 72 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 201.105114 312.471000 211.581114] /P 175 0 R /NM (0041-0020) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/checkout/order-received/127811/?key=wc_order_Adn3XZUn0320&utm_nooverride=1&amt=194.33&cc=USD&cm={"order_id":127811,"order_key":"wc_order_Adn3X3f20"}&st=Completed&tx=16E743W1264941D)>> /H /I>> endobj 73 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 183.530311 293.445000 194.006311] /P 175 0 R /NM (0041-0021) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/de/produkt/goso-bauschlosserwerkzeuge-honda-lockpick/)>> /H /I>> endobj 74 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 165.955508 47.475000 176.431508] /P 175 0 R /NM (0041-0022) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/es/)>> /H /I>> endobj 75 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 148.380705 61.425000 158.856705] /P 175 0 R /NM (0041-0023) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/es/)>> /H /I>> endobj 76 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 523.776374 162.360000 534.252374] /P 185 0 R /NM (0046-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/my-account/?action=register)>> /H /I>> endobj 77 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 506.201571 295.524000 516.677571] /P 185 0 R /NM (0046-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/honda-hon66-2-plus-1-remote-key-blank-without-transponder-space/)>> /H /I>> endobj 78 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 488.626768 139.077000 499.102768] /P 185 0 R /NM (0046-0002) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product-category/other/)>> /H /I>> endobj 79 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 471.051964 151.713000 481.527964] /P 185 0 R /NM (0046-0003) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://xxx.com/product/goso-lock-spinner/)>> /H /I>> endobj 80 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 563.851177 292.775457 574.327177] /P 191 0 R /NM (0049-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://https//secure.comodo.com/ttb_searcher/trustlogo?v_querytype=W&v_shortname=SECEV&v_search=https://xxx.com/&x=1&y=1)>> /H /I>> endobj 81 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 552.601177 294.665457 563.077177] /P 193 0 R /NM (0050-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://https//my.xxx.com/wp-content/uploads/cm/gosolocksmithtools_20in1pickkit_bag.jpg?_ga=2.1177137.1673020694.1574129983-2099244329.1557710061)>> /H /I>> endobj 82 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 535.026374 294.129000 545.502374] /P 193 0 R /NM (0050-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://https//my.xxx.com/wp-content/uploads/cm/ne71rlishi2in1.jpg)>> /H /I>> endobj 83 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 308.624756 91.931457 319.100756] /P 211 0 R /NM (0059-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://matomo.org/faq/general/#faq_144)>> /H /I>> endobj 84 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 291.049953 80.289000 301.525953] /P 211 0 R /NM (0059-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://matomo.org/faq/general/#faq_144)>> /H /I>> endobj 85 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 273.475150 137.313000 283.951150] /P 211 0 R /NM (0059-0002) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://google.com/search?q=lishi+geely)>> /H /I>> endobj 86 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 255.900346 171.990000 266.376346] /P 211 0 R /NM (0059-0003) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://bing.com/search?q=transponder+code+t5)>> /H /I>> endobj 87 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 308.624756 185.324457 319.100756] /P 213 0 R /NM (0060-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://matomo.org/faq/general/#faq_144)>> /H /I>> endobj 88 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 291.049953 173.682000 301.525953] /P 213 0 R /NM (0060-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://matomo.org/faq/general/#faq_144)>> /H /I>> endobj 89 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 273.475150 171.990000 283.951150] /P 213 0 R /NM (0060-0002) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://bing.com/search?q=transponder+code+t5)>> /H /I>> endobj 90 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 255.900346 137.313000 266.376346] /P 213 0 R /NM (0060-0003) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://google.com/search?q=lishi+geely)>> /H /I>> endobj 91 0 obj <</Type /Annot /Subtype /Link /Rect [31.181457 308.624756 106.241457 319.100756] /P 215 0 R /NM (0061-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://baidu.com/)>> /H /I>> endobj 92 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 291.049953 118.341000 301.525953] /P 215 0 R /NM (0061-0001) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://fumamx.com/)>> /H /I>> endobj 93 0 obj <</Type /Annot /Subtype /Link /Rect [31.185000 273.475150 300.150000 283.951150] /P 215 0 R /NM (0061-0002) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (https://www.paypal.com/webapps/hermes?flow=1-P&ulReturn=true&country.x=GB&hermesLoginRedirect=xoon&locale.x=en_GB&mfid=157412364793_87a923f107a9&rm=2&token=5U1442576348906&useraction=commit)>> /H /I>> endobj 94 0 obj <</Type /Annot /Subtype /Link /Rect [2.835000 1.000000 19.005000 2.156000] /P 249 0 R /NM (0078-0000) /M (D:20191120003232+00'00') /F 4 /Border [0 0 0] /A <</S /URI /URI (http://www.tcpdf.org)>> /H /I>> endobj 494 0 obj <</Title (

Can´t install WP-Matomo

Ein Fehler vom Typ E_ERROR wurde in der Zeile 275 der Datei /home/www/xxx/wp-content/plugins/matomo/classes/WpMatomo/Db/WordPress.php verursacht. Fehlermeldung: Uncaught Zend_Db_Statement_Exception: WP DB Error: Table 'xxxx_db2.wp_matomo_option' doesn't exist SQL: SELECT option_value, option_name FROM wp_matomo_option WHERE autoload = 1 in /home/www/xxx/wp-content/plugins/matomo/classes/WpMatomo/Db/WordPress.php:275
Stack trace:
#0 /home/www/xxx/wp-content/plugins/matomo/classes/WpMatomo/Db/WordPress.php(287): Piwik\Db\Adapter\WordPress->after_execute_query(Object(wpdb), 'SELECT option_v...')
#1 /home/www/xxx/wp-content/plugins/matomo/app/core/Db.php(297): Piwik\Db\Adapter\WordPress->fetchAll('SELECT option_v...', Array)
#2 /home/www/xxx/wp-content/plugins/matomo/app/core/Option.php(267): Piwik\Db::fetchAll('SELECT option_v...')
#3 /home/www/xxx/wp-content/plugins/matomo/app/core/Option.php(173): Piwik\Option->autoload()
#4 /home/www/xxx/wp-content/plugins/matomo/app/core/Option.php(46): Piwik\Option->getValue('TestingIfDataba...')
#5 /home/www/xxx/wp-content/plugins/matomo/app/core/FrontController.php(343): Piwik\Option::get('TestingIfDataba...')
#6 /home/www/xxx

Best regards

Not counting close to correctly

I installed the new plug-in this morning. I follow the setup instructions and I purged the cache. In over five hours the report shows only one visitor. I am a cloud subscriber and in that period of time there have been several hundred people visiting my site. I use the default JavaScript when I set things up.

What could be wrong?

Call to undefined method get_matomo_reporting_url() in WordPress beta plugin

I got an automated email from WordPress as follows: Also, the Matomo plugin seems to be causing high server loads

Subject: Your Site is Experiencing a Technical Issue

Howdy!

Since WordPress 5.2 there is a built-in feature that detects when a plugin or theme causes a fatal error on your site, and notifies you with this automated email.

In this case, WordPress caught an error with one of your plugins, Matomo Analytics & Tag Manager.

First, visit your website (https://example.com/) and check for any visible issues. Next, visit the page where the error was caught (https://example.com/wp-admin/admin.php?page=matomo-summary) and check for any visible issues.

Please contact your host for assistance with investigating this issue further.

If your site appears broken and you can't access your dashboard normally, WordPress now has a special "recovery mode". This lets you safely login to your dashboard and investigate further.

https://example.com/wp-login.php?action=enter_recovery_mode&rm_token=example

To keep your site safe, this link will expire in 1 day. Don't worry about that, though: a new link will be emailed to you if the error occurs again after it expires.

Error Details

An error of type E_ERROR was caused in line 66 of the file /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/matomo/classes/WpMatomo/Admin/views/summary.php. Error message: Uncaught Error: Call to undefined method WpMatomo\Admin\Menu::get_matomo_reporting_url() in /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/matomo/classes/WpMatomo/Admin/views/summary.php:66
Stack trace:
#0 /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/matomo/classes/WpMatomo/Admin/Summary.php(56): include_once()
matomo-org/matomo#1 /opt/bitnami/apps/wordpress/htdocs/wp-includes/class-wp-hook.php(286): WpMatomo\Admin\Summary->show('')
matomo-org/matomo#2 /opt/bitnami/apps/wordpress/htdocs/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
matomo-org/matomo#3 /opt/bitnami/apps/wordpress/htdocs/wp-includes/plugin.php(465): WP_Hook->do_action(Array)
matomo-org/matomo#4 /opt/bitnami/apps/wordpress/htdocs/wp-admin/admin.php(253): do_action('matomo-analytic...')
matomo-org/matomo#5 {main}
thrown

Support Matomo manifest / file integrity check

For now the file integrity check is fully removed as we're deleting some files from the core release that aren't needed for this plugin just as jquery. Eventually we could generate our own manifest file or maybe WordPress has already some ways to check eg the checksum? (I know it can be checked through the WP-CLI but haven't looked into it further)

changing a goal from URL to event creates problem

I changed the setting of a goal from triggering when visiting a specific goal to activating an certain event. When I tried to return to the original setting (specific URL) I was unable to save and then unable to correct the problem.

Opt in error reporting

It be great to have an opt-in error reporting feature where we send exception messages including errors to one of our Matomo's or so. This would make it easier to troubleshoot issue and sometimes we could maybe identify and fix issues before a user has the chance to report it and we can fix issues that users might not report and instead just stop using the plugin. This way the next time someone runs into the same issue it will be fixed ideally or we are aware of it.

It has to be opt-in. We would send anonymous data only.

Offer an easy way to embed a Tag Manager container into the site

It be great if users wouldn't need to copy/paste the HTML/JavaScript embed code into their template. We could instead do this automatically.

I reckon we could do this as part of the Tracking settings under "Add tracking code" settings. Options are currently:

  • Disabled, Default Tracking, and Enter manually.

We could also show one option in the select for each container that is created since users would be likely defining the tracking code through that. When a container ID is selected, we would then disable most options below except for eg "Tracking filter", "RSS", "Post Add Annotations" as the other ones wouldn't work.

Letting users embed a container like this means they can't embed two containers as only one container can be selected but this should work for say 95% of the cases where users would have only one container anyway. And we want to ideally not have users that add Matomo Tracking code and a container etc. And if we do it this way, the "tracking is disabled" notice would automatically disappear because we would know there is a Tag Manager container embedded.

Currently there is a workaround that users can copy/paste the Tag Manager embed code and insert this code by selecting "Manually" in Tracking settings. The problem is that some options wouldn't work like "Noscript" etc.

As part of this issue we would also hook into the API method TagManager.getContainerInstallInstructions and we could add another array entry to users explaining they can embed the container in the tracking settings with just one click. The Tag Manager UI should automatically show this information.

Ideally we wouldn't bootstrap Matomo on the tracking settings page and instead query the tagmanager_container table directly to look for active containers for current site by using $wpdb. The table name can be retrieved from WpMatomo\Db\Settings::prefix_table_name ('tagmanager_container').

This option would be only available when has_matomo_tag_manager() method returns true

In "Summary" report show a link to the same report in Matomo

In report summary we show a summary of various reports. Ideally, when a user wants to see more information and dig deeper into the data the user could directly jump to the same report or at least same report category in the full Matomo to investigate further.

This is something we will need to hard code since it's not trivial to find the matching Matomo page. Won't be easy but be worth it. From a report we could link to it using an expand icon on the very right next to the title.

Missing MySQL permissions in System Report

I have installed wp-matomo on two sites, and both show this error in System Report:

There are some issues with your system. Matomo will run, but you might experience some minor problems. See below for more information.

and at the very end of the report

Required permissions | Error | Missing permissions: SELECT, INSERT, UPDATE, INDEX, DELETE, CREATE, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES. Please check if any of these MySQL permission (grants) are missing and add them if needed. Learn more: https://matomo.org/faq/how-to-install/faq_23484/

Analytics on both sites seem to be working OK. The "Learn more" link does not seem relevant for a WordPress install.

Option to add Tracking Code via third party plugin not fully supported

I plan to load the tracking code by a third party plugin for consent.

It looks like I would need to set the Matomo settings in Wordpress to the first option:

You can choose between four tracking code modes:
Disabled: matomo will not add the tracking code. Use this, if you want to add the tracking code to your template files or you use another plugin to add the tracking code.
Default tracking: matomo will use Matomo's standard tracking code.
Enter manually: Enter your own tracking code manually. You can choose one of the prior options, pre-configure your tracking code and switch to manually editing at last.

But Disabled seems to actually disable the tracking at all. Its also not possible to find the tracking code snipped anywhere - neither in WP nor in the Matomo Dashboard.

Copying the Snippet before setting the option "Disabled" does also not work.
Did I missunderstand this scenario?

Since latest update (0.3.2), data is not written to database

I updated to Version 0.3.2 a couple of days ago, and since then no site visit or engagement data seems to be committed to my Matomo database.

Looking at the "Visits in Realtime" section on my Matomo dashboard, I do see visits and actions reported in the past 24 hours and even in realtime. However, in the "Visits over Time" module (or any other report), there is no data.

Backend breaks after activiation

This happens in both cases, uploading the zip or the extracted folder in FTP after activating the plugin:

"Fatal error: Uncaught ArgumentCountError: Too few arguments to function DI\Definition\Resolver\FactoryResolver::__construct(), 1 passed in /wp-content/plugins/cookiebot/addons/lib/ioc/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php on line 104 and exactly 2 expected in //wp-content/plugins/matomo/app/vendor/php-di/php-di/src/DI/Definition/Resolver/FactoryResolver.php:47 Stack trace: #0 //wp-content/plugins/cookiebot/addons/lib/ioc/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php(104): DI\Definition\Resolver\FactoryResolver->__construct(Object(DI\Container)) #1 //wp-content/plugins/cookiebot/addons/lib/ioc/php-di/php-di/src/DI/Definition/Resolver/ResolverDispatcher.php(73): DI\Definition\Resolver\ResolverDispatcher->getDefinitionResolver(Object(DI\Definition\FactoryDefinition)) #2 /var/www//wp-content/plugins/cookiebot/addons/lib/ioc/php-di/php-di/src/DI/Container.php(206): DI in //wp-content/plugins/matomo/app/vendor/php-di/php-di/src/DI/Definition/Resolver/FactoryResolver.php on line 47"

Matomo Admin not working on sites that are part of a multisite

We installed Matomo for Wordpress on our staging multisite. It is possible to configure most settings at network level and I see them reflected on the individual sites, but when I go to an individual site and click on the 'Matomo Admin' tab (https://MY-SITE-URL/wp-admin/admin.php?page=matomo-reporting&goto=matomo-admin), an empty screen appears. And the 'Matomo Admin' tab is not available at the network level either (which makes sense).

In other words, I can't configure the privacy settings or add goals for sites that are part of the multisite.
Matomo Admin shows empty screen in multisite

Would you be able to resolve this?

Better detection of Force SSL / Assume SSL

Currently I set force_ssl config to true when the constant FORCE_SSL_ADMIN is true. Ideally we would also do this maybe when the blog url contains an HTTPS? Not sure if there are other ways to detect a site supports HTTPS.

When this is the case, we should also change the tracking code to only use HTTPS instead of // (there is a tracker setting for this already though to always use https AFAIK). Then setting assume_ssl may be a good thing too but not sure?

Wordpress plugin not archiving

Hi,

Should a manual report archive trigger a critical error on my website. I waited for about 20 mins for the resulting email to be sent but nothing. Not sure where I can get the error message from besides enabling debug?

Here is the system report though:-

			  # Matomo
  • Matomo Plugin Version: 0.3.4
  • Config exists and is writable.: Yes ("$ABSPATH/wp-content/uploads/matomo/config/config.ini.php" )
  • JS Tracker exists and is writable.: Yes ("$ABSPATH/wp-content/uploads/matomo/matomo.js" )
  • Plugin directories: Yes ([{"pluginsPathAbsolute":"$ABSPATH/wp-content/plugins/matomo/plugins","webrootDirRelativeToMatomo":"../"}])
  • Tmp directory writable: Yes ($ABSPATH/wp-content/cache/matomo)
  • Matomo Version: 3.13.0
  • Matomo Blog idSite: 1

Endpoints

  • Matomo JavaScript Tracker URL: ($site_url/wp-content/uploads/matomo/matomo.js)
  • Matomo JavaScript Tracker - WP Rest API: ($site_url/wp-json/matomo/v1/hit/)
  • Matomo HTTP Tracking API: ($site_url/wp-content/plugins/matomo/app/matomo.php)
  • Matomo HTTP Tracking API - WP Rest API: ($site_url/wp-json/matomo/v1/hit/)

Crons

  • Server time: 2019-12-10 12:11:34
  • Blog time: 2019-12-10 14:11:34 (Below dates are shown in blog timezone)
  • Sync users & sites: Next run: 2019-12-10 23:38:00 (9 hours 26 min) ( Last started: 2019-12-09 23:38:05 (-14 hours 33 min). Last ended: 2019-12-09 23:38:06 (-14 hours 33 min). Interval: daily)
  • Archive: Next run: 2019-12-10 14:38:00 (26 min 26s) ( Last started: 2019-12-10 13:38:01 (-33 min 33s). Last ended: 2019-12-09 00:38:17 (-1 days 13 hours). Interval: hourly)
  • Update GeoIP DB: Next run: 2019-12-13 23:38:00 (3 days 9 hours) ( Last started: 2019-12-06 23:38:42 (-3 days 14 hours). Last ended: 2019-12-06 23:38:44 (-3 days 14 hours). Interval: matomo_weekly)

Mandatory checks

  • PHP version >= : ok
  • PDO extension: ok
  • PDO\MYSQL extension: ok
  • MYSQLI extension: ok
  • Other required extensions: ok
  • Required functions: ok
  • Required PHP configuration (php.ini): ok
  • Directories with write access: ok
  • Directories with write access for Tag Manager: ok

Optional checks

  • Tracker status: ok
  • Memory limit: ok
  • Time zone: ok
  • Open URL: ok
  • PageSpeed disabled: ok
  • GD > 2.x + Freetype (graphics): ok
  • Other extensions: ok
  • Other functions: ok
  • Warning Filesystem: warning (Your server is using an NFS filesystem. This means Matomo will be extremely slow when using file based sessions.)
  • Archive Cron: ok
  • Warning Last Successful Archiving Completion: warning (Archiving last ran successfully on Sunday, December 8, 2019 22:38:17 which is 1 days 13:33:17 ago)
  • Max Packet Size: ok
  • Geolocation: ok
  • Update over HTTPS: ok
  • Writable JavaScript Tracker ("/matomo.js"): ok
  • Supports Async Archiving: Yes

Matomo Settings

  • Track mode: tagmanager
  • Track codeposition: footer
  • Track api endpoint: default
  • Track js endpoint: default
  • Core version: 3.13.0
  • Last tracking settings update: 1575927486
  • Last settings update: 1575927486
  • Track user id: uid

WordPress

  • Home URL: $site_url
  • Site URL: $site_url
  • WordPress Version: 5.3
  • Number of blogs: 1
  • Multisite Enabled: No
  • Network Enabled: No
  • Debug Mode Enabled: No
  • Cron Enabled: No
  • Force SSL Admin: Yes
  • Language: en_US
  • Permalink Structure: /%postname%/
  • Possibly uses symlink: No
  • WP Cache enabled: Yes

WordPress Plugins

  • Akismet Anti-Spam: 4.1.3
  • ConvertKit: 1.8.1
  • ConvertKit for WooCommerce: 1.2.0
  • Cookie Notice: 1.2.46
  • Disable Gutenberg: 1.9
  • Easy Social Sharing: 1.3.2
  • Facebook Like Box: 0.1
  • FeedPress: 1.7.2
  • Google Analytics Dashboard for WP (GADWP): 5.3.9
  • Head, Footer and Post Injections: 3.1.3
  • Hide Admin Bar From Non-admins: 1.0
  • Image Widget: 4.4.7
  • Instagram Feed: 1.11.3
  • iThemes Security: 7.4.1 (Network enabled)
  • Jetpack by WordPress.com: 7.9.1
  • Laps: 3.3.1
  • Leadpages Connector: 2.3.3
  • Matomo Analytics - Ethical Stats. Powerful Insights.: 0.3.4
  • PayPal Buy Now Button: 1.7.2
  • Pretty Links: 2.1.8
  • Regenerate Thumbnails: 3.1.0
  • Responsive WordPress Slider - Soliloquy Lite: 2.5.4
  • Simple Social Icons: 3.0.1
  • Smart Podcast Player: 2.8.0
  • Smush: 3.2.4
  • Subscribe / Connect / Follow Widget: 1.0.1
  • SumoMe: 1.30
  • UpdraftPlus - Backup/Restore: 1.16.17
  • Visual Form Builder: 2.9.9
  • W3 Total Cache: 0.11.0 (Network enabled)
  • WooCommerce: 3.7.0
  • WooCommerce Admin: 0.19.0
  • WooCommerce Blocks: 1.4.0
  • WooCommerce PayPal Checkout Gateway: 1.6.17
  • WooCommerce Stripe Gateway: 4.2.5
  • WP Google Fonts: v3.1.4
  • Yoast SEO Premium: 10.0.1
  • Active Plugins: 28 (laps akismet convertkit-for-woocommerce convertkit cookie-notice disable-gutenberg easy-social-sharing facebook-like-box feedpress google-analytics-dashboard-for-wp header-footer hide-admin-bar-from-non-admins image-widget jetpack leadpages matomo simple-social-icons smart-podcast-player updraftplus w3-total-cache woocommerce-admin woocommerce-gateway-paypal-express-checkout woocommerce-gateway-stripe woocommerce wordpress-seo-premium wp-ecommerce-paypal wp-google-fonts wp-smushit)

Server

  • Server Info: Apache
  • PHP OS: Linux
  • PHP Version: 7.2.20
  • Timezone: UTC
  • Locale: en_US
  • Memory Limit: 512M (At least 128MB recommended. Depending on your traffic 256MB or more may be needed.)
  • Max Memory Limit: 512M
  • Time: 1575979894
  • Max Execution Time: 0
  • Max Post Size: 32M
  • Max Upload Size: 33554432
  • Max Input Vars: 1000
  • zlib.output_compression is off: Yes
  • Curl Version: 7.62.0, OpenSSL/1.0.2k

Database

  • MySQL Version: 5.6.44
  • Mysqli Connect: Yes
  • Force MySQL over Mysqli: No
  • DB Prefix: wp_
  • Uses Socket: No
  • Uses IPv6: No
  • Required permissions: OK

Offer Opt-Out feature without iframe

Since we are already on the right domain it should be quite easy to have an opt out which does not rely on iframes. That makes it easier to integrate it into the same site to have same look and feel automatically. I suppose this could be done quite easily?

The main challenge be to change the shown message based on the current status where we would need to write some vanilla JS (but that shouldn't be hard) eg when opting out we need to change the shown message on demand.

Unable to see last visits stat

Hi,
i've installed Matomo plugin on my website since a few days.
I can see real time visit but no older visit in widget (see my screen below)
Can yu help me ,
Capture d’écran 2019-12-11 à 14 59 29

Include a pre-generated core JS file

Since it's not possible to enable/disable any core plugins, we could at least pre-generate the core JS file in advance as this can be quite resource intensive.

We would then basically only load jQuery/jQuery-UI from WordPress, the pre-generated JS file, and the non core JS file.

Ideally we would also pre-generate the CSS file but Matomo does currently not support a core and a non-core CSS file so this might be a bit harder to do.

The benefit also be that we wouldn't need to check if the files need to be regenerated on every request etc.

Have a two step update process

Currently, when someone updates Matomo, WP-Matomo will automatically execute the update. This is usually not an issue unless there's a major Matomo update.

Ideally we have a similar possibility as in On-Premise where a user is presented some kind of notice and can then trigger the update... we could also change behaviour to in general run the update using a scheduled tasks/WP-Cron but then it may be executed in the frontend which may be worse... we could have maybe some logic though to only trigger it in admin OR we check whether DISABLE_WP_CRON is enabled and then run updates in the background during wp-cron instead of immediately. If WP-Cron is not executed as often the problem may be though that Matomo will be for a while in an "not up to date" state...

I will for now quickly work on adding a command for WP-cli

Problem in twig files

For some reason I need to delete " and icon and icon starts with 'icon-'" and "and icon starts with 'icon-'" form several .twig files in /app/plugins/CoreHome/templates in order to see the stats. It drops this error codes

Unexpected token "name" of value "starts" ("end of statement block" expected) in @CoreHome/_topBar.twig" at line 4

File is /app/plugins/CoreHome/templates/_topBar.twig, error dropped at line 4
Changed {% if icon is defined and icon and icon starts with 'icon-%} to {% if icon is defined %}

Error: Unexpected token "name" of value "starts" ("end of statement block" expected) in "@CoreHome/_dataTableActions.twig" at line 22

File is /app/plugins/CoreHome/templates/_dataTableActions.twig, error dropped at line 22
Changed {% if footerIcon.icon starts with 'icon-' %} to {% if footerIcon.icon %}

Error: Unexpected token "name" of value "starts" ("end of statement block" expected) in "@CoreHome/_dataTableActions.twig" at line 58

File is /app/plugins/CoreHome/templates/_dataTableActions.twig, error dropped at line 58
Changed {% if activeFooterIcon starts with 'icon-' %} to {% if activeFooterIcon %}

Error: Unexpected token "name" of value "starts" ("end of statement block" expected) in "@CoreHome/_dataTableActions.twig" at line 114

File is /app/plugins/CoreHome/templates/_dataTableActions.twig, error dropped at line 114
Changed {% if action.icon starts with 'icon-' %} to {% if action.icon %}

The data seems to be stored normally, but if I don't edit the templates I can't see the analytics.

Tested in wordpress 5.3 in Xammp for windows x64 and Debian squeeze under Plesk

Unable to see the add tracking code from the Dashboard

wp-content/plugins/matomo/app/index.php?date=yesterday&module=CoreAdminHome&action=trackingCodeGenerator&disableLink=1&idSite=1&period=day

Have clicked from dashboard on Add tracking code.
image

Now this is the error page:
image

style attributes not working

Any CSS attributes sent within the short code do not work.

Example:
[matomo_opt_out language=de background_color=red font_color=fff font_size=34 font_family=Arial width=500px height=100px]

But it looks like they sent within the iframe:
wp-content/plugins/matomo/app/index.php?module=CoreAdminHome&action=optOut&language=de&background_color=red&font_color=fff&font_size=34&font_family=Arial

WP DB Error

We are running a Wordpress Blog (always the latest version, now on 5.2.4–de_DE) on PHP 7.3 and MySQL 5.5.62. I installed Matomo for Wordpress 2.0 last week, updated to 2.4 today. The installation seemed to work fine, the tables were created and filled in the database during the installation. There are some visits saved in table matomo_log_visit with a timestamp from last week, no visits from today though.

When I try to look at the statistics in the backend, I get an error:
WP DB Error: Access denied for user 'DB-USER'@'%' to database 'DB-NAME'
This happened the first time I opened the backend after the installation and happens still after the update. The error is shown on the Dashboard and the General Overview.
Both our Wordpress installation and the Matomo plugin are set to German.

Can you please give me some advise on how I could narrow down the problem? Since I'm completely new to Matomo I'm not sure which files to check or which content to expect in the database.

When WP_DEBUG is enabled, can we hide some DB errors?

When you have WP_DEBUG enabled, you might see heaps of notices from wordpress DB class. Especially when it comes to archiving for example you would see hundreds of "select 1 from segment temp table not exists" errors etc.

Not sure if this can generally cause any issue. I'm hoping users don't have this enabled on their live /production website as maybe such notices could appear there? I reckon we would at least want to hide these messages if we are not in the WP-Admin by enable suppress_errors before a query and disabling it again after a query.

In the admin we probably should still show them as it makes it easier to debug / find issues this way. Problem is there may be many notices for queries that are kind of expected to fail. So it's hard to differentiate and in the DB layer we cannot know whether later we catch an error or not. So it's kind of an "either hide all or show all notices".

We could have a constant to only show DB notices from Matomo when the constant is defined in wp-config.php, but then we risk not noticing some issues. It's tricky.

Reporting page comes up without styling

I have installed the beta version (0.2.5) on two sites. It seems to work as it should on one of them, but on the other it works on my development site, but there are problems on the production site. Both developent site and production site run WordPress 5.3 (french) and have exactly the same plugins installed and enabled, and no cache is active, I have cleared the Matomo cache. On the production site both "reporting" and "tag manager" come up with no styling, see screenshot attached.

I have FTP:d the Matomo directory from the development site to the production site. Could it be that there is configuration information that has been put into a file somewhere (or is all configuration info the the DB?)?

Screenshot 2019-11-18 at 11 43 36

Matomo Tag Manager script throws errors in latest version

Greetings. Following the latest update to Matomo 0.3.4, I'm getting JavaScript errors stemming from the Matomo Tag Manager's container script: "Uncaught TypeError: ap.charAt is not a function".

Screen Shot 2019-12-05 at 08 46 23

Screen Shot 2019-12-05 at 08 50 10

I suspect that the above is causing the scripts to break and reporting to cease, as my traffic reported is down by around 80% since the update (and there is now a big discrepancy between Google's search SEO stats and Matomo). Any ideas?

unable to re-install

Removed the plugin from wordpress

Checked the database and all matamo tables are removed.

Add the plugin (latest version)

Activate the plugin and the site fails..

Would appear the database tables are not recreated or checked if they exist and then recreate non-existing tables.

An error of type E_ERROR was caused in line 275 of the file /datastore/html/wp-content/plugins/matomo/classes/WpMatomo/Db/Wordpress.php. Error message: Uncaught Zend_Db_Statement_Exception: WP DB Error: Table 'aa.15642_matomo_option' doesn't exist in /datastore/html/wp-content/plugins/matomo/classes/WpMatomo/Db/Wordpress.php:275 Stack trace: #0 /datastore//html/wp-content/plugins/matomo/classes/WpMatomo/Db/Wordpress.php(287): Piwik\Db\Adapter\Wordpress->after_execute_query(Object(wpdb)) #1 /datastore/html/wp-content/plugins/matomo/app/core/Db.php(297): Piwik\Db\Adapter\Wordpress->fetchAll('SELECT option_v...', Array) #2 /datastore/html/wp-content/plugins/matomo/app/core/Option.php(267): Piwik\Db::fetchAll('SELECT option_v...') #3 /datastore/html/wp-content/plugins/matomo/app/core/Option.php(173): Piwik\Option->autoload() #4 /datastore/html/wp-content/plugins/matomo/app/core/Option.php(46): Piwik\Option->getValue('TestingIfDataba...') #5 /datastore/html/wp-content/plugins/matomo/app/core/FrontController.php(343): Piwik\Option::get('TestingIfDataba...') #6 /datastore/html/wp-content/plugins/matomo/

Tracking somehow disabled last week with update

Unfortunately I just found out that tracking on all sites had been disabled after an update of the plugin early last week. I had to reconfigure all settings again on all sites. There's no way to see which version has caused this exactly, but it may have been v.0.2.6, as one of the sites was still on that version today and was already missing tracking data. By the way, over the few days that were tracked so far, I found huge differences with Google Analytics. It seems the Matomo for Wordpress plugin is only picking up a fraction of the traffic on my sites....

Support WP CLI

We already have a CLI command to uninstall WP-Matomo. Eventually it be good if we could expose all Matomo console commands, or at least some of them that may be needed quite often such as invalidating reports. Looked quickly into WP-CLI and doesn't look straight forward to make the Matomo console commands available there.

Use WordPress translations system

We could hook into Matomo translations and replace the translations class to use WordPress translations (__('', 'wp-matomo')). This way other WP plugins can hook into it and more importantly we don't need to ship all translations with the plugin see https://make.wordpress.org/polyglots/handbook/rosetta/theme-plugin-directories/#translating-themes-plugins

Basically, through DI we would be replacing Piwik\Translation\Translator class and whenever translate() method is called, that method will be calling __($matomoTranslationKey, 'wp-matomo').

This means we need to generate WP translation files (*.mo/.po) whenever we update Matomo core.

We need to see how this could work for plugins. I suppose for any none core plugin we wouldn't really want to do this and would need to fallback to Matomo logic?

Forbidden on Reporting and Opt Out Shortcode

Hi,

I installed Matomo with WP plugin. The Opt Out Shortcode just shows a "Forbidden" message. When clicking on "Reporting", also a Forbidden message appears. What to do?

Bye
René

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.