diff --git a/core/Plugin/Metric.php b/core/Plugin/Metric.php index a554c6d770e..9c3ad612ede 100644 --- a/core/Plugin/Metric.php +++ b/core/Plugin/Metric.php @@ -37,9 +37,9 @@ abstract class Metric */ public const COMPONENT_SUBNAMESPACE = 'Metrics'; - const AGGREGATION_TYPE_MAX = 'max'; - const AGGREGATION_TYPE_MIN = 'min'; - const AGGREGATION_TYPE_SUM = 'sum'; + public const AGGREGATION_TYPE_MAX = 'max'; + public const AGGREGATION_TYPE_MIN = 'min'; + public const AGGREGATION_TYPE_SUM = 'sum'; /** * Returns the column name of this metric, eg, `"nb_visits"` or `"avg_time_on_site"`. diff --git a/core/Plugin/Report.php b/core/Plugin/Report.php index 2a70aeb6a8b..d6b7f4c490a 100644 --- a/core/Plugin/Report.php +++ b/core/Plugin/Report.php @@ -617,7 +617,8 @@ public function getMetricAggregationTypes(): array $metricScopes = $this->getMetricScopes(); foreach ($aggregationTypes as $metricName => $aggregationType) { $metricScope = $metricScopes[$metricName]; - if (empty($metricScope) + if ( + empty($metricScope) || !$this->isScopeSameOrSubsetOf($metricScope, $reportScope) ) { unset($aggregationTypes[$metricName]); @@ -1319,9 +1320,9 @@ private function getScope(): ?string if ($dimension instanceof ConversionDimension) { return 'log_conversion'; - } else if ($dimension instanceof ActionDimension) { + } elseif ($dimension instanceof ActionDimension) { return 'log_link_visit_action'; - } else if ($dimension instanceof VisitDimension) { + } elseif ($dimension instanceof VisitDimension) { return 'log_visit'; } diff --git a/plugins/Actions/ArchivingHelper.php b/plugins/Actions/ArchivingHelper.php index e52875b7c6c..8d4a6e37892 100644 --- a/plugins/Actions/ArchivingHelper.php +++ b/plugins/Actions/ArchivingHelper.php @@ -16,7 +16,6 @@ use Piwik\DataTable\Row; use Piwik\Metrics as PiwikMetrics; use Piwik\Piwik; -use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\ConversionPageRate; use Piwik\RankingQuery; use Piwik\Tracker\Action; use Piwik\Tracker\PageUrl; diff --git a/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php b/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php index 0669943b4be..8f68494130c 100644 --- a/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php +++ b/plugins/CoreHome/Columns/Metrics/EvolutionMetric.php @@ -139,7 +139,7 @@ public function getTranslatedName() { if (isset($this->wrappedMetricTranslatedName)) { $metricName = Piwik::translate($this->wrappedMetricTranslatedName); - } else if ($this->wrapped instanceof Metric) { + } elseif ($this->wrapped instanceof Metric) { $metricName = $this->wrapped->getTranslatedName(); } else { $defaultMetricTranslations = Metrics::getDefaultMetricTranslations(); @@ -325,7 +325,7 @@ public function getExtraMetricAggregationTypes(): array if (!empty($this->wrappedMetricAggregationType)) { $aggregationType = $this->wrappedMetricAggregationType; - } else if ($this->wrapped instanceof Metric) { + } elseif ($this->wrapped instanceof Metric) { $aggregationType = $this->wrapped->getAggregationType(); } else { $allAggregationTypes = Metrics::getDefaultMetricAggregationTypes(); @@ -341,7 +341,7 @@ public function getExtraMetricSemanticTypes(): array if (!empty($this->wrappedSemanticType)) { $semanticType = $this->wrappedSemanticType; - } else if ($this->wrapped instanceof Metric) { + } elseif ($this->wrapped instanceof Metric) { $semanticType = $this->wrapped->getSemanticType(); } else { $allSemanticTypes = Metrics::getDefaultMetricSemanticTypes(); diff --git a/plugins/CoreHome/Columns/Metrics/VisitsPercent.php b/plugins/CoreHome/Columns/Metrics/VisitsPercent.php index 376886d0789..f1d0d5facd1 100644 --- a/plugins/CoreHome/Columns/Metrics/VisitsPercent.php +++ b/plugins/CoreHome/Columns/Metrics/VisitsPercent.php @@ -25,7 +25,7 @@ */ class VisitsPercent extends ProcessedMetric { - const FORCED_TOTAL_VISITS_METADATA_NAME = 'VisitsPercent_total_visits'; + public const FORCED_TOTAL_VISITS_METADATA_NAME = 'VisitsPercent_total_visits'; private $cachedTotalVisits = null; private $forceTotalVisits; diff --git a/plugins/Goals/Goals.php b/plugins/Goals/Goals.php index 8b44713939f..741325089e1 100644 --- a/plugins/Goals/Goals.php +++ b/plugins/Goals/Goals.php @@ -25,7 +25,6 @@ use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\ConversionEntryRate; use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\ConversionPageRate; use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\ConversionRate; -use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\ItemsCount; use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\RevenuePerEntry; use Piwik\Plugins\Goals\Columns\Metrics\GoalSpecific\RevenuePerVisit; use Piwik\Plugins\Goals\RecordBuilders\ProductRecord; @@ -394,7 +393,8 @@ public function getReportMetadataEnd(&$reports, $info) // add ecommerce metrics if idGoal is an ecommerce goal $idGoal = \Piwik\Request::fromRequest()->getParameter('idGoal', ''); - if ($idGoal === Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER + if ( + $idGoal === Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER || $idGoal === Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_CART ) { $goalMetrics['items'] = [ diff --git a/plugins/Goals/tests/System/TrackGoalsOneConversionPerVisitTest.php b/plugins/Goals/tests/System/TrackGoalsOneConversionPerVisitTest.php index 627fa6714ae..03dff7bcc79 100644 --- a/plugins/Goals/tests/System/TrackGoalsOneConversionPerVisitTest.php +++ b/plugins/Goals/tests/System/TrackGoalsOneConversionPerVisitTest.php @@ -35,20 +35,6 @@ public function getApiForTesting() { $apiToCall = array('Goals.get'); - return [ - ['API.getProcessedReport', [ - 'idSite' => self::$fixture->idSite, - 'date' => self::$fixture->dateTime, - 'period' => 'day', - 'testSuffix' => 'showGoalsMetricsSingleGoal', - 'otherRequestParameters' => [ - 'filter_update_columns_when_show_all_goals' => '1', - 'filter_show_goal_columns_process_goals' => '1', - 'apiModule' => 'DevicesDetection', - 'apiAction' => 'getBrowsers', - ], - ]], - ]; return array( array($apiToCall, array( 'idSite' => self::$fixture->idSite, diff --git a/plugins/Goals/tests/System/expected/test_trackGoals_oneConversionPerVisitshowGoalsMetricsAllGoals__API.getProcessedReport_day.xml b/plugins/Goals/tests/System/expected/test_trackGoals_oneConversionPerVisitshowGoalsMetricsAllGoals__API.getProcessedReport_day.xml index 52732efe30d..a4b5d364a49 100644 --- a/plugins/Goals/tests/System/expected/test_trackGoals_oneConversionPerVisitshowGoalsMetricsAllGoals__API.getProcessedReport_day.xml +++ b/plugins/Goals/tests/System/expected/test_trackGoals_oneConversionPerVisitshowGoalsMetricsAllGoals__API.getProcessedReport_day.xml @@ -34,7 +34,7 @@ Revenue per Visit - ($goals["idgoal=1"].revenue + $goals["idgoal=2"].revenue) / ($nb_visits != 0 ? $nb_visits : $nb_conversions) + $revenue / ($nb_visits != 0 ? $nb_visits : $nb_conversions) $nb_visits_converted / $nb_visits $nb_actions / $nb_visits $sum_visit_length / $nb_visits @@ -77,8 +77,8 @@ sum - Ecommerce order Revenue per Visit - Ecommerce order conversion rate + Revenue per Visit + Conversion rate $goals["idgoal={idGoal}"].revenue / ($nb_visits == 0 ? $goals["idgoal={idGoal}"].nb_conversions : $nb_visits) diff --git a/plugins/PagePerformance/Columns/Metrics/AveragePageLoadTime.php b/plugins/PagePerformance/Columns/Metrics/AveragePageLoadTime.php index 2e182de5639..06d57d93d4d 100644 --- a/plugins/PagePerformance/Columns/Metrics/AveragePageLoadTime.php +++ b/plugins/PagePerformance/Columns/Metrics/AveragePageLoadTime.php @@ -72,7 +72,12 @@ public function getSemanticType(): ?string public function getFormula(): ?string { - $parts = array_map(function ($n) { return '$' . $n; }, $this->getDependentMetrics()); + $parts = array_map( + function ($n) { + return '$' . $n; + }, + $this->getDependentMetrics() + ); return implode(' + ', $parts); } } diff --git a/tests/PHPUnit/Framework/Assert/ProcessedMetricAssert.php b/tests/PHPUnit/Framework/Assert/ProcessedMetricAssert.php new file mode 100644 index 00000000000..dd6dca19bd9 --- /dev/null +++ b/tests/PHPUnit/Framework/Assert/ProcessedMetricAssert.php @@ -0,0 +1,25 @@ +