isCurrentTrackingCode () || ! self::$wpPiwik->getOption ( 'tracking_code' ) || strpos( self::$wpPiwik->getOption ( 'tracking_code' ), '{"result":"error",' ) !== false ) self::$wpPiwik->updateTrackingCode (); $this->trackingCode = (self::$wpPiwik->isNetworkMode () && self::$wpPiwik->getGlobalOption ( 'track_mode' ) == 'manually') ? get_site_option ( 'wp-piwik-manually' ) : self::$wpPiwik->getOption ( 'tracking_code' ); } public function getTrackingCode() { if ($this->isUsertracking) $this->applyUserTracking (); if ($this->is404) $this->apply404Changes (); if ($this->isSearch) $this->applySearchChanges (); if (is_single () || is_page()) $this->addCustomValues (); $this->trackingCode = apply_filters('wp-piwik_tracking_code', $this->trackingCode); return $this->trackingCode; } public static function prepareTrackingCode($code, $settings, $logger) { global $current_user; $logger->log ( 'Apply tracking code changes:' ); $settings->setOption ( 'last_tracking_code_update', time () ); if (preg_match ( '/var u="([^"]*)";/', $code, $hits )) { $fetchedProxyUrl = $hits [1]; } else $fetchedProxyUrl = ''; if ($settings->getGlobalOption ( 'track_mode' ) == 'js') $code = str_replace ( array ( 'piwik.js', 'piwik.php', 'matomo.js', 'matomo.php' ), 'js/index.php', $code ); elseif ($settings->getGlobalOption ( 'track_mode' ) == 'proxy') { $code = str_replace ( 'piwik.js', 'piwik.php', $code ); $code = str_replace ( 'matomo.js', 'matomo.php', $code ); $proxy = str_replace ( array ( 'https://', 'http://' ), '//', plugins_url ( 'wp-piwik' ) . '/proxy' ) . '/'; $code = preg_replace ( '/var u="([^"]*)";/', 'var u="' . $proxy . '"', $code ); $code = preg_replace ( '/img src="([^"]*)piwik.php/', 'img src="' . $proxy . 'piwik.php', $code ); $code = preg_replace ( '/img src="([^"]*)matomo.php/', 'img src="' . $proxy . 'matomo.php', $code ); } if ($settings->getGlobalOption ( 'track_cdnurl' ) || $settings->getGlobalOption ( 'track_cdnurlssl' )) $code = str_replace ( array ( "var d=doc", "g.src=u+" ), array ( "var ucdn=(('https:' == document.location.protocol) ? 'https://" . ($settings->getGlobalOption ( 'track_cdnurlssl' ) ? $settings->getGlobalOption ( 'track_cdnurlssl' ) : $settings->getGlobalOption ( 'track_cdnurl' )) . "/' : 'http://" . ($settings->getGlobalOption ( 'track_cdnurl' ) ? $settings->getGlobalOption ( 'track_cdnurl' ) : $settings->getGlobalOption ( 'track_cdnurlssl' )) . "/');\nvar d=doc", "g.src=ucdn+" ), $code ); if ($settings->getGlobalOption ( 'track_datacfasync' )) $code = str_replace ( '