| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Plugins\Ecommerce\Tracker; |
|
|
| use Piwik\Tracker\GoalManager; |
| use Piwik\Tracker\Request; |
| use Piwik\Tracker\RequestProcessor; |
| use Piwik\Tracker\Visit\VisitProperties; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class EcommerceRequestProcessor extends RequestProcessor |
| { |
| |
| |
| |
| public $goalManager = null; |
|
|
| public function __construct(GoalManager $goalManager) |
| { |
| $this->goalManager = $goalManager; |
| } |
|
|
| public function processRequestParams(VisitProperties $visitProperties, Request $request) |
| { |
| $isGoalAnOrder = $this->isRequestForAnOrder($request); |
| $request->setMetadata('Ecommerce', 'isGoalAnOrder', $isGoalAnOrder); |
|
|
| $isRequestEcommerce = $this->isRequestEcommerce($request); |
| $request->setMetadata('Ecommerce', 'isRequestEcommerce', $isRequestEcommerce); |
|
|
| if ($isRequestEcommerce) { |
| |
| $idGoal = GoalManager::IDGOAL_CART; |
| if ($isGoalAnOrder) { |
| $idGoal = GoalManager::IDGOAL_ORDER; |
| $request->setMetadata('Goals', 'visitIsConverted', true); |
| } |
|
|
| $request->setMetadata('Goals', 'goalsConverted', array(array('idgoal' => $idGoal))); |
|
|
| $request->setMetadata('Actions', 'action', null); |
| } |
|
|
| return false; |
| } |
|
|
| public function afterRequestProcessed(VisitProperties $visitProperties, Request $request) |
| { |
| $goalsConverted = $request->getMetadata('Goals', 'goalsConverted'); |
| if (!empty($goalsConverted)) { |
| $isThereExistingCartInVisit = $this->goalManager->detectIsThereExistingCartInVisit( |
| $visitProperties->getProperties() |
| ); |
| $request->setMetadata('Goals', 'isThereExistingCartInVisit', $isThereExistingCartInVisit); |
| } |
|
|
| return false; |
| } |
|
|
| private function isRequestForAnOrder(Request $request) |
| { |
| $orderId = $request->getParam('ec_id'); |
| return !empty($orderId); |
| } |
|
|
| private function isRequestEcommerce(Request $request) |
| { |
| $idGoal = $request->getParam('idgoal'); |
| return 0 == $idGoal; |
| } |
| } |
|
|