| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Goals; |
|
|
| use Piwik\Plugins\VisitFrequency\API as VisitFrequencyAPI; |
|
|
| class Archiver extends \Piwik\Plugin\Archiver |
| { |
| public const VISITS_UNTIL_RECORD_NAME = 'visits_until_conv'; |
| public const DAYS_UNTIL_CONV_RECORD_NAME = 'days_until_conv'; |
| public const ITEMS_SKU_RECORD_NAME = 'Goals_ItemsSku'; |
| public const ITEMS_NAME_RECORD_NAME = 'Goals_ItemsName'; |
| public const ITEMS_CATEGORY_RECORD_NAME = 'Goals_ItemsCategory'; |
| public const SKU_FIELD = 'idaction_sku'; |
| public const NAME_FIELD = 'idaction_name'; |
| public const CATEGORY_FIELD = 'idaction_category'; |
| public const CATEGORY2_FIELD = 'idaction_category2'; |
| public const CATEGORY3_FIELD = 'idaction_category3'; |
| public const CATEGORY4_FIELD = 'idaction_category4'; |
| public const CATEGORY5_FIELD = 'idaction_category5'; |
| public const NO_LABEL = ':'; |
| public const LOG_CONVERSION_TABLE = 'log_conversion'; |
| public const VISITS_COUNT_FIELD = 'visitor_count_visits'; |
| public const SECONDS_SINCE_FIRST_VISIT_FIELD = 'visitor_seconds_since_first'; |
|
|
| public function getDependentSegmentsToArchive(): array |
| { |
| $hasConversions = $this->getProcessor()->getNumberOfVisitsConverted() > 0; |
| if (!$hasConversions) { |
| return []; |
| } |
|
|
| return [ |
| VisitFrequencyAPI::NEW_VISITOR_SEGMENT, |
| VisitFrequencyAPI::RETURNING_VISITOR_SEGMENT, |
| ]; |
| } |
|
|
| |
| |
| |
| public static $visitCountRanges = [ |
| [1, 1], |
| [2, 2], |
| [3, 3], |
| [4, 4], |
| [5, 5], |
| [6, 6], |
| [7, 7], |
| [8, 8], |
| [9, 14], |
| [15, 25], |
| [26, 50], |
| [51, 100], |
| [100], |
| ]; |
|
|
| |
| |
| |
| public static $daysToConvRanges = [ |
| [0, 0], |
| [1, 1], |
| [2, 2], |
| [3, 3], |
| [4, 4], |
| [5, 5], |
| [6, 6], |
| [7, 7], |
| [8, 14], |
| [15, 30], |
| [31, 60], |
| [61, 120], |
| [121, 364], |
| [364], |
| ]; |
|
|
| protected $dimensionRecord = [ |
| self::SKU_FIELD => self::ITEMS_SKU_RECORD_NAME, |
| self::NAME_FIELD => self::ITEMS_NAME_RECORD_NAME, |
| self::CATEGORY_FIELD => self::ITEMS_CATEGORY_RECORD_NAME, |
| ]; |
| protected $actionMapping = [ |
| self::SKU_FIELD => 'idaction_product_sku', |
| self::NAME_FIELD => 'idaction_product_name', |
| self::CATEGORY_FIELD => 'idaction_product_cat', |
| self::CATEGORY2_FIELD => 'idaction_product_cat2', |
| self::CATEGORY3_FIELD => 'idaction_product_cat3', |
| self::CATEGORY4_FIELD => 'idaction_product_cat4', |
| self::CATEGORY5_FIELD => 'idaction_product_cat5', |
| ]; |
|
|
| |
| |
| |
| |
| |
| public static function getRecordName($recordName, $idGoal = false) |
| { |
| $idGoalStr = ''; |
| if ($idGoal !== false && $idGoal !== null) { |
| $idGoalStr = $idGoal . "_"; |
| } |
| return 'Goal_' . $idGoalStr . $recordName; |
| } |
|
|
| public static function getItemRecordNameAbandonedCart($recordName) |
| { |
| return $recordName . '_Cart'; |
| } |
| } |
|
|