/** * Register conversion * * @param $conversion_type * * @throws \Exception */ public function conversion($conversion_type) { $id = self::getVisitId(); // Get the visit info & record conversion type $visit = new Visits(); $visit->saveConversion($id, $conversion_type); $template = $visit->getData('template'); $variation = $visit->getData('variation'); // Load stats info about template/variation $this->load(array('template' => $template, 'variation' => $variation)); // Increment conversions counter $conversions = intval($this->getData('conversions')) + 1; $this->setData('conversions', $conversions); // Get current views $views = intval($this->getViews()); $this->save(); // Update conversion info, recalculating conversion rate & conversions counter (about conversion type) $conversions = new Conversions(); $conversions->updateConversion($template, $variation, $conversion_type, $views); }