/** * Assign UTM parameters to an individual URL * @since Version 3.10.0 * @param \Railpage\Newsletters\Newsletter $Newsletter * @param string $url * @return string */ public static function CreateUTMParametersForLink(Newsletter $Newsletter, $url) { if (is_array($url)) { $url = $url['url']; } $utm = ["utm_source=newsletter", "utm_medium=email", sprintf("utm_campaign=%s", ContentUtility::generateUrlSlug($Newsletter->subject))]; $parts = parse_url($url); if (!isset($parts['query'])) { $url .= "?" . implode("&", $utm); return $url; } $parts['query'] = array_merge(explode("&", $parts['query']), $utm); return ContentUtility::unparse_url($parts); }