* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PsxMarketingWithGoogle\Conversion; use Brick\PhoneNumber\PhoneNumber; use Brick\PhoneNumber\PhoneNumberFormat; use Exception; class Normalizer { /** * @param string|null $data * @param string|null $additionalNormalization * * @return string|null */ public static function normalize($data, $additionalNormalization = null) { if (empty($data)) { return null; } $data = trim(strtolower($data)); if ($additionalNormalization === 'phone') { return self::normalizePhoneNumber($data); } return $data; } public static function normalizePhoneNumber(string $data): string { $dataWithPlusAndNumbers = preg_replace('/([-\s\(\)])/', '', $data); return preg_replace('/^(0{2})/', '+', $dataWithPlusAndNumbers); } /** * @param string|null $data * @param string $countryCode * * @return string|null */ public static function normalizeInE164($data, $countryCode) { if (empty($data)) { return null; } try { return PhoneNumber::parse($data, $countryCode)->format(PhoneNumberFormat::E164); } catch (Exception $e) { return $data; } } }