+7 (812) 501-83-42 class Site_custom_phone extends Site{ public function show_include(){// === НАСТРОЙКИ ===$phone_default = '+7 (812) 501-83-42'; // стандартный номер$phone_nn = '+7 (831) 288-93-10'; // номер для Нижнего Новгорода$phone = $phone_default;// === Получаем IP ===$ip = $_SERVER['REMOTE_ADDR'] ?? null; if ($ip) {$key = 'phone_by_ip_' . md5($ip); // уникальная метка для кэша по IP// === Проверка кэша === if (! $result = $this->diafan->_cache->get($key, "site")){// === Запрос к DaData ===$ch = curl_init('https://suggestions.dadata.ru/suggestions/api/4_1/rs/iplocate/address'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json','Authorization: Token ' . '82acaa25f9d38a51b14eead273ca193a4d51c20b', // Ваш токен'X-Secret: ' . '88f2f5c119e2d79b4e53727bf410bc3fec235f49' // Ваш секрет], CURLOPT_POSTFIELDS => json_encode(['ip' => $ip]), CURLOPT_TIMEOUT => 2]);$response = curl_exec($ch); curl_close($ch); if ($response) {$data = json_decode($response, true);$city = mb_strtolower($data['location']['city'] ?? '');$region = mb_strtolower($data['location']['region'] ?? '');// Выбор телефона на основе региона if ( in_array($city, ['нижний новгород', 'нижний-новгород'], true)|| strpos($region, 'нижегород') !== false) {$phone = $phone_nn; // Номер для Нижнего Новгорода}}// Сохраняем номер в кэш$this->diafan->_cache->save($phone, $key, "site");} else {// Если номер был в кэше, используем его$phone = $result;}}// Передаем в шаблоны$this->result['phone'] = $phone;// Вызываем родительский метод parent::show_include();}}<
Напишите нам!




