قرینه از
https://github.com/matomo-org/matomo.git
synced 2025-08-21 22:47:43 +00:00

* [Coding Style] Enable rule PSR12.Files.FileHeader * Apply CS * Replace Piwik with Matomo in file headers * Unify file headers (position, no. of lines, https links) * Rebuild dist files * Apply CS * Fix system test that relies on line numbers in a file that had the file header updated --------- Co-authored-by: Stefan Giehl <stefan@matomo.org>
87 خطوط
3.3 KiB
PHP
87 خطوط
3.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Matomo - free/libre analytics platform
|
|
*
|
|
* @link https://matomo.org
|
|
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*/
|
|
|
|
namespace Piwik\Plugins\Ecommerce;
|
|
|
|
use Piwik\Columns\ComputedMetricFactory;
|
|
use Piwik\Columns\MetricsList;
|
|
use Piwik\Common;
|
|
use Piwik\Plugin\ArchivedMetric;
|
|
use Piwik\Plugin\ComputedMetric;
|
|
use Piwik\Plugins\Ecommerce\Columns\ProductCategory;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class Ecommerce extends \Piwik\Plugin
|
|
{
|
|
/**
|
|
* @see \Piwik\Plugin::registerEvents
|
|
*/
|
|
public function registerEvents()
|
|
{
|
|
return [
|
|
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
|
|
'Metric.addComputedMetrics' => 'addComputedMetrics',
|
|
'Actions.getCustomActionDimensionFieldsAndJoins' => 'provideActionDimensionFields'
|
|
];
|
|
}
|
|
|
|
public function getClientSideTranslationKeys(&$translations)
|
|
{
|
|
$translations[] = 'Goals_ConversionsOverview';
|
|
$translations[] = 'General_ColumnRevenue';
|
|
$translations[] = 'General_Subtotal';
|
|
$translations[] = 'General_Tax';
|
|
$translations[] = 'General_Shipping';
|
|
$translations[] = 'General_Discount';
|
|
$translations[] = 'Live_RowActionTooltipWithDimension';
|
|
$translations[] = 'General_Goal';
|
|
}
|
|
|
|
public function provideActionDimensionFields(&$fields, &$joins)
|
|
{
|
|
$fields[] = 'log_link_visit_action.product_price as productViewPrice';
|
|
$fields[] = 'log_action_productview_name.name as productViewName';
|
|
$fields[] = 'log_action_productview_sku.name as productViewSku';
|
|
$joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_name
|
|
ON log_link_visit_action.idaction_product_name = log_action_productview_name.idaction';
|
|
$joins[] = 'LEFT JOIN ' . Common::prefixTable('log_action') . ' AS log_action_productview_sku
|
|
ON log_link_visit_action.idaction_product_sku = log_action_productview_sku.idaction';
|
|
|
|
for ($i = 1; $i <= ProductCategory::PRODUCT_CATEGORY_COUNT; $i++) {
|
|
$suffix = $i > 1 ? $i : '';
|
|
$fields[] = "log_action_productview_category$i.name as productViewCategory$i";
|
|
$joins[] = "LEFT JOIN " . Common::prefixTable('log_action') . " AS log_action_productview_category$i
|
|
ON log_link_visit_action.idaction_product_cat$suffix = log_action_productview_category$i.idaction";
|
|
}
|
|
}
|
|
|
|
public function addComputedMetrics(MetricsList $list, ComputedMetricFactory $computedMetricFactory)
|
|
{
|
|
$category = 'Goals_Ecommerce';
|
|
|
|
$metrics = $list->getMetrics();
|
|
foreach ($metrics as $metric) {
|
|
if ($metric instanceof ArchivedMetric && $metric->getDimension()) {
|
|
$metricName = $metric->getName();
|
|
if (
|
|
$metric->getDbTableName() === 'log_conversion'
|
|
&& $metricName !== 'nb_uniq_orders'
|
|
&& strpos($metricName, ArchivedMetric::AGGREGATION_SUM_PREFIX) === 0
|
|
&& $metric->getCategoryId() === $category
|
|
) {
|
|
$metric = $computedMetricFactory->createComputedMetric($metric->getName(), 'nb_uniq_orders', ComputedMetric::AGGREGATION_AVG);
|
|
$list->addMetric($metric);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|