Piwik\Tracker\Request::getCustomVariables PHP Method

getCustomVariables() public method

Deprecation: since Piwik 2.10.0. Use Request::getCustomVariablesInPageScope() or Request::getCustomVariablesInVisitScope() instead. When we "remove" this method we will only set visibility to "private" and pass $parameter = _cvar|cvar as an argument instead of $scope
public getCustomVariables ( $scope )
    public function getCustomVariables($scope)
    {
        if ($scope == 'visit') {
            $parameter = '_cvar';
        } else {
            $parameter = 'cvar';
        }
        $cvar = Common::getRequestVar($parameter, '', 'json', $this->params);
        $customVar = Common::unsanitizeInputValues($cvar);
        if (!is_array($customVar)) {
            return array();
        }
        $customVariables = array();
        $maxCustomVars = CustomVariables::getNumUsableCustomVariables();
        foreach ($customVar as $id => $keyValue) {
            $id = (int) $id;
            if ($id < 1 || $id > $maxCustomVars || count($keyValue) != 2 || !is_string($keyValue[0]) && !is_numeric($keyValue[0])) {
                Common::printDebug("Invalid custom variables detected (id={$id})");
                continue;
            }
            if (strlen($keyValue[1]) == 0) {
                $keyValue[1] = "";
            }
            // We keep in the URL when Custom Variable have empty names
            // and values, as it means they can be deleted server side
            $customVariables['custom_var_k' . $id] = self::truncateCustomVariable($keyValue[0]);
            $customVariables['custom_var_v' . $id] = self::truncateCustomVariable($keyValue[1]);
        }
        return $customVariables;
    }

Usage Example

 public function processRequestParams(VisitProperties $visitProperties, Request $request)
 {
     // TODO: re-add optimization where if custom variables exist in request, don't bother selecting them in Visitor
     $visitorCustomVariables = $request->getCustomVariables($scope = 'visit');
     if (!empty($visitorCustomVariables)) {
         Common::printDebug("Visit level Custom Variables: ");
         Common::printDebug($visitorCustomVariables);
     }
     $request->setMetadata('CustomVariables', 'visitCustomVariables', $visitorCustomVariables);
 }
All Usage Examples Of Piwik\Tracker\Request::getCustomVariables