Kenya’s real estate landscape continues to evolve at a remarkable pace. Once concentrated in Nairobi’s central neighborhoods, property investment has spread into satellite towns
Buying land for the first time in Kenya is a significant milestone and, for many, a lifelong dream. However, the journey can be overwhelming if you don’t have the right information. The market is full of opportunities—but also potential pitfalls. Whether you’re planning to build a home, develop rental units, or invest for future resale, […]
In Kenya, land ownership is a vital consideration for investors, developers, and individuals alike. The legal framework governing land in the country recognizes two principal forms of ownership—leasehold and freehold. Each category presents distinct advantages, limitations, and responsibilities, depending on the intended land use and location. Understanding the Complexities between leasehold and freehold tenure is […]
(function() {
function replaceCurrencyInElement(el) {
// Walk text nodes inside the element and transform only leading $ or USD
const walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false);
let node;
while (node = walker.nextNode()) {
// Skip empty nodes
if (!node.nodeValue.trim()) continue;
// Replace only at start of the text node: $, $ (with space), USD, USD (with space)
const newVal = node.nodeValue.replace(/^\s*(\$|USD)\s*/i, 'KES ');
if (newVal !== node.nodeValue) node.nodeValue = newVal;
}
}
function scanAndReplace() {
document.querySelectorAll('.has-ele-price').forEach(el => replaceCurrencyInElement(el));
}
// Initial run
scanAndReplace();
// Observe DOM changes (Elementor may inject later)
const obs = new MutationObserver(mutations => {
let touched = false;
for (const m of mutations) {
if (m.addedNodes && m.addedNodes.length) {
touched = true; break;
}
if (m.type === 'characterData') { touched = true; break; }
}
if (touched) scanAndReplace();
});
obs.observe(document.body, { childList: true, subtree: true, characterData: true });
// Safety fallback: run a few extra times then disconnect observer after 20s
let runs = 0;
const fallback = setInterval(() => {
scanAndReplace();
runs++;
if (runs > 8) { clearInterval(fallback); obs.disconnect(); }
}, 2000);
console.log('Currency replacement (test) installed — will replace leading $/USD with KES.');
})();