/** * Replace all mailing tokens in $str * * @param string $str * The string with tokens to be replaced. * @param object $mailing * The mailing BAO, or null for validation. * @param bool $html * Replace tokens with HTML or plain text. * * @param null $knownTokens * @param bool $escapeSmarty * * @return string * The processed string */ public static function &replaceMailingTokens($str, &$mailing, $html = FALSE, $knownTokens = NULL, $escapeSmarty = FALSE) { $key = 'mailing'; if (!$knownTokens || !isset($knownTokens[$key])) { return $str; } $str = preg_replace_callback(self::tokenRegex($key), function ($matches) use(&$mailing, $escapeSmarty) { return CRM_Utils_Token::getMailingTokenReplacement($matches[1], $mailing, $escapeSmarty); }, $str); return $str; }