我们提供从需求分析到匹配房源的全程中文服务,凭借13年本地经验,为您在沙特置业保驾护航。
我们深谙沙特房地产市场动态,拥有丰富的行业资源。
全中文沟通,我们更懂您的居住习惯与商业选址偏好。
从筛选房源到协助签约,我们是您在沙特最可靠的置业伙伴。



<!-- =========================
Tharwa Gulf | Chinese Lead Form (Scoped)
Paste into WordPress Custom HTML block
========================= -->
<style>
/* =========================================
TG FORM (Scoped CSS)
========================================= */
#tg-form-scope{
/* المتغيرات الأساسية للهوية البصرية */
--primary: #293B7E;
--primary-hover: #1f2d66;
--accent: #14ADA8;
--accent-hover: #0d8a86;
--bg-card: #fff;
--border: #e2e8f0;
--text-main: #000;
--text-muted: #64748b;
--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);
--radius: 12px;
}
#tg-form-scope{
background-color: #dff4f27a;
padding-top: 20px;
padding-bottom: 20px;
padding-left: 0;
padding-right: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
margin: 0;
direction: ltr; /* اللغة الصينية تستخدم اليسار إلى اليمين */
}
#tg-form-scope .container{
width: 95%;
max-width: 550px;
margin: 0 auto;
}
#tg-form-scope .form-card{
background: var(--bg-card);
padding: 30px;
border-radius: var(--radius);
box-shadow: var(--shadow-lg);
border: 1px solid var(--border);
margin-top: 20px;
}
#tg-form-scope .form-header{
text-align: center;
margin-bottom: 25px;
}
#tg-form-scope .form-header h3{
color: var(--primary);
font-size: 1.5rem;
margin: 0;
}
#tg-form-scope .form-group{
margin-bottom: 18px;
}
#tg-form-scope .form-group label{
display: block;
font-size: 0.9rem;
font-weight: 700;
margin-bottom: 8px;
color: var(--text-main);
}
#tg-form-scope input[type="text"],
#tg-form-scope input[type="number"],
#tg-form-scope input[type="tel"],
#tg-form-scope select,
#tg-form-scope textarea{
width: 100%;
padding: 12px;
border: 1px solid var(--border);
border-radius: 8px;
font-size: 1rem;
background: #fcfcfc;
box-sizing: border-box;
transition: 0.2s;
}
#tg-form-scope input:focus,
#tg-form-scope select:focus,
#tg-form-scope textarea:focus{
border-color: var(--accent);
outline: none;
box-shadow: 0 0 0 3px rgba(20, 173, 168, 0.15);
}
/* الأكورديون */
#tg-form-scope .tg-accordion{
border: 2px solid var(--accent);
border-radius: 8px;
margin: 20px 0;
overflow: hidden;
}
#tg-form-scope .tg-accordion-header{
background: var(--accent);
color: white;
padding: 14px 18px;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 800;
user-select: none;
}
#tg-form-scope .tg-accordion-content{
padding: 20px;
background: #fff;
display: none;
}
#tg-form-scope .tg-accordion.active .tg-accordion-content{
display: block;
}
#tg-form-scope .tg-accordion-header .arrow{
transition: transform 0.3s;
font-size: 12px;
}
#tg-form-scope .tg-accordion.active .arrow{
transform: rotate(180deg);
}
/* شبكات العرض */
#tg-form-scope .detailed-grid{
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 15px;
}
#tg-form-scope .checkbox-container{
display: flex;
flex-wrap: wrap;
gap: 15px;
margin-top: 10px;
padding: 12px;
background: #f8fafc;
border-radius: 8px;
}
#tg-form-scope .checkbox-item{
display: flex;
align-items: center;
gap: 8px;
font-size: 0.9rem;
font-weight: 600;
cursor: pointer;
min-width: 120px;
}
#tg-form-scope .checkbox-item input{
width: 18px;
height: 18px;
cursor: pointer;
}
/* أزرار التبديل والراديو */
#tg-form-scope .toggle-container{
display: flex;
background: #f1f5f9;
padding: 4px;
border-radius: 8px;
gap: 4px;
}
#tg-form-scope .toggle-option{
flex: 1;
text-align: center;
padding: 10px;
font-size: 0.95rem;
cursor: pointer;
border-radius: 6px;
color: var(--text-muted);
transition: 0.2s;
}
#tg-form-scope input[type="radio"]{ display: none; }
#tg-form-scope input:checked + .toggle-option{
background: #fff;
color: var(--primary);
font-weight: 800;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}
#tg-form-scope .cat-group{ display: flex; gap: 25px; padding: 5px 0; }
#tg-form-scope .cat-option{ display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 600; }
#tg-form-scope .cat-option::before{
content: '';
width: 18px;
height: 18px;
border: 2px solid var(--border);
border-radius: 50%;
display: inline-block;
box-sizing: border-box;
}
#tg-form-scope input:checked + .cat-option{ color: var(--primary); }
#tg-form-scope input:checked + .cat-option::before{
border-color: var(--primary);
background: var(--primary);
box-shadow: inset 0 0 0 3px #fff;
}
/* زر الإرسال */
#tg-form-scope button[type="submit"]{
width: 100%;
background: var(--accent);
color: #fff;
padding: 16px;
border: none;
border-radius: 8px;
font-size: 1.1rem;
font-weight: 800;
cursor: pointer;
margin-top: 20px;
transition: 0.3s;
}
#tg-form-scope button[type="submit"]:hover{
background: var(--accent-hover);
transform: translateY(-1px);
}
/* رسالة النجاح */
#tg-form-scope .success-message{
display: none;
text-align: center;
padding: 20px 0;
animation: fadeIn 0.6s ease;
}
@keyframes fadeIn{
from { opacity: 0; transform: translateY(15px); }
to { opacity: 1; transform: translateY(0); }
}
#tg-form-scope .success-icon-wrap{
width: 90px;
height: 90px;
background: #dcfce7;
color: #166534;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 45px;
margin: 0 auto 25px;
}
#tg-form-scope .tg-success-logo{
max-height: 80px;
margin: 15px 0 10px 0;
display: inline-block;
}
#tg-form-scope .success-brand-title{
font-weight: 800;
color: var(--primary);
margin: 5px 0;
font-size: 1.3rem;
}
#tg-form-scope .success-brand-sub{
font-size: 0.95rem;
color: var(--text-muted);
margin-top: 5px;
font-weight: 600;
}
@media (max-width: 480px){
#tg-form-scope .detailed-grid{ grid-template-columns: 1fr; }
}
</style>
<div id="tg-form-scope" class="tg-scope">
<div class="container">
<div class="form-card">
<!-- نموذج الطلب (صيني فقط) -->
<form id="tgLeadForm">
<div class="form-header">
<h3>提交您的找房需求</h3>
</div>
<!-- Tracking (Expo Mode) - تقدر تغيّر القيم -->
<input type="hidden" name="lang" value="zh">
<input type="hidden" name="source" value="china_site">
<input type="hidden" name="campaign" value="china_expo_2025">
<input type="hidden" name="offer_wallet_500" value="1">
<!-- Honeypot anti-spam -->
<div style="display:none;">
<label>company</label>
<input type="text" name="company">
</div>
<div class="detailed-grid">
<div class="form-group">
<label>需求类型</label>
<div class="toggle-container">
<input type="radio" name="request_type" id="rent" value="Rent" checked>
<label for="rent" class="toggle-option">租赁</label>
<input type="radio" name="request_type" id="buy" value="Buy">
<label for="buy" class="toggle-option">购买</label>
</div>
</div>
<div class="form-group">
<label>房产分类</label>
<div class="cat-group">
<label>
<input type="radio" name="property_category" value="Residential" checked onchange="updateTgTypes()">
<span class="cat-option">住宅</span>
</label>
<label>
<input type="radio" name="property_category" value="Commercial" onchange="updateTgTypes()">
<span class="cat-option">商业</span>
</label>
</div>
</div>
</div>
<div class="form-group">
<label>具体类型</label>
<select id="tg_prop_type" name="property_type" onchange="renderDetailedFields()"></select>
</div>
<!-- الأكورديون للتفاصيل -->
<div class="tg-accordion" id="tgAccordion">
<div class="tg-accordion-header" onclick="this.parentElement.classList.toggle('active')">
<span>房产详细信息</span>
<span class="arrow">▼</span>
</div>
<div class="tg-accordion-content" id="tgDynamicFields">
<!-- يتم التوليد هنا بواسطة JavaScript -->
</div>
</div>
<div class="detailed-grid">
<div class="form-group">
<label>沙特城市</label>
<input type="text" name="city" required placeholder="所在城市">
</div>
<div class="form-group">
<label>近似预算 (SAR)</label>
<input type="number" name="budget_sar" placeholder="预算范围">
</div>
</div>
<div class="form-group">
<label>姓名</label>
<input type="text" name="client_name" required placeholder="请输入您的姓名">
</div>
<div class="form-group">
<label>WhatsApp 号码</label>
<input type="tel" name="whatsapp" required placeholder="+966..." style="direction:ltr;">
</div>
<button type="submit" id="tgSubmitBtn">提交需求</button>
</form>
<!-- رسالة النجاح -->
<div id="tg-success-msg" class="success-message">
<div class="success-icon-wrap">🌟</div>
<h2 style="color: var(--primary); margin-bottom: 15px;">谢谢您 🌟</h2>
<p style="font-weight: bold; margin-bottom: 15px; font-size: 1.1rem;">您的房产需求已成功提交。</p>
<p style="color: var(--text-muted); line-height: 1.6; margin-bottom: 15px;">
我们的专业团队将审核您的需求,并为您匹配沙特市场中最合适的房产选项。
</p>
<p style="font-weight: bold; color: var(--accent); margin-bottom: 20px;">🔹 我们将很快与您联系</p>
<p style="font-size: 0.95rem; color: var(--text-muted); margin-bottom: 25px;">
感谢您的信任,我们期待在您的置业之旅中为您提供清晰、放心的陪伴。
</p>
<hr style="border: 0; border-top: 1px solid var(--border); margin-bottom: 15px;">
<div>
<img
src="https://china.wealthgulf.sa/wp-content/uploads/2025/12/%D8%B4%D8%B9%D8%A7%D8%B1-%D8%AB%D8%B1%D9%88%D8%A9-%D8%A7%D9%84%D8%AE%D9%84%D9%8A%D8%AC%D9%8A%D8%A9-.svg"
alt="Wealth Gulf Logo"
class="tg-success-logo"
>
</div>
<p class="success-brand-title">Wealth Gulf|沙特海湾财富地</p>
<p class="success-brand-sub">沙特房地产华人第一参考平台</p>
</div>
</div>
</div>
</div>
<script>
/* =========================================
TG FORM (Scoped JS) - FIXED FOR DB
========================================= */
(function(){
// Prevent duplicate init (if WP loads block twice)
if (window.__tgLeadFormInit) return;
window.__tgLeadFormInit = true;
/* =========================
1) Supabase Config (عدلها)
========================= */
const SUPABASE_URL = "https://goxoykoirandwqsnyuxz.supabase.co";
const SUPABASE_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdveG95a29pcmFuZHdxc255dXh6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjY1NDUzNTAsImV4cCI6MjA4MjEyMTM1MH0.nAG9HDXC-antx8gw4H1ZKmww025s0tj5iIg0mp9iEoQ";
const TABLE_NAME = "china_client_requests"; // اسم جدول الطلبات في Supabase
const labels = {
rooms: "房间数量", living: "客厅数量", bath: "卫生间数量", area: "近似面积 (m²)",
floor: "楼层", elevator: "电梯", kitchen: "厨房", k_status: "厨房状态",
ac: "空调", family: "家庭", bachelor: "单身", bed: "卧室数量", floors_cnt: "楼层数",
annex: "外部 ملحق", yard: "庭院/花园", pool: "游泳池", maid: "女佣房", driver: "司机房",
garage: "停车位/车库", entrance: "独立入口", roof: "顶层/露台", units: "单位数量",
facade: "朝向/街道", furn: "带家具", bills: "含水电费", open: "开放空间",
activity: "经营活动", facade_st: "主街门面", facade_w: "门面宽度 (m)",
doors: "门/卷闸门数量", corner: "转角", mezzanine: "有阁楼/夹层", height: "天花板高度",
location: "位置 (主街/转角...)", use: "用途", extra: "其他详细备注"
};
const typeData = {
Residential: ["公寓 (Apartment)", "别墅 (Villa)", "独层 (Floor)", "整栋 (Building)", "单间 (Studio)"],
Commercial: ["办公室 (Office)", "商铺 (Shop)", "仓库 (Warehouse)", "商业用地 (Land)", "工业用地 (Industrial)"]
};
// Helpers (scoped selectors)
const scope = document.getElementById('tg-form-scope');
if(!scope) return;
const $ = (sel) => scope.querySelector(sel);
// Expose functions used in inline attributes
window.updateTgTypes = function(){
const checked = scope.querySelector('input[name="property_category"]:checked');
const cat = checked ? checked.value : 'Residential';
const select = $('#tg_prop_type');
select.innerHTML = '';
typeData[cat].forEach((t) => {
const opt = document.createElement('option');
opt.value = t;
opt.innerText = t;
select.appendChild(opt);
});
window.renderDetailedFields();
};
window.renderDetailedFields = function(){
const type = $('#tg_prop_type').value;
const box = $('#tgDynamicFields');
const L = labels;
let h = '';
// IMPORTANT: Inputs now have name="" so they can be saved in DB
const input = (name, lbl, itype="number") =>
`<div class="form-group"><label>${lbl}</label><input name="${name}" type="${itype}" placeholder="${lbl}"></div>`;
const select = (name, lbl, opts) =>
`<div class="form-group"><label>${lbl}</label><select name="${name}"><option value="" selected disabled>${lbl}</option>${opts.map(o=>`<option value="${o}">${o}</option>`).join('')}</select></div>`;
const check = (name, lbl, id="") =>
`<label class="checkbox-item"><input name="${name}" type="checkbox" value="1" id="${id}"> ${lbl}</label>`;
// Residential
if (type.includes("公寓")) {
h += `<div class="detailed-grid">
${input("rooms", L.rooms)}
${input("living_rooms", L.living)}
${input("bathrooms", L.bath)}
${input("area_m2", L.area)}
</div>`;
h += select("floor_pref", L.floor, ['Ground','Middle','Upper','No matter']);
h += `<div class="checkbox-container">
${check("has_elevator", L.elevator)}
${check("has_kitchen", L.kitchen)}
${check("has_ac", L.ac)}
${check("is_family", L.family)}
${check("is_bachelor", L.bachelor)}
</div>`;
h += select("kitchen_status", L.k_status, ['Ready/Installed','Not Installed']);
}
else if (type.includes("别墅")) {
h += `<div class="detailed-grid">
${input("bedrooms", L.bed)}
${input("bathrooms", L.bath)}
${input("living_rooms", L.living)}
${input("area_m2", L.area)}
</div>`;
h += select("floors_count", L.floors_cnt, ['1 Floor','2 Floors','3 Floors']);
h += `<div class="checkbox-container">
${check("has_annex", L.annex)}
${check("has_yard", L.yard)}
${check("has_pool", L.pool)}
${check("has_maid_room", L.maid)}
${check("has_driver_room", L.driver)}
${check("has_garage", L.garage)}
</div>`;
}
else if (type.includes("独层")) {
h += select("floor_pref", L.floor, ['Ground','Upper']);
h += `<div class="checkbox-container">
${check("has_private_entrance", L.entrance)}
${check("has_garage", L.garage)}
${check("has_elevator", L.elevator, "el_chk")}
${check("has_yard", L.yard, "yd_chk")}
${check("has_roof", L.roof, "rf_chk")}
</div>`;
h += `<div class="detailed-grid">
${input("bedrooms", L.bed)}
${input("bathrooms", L.bath)}
${input("living_rooms", L.living)}
</div>`;
}
else if (type.includes("整栋")) {
h += `<div class="detailed-grid">
${input("units_count", L.units)}
${input("area_m2", L.area)}
${input("floors_count", L.floors_cnt)}
</div>`;
h += input("facade", L.facade, "text");
h += `<div class="checkbox-container">${check("has_elevator", L.elevator)}</div>`;
}
else if (type.includes("单间")) {
h += `<div class="detailed-grid">${input("area_m2", L.area)}</div>`;
h += select("floor_pref", L.floor, ['Ground','Middle','Upper']);
h += `<div class="checkbox-container">
${check("is_furnished", L.furn)}
${check("has_kitchen", L.kitchen)}
${check("bathrooms", L.bath)}
${check("has_elevator", L.elevator)}
${check("includes_bills", L.bills)}
${check("has_garage", L.garage)}
</div>`;
}
// Commercial
else if (type.includes("办公室")) {
h += `<div class="detailed-grid">
${input("area_m2", L.area)}
${input("rooms", L.rooms)}
${input("bathrooms", L.bath)}
${input("parking_spaces", L.garage)}
</div>`;
h += select("floor_pref", L.floor, ['Ground','Floors','Tower']);
h += input("activity", L.activity, "text");
h += `<div class="checkbox-container">${check("has_open_space", L.open)}</div>`;
}
else if (type.includes("商铺")) {
h += `<div class="detailed-grid">
${input("area_m2", L.area)}
${input("facade_width_m", L.facade_w)}
${input("doors_count", L.doors)}
</div>`;
h += input("activity", L.activity, "text");
h += `<div class="checkbox-container">
${check("has_main_street_facade", L.facade_st)}
${check("is_corner", L.corner)}
${check("has_mezzanine", L.mezzanine)}
</div>`;
}
else if (type.includes("仓库")) {
h += `<div class="detailed-grid">
${input("area_m2", L.area)}
${input("ceiling_height_m", L.height)}
</div>`;
}
else if (type.includes("商业用地")) {
h += `<div class="detailed-grid">${input("area_m2", L.area)}</div>`;
h += select("land_location", L.location, ['Main St','Corner','2 Streets']);
h += input("land_use", L.use, "text");
}
else if (type.includes("工业用地")) {
h += `<div class="detailed-grid">${input("area_m2", L.area)}</div>`;
h += input("activity", L.activity, "text");
}
h += `<div class="form-group" style="margin-top:15px;">
<label>${L.extra}</label>
<textarea name="extra_notes" rows="3" placeholder="请填写其他需求..."></textarea>
</div>`;
box.innerHTML = h;
// Conditional logic for 独层
if (type.includes("独层")) {
const sel = box.querySelector('select[name="floor_pref"]');
const updateDep = () => {
const v = sel.value;
const isGround = (v === 'Ground');
const isUpper = (v === 'Upper');
const yd = document.getElementById('yd_chk');
const rf = document.getElementById('rf_chk');
const el = document.getElementById('el_chk');
if(yd) yd.parentElement.style.display = isGround ? 'flex' : 'none';
if(rf) rf.parentElement.style.display = isUpper ? 'flex' : 'none';
if(el) el.parentElement.style.display = !isGround ? 'flex' : 'none';
};
sel.addEventListener('change', updateDep);
updateDep();
}
};
// Init types
window.updateTgTypes();
/* =========================
2) Submit → Supabase REST
========================= */
const form = $('#tgLeadForm');
const success = $('#tg-success-msg');
const submitBtn = $('#tgSubmitBtn');
const booleanFields = [
"has_elevator","has_kitchen","has_ac","is_family","is_bachelor","is_furnished","includes_bills",
"has_garage","has_annex","has_yard","has_pool","has_maid_room","has_driver_room",
"has_private_entrance","has_roof","has_open_space","has_main_street_facade","is_corner","has_mezzanine",
"offer_wallet_500"
];
const numericFields = [
"budget_sar","area_m2","bedrooms","rooms","living_rooms","bathrooms","floors_count","units_count",
"facade_width_m","doors_count","ceiling_height_m","parking_spaces"
];
function toNumberOrNull(v){
if (v === undefined || v === null) return null;
const s = String(v).trim();
if (!s) return null;
const n = Number(s);
return Number.isFinite(n) ? n : null;
}
form.addEventListener('submit', async function(e){
e.preventDefault();
// Honeypot
const hp = form.querySelector('input[name="company"]')?.value?.trim();
if (hp) return;
// Disable button (no UI change except prevent double submit)
if (submitBtn) {
submitBtn.disabled = true;
submitBtn.style.opacity = "0.85";
}
try {
const fd = new FormData(form);
const data = Object.fromEntries(fd.entries());
// Defaults for booleans (unchecked checkboxes won't appear in FormData)
booleanFields.forEach(k => {
data[k] = fd.get(k) ? true : false;
});
// Numbers normalization
numericFields.forEach(k => {
if (k in data) data[k] = toNumberOrNull(data[k]);
});
// Trim text fields (safe)
["city","client_name","whatsapp","activity","facade","land_location","land_use","extra_notes","property_type","property_category","request_type","lang","source","campaign","kitchen_status","floor_pref"].forEach(k=>{
if (k in data && typeof data[k] === "string") data[k] = data[k].trim();
});
// POST to Supabase
const res = await fetch(`${SUPABASE_URL}/rest/v1/${TABLE_NAME}`, {
method: "POST",
headers: {
"apikey": SUPABASE_ANON_KEY,
"Authorization": `Bearer ${SUPABASE_ANON_KEY}`,
"Content-Type": "application/json",
"Prefer": "return=minimal"
},
body: JSON.stringify([data])
});
if (!res.ok) {
const t = await res.text();
throw new Error(t || "Supabase insert failed");
}
// Success → keep your same UI behavior
form.style.display = 'none';
success.style.display = 'block';
window.scrollTo({ top: scope.getBoundingClientRect().top + window.scrollY - 20, behavior: 'smooth' });
} catch (err) {
console.error(err);
// Restore form (no design change)
alert("提交失败,请稍后重试或直接WhatsApp联系我们。");
if (submitBtn) {
submitBtn.disabled = false;
submitBtn.style.opacity = "1";
}
}
});
})();
</script>
沙特海湾财富置业(Wealth Gulf Real Estate)是沙特阿拉伯获得官方许可的房地产经纪机构, 专注于住宅和商业地产的搜索与经纪服务。我们严格遵守官方法规,为利雅得的居民和访客提供可靠的服务。
是的。我们要受沙特商务部及城乡事务与住房部的监管,是持有正规牌照的房地产机构。您可以通过以下政府链接验证我们的官方信息:
我们通常在收到需求后的24小时内与您联系,并尽快为您匹配合适的房源。
我们全面覆盖住宅(公寓/别墅)与商业(办公室/商铺/仓库/土地)地产。
是的,我们协助您进行价格协商、审查合同条款,确保交易安全合规。