{"id":542,"date":"2025-09-24T08:11:03","date_gmt":"2025-09-24T08:11:03","guid":{"rendered":"https:\/\/event.azkiahijab.co.id\/?page_id=542"},"modified":"2025-10-05T00:12:42","modified_gmt":"2025-10-04T17:12:42","slug":"redirect-whatsapp","status":"publish","type":"page","link":"https:\/\/event.azkiahijab.co.id\/?page_id=542","title":{"rendered":"Redirect Whatsapp"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"542\" class=\"elementor elementor-542\">\n\t\t\t\t<div class=\"elementor-element elementor-element-acf1efd e-flex e-con-boxed e-con e-parent\" data-id=\"acf1efd\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-1496a2c e-con-full e-flex e-con e-child\" data-id=\"1496a2c\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fbc2b3 elementor-widget__width-initial elementor-widget elementor-widget-eael-progress-bar\" data-id=\"1fbc2b3\" data-element_type=\"widget\" data-widget_type=\"eael-progress-bar.default\">\n\t\t\t\t\t<div class=\"eael-progressbar-circle-container left\">\n                \n            \n                <div class=\"eael-progressbar eael-progressbar-circle\" data-layout=\"circle\" data-count=\"100\" data-duration=\"5000\">\n                    <div class=\"eael-progressbar-circle-pie\">\n                        <div class=\"eael-progressbar-circle-half-left eael-progressbar-circle-half\"><\/div>\n                        <div class=\"eael-progressbar-circle-half-right eael-progressbar-circle-half\"><\/div>\n                    <\/div>\n                    <div class=\"eael-progressbar-circle-inner\"><\/div>\n                    <div class=\"eael-progressbar-circle-inner-content\">\n                        <div class=\"eael-progressbar-title\">Progress Bar<\/div>\n                        <span class=\"eael-progressbar-count-wrap\"><span class=\"eael-progressbar-count\">0<\/span><span class=\"postfix\">%<\/span><\/span>\n                    <\/div>\n                <\/div>\n\n                \n            <\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46194fd elementor-widget elementor-widget-heading\" data-id=\"46194fd\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Dalam 2 Menit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd33257 elementor-widget elementor-widget-heading\" data-id=\"cd33257\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Anda akan diarahkan <br> ke Customer Service AZKIA HIJAB<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a393f0c elementor-widget elementor-widget-html\" data-id=\"a393f0c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n(function () {\n  \/\/ === KONFIG WhatsApp ===\n  \/\/const WA_NUMBER = '62895808855575'; \/\/ 62 + nomor tanpa 0\n  const WA_NUMBER = '6285798549032'; \/\/ 62 + nomor tanpa 0\n  const WA_TEXT   = \"Hai Azkia Hijab, saya ingin tanya-tanya promo Azkia Hijab\";\n  const WA_URL    = 'https:\/\/wa.me\/' + WA_NUMBER + '?text=' + encodeURIComponent(WA_TEXT.trim());\n\n  \/\/ === (Opsional) Tambahkan selector spesifik plugin Anda di sini kalau perlu ===\n  \/\/ Misal: '.eael-progressbar', '.bdt-progress-bar', '.pa-progressbar-fill'\n  const CUSTOM_SELECTORS = [\n    \/\/ Essential Addons (EAEL):\n    '.eael-progressbar', '.eael-progressbar .eael-progress-bar', '.eael-progressbar .eael-progressbar-count',\n    \/\/ Premium Addons:\n    '.premium-progressbar', '.premium-progressbar .premium-progressbar-bar', '.premium-progressbar .premium-progressbar-percent',\n    \/\/ Element Pack (bdt = Balboo Dev Team):\n    '.bdt-progress-bar', '.bdt-progress-bar .bdt-progress-filled', '.bdt-progress-bar .bdt-progress-percent',\n    \/\/ HT Mega \/ Happy Addons \/ The Plus Addons (umum):\n    '.progress-bar', '.progressbar', '.progress__bar', '.progress-fill', '.progress-percent',\n    \/\/ Elementor default (jaga-jaga):\n    '.elementor-progress-bar', '.elementor-progress-percentage', '.elementor-widget-progress'\n  ];\n\n  \/\/ === Utility ===\n  let redirected = false;\n  function goWA() { if (!redirected) { redirected = true; window.location.href = WA_URL; } }\n  function log(){ try { console.log('[PB-WA]', ...arguments); } catch(e){} }\n\n  function getPercentFromText(el) {\n    if (!el) return null;\n    const m = el.textContent && el.textContent.match(\/(\\d+)\\s*%\/);\n    return m ? parseInt(m[1], 10) : null;\n  }\n\n  function computeWidthPercent(bar, container) {\n    try {\n      const w  = parseFloat(getComputedStyle(bar).width);\n      const pw = parseFloat(getComputedStyle(container || bar.parentElement).width);\n      if (pw > 0) return (w \/ pw) * 100;\n    } catch(e) {}\n    return null;\n  }\n\n  \/\/ Cek berbagai pola 100%\n  function isFullProgress(root) {\n    \/\/ 1) role=progressbar aria-valuenow\n    const ariaBars = root.querySelectorAll('[role=\"progressbar\"], [aria-valuenow]');\n    for (const el of ariaBars) {\n      const v = parseInt(el.getAttribute('aria-valuenow') || '0', 10);\n      if (!Number.isNaN(v) && v >= 100) return true;\n    }\n    \/\/ 2) teks \"100%\"\n    const percentNodes = root.querySelectorAll('*');\n    for (const el of percentNodes) {\n      const p = getPercentFromText(el);\n      if (p !== null && p >= 100) return true;\n    }\n    \/\/ 3) style width ~100% pada elemen bar yang umum\n    const widthBars = root.querySelectorAll(CUSTOM_SELECTORS.join(','));\n    for (const bar of widthBars) {\n      const inline = (bar.style && bar.style.width) ? parseInt(bar.style.width.replace('%',''), 10) : NaN;\n      const cmp = computeWidthPercent(bar, bar.parentElement);\n      if (!Number.isNaN(inline) && inline >= 100) return true;\n      if (cmp !== null && cmp >= 99.9) return true;\n    }\n    return false;\n  }\n\n  \/\/ Pantau 1 widget\/progress root\n  function bindWatcher(root) {\n    if (!root || root.__pb_wa_bound) return;\n    root.__pb_wa_bound = true;\n\n    const mo = new MutationObserver(() => {\n      if (isFullProgress(root)) { cleanup(); goWA(); }\n    });\n    mo.observe(root, { subtree: true, attributes: true, childList: true, characterData: true });\n\n    \/\/ Polling fallback (untuk addon yg animasinya via JS internal)\n    let ticks = 0;\n    const poller = setInterval(() => {\n      ticks++;\n      if (isFullProgress(root)) { cleanup(); goWA(); }\n      if (ticks > 240) { cleanup(); } \/\/ ~48s\n    }, 200);\n\n    \/\/ Kalau ada bar dengan animasi width, listen transitionend\n    root.addEventListener('transitionend', (e) => {\n      if ((e.propertyName || '').includes('width') && isFullProgress(root)) { cleanup(); goWA(); }\n    }, true);\n\n    function cleanup(){ try{mo.disconnect();}catch(e){} clearInterval(poller); }\n  }\n\n  \/\/ Cari kandidat widget progress di halaman (lintas addon)\n  function scanCandidates() {\n    const set = new Set();\n    \/\/ 1) semua yang mengandung kata 'progress' di class\n    document.querySelectorAll('[class*=\"progress\"]').forEach(el => set.add(el));\n    \/\/ 2) role=progressbar\n    document.querySelectorAll('[role=\"progressbar\"]').forEach(el => set.add(el));\n    \/\/ 3) selector custom\n    CUSTOM_SELECTORS.forEach(sel => document.querySelectorAll(sel).forEach(el => set.add(el)));\n    return Array.from(set);\n  }\n\n  \/\/ Bind begitu terlihat (untuk kasus di tab\/slider\/lazy)\n  const io = new IntersectionObserver(entries => {\n    entries.forEach(entry => {\n      if (entry.isIntersecting) {\n        \/\/ Cari \u201croot\u201d kecil: ambil container paling dekat yang mewakili satu widget\n        const root = entry.target.closest('.elementor-widget, .eael-progressbar, .premium-progressbar, .bdt-progress-bar') || entry.target;\n        bindWatcher(root);\n      }\n    });\n  }, { threshold: 0.2 });\n\n  function init() {\n    \/\/ Hook lifecycle Elementor (agar menangkap widget dari addon juga)\n    if (window.elementorFrontend && window.elementorFrontend.hooks) {\n      \/\/ Hook default progress\n      window.elementorFrontend.hooks.addAction('frontend\/element_ready\/progress.default', function ($scope) {\n        const el = $scope[0] || $scope; if (el) io.observe(el);\n      });\n      \/\/ Beberapa addon pakai namespace widget berbeda \u2192 tetap scan DOM\n    }\n\n    \/\/ Observasi semua kandidat yang ada saat ini\n    scanCandidates().forEach(el => io.observe(el));\n\n    \/\/ Jika setelah load ada DOM baru (slider\/tab dibuka), tetap deteksi\n    const rootMO = new MutationObserver(() => {\n      scanCandidates().forEach(el => io.observe(el));\n    });\n    rootMO.observe(document.documentElement, { childList: true, subtree: true });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n    window.addEventListener('load', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Progress Bar 0% Dalam 2 Menit Anda akan diarahkan ke Customer Service AZKIA HIJAB<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-542","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/pages\/542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=542"}],"version-history":[{"count":107,"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/pages\/542\/revisions"}],"predecessor-version":[{"id":1249,"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=\/wp\/v2\/pages\/542\/revisions\/1249"}],"wp:attachment":[{"href":"https:\/\/event.azkiahijab.co.id\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}