From: William Desportes <williamdes@wdes.fr>
Date: Sun, 15 Dec 2024 23:14:29 +0100
Subject: Patch PIWIK_INCLUDE_PATH with MATOMO_PLUGINS_PATH

Origin: vendor
Forwarded: not-needed
---
 core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php   | 12 ++++++------
 .../AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php |  2 +-
 core/FrontController.php                                     |  2 +-
 core/Plugin/Manager.php                                      |  8 ++++----
 core/ReportRenderer/Pdf.php                                  |  2 +-
 core/Twig.php                                                |  2 ++
 core/Updates/2.0-a17.php                                     |  4 ++--
 core/Updates/2.0.3-b7.php                                    |  2 +-
 core/Updates/3.5.1-b1.php                                    |  4 ++--
 core/testMinimumPhpVersion.php                               |  6 +++---
 plugins/Annotations/API.php                                  |  2 +-
 plugins/CoreConsole/Commands/BuildTracker.php                |  4 ++--
 plugins/CoreConsole/Commands/ComputeJsAssetSize.php          |  4 ++--
 .../Commands/DevelopmentSyncProcessedSystemTests.php         |  6 +++---
 plugins/CoreHome/Columns/ServerTime.php                      |  2 +-
 plugins/CoreHome/Columns/VisitFirstActionMinute.php          |  2 +-
 plugins/CoreHome/Columns/VisitFirstActionTime.php            |  2 +-
 plugins/CoreHome/Columns/VisitLastActionDayOfWeek.php        |  2 +-
 plugins/CoreHome/Columns/VisitLastActionMinute.php           |  2 +-
 plugins/CoreHome/Columns/VisitLastActionMonth.php            |  2 +-
 plugins/CoreHome/Columns/VisitLastActionTime.php             |  2 +-
 plugins/CoreVisualizations/CoreVisualizations.php            |  2 +-
 plugins/CoreVisualizations/Visualizations/JqplotGraph.php    |  6 +++---
 plugins/CoreVue/Commands/Build.php                           |  4 ++--
 plugins/CoreVue/Commands/BuildPolyfill.php                   |  8 ++++----
 plugins/DevicePlugins/API.php                                |  2 +-
 plugins/DevicePlugins/Archiver.php                           |  2 +-
 plugins/DevicePlugins/VisitorDetails.php                     |  2 +-
 plugins/DevicePlugins/functions.php                          |  2 +-
 plugins/DevicesDetection/DevicesDetection.php                |  2 +-
 plugins/DevicesDetection/VisitorDetails.php                  |  2 +-
 plugins/DevicesDetection/functions.php                       | 10 +++++-----
 plugins/LanguagesManager/API.php                             |  2 +-
 plugins/Live/API.php                                         |  4 ++--
 plugins/MobileMessaging/Controller.php                       |  2 +-
 plugins/MobileMessaging/SMSProvider/ASPSMS.php               |  2 +-
 plugins/MobileMessaging/SMSProvider/Clockwork.php            |  2 +-
 plugins/PrivacyManager/PrivacyManager.php                    |  4 ++--
 plugins/Referrers/Referrers.php                              |  2 +-
 plugins/Referrers/SearchEngine.php                           |  2 +-
 plugins/Referrers/Social.php                                 |  2 +-
 plugins/Resolution/API.php                                   |  2 +-
 plugins/SEO/API.php                                          |  2 +-
 plugins/SEO/config/ui-test.php                               |  8 +++++---
 plugins/TestRunner/Commands/TestsRun.php                     |  2 +-
 plugins/TestRunner/Commands/TestsSetupFixture.php            |  2 +-
 plugins/UserCountry/API.php                                  |  2 +-
 plugins/UserCountry/Columns/Country.php                      |  2 +-
 plugins/UserCountry/LocationProvider.php                     |  2 +-
 plugins/UserCountry/VisitorDetails.php                       |  2 +-
 plugins/UserCountry/VisitorGeolocator.php                    |  2 +-
 plugins/UserCountry/functions.php                            |  2 +-
 plugins/UserCountryMap/Controller.php                        |  2 +-
 plugins/UserLanguage/API.php                                 |  2 +-
 plugins/UserLanguage/Columns/Language.php                    |  2 +-
 plugins/UserLanguage/RecordBuilders/Languages.php            |  2 +-
 plugins/UserLanguage/VisitorDetails.php                      |  2 +-
 plugins/VisitTime/API.php                                    |  2 +-
 plugins/VisitTime/Columns/LocalMinute.php                    |  2 +-
 plugins/VisitTime/Columns/LocalTime.php                      |  2 +-
 60 files changed, 93 insertions(+), 89 deletions(-)

diff --git a/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php b/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
index c31177a..85d9353 100644
--- a/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
+++ b/core/AssetManager/UIAssetFetcher/PluginUmdAssetFetcher.php
@@ -85,7 +85,7 @@ class PluginUmdAssetFetcher extends UIAssetFetcher
     {
         $totalSize = 0;
         foreach ($allPluginUmds as $chunk) {
-            $path = PIWIK_INCLUDE_PATH . '/' . $chunk->getFiles()[0];
+            $path = MATOMO_PLUGINS_PATH . '/' . $chunk->getFiles()[0];
             if (is_file($path)) {
                 $totalSize += filesize($path);
             }
@@ -104,7 +104,7 @@ class PluginUmdAssetFetcher extends UIAssetFetcher
         foreach ($plugins as $plugin) {
             $pluginDir = self::getRelativePluginDirectory($plugin);
             $minifiedUmd = "$pluginDir/vue/dist/$plugin.umd.min.js";
-            if (!is_file(PIWIK_INCLUDE_PATH . '/' . $minifiedUmd)) {
+            if (!is_file(MATOMO_PLUGINS_PATH . '/' . $minifiedUmd)) {
                 continue;
             }
 
@@ -160,7 +160,7 @@ class PluginUmdAssetFetcher extends UIAssetFetcher
         $currentChunkIndex = 0;
         $currentChunkSize = 0;
         foreach ($allPluginUmds as $pluginChunk) {
-            $path = PIWIK_INCLUDE_PATH . '/' . $pluginChunk->getFiles()[0];
+            $path = MATOMO_PLUGINS_PATH . '/' . $pluginChunk->getFiles()[0];
             if (!is_file($path)) {
                 continue;
             }
@@ -244,10 +244,10 @@ class PluginUmdAssetFetcher extends UIAssetFetcher
         $umdSrcFolder = "$pluginDir/vue/src";
 
         // in case there are dist files but no src files, which can happen during development
-        if (is_dir(PIWIK_INCLUDE_PATH . '/' . $umdSrcFolder)) {
-            if (Development::isEnabled() && is_file(PIWIK_INCLUDE_PATH . '/' . $devUmd)) {
+        if (is_dir(MATOMO_PLUGINS_PATH . '/' . $umdSrcFolder)) {
+            if (Development::isEnabled() && is_file(MATOMO_PLUGINS_PATH . '/' . $devUmd)) {
                 return $devUmd;
-            } elseif (is_file(PIWIK_INCLUDE_PATH . '/' . $minifiedUmd)) {
+            } elseif (is_file(MATOMO_PLUGINS_PATH . '/' . $minifiedUmd)) {
                 return $minifiedUmd;
             }
         }
diff --git a/core/AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php b/core/AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php
index 3115ebd..e82f2dc 100644
--- a/core/AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php
+++ b/core/AssetManager/UIAssetFetcher/StylesheetUIAssetFetcher.php
@@ -94,7 +94,7 @@ class StylesheetUIAssetFetcher extends UIAssetFetcher
         foreach ($plugins as $plugin) {
             $css = "plugins/$plugin/vue/dist/$plugin.css";
 
-            if (is_file(PIWIK_INCLUDE_PATH . '/' . $css)) {
+            if (is_file(MATOMO_PLUGINS_PATH . '/' . $css)) {
                 $this->fileLocations[] = $css;
             }
         }
diff --git a/core/FrontController.php b/core/FrontController.php
index ff781bd..4558ef3 100644
--- a/core/FrontController.php
+++ b/core/FrontController.php
@@ -537,7 +537,7 @@ class FrontController extends Singleton
             $trackMessage = 'While the maintenance mode is active, data tracking is disabled.';
         }
 
-        $page = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/Morpheus/templates/maintenance.tpl');
+        $page = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/Morpheus/templates/maintenance.tpl');
         $page = str_replace('%logoUrl%', $logoUrl, $page);
         $page = str_replace('%faviconUrl%', $faviconUrl, $page);
         $page = str_replace('%piwikTitle%', Piwik::getRandomTitle(), $page);
diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php
index 78e2f98..abaebf4 100644
--- a/core/Plugin/Manager.php
+++ b/core/Plugin/Manager.php
@@ -490,7 +490,7 @@ class Manager
             return self::$pluginsToPathCache[$pluginName];
         }
 
-        $corePluginsDir = PIWIK_INCLUDE_PATH . '/plugins/' . $pluginName;
+        $corePluginsDir = MATOMO_PLUGINS_PATH . '/plugins/' . $pluginName;
         if (is_dir($corePluginsDir)) {
             // for faster performance
             self::$pluginsToPathCache[$pluginName] = self::getPluginRealPath($corePluginsDir);
@@ -520,7 +520,7 @@ class Manager
     {
         $result = self::getPluginDirectory($pluginName);
 
-        $matomoPath = rtrim(PIWIK_INCLUDE_PATH, '/') . '/';
+        $matomoPath = rtrim(MATOMO_PLUGINS_PATH, '/') . '/';
         $webroots = array_merge(
             Manager::getAlternativeWebRootDirectories(),
             [$matomoPath => '/']
@@ -546,7 +546,7 @@ class Manager
      */
     public static function getPluginsDirectory()
     {
-        $path = rtrim(PIWIK_INCLUDE_PATH, '/') . '/plugins/';
+        $path = rtrim(MATOMO_PLUGINS_PATH, '/') . '/plugins/';
         $path = self::getPluginRealPath($path);
         return $path;
     }
@@ -686,7 +686,7 @@ class Manager
     public static function deletePluginFromFilesystem($plugin)
     {
         $pluginDir = self::getPluginDirectory($plugin);
-        if (strpos($pluginDir, PIWIK_INCLUDE_PATH) === 0) {
+        if (strpos($pluginDir, MATOMO_PLUGINS_PATH) === 0) {
             // only delete files for plugins within matomo directory...
             Filesystem::unlinkRecursive($pluginDir, $deleteRootToo = true);
         }
diff --git a/core/ReportRenderer/Pdf.php b/core/ReportRenderer/Pdf.php
index 0723981..21befe4 100644
--- a/core/ReportRenderer/Pdf.php
+++ b/core/ReportRenderer/Pdf.php
@@ -21,7 +21,7 @@ use TCPDF_FONTS;
 /**
  * @see libs/tcpdf
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/ScheduledReports/config/tcpdf_config.php';
+require_once MATOMO_PUBLIC_PATH . '/plugins/ScheduledReports/config/tcpdf_config.php';
 
 /**
  * PDF report renderer
diff --git a/core/Twig.php b/core/Twig.php
index 369c9d9..616343d 100644
--- a/core/Twig.php
+++ b/core/Twig.php
@@ -437,9 +437,11 @@ class Twig
             if ($string === false || $string === true) {
                 return (int) $string;
             }
+            $string = str_replace([MATOMO_PUBLIC_PATH,  str_replace('/', '\/', MATOMO_PUBLIC_PATH)], '$PUBLIC_ROOT', $string);
             $string = str_replace([PIWIK_DOCUMENT_ROOT,  str_replace('/', '\/', PIWIK_DOCUMENT_ROOT)], '$DOC_ROOT', $string);
             $string = str_replace([PIWIK_USER_PATH,  str_replace('/', '\/', PIWIK_USER_PATH) ], '$USER_PATH', $string);
             $string = str_replace([PIWIK_INCLUDE_PATH,  str_replace('/', '\/', PIWIK_INCLUDE_PATH) ], '$INCLUDE_PATH', $string);
+            $string = str_replace([MATOMO_PLUGINS_PATH,  str_replace('/', '\/', MATOMO_PLUGINS_PATH) ], '$PLUGINS_PATH', $string);
 
             // replace anything token like
             $string = preg_replace('/[[:xdigit:]]{31,80}/', 'TOKEN_REPLACED', $string);
diff --git a/core/Updates/2.0-a17.php b/core/Updates/2.0-a17.php
index d4b66c0..84d6d43 100644
--- a/core/Updates/2.0-a17.php
+++ b/core/Updates/2.0-a17.php
@@ -23,8 +23,8 @@ class Updates_2_0_a17 extends Updates
 
         // Deleting old plugins
         $obsoleteDirectories = array(
-            PIWIK_INCLUDE_PATH . '/plugins/Referers',
-            PIWIK_INCLUDE_PATH . '/plugins/PDFReports',
+            MATOMO_PLUGINS_PATH . '/plugins/Referers',
+            MATOMO_PLUGINS_PATH . '/plugins/PDFReports',
         );
         foreach ($obsoleteDirectories as $dir) {
             if (file_exists($dir)) {
diff --git a/core/Updates/2.0.3-b7.php b/core/Updates/2.0.3-b7.php
index 5fa44bf..ac223e0 100644
--- a/core/Updates/2.0.3-b7.php
+++ b/core/Updates/2.0.3-b7.php
@@ -47,7 +47,7 @@ class Updates_2_0_3_b7 extends Updates
             } catch (\Exception $e) {
             }
 
-            $dir = PIWIK_INCLUDE_PATH . "/plugins/$plugin";
+            $dir = MATOMO_PLUGINS_PATH . "/plugins/$plugin";
 
             if (file_exists($dir)) {
                 Filesystem::unlinkRecursive($dir, true);
diff --git a/core/Updates/3.5.1-b1.php b/core/Updates/3.5.1-b1.php
index da88c72..db7167a 100644
--- a/core/Updates/3.5.1-b1.php
+++ b/core/Updates/3.5.1-b1.php
@@ -24,9 +24,9 @@ class Updates_3_5_1_b1 extends PiwikUpdates
         // Skip if new file `isoRegionNames.php` is detected within `GeoIP2` directory, as that means filesystem is case
         // insensitive and GeoIP2 plugin has been partially overwritten by GeoIp2 plugin
         try {
-            if (is_dir(PIWIK_INCLUDE_PATH . '/plugins/GeoIP2') && !file_exists(PIWIK_INCLUDE_PATH . '/plugins/GeoIP2/data/isoRegionNames.php')) {
+            if (is_dir(MATOMO_PLUGINS_PATH . '/plugins/GeoIP2') && !file_exists(MATOMO_PLUGINS_PATH . '/plugins/GeoIP2/data/isoRegionNames.php')) {
                 // first remove the plugin files, as trying to deactivate would load the plugin files resulting in a fatal error
-                Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . '/plugins/GeoIP2', true);
+                Filesystem::unlinkRecursive(MATOMO_PLUGINS_PATH . '/plugins/GeoIP2', true);
 
                 // if plugin was activated, trigger deactivation to remove the config entry and set a notification
                 if (Manager::getInstance()->isPluginActivated('GeoIP2')) {
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index c31dc49..a434e0e 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -182,11 +182,11 @@ if (!function_exists('Piwik_GetErrorMessagePage')) {
             $optionalLinkBack = '<a href="javascript:window.history.back();">Go Back</a>';
         }
 
-        $headerPage = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/Morpheus/templates/simpleLayoutHeader.tpl');
+        $headerPage = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/Morpheus/templates/simpleLayoutHeader.tpl');
         $headerPage = str_replace('%logoUrl%', $logoUrl, $headerPage);
         $headerPage = str_replace('%faviconUrl%', $faviconUrl, $headerPage);
 
-        $footerPage = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/Morpheus/templates/simpleLayoutFooter.tpl');
+        $footerPage = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/Morpheus/templates/simpleLayoutFooter.tpl');
 
         $headerPage = str_replace('{$HTML_TITLE}', PAGE_TITLE_WHEN_ERROR, $headerPage);
 
@@ -199,7 +199,7 @@ if (!function_exists('Piwik_GetErrorMessagePage')) {
         if ($hasCountdownRedirect) {
             $redirectSection = '<p>
                                 Please click below if you are not redirected in ' . $countdown . ' seconds</br></br>
-                                Go to <a href="' . $redirectUrl . '">' . htmlspecialchars($redirectUrl) . '</a> 
+                                Go to <a href="' . $redirectUrl . '">' . htmlspecialchars($redirectUrl) . '</a>
                                 </p>
                                 <style>.header,.footer { display:none;}</style>
                                 <script>setTimeout(function(){window.location.href="' . $redirectUrl . '"}, ' . ($countdown * 1000) . ');</script>';
diff --git a/plugins/Annotations/API.php b/plugins/Annotations/API.php
index 3a0b3c6..24fdeb9 100644
--- a/plugins/Annotations/API.php
+++ b/plugins/Annotations/API.php
@@ -18,7 +18,7 @@ use Piwik\Site;
 /**
  * @see plugins/Annotations/AnnotationList.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/Annotations/AnnotationList.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/Annotations/AnnotationList.php';
 
 /**
  * API for annotations plugin. Provides methods to create, modify, delete & query
diff --git a/plugins/CoreConsole/Commands/BuildTracker.php b/plugins/CoreConsole/Commands/BuildTracker.php
index c1c6bc2..18426b1 100644
--- a/plugins/CoreConsole/Commands/BuildTracker.php
+++ b/plugins/CoreConsole/Commands/BuildTracker.php
@@ -58,8 +58,8 @@ class BuildTracker extends ConsoleCommand
             return;
         }
 
-        $pluginTrackerJs = PIWIK_INCLUDE_PATH . '/plugins/' . $plugin . '/tracker.js';
-        $pluginTrackerMinJs = PIWIK_INCLUDE_PATH . '/plugins/' . $plugin . '/tracker.min.js';
+        $pluginTrackerJs = MATOMO_PLUGINS_PATH . '/plugins/' . $plugin . '/tracker.js';
+        $pluginTrackerMinJs = MATOMO_PLUGINS_PATH . '/plugins/' . $plugin . '/tracker.min.js';
 
         $command = "cd $jsPath && cat $pluginTrackerJs | java -jar yuicompressor-2.4.8.jar --type js --line-break 1000 | sed 's/^[/][*]/\\/*!/' > $pluginTrackerMinJs";
         if ($output->isVerbose()) {
diff --git a/plugins/CoreConsole/Commands/ComputeJsAssetSize.php b/plugins/CoreConsole/Commands/ComputeJsAssetSize.php
index 91fe3a8..5b8bae5 100644
--- a/plugins/CoreConsole/Commands/ComputeJsAssetSize.php
+++ b/plugins/CoreConsole/Commands/ComputeJsAssetSize.php
@@ -163,7 +163,7 @@ class ComputeJsAssetSize extends ConsoleCommand
             $expectedPluginsLoadedAndActivated[] = $plugin;
         }
 
-        if (is_file(PIWIK_INCLUDE_PATH . '/plugins/CoreVue/plugin.json')) {
+        if (is_file(MATOMO_PLUGINS_PATH . '/plugins/CoreVue/plugin.json')) {
             $expectedPluginsLoadedAndActivated[] = "CoreVue";
         }
 
@@ -260,7 +260,7 @@ class ComputeJsAssetSize extends ConsoleCommand
 
         $pluginSuffix = '';
         if ($plugin) {
-            $prefix = 'cd "' . addslashes(PIWIK_INCLUDE_PATH . '/plugins/' . $plugin) . '"; ';
+            $prefix = 'cd "' . addslashes(MATOMO_PLUGINS_PATH . '/plugins/' . $plugin) . '"; ';
 
             $pluginBranchName = trim(`$prefix git rev-parse --abbrev-ref HEAD`);
             $pluginLastCommit = trim(`$prefix git log --pretty=format:'%h' -n 1`);
diff --git a/plugins/CoreConsole/Commands/DevelopmentSyncProcessedSystemTests.php b/plugins/CoreConsole/Commands/DevelopmentSyncProcessedSystemTests.php
index b2153d4..43da546 100644
--- a/plugins/CoreConsole/Commands/DevelopmentSyncProcessedSystemTests.php
+++ b/plugins/CoreConsole/Commands/DevelopmentSyncProcessedSystemTests.php
@@ -57,9 +57,9 @@ class DevelopmentSyncProcessedSystemTests extends ConsoleCommand
         $repository = $input->getOption('repository');
 
         if ($input->getOption('plugin')) {
-            $targetDir   = sprintf(PIWIK_INCLUDE_PATH . '/plugins/%s/tests/System/%s/', $input->getOption('plugin'), $expected ? 'expected' : 'processed');
+            $targetDir   = sprintf(MATOMO_PLUGINS_PATH . '/plugins/%s/tests/System/%s/', $input->getOption('plugin'), $expected ? 'expected' : 'processed');
         } elseif (preg_match('/plugin-([a-z0-9]{3,40})$/i', $repository, $match)) {
-            $targetDir   = sprintf(PIWIK_INCLUDE_PATH . '/plugins/%s/tests/System/%s/', $match[1], $expected ? 'expected' : 'processed');
+            $targetDir   = sprintf(MATOMO_PLUGINS_PATH . '/plugins/%s/tests/System/%s/', $match[1], $expected ? 'expected' : 'processed');
         }
 
         $tmpDir      = StaticContainer::get('path.tmp') . '/';
@@ -115,7 +115,7 @@ class DevelopmentSyncProcessedSystemTests extends ConsoleCommand
         $output      = $this->getOutput();
         $buildNumber = $input->getArgument('buildnumber');
         $expected    = $input->getOption('expected');
-        $targetDir   = sprintf(PIWIK_INCLUDE_PATH . '/plugins/%%s/tests/System/%s/', $expected ? 'expected' : 'processed');
+        $targetDir   = sprintf(MATOMO_PLUGINS_PATH . '/plugins/%%s/tests/System/%s/', $expected ? 'expected' : 'processed');
         $tmpDir      = StaticContainer::get('path.tmp') . '/';
 
         if (Common::stringEndsWith($buildNumber, '.1')) {
diff --git a/plugins/CoreHome/Columns/ServerTime.php b/plugins/CoreHome/Columns/ServerTime.php
index 6c73d0d..4732838 100644
--- a/plugins/CoreHome/Columns/ServerTime.php
+++ b/plugins/CoreHome/Columns/ServerTime.php
@@ -16,7 +16,7 @@ use Piwik\Tracker\Action;
 use Piwik\Tracker\Request;
 use Piwik\Tracker\Visitor;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class ServerTime extends ActionDimension
 {
diff --git a/plugins/CoreHome/Columns/VisitFirstActionMinute.php b/plugins/CoreHome/Columns/VisitFirstActionMinute.php
index a3f7cd2..ffb24fa 100644
--- a/plugins/CoreHome/Columns/VisitFirstActionMinute.php
+++ b/plugins/CoreHome/Columns/VisitFirstActionMinute.php
@@ -14,7 +14,7 @@ use Piwik\Columns\MetricsList;
 use Piwik\Plugin\Dimension\VisitDimension;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class VisitFirstActionMinute extends VisitDimension
 {
diff --git a/plugins/CoreHome/Columns/VisitFirstActionTime.php b/plugins/CoreHome/Columns/VisitFirstActionTime.php
index 5a46cfe..bf748f9 100644
--- a/plugins/CoreHome/Columns/VisitFirstActionTime.php
+++ b/plugins/CoreHome/Columns/VisitFirstActionTime.php
@@ -16,7 +16,7 @@ use Piwik\Tracker\Request;
 use Piwik\Tracker\Visitor;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class VisitFirstActionTime extends VisitDimension
 {
diff --git a/plugins/CoreHome/Columns/VisitLastActionDayOfWeek.php b/plugins/CoreHome/Columns/VisitLastActionDayOfWeek.php
index 1c98079..59b4e93 100644
--- a/plugins/CoreHome/Columns/VisitLastActionDayOfWeek.php
+++ b/plugins/CoreHome/Columns/VisitLastActionDayOfWeek.php
@@ -14,7 +14,7 @@ use Piwik\Columns\MetricsList;
 use Piwik\Plugin\Dimension\VisitDimension;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class VisitLastActionDayOfWeek extends VisitDimension
 {
diff --git a/plugins/CoreHome/Columns/VisitLastActionMinute.php b/plugins/CoreHome/Columns/VisitLastActionMinute.php
index 96e5103..a26beee 100644
--- a/plugins/CoreHome/Columns/VisitLastActionMinute.php
+++ b/plugins/CoreHome/Columns/VisitLastActionMinute.php
@@ -14,7 +14,7 @@ use Piwik\Columns\MetricsList;
 use Piwik\Plugin\Dimension\VisitDimension;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 /**
  * This dimension holds visit's last action time in a visit.
diff --git a/plugins/CoreHome/Columns/VisitLastActionMonth.php b/plugins/CoreHome/Columns/VisitLastActionMonth.php
index 3216deb..8af859c 100644
--- a/plugins/CoreHome/Columns/VisitLastActionMonth.php
+++ b/plugins/CoreHome/Columns/VisitLastActionMonth.php
@@ -14,7 +14,7 @@ use Piwik\Columns\MetricsList;
 use Piwik\Plugin\Dimension\VisitDimension;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class VisitLastActionMonth extends VisitDimension
 {
diff --git a/plugins/CoreHome/Columns/VisitLastActionTime.php b/plugins/CoreHome/Columns/VisitLastActionTime.php
index dacd2b9..200b9b3 100644
--- a/plugins/CoreHome/Columns/VisitLastActionTime.php
+++ b/plugins/CoreHome/Columns/VisitLastActionTime.php
@@ -19,7 +19,7 @@ use Piwik\Tracker\Request;
 use Piwik\Tracker\Visitor;
 use Piwik\Metrics\Formatter;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 /**
  * This dimension holds the best guess for a visit's end time. It is set the last action
diff --git a/plugins/CoreVisualizations/CoreVisualizations.php b/plugins/CoreVisualizations/CoreVisualizations.php
index c58e955..a79144f 100644
--- a/plugins/CoreVisualizations/CoreVisualizations.php
+++ b/plugins/CoreVisualizations/CoreVisualizations.php
@@ -11,7 +11,7 @@ namespace Piwik\Plugins\CoreVisualizations;
 
 use Piwik\ViewDataTable\Manager as ViewDataTableManager;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/JqplotDataGenerator.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/CoreVisualizations/JqplotDataGenerator.php';
 
 /**
  * This plugin contains all core visualizations, such as the normal HTML table and
diff --git a/plugins/CoreVisualizations/Visualizations/JqplotGraph.php b/plugins/CoreVisualizations/Visualizations/JqplotGraph.php
index 48d4358..4e6dd76 100644
--- a/plugins/CoreVisualizations/Visualizations/JqplotGraph.php
+++ b/plugins/CoreVisualizations/Visualizations/JqplotGraph.php
@@ -41,6 +41,6 @@ abstract class JqplotGraph extends Graph
     abstract protected function makeDataGenerator($properties);
 }
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Bar.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Bar.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Pie.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/CoreVisualizations/Visualizations/JqplotGraph/Evolution.php';
diff --git a/plugins/CoreVue/Commands/Build.php b/plugins/CoreVue/Commands/Build.php
index 73f3292..d327d04 100644
--- a/plugins/CoreVue/Commands/Build.php
+++ b/plugins/CoreVue/Commands/Build.php
@@ -240,7 +240,7 @@ class Build extends ConsoleCommand
 
     public static function getVueCliServiceProxyBin(): string
     {
-        return PIWIK_INCLUDE_PATH . "/plugins/CoreVue/scripts/cli-service-proxy.js";
+        return MATOMO_PLUGINS_PATH . "/plugins/CoreVue/scripts/cli-service-proxy.js";
     }
 
     public static function checkVueCliServiceAvailable(): void
@@ -310,7 +310,7 @@ class Build extends ConsoleCommand
             $GLOBALS['MATOMO_PLUGIN_DIRS'] ?? [],
             [
                 [
-                    'pluginsPathAbsolute' => PIWIK_INCLUDE_PATH . '/plugins',
+                    'pluginsPathAbsolute' => MATOMO_PLUGINS_PATH . '/plugins',
                     'webrootDirRelativeToMatomo' => '.',
                 ],
             ]
diff --git a/plugins/CoreVue/Commands/BuildPolyfill.php b/plugins/CoreVue/Commands/BuildPolyfill.php
index 2a5338d..cbcee7c 100644
--- a/plugins/CoreVue/Commands/BuildPolyfill.php
+++ b/plugins/CoreVue/Commands/BuildPolyfill.php
@@ -37,7 +37,7 @@ class BuildPolyfill extends ConsoleCommand
 
         $this->createDummyPackageJson();
 
-        $dir = PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills';
+        $dir = MATOMO_PLUGINS_PATH . '/plugins/CoreVue/polyfills';
         foreach (['development', 'production'] as $env) {
             $command = "cd '$dir' && BROWSERSLIST_IGNORE_OLD_DATA=1 FORCE_COLOR=1 " . Build::getVueCliServiceBin()
                 . ' build --target app --mode ' . $env . ' --name MatomoPolyfills ./src/index.ts --dest ./dist';
@@ -66,17 +66,17 @@ class BuildPolyfill extends ConsoleCommand
 
         $dummyPackageJson = json_encode($dummyPackageJson, JSON_PRETTY_PRINT);
 
-        file_put_contents(PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills/package.json', $dummyPackageJson);
+        file_put_contents(MATOMO_PLUGINS_PATH . '/plugins/CoreVue/polyfills/package.json', $dummyPackageJson);
     }
 
     private function deleteExtraFiles()
     {
-        @unlink(PIWIK_INCLUDE_PATH . "/plugins/CoreVue/polyfills/dist/index.html");
+        @unlink(MATOMO_PLUGINS_PATH . "/plugins/CoreVue/polyfills/dist/index.html");
     }
 
     private function clearWebpackCache()
     {
-        $path = PIWIK_INCLUDE_PATH . '/plugins/CoreVue/polyfills/node_modules/.cache';
+        $path = MATOMO_PLUGINS_PATH . '/plugins/CoreVue/polyfills/node_modules/.cache';
         Filesystem::unlinkRecursive($path, true);
     }
 }
diff --git a/plugins/DevicePlugins/API.php b/plugins/DevicePlugins/API.php
index a325047..ec5e651 100644
--- a/plugins/DevicePlugins/API.php
+++ b/plugins/DevicePlugins/API.php
@@ -19,7 +19,7 @@ use Piwik\Plugins\CoreHome\Columns\Metrics\VisitsPercent;
 /**
  * @see plugins/DevicePlugins/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/DevicePlugins/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/DevicePlugins/functions.php';
 
 /**
  * The DevicePlugins API lets you access reports about device plugins such as browser plugins.
diff --git a/plugins/DevicePlugins/Archiver.php b/plugins/DevicePlugins/Archiver.php
index 9fa8221..2e8ce95 100644
--- a/plugins/DevicePlugins/Archiver.php
+++ b/plugins/DevicePlugins/Archiver.php
@@ -9,7 +9,7 @@
 
 namespace Piwik\Plugins\DevicePlugins;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/DevicePlugins/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/DevicePlugins/functions.php';
 
 /**
  * Archiver for DevicePlugins Plugin
diff --git a/plugins/DevicePlugins/VisitorDetails.php b/plugins/DevicePlugins/VisitorDetails.php
index bd80885..a2cb001 100644
--- a/plugins/DevicePlugins/VisitorDetails.php
+++ b/plugins/DevicePlugins/VisitorDetails.php
@@ -11,7 +11,7 @@ namespace Piwik\Plugins\DevicePlugins;
 
 use Piwik\Plugins\Live\VisitorDetailsAbstract;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/DevicePlugins/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/DevicePlugins/functions.php';
 
 class VisitorDetails extends VisitorDetailsAbstract
 {
diff --git a/plugins/DevicePlugins/functions.php b/plugins/DevicePlugins/functions.php
index aeaf5a2..68cc23c 100644
--- a/plugins/DevicePlugins/functions.php
+++ b/plugins/DevicePlugins/functions.php
@@ -18,7 +18,7 @@ function getPluginsLogo($label)
     }
     $icon = 'plugins/Morpheus/icons/dist/plugins/' . $label . '.png';
 
-    if (file_exists(PIWIK_INCLUDE_PATH . '/' . $icon)) {
+    if (file_exists(MATOMO_PLUGINS_PATH . '/' . $icon)) {
         return $icon;
     }
 
diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php
index 86ff110..5149341 100644
--- a/plugins/DevicesDetection/DevicesDetection.php
+++ b/plugins/DevicesDetection/DevicesDetection.php
@@ -9,7 +9,7 @@
 
 namespace Piwik\Plugins\DevicesDetection;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/DevicesDetection/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/DevicesDetection/functions.php';
 
 class DevicesDetection extends \Piwik\Plugin
 {
diff --git a/plugins/DevicesDetection/VisitorDetails.php b/plugins/DevicesDetection/VisitorDetails.php
index 2d70063..fd7fd93 100644
--- a/plugins/DevicesDetection/VisitorDetails.php
+++ b/plugins/DevicesDetection/VisitorDetails.php
@@ -12,7 +12,7 @@ namespace Piwik\Plugins\DevicesDetection;
 use Piwik\Piwik;
 use Piwik\Plugins\Live\VisitorDetailsAbstract;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/DevicesDetection/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/DevicesDetection/functions.php';
 
 class VisitorDetails extends VisitorDetailsAbstract
 {
diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php
index b2a4be6..793fc9c 100644
--- a/plugins/DevicesDetection/functions.php
+++ b/plugins/DevicesDetection/functions.php
@@ -19,7 +19,7 @@ function getBrandLogo($label)
 {
     $path  = 'plugins/Morpheus/icons/dist/brand/%s.png';
     $label = preg_replace('/[^a-z0-9_\-]+/i', '_', $label);
-    if (!file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $label))) {
+    if (!file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($path, $label))) {
         $label = 'unk';
     }
     return sprintf($path, $label);
@@ -115,14 +115,14 @@ function getBrowserLogo($short)
 
     if (
         array_key_exists($short, BrowserParser::getAvailableBrowsers()) &&
-        file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $short))
+        file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($path, $short))
     ) {
         return sprintf($path, $short);
     }
 
     if (array_key_exists($family, $browserFamilies)) {
         foreach ($browserFamilies[$family] as $browserShort) {
-            if (file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $browserShort))) {
+            if (file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($path, $browserShort))) {
                 return sprintf($path, $browserShort);
             }
         }
@@ -374,13 +374,13 @@ function getOsLogo($short)
     if (
         !empty($short) &&
         array_key_exists($short, OperatingSystemParser::getAvailableOperatingSystems()) &&
-        file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $short))
+        file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($path, $short))
     ) {
         return sprintf($path, $short);
     } elseif (
         !empty($family) &&
         array_key_exists($family, $osFamilies) &&
-        file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($path, $osFamilies[$family][0]))
+        file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($path, $osFamilies[$family][0]))
     ) {
         return sprintf($path, $osFamilies[$family][0]);
     }
diff --git a/plugins/LanguagesManager/API.php b/plugins/LanguagesManager/API.php
index 1a9ed08..0289a35 100644
--- a/plugins/LanguagesManager/API.php
+++ b/plugins/LanguagesManager/API.php
@@ -368,7 +368,7 @@ class API extends \Piwik\Plugin\API
             $languages = $this->getAvailableLanguages($_ignoreConfig);
             $languagesInfo = array();
             foreach ($languages as $languageCode) {
-                $data = @file_get_contents(PIWIK_INCLUDE_PATH . "/plugins/Intl/lang/$languageCode.json");
+                $data = @file_get_contents(MATOMO_PLUGINS_PATH . "/plugins/Intl/lang/$languageCode.json");
 
                 // Skip languages not having Intl translations
                 if (empty($data)) {
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 7f0013c..50f222a 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -22,8 +22,8 @@ use Piwik\Log\LoggerInterface;
 /**
  * @see plugins/Live/Visitor.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/Live/Visitor.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/Live/Visitor.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 /**
  * The Live! API lets you access complete visit level information about your visitors. Combined with the power of <a href='http://matomo.org/docs/analytics-api/segmentation/' target='_blank'>Segmentation</a>,
diff --git a/plugins/MobileMessaging/Controller.php b/plugins/MobileMessaging/Controller.php
index b0434b7..bcbfd46 100644
--- a/plugins/MobileMessaging/Controller.php
+++ b/plugins/MobileMessaging/Controller.php
@@ -20,7 +20,7 @@ use Piwik\Plugins\MobileMessaging\SMSProvider;
 use Piwik\Translation\Translator;
 use Piwik\View;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 class Controller extends ControllerAdmin
 {
diff --git a/plugins/MobileMessaging/SMSProvider/ASPSMS.php b/plugins/MobileMessaging/SMSProvider/ASPSMS.php
index 601d081..6ae1e38 100644
--- a/plugins/MobileMessaging/SMSProvider/ASPSMS.php
+++ b/plugins/MobileMessaging/SMSProvider/ASPSMS.php
@@ -15,7 +15,7 @@ use Piwik\Piwik;
 use Piwik\Plugins\MobileMessaging\APIException;
 use Piwik\Plugins\MobileMessaging\SMSProvider;
 
-require_once PIWIK_INCLUDE_PATH . "/plugins/MobileMessaging/APIException.php";
+require_once MATOMO_PLUGINS_PATH . "/plugins/MobileMessaging/APIException.php";
 
 /**
  * @ignore
diff --git a/plugins/MobileMessaging/SMSProvider/Clockwork.php b/plugins/MobileMessaging/SMSProvider/Clockwork.php
index b153417..e8f67a3 100644
--- a/plugins/MobileMessaging/SMSProvider/Clockwork.php
+++ b/plugins/MobileMessaging/SMSProvider/Clockwork.php
@@ -14,7 +14,7 @@ use Piwik\Http;
 use Piwik\Plugins\MobileMessaging\APIException;
 use Piwik\Plugins\MobileMessaging\SMSProvider;
 
-require_once PIWIK_INCLUDE_PATH . "/plugins/MobileMessaging/APIException.php";
+require_once MATOMO_PLUGINS_PATH . "/plugins/MobileMessaging/APIException.php";
 
 /**
  * @ignore
diff --git a/plugins/PrivacyManager/PrivacyManager.php b/plugins/PrivacyManager/PrivacyManager.php
index a1249e4..16da8f8 100644
--- a/plugins/PrivacyManager/PrivacyManager.php
+++ b/plugins/PrivacyManager/PrivacyManager.php
@@ -34,8 +34,8 @@ use Piwik\View;
 /**
  * Specifically include this for Tracker API (which does not use autoloader)
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/PrivacyManager/DoNotTrackHeaderChecker.php';
-require_once PIWIK_INCLUDE_PATH . '/plugins/PrivacyManager/IPAnonymizer.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/PrivacyManager/DoNotTrackHeaderChecker.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/PrivacyManager/IPAnonymizer.php';
 
 /**
  */
diff --git a/plugins/Referrers/Referrers.php b/plugins/Referrers/Referrers.php
index a44e8ca..f04f342 100644
--- a/plugins/Referrers/Referrers.php
+++ b/plugins/Referrers/Referrers.php
@@ -17,7 +17,7 @@ use Piwik\Plugins\SitesManager\SiteUrls;
 /**
  * @see plugins/Referrers/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/Referrers/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/Referrers/functions.php';
 
 /**
  */
diff --git a/plugins/Referrers/SearchEngine.php b/plugins/Referrers/SearchEngine.php
index 7189685..529dcb2 100644
--- a/plugins/Referrers/SearchEngine.php
+++ b/plugins/Referrers/SearchEngine.php
@@ -472,7 +472,7 @@ class SearchEngine extends Singleton
     {
         $pathInPiwik  = 'plugins/Morpheus/icons/dist/searchEngines/%s.png';
         $pathWithCode = sprintf($pathInPiwik, $this->getHostFromUrl($url));
-        $absolutePath = PIWIK_INCLUDE_PATH . '/' . $pathWithCode;
+        $absolutePath = MATOMO_PLUGINS_PATH . '/' . $pathWithCode;
         if (file_exists($absolutePath)) {
             return $pathWithCode;
         }
diff --git a/plugins/Referrers/Social.php b/plugins/Referrers/Social.php
index 2eb6747..cbe0aa1 100644
--- a/plugins/Referrers/Social.php
+++ b/plugins/Referrers/Social.php
@@ -211,7 +211,7 @@ class Social extends Singleton
 
         $socialDomains = array_keys($socialNetworks, $social);
         foreach ($socialDomains as $domain) {
-            if (file_exists(PIWIK_INCLUDE_PATH . '/' . sprintf($filePattern, $domain))) {
+            if (file_exists(MATOMO_PLUGINS_PATH . '/' . sprintf($filePattern, $domain))) {
                 return sprintf($filePattern, $domain);
             }
         }
diff --git a/plugins/Resolution/API.php b/plugins/Resolution/API.php
index 67c8907..faed2be 100644
--- a/plugins/Resolution/API.php
+++ b/plugins/Resolution/API.php
@@ -15,7 +15,7 @@ use Piwik\Piwik;
 /**
  * @see plugins/Resolution/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/Resolution/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/Resolution/functions.php';
 
 /**
  * @method static \Piwik\Plugins\Resolution\API getInstance()
diff --git a/plugins/SEO/API.php b/plugins/SEO/API.php
index 79912ad..4bd8fc9 100644
--- a/plugins/SEO/API.php
+++ b/plugins/SEO/API.php
@@ -20,7 +20,7 @@ use Piwik\Url;
  * @see plugins/Referrers/functions.php
  * @method static API getInstance()
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/Referrers/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/Referrers/functions.php';
 
 /**
  * The SEO API lets you access a list of SEO metrics for the specified URL: Bing indexed pages and age of the Domain name.
diff --git a/plugins/SEO/config/ui-test.php b/plugins/SEO/config/ui-test.php
index adc1830..7036323 100644
--- a/plugins/SEO/config/ui-test.php
+++ b/plugins/SEO/config/ui-test.php
@@ -5,13 +5,15 @@ return [
         ['Http.sendHttpRequest',\Piwik\DI::value(function ($aUrl, $httpEventParams, &$response, &$status, &$headers) {
             // fake responses for SEO metric requests
             if (strpos($aUrl, 'www.bing.com')) {
-                $response = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/SEO/tests/resources/bing_response.html');
+                $response = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/SEO/tests/resources/bing_response.html');
             } elseif (strpos($aUrl, 'archive.org')) {
                 $response = '{"timestamp": "19900101", "url": "matomo.org", "archived_snapshots": {"closest": {"timestamp": "20180109155124", "available": true, "status": "200", "url": "http://web.archive.org/web/20180109155124/https://matomo.org"}}}';
             } elseif (strpos($aUrl, 'www.who.is')) {
-                $response = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/SEO/tests/resources/whois_response.html');
+                $response = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/SEO/tests/resources/whois_response.html');
             } elseif (strpos($aUrl, 'www.whois.com')) {
-                $response = file_get_contents(PIWIK_INCLUDE_PATH . '/plugins/SEO/tests/resources/whoiscom_response.html');
+                $response = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/SEO/tests/resources/whoiscom_response.html');
+            } elseif (strpos($aUrl, 'www.google.com')) {
+                $response = file_get_contents(MATOMO_PLUGINS_PATH . '/plugins/SEO/tests/resources/google_response.html');
             }
         })]
     ]),
diff --git a/plugins/TestRunner/Commands/TestsRun.php b/plugins/TestRunner/Commands/TestsRun.php
index 6351a17..9e9304c 100644
--- a/plugins/TestRunner/Commands/TestsRun.php
+++ b/plugins/TestRunner/Commands/TestsRun.php
@@ -133,7 +133,7 @@ class TestsRun extends ConsoleCommand
 
         $folder = '';
         if (!empty($pluginName)) {
-            $path = PIWIK_INCLUDE_PATH . '/plugins/' . $pluginName;
+            $path = MATOMO_PLUGINS_PATH . '/plugins/' . $pluginName;
 
             if (is_dir($path . '/tests')) {
                 $folder = $this->fixPathToTestFileOrDirectory($path . '/tests');
diff --git a/plugins/TestRunner/Commands/TestsSetupFixture.php b/plugins/TestRunner/Commands/TestsSetupFixture.php
index 744ba31..7e5fccd 100644
--- a/plugins/TestRunner/Commands/TestsSetupFixture.php
+++ b/plugins/TestRunner/Commands/TestsSetupFixture.php
@@ -319,7 +319,7 @@ class TestsSetupFixture extends ConsoleCommand
             define('PIWIK_INCLUDE_SEARCH_PATH', get_include_path()
                 . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/core'
                 . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/libs'
-                . PATH_SEPARATOR . PIWIK_INCLUDE_PATH . '/plugins');
+                . PATH_SEPARATOR . MATOMO_PLUGINS_PATH . '/plugins');
         }
         @ini_set('include_path', PIWIK_INCLUDE_SEARCH_PATH);
         @set_include_path(PIWIK_INCLUDE_SEARCH_PATH);
diff --git a/plugins/UserCountry/API.php b/plugins/UserCountry/API.php
index c77b594..123612b 100644
--- a/plugins/UserCountry/API.php
+++ b/plugins/UserCountry/API.php
@@ -25,7 +25,7 @@ use Piwik\Tracker\Visit;
 /**
  * @see plugins/UserCountry/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 /**
  * The UserCountry API lets you access reports about your visitors' Countries and Continents.
diff --git a/plugins/UserCountry/Columns/Country.php b/plugins/UserCountry/Columns/Country.php
index d07dda1..3cefd2f 100644
--- a/plugins/UserCountry/Columns/Country.php
+++ b/plugins/UserCountry/Columns/Country.php
@@ -23,7 +23,7 @@ use Piwik\Tracker\Visitor;
 use Piwik\Tracker\Action;
 use Piwik\Tracker\Request;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 class Country extends Base
 {
diff --git a/plugins/UserCountry/LocationProvider.php b/plugins/UserCountry/LocationProvider.php
index b6a9451..9474e98 100644
--- a/plugins/UserCountry/LocationProvider.php
+++ b/plugins/UserCountry/LocationProvider.php
@@ -24,7 +24,7 @@ use Piwik\Tracker\TrackerConfig;
 /**
  * @see plugins/UserCountry/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 /**
  * The base class of all LocationProviders.
diff --git a/plugins/UserCountry/VisitorDetails.php b/plugins/UserCountry/VisitorDetails.php
index 3759f96..09ba2ed 100644
--- a/plugins/UserCountry/VisitorDetails.php
+++ b/plugins/UserCountry/VisitorDetails.php
@@ -13,7 +13,7 @@ use Piwik\Common;
 use Piwik\Plugins\Live\VisitorDetailsAbstract;
 use Piwik\Tracker\Visit;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 class VisitorDetails extends VisitorDetailsAbstract
 {
diff --git a/plugins/UserCountry/VisitorGeolocator.php b/plugins/UserCountry/VisitorGeolocator.php
index d526baf..87216e7 100644
--- a/plugins/UserCountry/VisitorGeolocator.php
+++ b/plugins/UserCountry/VisitorGeolocator.php
@@ -19,7 +19,7 @@ use Piwik\Plugins\UserCountry\LocationProvider\DisabledProvider;
 use Piwik\Tracker\Visit;
 use Piwik\Log\LoggerInterface;
 
-require_once PIWIK_INCLUDE_PATH . "/plugins/UserCountry/LocationProvider.php";
+require_once MATOMO_PLUGINS_PATH . "/plugins/UserCountry/LocationProvider.php";
 
 /**
  * Service that determines a visitor's location using visitor information.
diff --git a/plugins/UserCountry/functions.php b/plugins/UserCountry/functions.php
index 42b88fb..4798e8c 100644
--- a/plugins/UserCountry/functions.php
+++ b/plugins/UserCountry/functions.php
@@ -28,7 +28,7 @@ function getFlagFromCode($code)
 
     $pathInPiwik = 'plugins/Morpheus/icons/dist/flags/%s.png';
     $pathWithCode = sprintf($pathInPiwik, $code);
-    $absolutePath = PIWIK_INCLUDE_PATH . '/' . $pathWithCode;
+    $absolutePath = MATOMO_PLUGINS_PATH . '/' . $pathWithCode;
     if (file_exists($absolutePath)) {
         return $pathWithCode;
     }
diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index f396910..2a20f9b 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -19,7 +19,7 @@ use Piwik\Site;
 use Piwik\Translation\Translator;
 use Piwik\View;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserCountry/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserCountry/functions.php';
 
 /**
  *
diff --git a/plugins/UserLanguage/API.php b/plugins/UserLanguage/API.php
index ebf6396..9bd91f5 100644
--- a/plugins/UserLanguage/API.php
+++ b/plugins/UserLanguage/API.php
@@ -15,7 +15,7 @@ use Piwik\Piwik;
 /**
  * @see plugins/UserLanguage/functions.php
  */
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserLanguage/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserLanguage/functions.php';
 
 /**
  * The UserLanguage API lets you access reports about your Visitors language setting
diff --git a/plugins/UserLanguage/Columns/Language.php b/plugins/UserLanguage/Columns/Language.php
index 3b8229b..2b9437e 100644
--- a/plugins/UserLanguage/Columns/Language.php
+++ b/plugins/UserLanguage/Columns/Language.php
@@ -16,7 +16,7 @@ use Piwik\Tracker\Action;
 use Piwik\Tracker\Request;
 use Piwik\Tracker\Visitor;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserLanguage/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserLanguage/functions.php';
 
 class Language extends VisitDimension
 {
diff --git a/plugins/UserLanguage/RecordBuilders/Languages.php b/plugins/UserLanguage/RecordBuilders/Languages.php
index 4e44086..5d6be10 100644
--- a/plugins/UserLanguage/RecordBuilders/Languages.php
+++ b/plugins/UserLanguage/RecordBuilders/Languages.php
@@ -20,7 +20,7 @@ use Piwik\Intl\Data\Provider\RegionDataProvider;
 use Piwik\Metrics;
 use Piwik\Plugins\UserLanguage\Archiver;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserLanguage/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserLanguage/functions.php';
 
 class Languages extends RecordBuilder
 {
diff --git a/plugins/UserLanguage/VisitorDetails.php b/plugins/UserLanguage/VisitorDetails.php
index 00583e1..3c5f922 100644
--- a/plugins/UserLanguage/VisitorDetails.php
+++ b/plugins/UserLanguage/VisitorDetails.php
@@ -11,7 +11,7 @@ namespace Piwik\Plugins\UserLanguage;
 
 use Piwik\Plugins\Live\VisitorDetailsAbstract;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/UserLanguage/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/UserLanguage/functions.php';
 
 class VisitorDetails extends VisitorDetailsAbstract
 {
diff --git a/plugins/VisitTime/API.php b/plugins/VisitTime/API.php
index a13b6e1..33db4e6 100644
--- a/plugins/VisitTime/API.php
+++ b/plugins/VisitTime/API.php
@@ -18,7 +18,7 @@ use Piwik\Period;
 use Piwik\Piwik;
 use Piwik\Site;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 /**
  * VisitTime API lets you access reports by Hour (Server time), and by Hour Local Time of your visitors.
diff --git a/plugins/VisitTime/Columns/LocalMinute.php b/plugins/VisitTime/Columns/LocalMinute.php
index 18938d6..f4310ef 100644
--- a/plugins/VisitTime/Columns/LocalMinute.php
+++ b/plugins/VisitTime/Columns/LocalMinute.php
@@ -14,7 +14,7 @@ use Piwik\Columns\MetricsList;
 use Piwik\Metrics\Formatter;
 use Piwik\Plugin\Dimension\VisitDimension;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class LocalMinute extends VisitDimension
 {
diff --git a/plugins/VisitTime/Columns/LocalTime.php b/plugins/VisitTime/Columns/LocalTime.php
index f369120..69aec22 100644
--- a/plugins/VisitTime/Columns/LocalTime.php
+++ b/plugins/VisitTime/Columns/LocalTime.php
@@ -15,7 +15,7 @@ use Piwik\Tracker\Action;
 use Piwik\Tracker\Request;
 use Piwik\Tracker\Visitor;
 
-require_once PIWIK_INCLUDE_PATH . '/plugins/VisitTime/functions.php';
+require_once MATOMO_PLUGINS_PATH . '/plugins/VisitTime/functions.php';
 
 class LocalTime extends VisitDimension
 {
