-
Notifications
You must be signed in to change notification settings - Fork 1
/
wp-matomo.php
64 lines (56 loc) · 2.15 KB
/
wp-matomo.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/*
Plugin Name: Matomo Stats
Plugin URI: https://matomo.org/
Description: Absolutely lightweight and secure plugin to use an already existing Matomo instance for your WordPress site and have privacy friendly stats. In short: Google Analytics MERDA. The configuration is inside your WP config file.
Version: 0.0.1
Author: Valerio Bozzolan
Author URI: https://boz.reyboz.it/
License: WTFPL
License URI: http://www.wtfpl.net/txt/copying/
*/
defined( 'MATOMO_PATH' ) or exit;
defined( 'MATOMO_SITE' ) or die( 'please define MATOMO_PATH and MATOMO_SITE in your wp-config.php');
add_action( 'wp_footer', function () {
if( isset( $_SERVER['HTTP_DNT'] ) && $_SERVER['HTTP_DNT'] === '1' ) {
echo "\n<!-- Hey! You do not want to be tracked (DNT)! Good for you! So no JavaScript tracker for your request! Just this little image... :^) -->\n";
echo "<!-- For the records... this pixel is not evil: we already can track you looking in the webserver logs, so do not fight about this pixel :^) -->\n";
printf( '<img src="%smatomo.php?idsite=%d&rec=1" style="border:0" alt="" />',
MATOMO_PATH,
MATOMO_SITE
);
return;
}
$path = MATOMO_PATH;
$site = MATOMO_SITE;
$js = <<<EOF
<!-- Matomo -->
<script>
var _paq = _paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="$path";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '$site']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p style="position:fixed; top:0;"><img src="{$path}matomo.php?idsite=$site&rec=1" style="border:0;" alt="" /></p></noscript>
<!-- end Matomo -->
EOF;
echo $js;
} );
/*
* Register the stat menu link icon
*/
add_action( 'admin_menu', function () {
add_menu_page( 'Matomo Stats', 'Matomo Stats', 'manage_options', 'view_matomo_stats', 'function', 'dashicons-performance' );
} );
add_action( 'admin_init', function () {
if( isset( $_GET['page'] ) && $_GET['page'] === 'view_matomo_stats' ) {
wp_redirect( MATOMO_PATH );
exit();
}
}, 1 );