Menu Buscar p.active && p.name === "Pix"); if (pixPayment && pixPayment.percent_discount) { discount_total_pix = parseFloat(pixPayment.percent_discount); } } if (discount_total_pix > 0) { // Aplica o desconto na vitrine de produtos document.querySelectorAll(".product-prices").forEach(priceContainer => { let priceElement = priceContainer.querySelector(".base-amount"); if (priceElement) { let priceText = priceElement.textContent.trim().replace("R$", "").replace(/\s+/g, "").replace(",", "."); let priceValue = parseFloat(priceText); if (!isNaN(priceValue) && priceValue > 0) { let pixPrice = priceValue * (1 - discount_total_pix / 100); let formattedPixPrice = `R$ ${pixPrice.toFixed(2).replace(".", ",")}`; let existingPixPrice = priceContainer.querySelector(".pix-price"); if (existingPixPrice) { existingPixPrice.innerHTML = `no Pix: ${formattedPixPrice}`; } else { let pixElement = document.createElement("div"); pixElement.classList.add("pix-price"); pixElement.style.color = "#27ae60"; // Verde para destacar pixElement.style.fontWeight = "bold"; pixElement.innerHTML = `no Pix: ${formattedPixPrice}`; priceContainer.appendChild(pixElement); } } } }); // Aplica o desconto na página do produto document.querySelectorAll(".main-product-prices").forEach(mainPriceContainer => { let actualPriceElement = mainPriceContainer.querySelector(".actual-price span"); if (actualPriceElement) { let priceText = actualPriceElement.textContent.trim().replace("R$", "").replace(/\s+/g, "").replace(",", "."); let priceValue = parseFloat(priceText); if (!isNaN(priceValue) && priceValue > 0) { let pixPrice = priceValue * (1 - discount_total_pix / 100); let formattedPixPrice = `R$ ${pixPrice.toFixed(2).replace(".", ",")}`; let existingPixPrice = mainPriceContainer.querySelector(".pix-price"); if (existingPixPrice) { existingPixPrice.innerHTML = `no Pix: ${formattedPixPrice}`; } else { let pixElement = document.createElement("div"); pixElement.classList.add("pix-price"); pixElement.style.color = "#27ae60"; // Verde para destacar pixElement.style.fontWeight = "bold"; pixElement.style.marginTop = "5px"; // Ajuste de espaço pixElement.innerHTML = `no Pix: ${formattedPixPrice}`; actualPriceElement.parentNode.appendChild(pixElement); } } } }); } } // Executa a função para calcular os preços iniciais atualizarPrecosPix(); // Usa um MutationObserver otimizado para evitar loops infinitos e rodar apenas quando necessário const observer = new MutationObserver((mutations) => { let hasChanges = mutations.some(mutation => mutation.addedNodes.length > 0); if (hasChanges) { observer.disconnect(); atualizarPrecosPix(); observer.observe(document.body, { childList: true, subtree: true }); } }); observer.observe(document.body, { childList: true, subtree: true }); });
Receba novidades