Changeset 3482409
- Timestamp:
- 03/14/2026 08:33:12 AM (3 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
unipixel/tags/2.6.0/functions/unipixel-functions.php
r3482405 r3482409 62 62 preview| 63 63 validator 64 /ix'; return (bool) preg_match($patterns, $userAgent); } function unipixel_construct_client_side_send_log($platformId, $event_name, $params) { $log_payload = [ 'event_name' => $event_name, ]; $add_if_present = function (&$arr, $key, $value) { if (isset($value) && $value !== "" && $value !== [] && $value !== null) { $arr[$key] = $value; } }; $get_event_value = function ($params) { if (isset($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x76\x61\x6C\x75\x65"])) { return (float)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x76\x61\x6C\x75\x65"]; } if (isset($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"])) { return (float)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"]; } return 0.0; }; switch ((int)$platformId) { case 1: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x69\x64\x73", [(string)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"] ?? "")]); $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65", "\x70\x72\x6F\x64\x75\x63\x74"); $add_if_present($log_payload, "\x63\x6C\x69\x65\x6E\x74\x5F\x69\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x6C\x69\x65\x6E\x74\x49\x70"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x66\x62\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x66\x62\x70\x43\x6F\x6F\x6B\x69\x65"] ?? ""); $add_if_present($log_payload, "\x66\x62\x63", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x66\x62\x63\x43\x6F\x6F\x6B\x69\x65"] ?? ""); $add_if_present($log_payload, "\x65\x6D\x61\x69\x6C\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] ?? ""); $add_if_present($log_payload, "\x70\x68\x6F\x6E\x65\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] ?? ""); break; case 4: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x63\x6C\x69\x65\x6E\x74\x5F\x69\x64", $params["\x63\x6C\x69\x65\x6E\x74\x5F\x69\x64"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x67\x63\x6C\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x67\x63\x6C\x69\x64"] ?? ""); if (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"]) && is_array($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"])) { $items = []; foreach ($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"] as $li) { $items[] = [ 'item_id' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x49\x64"] ?? "", 'item_name' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'quantity' => (int)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]; } $add_if_present($log_payload, "\x69\x74\x65\x6D\x73", $items); } elseif (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"])) { $log_payload["\x69\x74\x65\x6D\x73"] = [[ 'item_id' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"], 'item_name' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'price' => (float)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]]; } break; case 3: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x69\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x6C\x69\x65\x6E\x74\x49\x70"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x74\x74\x63\x6C\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x74\x74\x63\x6C\x69\x64"] ?? ($params["\x74\x74\x63\x6C\x69\x64"] ?? "")); $add_if_present($log_payload, "\x74\x74\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x74\x74\x70"] ?? ($params["\x74\x74\x70"] ?? "")); $add_if_present($log_payload, "\x65\x6D\x61\x69\x6C\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] ?? ""); $add_if_present($log_payload, "\x70\x68\x6F\x6E\x65\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] ?? ""); if (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"]) && is_array($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"])) { $contents = []; foreach ($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"] as $li) { $contents[] = [ 'content_id' => (string)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x49\x64"] ?? ""), 'content_name' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'content_type' => "\x70\x72\x6F\x64\x75\x63\x74", 'quantity' => (int)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]; } $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x73", $contents); } elseif (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"])) { $log_payload["\x63\x6F\x6E\x74\x65\x6E\x74\x73"] = [[ 'content_id' => (string)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"], 'content_name' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'content_type' => "\x70\x72\x6F\x64\x75\x63\x74", 'quantity' => (int)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]]; } break; case 2: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); break; case 5: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); break; default: $log_payload = $params; } return $log_payload; } function unipixel_get_user_identifier_for_transient(): string { if (is_user_logged_in()) return (string) get_current_user_id(); $ip = $_SERVER["\x52\x45\x4D\x4F\x54\x45\x5F\x41\x44\x44\x52"] ?? ""; $ua = $_SERVER["\x48\x54\x54\x50\x5F\x55\x53\x45\x52\x5F\x41\x47\x45\x4E\x54"] ?? ""; return md5($ip . $ua); } function unipixel_normalize_phone_for_hashing($rawPhone, $billingCountry = '', $fallbackCountry = '') { if (empty($rawPhone)) { return ""; } $cleanPhone = preg_replace('/[^0-9]/', "", $rawPhone); if (preg_match('/^[1-9][0-9]{8,14}$/', $cleanPhone)) { return $cleanPhone; } $country = strtoupper($billingCountry ?: $fallbackCountry ?: "\x55\x53"); static $prefixes = [ 'US' => "\x31", 'CA' => "\x31", 'MX' => "\x35\x32", 'BR' => "\x35\x35", 'AR' => "\x35\x34", 'CL' => "\x35\x36", 'CO' => "\x35\x37", 'PE' => "\x35\x31", 'VE' => "\x35\x38", 'GB' => "\x34\x34", 'IE' => "\x33\x35\x33", 'FR' => "\x33\x33", 'DE' => "\x34\x39", 'IT' => "\x33\x39", 'ES' => "\x33\x34", 'PT' => "\x33\x35\x31", 'NL' => "\x33\x31", 'BE' => "\x33\x32", 'CH' => "\x34\x31", 'AT' => "\x34\x33", 'DK' => "\x34\x35", 'SE' => "\x34\x36", 'NO' => "\x34\x37", 'FI' => "\x33\x35\x38", 'PL' => "\x34\x38", 'CZ' => "\x34\x32\x30", 'SK' => "\x34\x32\x31", 'HU' => "\x33\x36", 'RO' => "\x34\x30", 'BG' => "\x33\x35\x39", 'GR' => "\x33\x30", 'TR' => "\x39\x30", 'RU' => "\x37", 'UA' => "\x33\x38\x30", 'BY' => "\x33\x37\x35", 'RS' => "\x33\x38\x31", 'HR' => "\x33\x38\x35", 'SI' => "\x33\x38\x36", 'BA' => "\x33\x38\x37", 'MK' => "\x33\x38\x39", 'MD' => "\x33\x37\x33", 'EE' => "\x33\x37\x32", 'LV' => "\x33\x37\x31", 'LT' => "\x33\x37\x30", 'IS' => "\x33\x35\x34", 'AU' => "\x36\x31", 'NZ' => "\x36\x34", 'SG' => "\x36\x35", 'MY' => "\x36\x30", 'TH' => "\x36\x36", 'VN' => "\x38\x34", 'PH' => "\x36\x33", 'ID' => "\x36\x32", 'KH' => "\x38\x35\x35", 'MM' => "\x39\x35", 'IN' => "\x39\x31", 'PK' => "\x39\x32", 'BD' => "\x38\x38\x30", 'LK' => "\x39\x34", 'NP' => "\x39\x37\x37", 'HK' => "\x38\x35\x32", 'TW' => "\x38\x38\x36", 'JP' => "\x38\x31", 'KR' => "\x38\x32", 'CN' => "\x38\x36", 'SA' => "\x39\x36\x36", 'AE' => "\x39\x37\x31", 'IL' => "\x39\x37\x32", 'IR' => "\x39\x38", 'JO' => "\x39\x36\x32", 'KW' => "\x39\x36\x35", 'QA' => "\x39\x37\x34", 'OM' => "\x39\x36\x38", 'BH' => "\x39\x37\x33", 'EG' => "\x32\x30", 'ZA' => "\x32\x37", 'NG' => "\x32\x33\x34", 'KE' => "\x32\x35\x34", 'TZ' => "\x32\x35\x35", 'UG' => "\x32\x35\x36", 'GH' => "\x32\x33\x33", 'DZ' => "\x32\x31\x33", 'MA' => "\x32\x31\x32", 'TN' => "\x32\x31\x36", 'RU' => "\x37", 'KZ' => "\x37", 'UZ' => "\x39\x39\x38", 'TM' => "\x39\x39\x33", 'KG' => "\x39\x39\x36", 'TJ' => "\x39\x39\x32", 'AZ' => "\x39\x39\x34", 'AM' => "\x33\x37\x34", 'GE' => "\x39\x39\x35", 'KR' => "\x38\x32", 'JP' => "\x38\x31", 'CN' => "\x38\x36", 'HK' => "\x38\x35\x32", 'MO' => "\x38\x35\x33", 'TW' => "\x38\x38\x36", 'ID' => "\x36\x32", 'MY' => "\x36\x30", 'SG' => "\x36\x35", 'TH' => "\x36\x36", 'VN' => "\x38\x34", 'PH' => "\x36\x33", 'KH' => "\x38\x35\x35", 'LA' => "\x38\x35\x36", 'AF' => "\x39\x33", 'AE' => "\x39\x37\x31", 'QA' => "\x39\x37\x34", 'OM' => "\x39\x36\x38", 'KW' => "\x39\x36\x35", 'BH' => "\x39\x37\x33", 'IQ' => "\x39\x36\x34", 'SY' => "\x39\x36\x33", 'YE' => "\x39\x36\x37", 'IR' => "\x39\x38", 'IL' => "\x39\x37\x32", 'JO' => "\x39\x36\x32", 'PS' => "\x39\x37\x30", 'LB' => "\x39\x36\x31", 'SA' => "\x39\x36\x36", 'ET' => "\x32\x35\x31", 'SD' => "\x32\x34\x39", 'DZ' => "\x32\x31\x33", 'MA' => "\x32\x31\x32", 'TN' => "\x32\x31\x36", 'LY' => "\x32\x31\x38", 'AO' => "\x32\x34\x34", 'NA' => "\x32\x36\x34", 'ZW' => "\x32\x36\x33", 'ZM' => "\x32\x36\x30", 'MW' => "\x32\x36\x35", 'MZ' => "\x32\x35\x38", 'BW' => "\x32\x36\x37", 'LS' => "\x32\x36\x36", 'SZ' => "\x32\x36\x38", 'RW' => "\x32\x35\x30", 'BI' => "\x32\x35\x37", 'UG' => "\x32\x35\x36", 'KE' => "\x32\x35\x34", 'NG' => "\x32\x33\x34", 'GH' => "\x32\x33\x33", 'SN' => "\x32\x32\x31", 'ML' => "\x32\x32\x33", 'BF' => "\x32\x32\x36", 'CI' => "\x32\x32\x35", 'NE' => "\x32\x32\x37", 'TD' => "\x32\x33\x35", 'CM' => "\x32\x33\x37", 'GA' => "\x32\x34\x31", 'CG' => "\x32\x34\x32", 'CD' => "\x32\x34\x33", 'PR' => "\x31", 'VI' => "\x31", 'JM' => "\x31", 'TT' => "\x31", 'BB' => "\x31", 'DO' => "\x31", 'HT' => "\x35\x30\x39", 'CU' => "\x35\x33", 'PG' => "\x36\x37\x35", 'FJ' => "\x36\x37\x39", 'WS' => "\x36\x38\x35", 'TO' => "\x36\x37\x36", 'SB' => "\x36\x37\x37", 'VU' => "\x36\x37\x38", 'NC' => "\x36\x38\x37", 'PF' => "\x36\x38\x39", 'LI' => "\x34\x32\x33", 'LU' => "\x33\x35\x32", 'MC' => "\x33\x37\x37", 'AD' => "\x33\x37\x36", 'SM' => "\x33\x37\x38", 'VA' => "\x33\x37\x39", 'GI' => "\x33\x35\x30", 'MT' => "\x33\x35\x36", 'CY' => "\x33\x35\x37", 'AL' => "\x33\x35\x35", 'ME' => "\x33\x38\x32", 'DEFAULT' => "\x31" ]; $prefix = $prefixes[$country] ?? $prefixes["\x44\x45\x46\x41\x55\x4C\x54"]; if (preg_match('/^0[0-9]{8,9}$/', $cleanPhone)) { $cleanPhone = $prefix . substr($cleanPhone, 1); } elseif (!preg_match('/^[1-9]/', $cleanPhone)) { $cleanPhone = ltrim($cleanPhone, "\x30"); $cleanPhone = $prefix . $cleanPhone; } return $cleanPhone; } function unipixel_get_advanced_matching_data($order = null) { $enabled = get_option('unipixel_advanced_matching_enabled', true); if (!$enabled) { return []; } $email = ''; $phone = ''; $fn = ''; $ln = ''; $ct = ''; $st = ''; $zp = ''; $country = ''; if ($order instanceof WC_Order) { $email = $order->get_billing_email(); $phone = $order->get_billing_phone(); $fn = $order->get_billing_first_name(); $ln = $order->get_billing_last_name(); $ct = $order->get_billing_city(); $st = $order->get_billing_state(); $zp = $order->get_billing_postcode(); $country = $order->get_billing_country(); } if (is_user_logged_in()) { $user = wp_get_current_user(); $uid = $user->ID; if (empty($email)) $email = $user->user_email; if (empty($phone)) $phone = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x70\x68\x6F\x6E\x65", true); if (empty($fn)) $fn = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x66\x69\x72\x73\x74\x5F\x6E\x61\x6D\x65", true) ?: $user->first_name; if (empty($ln)) $ln = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x6C\x61\x73\x74\x5F\x6E\x61\x6D\x65", true) ?: $user->last_name; if (empty($ct)) $ct = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x63\x69\x74\x79", true); if (empty($st)) $st = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x73\x74\x61\x74\x65", true); if (empty($zp)) $zp = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x70\x6F\x73\x74\x63\x6F\x64\x65", true); if (empty($country)) $country = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x63\x6F\x75\x6E\x74\x72\x79", true); } if (empty($email) && empty($phone) && empty($fn)) { return []; } $result = []; if (!empty($email)) { $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($email))); } if (!empty($phone)) { $storeBase = ''; if (function_exists("\x77\x63\x5F\x67\x65\x74\x5F\x62\x61\x73\x65\x5F\x6C\x6F\x63\x61\x74\x69\x6F\x6E")) { $storeBase = wc_get_base_location()["\x63\x6F\x75\x6E\x74\x72\x79"] ?? ""; } $normalized = unipixel_normalize_phone_for_hashing($phone, $country, $storeBase); if ($normalized) { $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] = hash("\x73\x68\x61\x32\x35\x36", $normalized); } } if (!empty($fn)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x46\x6E"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($fn))); if (!empty($ln)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x4C\x6E"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($ln))); if (!empty($ct)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x43\x74"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($ct))); if (!empty($st)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x53\x74"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($st))); if (!empty($zp)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x5A\x70"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($zp))); if (!empty($country)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x43\x6F\x75\x6E\x74\x72\x79"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($country))); return $result; }64 /ix'; return (bool) preg_match($patterns, $userAgent); } function unipixel_construct_client_side_send_log($platformId, $event_name, $params) { $log_payload = [ 'event_name' => $event_name, ]; $add_if_present = function (&$arr, $key, $value) { if (isset($value) && $value !== "" && $value !== [] && $value !== null) { $arr[$key] = $value; } }; $get_event_value = function ($params) { if (isset($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x76\x61\x6C\x75\x65"])) { return (float)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x76\x61\x6C\x75\x65"]; } if (isset($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"])) { return (float)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"]; } return 0.0; }; switch ((int)$platformId) { case 1: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x69\x64\x73", [(string)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"] ?? "")]); $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x5F\x74\x79\x70\x65", "\x70\x72\x6F\x64\x75\x63\x74"); $add_if_present($log_payload, "\x63\x6C\x69\x65\x6E\x74\x5F\x69\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x6C\x69\x65\x6E\x74\x49\x70"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x66\x62\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x66\x62\x70\x43\x6F\x6F\x6B\x69\x65"] ?? ""); $add_if_present($log_payload, "\x66\x62\x63", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x66\x62\x63\x43\x6F\x6F\x6B\x69\x65"] ?? ""); $add_if_present($log_payload, "\x65\x6D\x61\x69\x6C\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] ?? ""); $add_if_present($log_payload, "\x70\x68\x6F\x6E\x65\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] ?? ""); break; case 4: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x63\x6C\x69\x65\x6E\x74\x5F\x69\x64", $params["\x63\x6C\x69\x65\x6E\x74\x5F\x69\x64"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x67\x63\x6C\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x67\x63\x6C\x69\x64"] ?? ""); if (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"]) && is_array($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"])) { $items = []; foreach ($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"] as $li) { $items[] = [ 'item_id' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x49\x64"] ?? "", 'item_name' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'quantity' => (int)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]; } $add_if_present($log_payload, "\x69\x74\x65\x6D\x73", $items); } elseif (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"])) { $log_payload["\x69\x74\x65\x6D\x73"] = [[ 'item_id' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"], 'item_name' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'price' => (float)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]]; } break; case 3: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x69\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x6C\x69\x65\x6E\x74\x49\x70"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x74\x74\x63\x6C\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x74\x74\x63\x6C\x69\x64"] ?? ($params["\x74\x74\x63\x6C\x69\x64"] ?? "")); $add_if_present($log_payload, "\x74\x74\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x74\x74\x70"] ?? ($params["\x74\x74\x70"] ?? "")); $add_if_present($log_payload, "\x65\x6D\x61\x69\x6C\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] ?? ""); $add_if_present($log_payload, "\x70\x68\x6F\x6E\x65\x5F\x68\x61\x73\x68\x65\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] ?? ""); if (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"]) && is_array($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"])) { $contents = []; foreach ($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"] as $li) { $contents[] = [ 'content_id' => (string)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x49\x64"] ?? ""), 'content_name' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'content_type' => "\x70\x72\x6F\x64\x75\x63\x74", 'quantity' => (int)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]; } $add_if_present($log_payload, "\x63\x6F\x6E\x74\x65\x6E\x74\x73", $contents); } elseif (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"])) { $log_payload["\x63\x6F\x6E\x74\x65\x6E\x74\x73"] = [[ 'content_id' => (string)$params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"], 'content_name' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'content_type' => "\x70\x72\x6F\x64\x75\x63\x74", 'quantity' => (int)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]]; } break; case 2: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); break; case 5: $add_if_present($log_payload, "\x65\x76\x65\x6E\x74\x5F\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x65\x76\x65\x6E\x74\x49\x64"] ?? ""); $add_if_present($log_payload, "\x63\x75\x72\x72\x65\x6E\x63\x79", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x75\x72\x72\x65\x6E\x63\x79"] ?? ""); $add_if_present($log_payload, "\x76\x61\x6C\x75\x65", $get_event_value($params)); $add_if_present($log_payload, "\x63\x6C\x69\x65\x6E\x74\x5F\x69\x70", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x63\x6C\x69\x65\x6E\x74\x49\x70"] ?? ""); $add_if_present($log_payload, "\x75\x73\x65\x72\x5F\x61\x67\x65\x6E\x74", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x75\x73\x65\x72\x41\x67\x65\x6E\x74"] ?? ""); $add_if_present($log_payload, "\x6D\x73\x63\x6C\x6B\x69\x64", $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6D\x73\x63\x6C\x6B\x69\x64"] ?? ""); if (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"]) && is_array($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"])) { $items = []; foreach ($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x6C\x69\x6E\x65\x49\x74\x65\x6D\x73"] as $li) { $items[] = [ 'item_id' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x49\x64"] ?? "", 'item_name' => $li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'quantity' => (int)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x71\x75\x61\x6E\x74\x69\x74\x79"] ?? 1), 'price' => (float)($li["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]; } $add_if_present($log_payload, "\x69\x74\x65\x6D\x73", $items); } elseif (!empty($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"])) { $log_payload["\x69\x74\x65\x6D\x73"] = [[ 'item_id' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x6F\x64\x75\x63\x74\x49\x64"], 'item_name' => $params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x69\x74\x65\x6D\x4E\x61\x6D\x65"] ?? "", 'price' => (float)($params["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x70\x72\x69\x63\x65"] ?? 0), ]]; } break; default: $log_payload = $params; } return $log_payload; } function unipixel_get_user_identifier_for_transient(): string { if (is_user_logged_in()) return (string) get_current_user_id(); $ip = $_SERVER["\x52\x45\x4D\x4F\x54\x45\x5F\x41\x44\x44\x52"] ?? ""; $ua = $_SERVER["\x48\x54\x54\x50\x5F\x55\x53\x45\x52\x5F\x41\x47\x45\x4E\x54"] ?? ""; return md5($ip . $ua); } function unipixel_normalize_phone_for_hashing($rawPhone, $billingCountry = '', $fallbackCountry = '') { if (empty($rawPhone)) { return ""; } $cleanPhone = preg_replace('/[^0-9]/', "", $rawPhone); if (preg_match('/^[1-9][0-9]{8,14}$/', $cleanPhone)) { return $cleanPhone; } $country = strtoupper($billingCountry ?: $fallbackCountry ?: "\x55\x53"); static $prefixes = [ 'US' => "\x31", 'CA' => "\x31", 'MX' => "\x35\x32", 'BR' => "\x35\x35", 'AR' => "\x35\x34", 'CL' => "\x35\x36", 'CO' => "\x35\x37", 'PE' => "\x35\x31", 'VE' => "\x35\x38", 'GB' => "\x34\x34", 'IE' => "\x33\x35\x33", 'FR' => "\x33\x33", 'DE' => "\x34\x39", 'IT' => "\x33\x39", 'ES' => "\x33\x34", 'PT' => "\x33\x35\x31", 'NL' => "\x33\x31", 'BE' => "\x33\x32", 'CH' => "\x34\x31", 'AT' => "\x34\x33", 'DK' => "\x34\x35", 'SE' => "\x34\x36", 'NO' => "\x34\x37", 'FI' => "\x33\x35\x38", 'PL' => "\x34\x38", 'CZ' => "\x34\x32\x30", 'SK' => "\x34\x32\x31", 'HU' => "\x33\x36", 'RO' => "\x34\x30", 'BG' => "\x33\x35\x39", 'GR' => "\x33\x30", 'TR' => "\x39\x30", 'RU' => "\x37", 'UA' => "\x33\x38\x30", 'BY' => "\x33\x37\x35", 'RS' => "\x33\x38\x31", 'HR' => "\x33\x38\x35", 'SI' => "\x33\x38\x36", 'BA' => "\x33\x38\x37", 'MK' => "\x33\x38\x39", 'MD' => "\x33\x37\x33", 'EE' => "\x33\x37\x32", 'LV' => "\x33\x37\x31", 'LT' => "\x33\x37\x30", 'IS' => "\x33\x35\x34", 'AU' => "\x36\x31", 'NZ' => "\x36\x34", 'SG' => "\x36\x35", 'MY' => "\x36\x30", 'TH' => "\x36\x36", 'VN' => "\x38\x34", 'PH' => "\x36\x33", 'ID' => "\x36\x32", 'KH' => "\x38\x35\x35", 'MM' => "\x39\x35", 'IN' => "\x39\x31", 'PK' => "\x39\x32", 'BD' => "\x38\x38\x30", 'LK' => "\x39\x34", 'NP' => "\x39\x37\x37", 'HK' => "\x38\x35\x32", 'TW' => "\x38\x38\x36", 'JP' => "\x38\x31", 'KR' => "\x38\x32", 'CN' => "\x38\x36", 'SA' => "\x39\x36\x36", 'AE' => "\x39\x37\x31", 'IL' => "\x39\x37\x32", 'IR' => "\x39\x38", 'JO' => "\x39\x36\x32", 'KW' => "\x39\x36\x35", 'QA' => "\x39\x37\x34", 'OM' => "\x39\x36\x38", 'BH' => "\x39\x37\x33", 'EG' => "\x32\x30", 'ZA' => "\x32\x37", 'NG' => "\x32\x33\x34", 'KE' => "\x32\x35\x34", 'TZ' => "\x32\x35\x35", 'UG' => "\x32\x35\x36", 'GH' => "\x32\x33\x33", 'DZ' => "\x32\x31\x33", 'MA' => "\x32\x31\x32", 'TN' => "\x32\x31\x36", 'RU' => "\x37", 'KZ' => "\x37", 'UZ' => "\x39\x39\x38", 'TM' => "\x39\x39\x33", 'KG' => "\x39\x39\x36", 'TJ' => "\x39\x39\x32", 'AZ' => "\x39\x39\x34", 'AM' => "\x33\x37\x34", 'GE' => "\x39\x39\x35", 'KR' => "\x38\x32", 'JP' => "\x38\x31", 'CN' => "\x38\x36", 'HK' => "\x38\x35\x32", 'MO' => "\x38\x35\x33", 'TW' => "\x38\x38\x36", 'ID' => "\x36\x32", 'MY' => "\x36\x30", 'SG' => "\x36\x35", 'TH' => "\x36\x36", 'VN' => "\x38\x34", 'PH' => "\x36\x33", 'KH' => "\x38\x35\x35", 'LA' => "\x38\x35\x36", 'AF' => "\x39\x33", 'AE' => "\x39\x37\x31", 'QA' => "\x39\x37\x34", 'OM' => "\x39\x36\x38", 'KW' => "\x39\x36\x35", 'BH' => "\x39\x37\x33", 'IQ' => "\x39\x36\x34", 'SY' => "\x39\x36\x33", 'YE' => "\x39\x36\x37", 'IR' => "\x39\x38", 'IL' => "\x39\x37\x32", 'JO' => "\x39\x36\x32", 'PS' => "\x39\x37\x30", 'LB' => "\x39\x36\x31", 'SA' => "\x39\x36\x36", 'ET' => "\x32\x35\x31", 'SD' => "\x32\x34\x39", 'DZ' => "\x32\x31\x33", 'MA' => "\x32\x31\x32", 'TN' => "\x32\x31\x36", 'LY' => "\x32\x31\x38", 'AO' => "\x32\x34\x34", 'NA' => "\x32\x36\x34", 'ZW' => "\x32\x36\x33", 'ZM' => "\x32\x36\x30", 'MW' => "\x32\x36\x35", 'MZ' => "\x32\x35\x38", 'BW' => "\x32\x36\x37", 'LS' => "\x32\x36\x36", 'SZ' => "\x32\x36\x38", 'RW' => "\x32\x35\x30", 'BI' => "\x32\x35\x37", 'UG' => "\x32\x35\x36", 'KE' => "\x32\x35\x34", 'NG' => "\x32\x33\x34", 'GH' => "\x32\x33\x33", 'SN' => "\x32\x32\x31", 'ML' => "\x32\x32\x33", 'BF' => "\x32\x32\x36", 'CI' => "\x32\x32\x35", 'NE' => "\x32\x32\x37", 'TD' => "\x32\x33\x35", 'CM' => "\x32\x33\x37", 'GA' => "\x32\x34\x31", 'CG' => "\x32\x34\x32", 'CD' => "\x32\x34\x33", 'PR' => "\x31", 'VI' => "\x31", 'JM' => "\x31", 'TT' => "\x31", 'BB' => "\x31", 'DO' => "\x31", 'HT' => "\x35\x30\x39", 'CU' => "\x35\x33", 'PG' => "\x36\x37\x35", 'FJ' => "\x36\x37\x39", 'WS' => "\x36\x38\x35", 'TO' => "\x36\x37\x36", 'SB' => "\x36\x37\x37", 'VU' => "\x36\x37\x38", 'NC' => "\x36\x38\x37", 'PF' => "\x36\x38\x39", 'LI' => "\x34\x32\x33", 'LU' => "\x33\x35\x32", 'MC' => "\x33\x37\x37", 'AD' => "\x33\x37\x36", 'SM' => "\x33\x37\x38", 'VA' => "\x33\x37\x39", 'GI' => "\x33\x35\x30", 'MT' => "\x33\x35\x36", 'CY' => "\x33\x35\x37", 'AL' => "\x33\x35\x35", 'ME' => "\x33\x38\x32", 'DEFAULT' => "\x31" ]; $prefix = $prefixes[$country] ?? $prefixes["\x44\x45\x46\x41\x55\x4C\x54"]; if (preg_match('/^0[0-9]{8,9}$/', $cleanPhone)) { $cleanPhone = $prefix . substr($cleanPhone, 1); } elseif (!preg_match('/^[1-9]/', $cleanPhone)) { $cleanPhone = ltrim($cleanPhone, "\x30"); $cleanPhone = $prefix . $cleanPhone; } return $cleanPhone; } function unipixel_get_advanced_matching_data($order = null) { $enabled = get_option('unipixel_advanced_matching_enabled', true); if (!$enabled) { return []; } $email = ''; $phone = ''; $fn = ''; $ln = ''; $ct = ''; $st = ''; $zp = ''; $country = ''; if ($order instanceof WC_Order) { $email = $order->get_billing_email(); $phone = $order->get_billing_phone(); $fn = $order->get_billing_first_name(); $ln = $order->get_billing_last_name(); $ct = $order->get_billing_city(); $st = $order->get_billing_state(); $zp = $order->get_billing_postcode(); $country = $order->get_billing_country(); } if (is_user_logged_in()) { $user = wp_get_current_user(); $uid = $user->ID; if (empty($email)) $email = $user->user_email; if (empty($phone)) $phone = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x70\x68\x6F\x6E\x65", true); if (empty($fn)) $fn = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x66\x69\x72\x73\x74\x5F\x6E\x61\x6D\x65", true) ?: $user->first_name; if (empty($ln)) $ln = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x6C\x61\x73\x74\x5F\x6E\x61\x6D\x65", true) ?: $user->last_name; if (empty($ct)) $ct = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x63\x69\x74\x79", true); if (empty($st)) $st = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x73\x74\x61\x74\x65", true); if (empty($zp)) $zp = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x70\x6F\x73\x74\x63\x6F\x64\x65", true); if (empty($country)) $country = get_user_meta($uid, "\x62\x69\x6C\x6C\x69\x6E\x67\x5F\x63\x6F\x75\x6E\x74\x72\x79", true); } if (empty($email) && empty($phone) && empty($fn)) { return []; } $result = []; if (!empty($email)) { $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x45\x6D\x61\x69\x6C"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($email))); } if (!empty($phone)) { $storeBase = ''; if (function_exists("\x77\x63\x5F\x67\x65\x74\x5F\x62\x61\x73\x65\x5F\x6C\x6F\x63\x61\x74\x69\x6F\x6E")) { $storeBase = wc_get_base_location()["\x63\x6F\x75\x6E\x74\x72\x79"] ?? ""; } $normalized = unipixel_normalize_phone_for_hashing($phone, $country, $storeBase); if ($normalized) { $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x50\x68\x6F\x6E\x65"] = hash("\x73\x68\x61\x32\x35\x36", $normalized); } } if (!empty($fn)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x46\x6E"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($fn))); if (!empty($ln)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x4C\x6E"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($ln))); if (!empty($ct)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x43\x74"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($ct))); if (!empty($st)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x53\x74"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($st))); if (!empty($zp)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x5A\x70"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($zp))); if (!empty($country)) $result["\x70\x6C\x63\x65\x68\x6C\x64\x72\x5F\x68\x61\x73\x68\x65\x64\x43\x6F\x75\x6E\x74\x72\x79"] = hash("\x73\x68\x61\x32\x35\x36", strtolower(trim($country))); return $result; }
Note: See TracChangeset
for help on using the changeset viewer.