Untitled
unknown
plain_text
10 months ago
7.6 kB
7
Indexable
<fieldset checkout-container="" class="w-commerce-commercecheckoutblockcontent"><div class="w-commerce-commercecheckoutsummarylineitem"><div>Subtotal</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.subtotal%22%7D%7D%5D" class="ecommerce---2">$ 78.00 USD</div></div><script type="text/x-wf-template" id="wf-template-675768009877110edda7c0890000000000a0">%3Cdiv%20class%3D%22w-commerce-commercecheckoutordersummaryextraitemslistitem%22%3E%3Cdiv%20data-wf-bindings%3D%22%255B%257B%2522innerHTML%2522%253A%257B%2522type%2522%253A%2522PlainText%2522%252C%2522filter%2522%253A%257B%2522type%2522%253A%2522identity%2522%252C%2522params%2522%253A%255B%255D%257D%252C%2522dataPath%2522%253A%2522database.commerceOrder.extraItems%255B%255D.name%2522%257D%257D%255D%22%20class%3D%22w-dyn-bind-empty%22%3E%3C%2Fdiv%3E%3Cdiv%20data-wf-bindings%3D%22%255B%257B%2522innerHTML%2522%253A%257B%2522type%2522%253A%2522CommercePrice%2522%252C%2522filter%2522%253A%257B%2522type%2522%253A%2522price%2522%252C%2522params%2522%253A%255B%255D%257D%252C%2522dataPath%2522%253A%2522database.commerceOrder.extraItems%255B%255D.price%2522%257D%257D%255D%22%20class%3D%22ecommerce---2%22%3E%24%C2%A00.00%C2%A0USD%3C%2Fdiv%3E%3C%2Fdiv%3E</script><div class="w-commerce-commercecheckoutordersummaryextraitemslist" data-wf-collection="database.commerceOrder.extraItems" data-wf-template-id="wf-template-675768009877110edda7c0890000000000a0"><div class="w-commerce-commercecheckoutordersummaryextraitemslistitem"><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22PlainText%22%2C%22filter%22%3A%7B%22type%22%3A%22identity%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.0.name%22%7D%7D%5D">State Taxes</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.0.price%22%7D%7D%5D" class="ecommerce---2">$ 4.88 USD</div></div><div class="w-commerce-commercecheckoutordersummaryextraitemslistitem"><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22PlainText%22%2C%22filter%22%3A%7B%22type%22%3A%22identity%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.1.name%22%7D%7D%5D">County Taxes</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.1.price%22%7D%7D%5D" class="ecommerce---2">$ 0.78 USD</div></div><div class="w-commerce-commercecheckoutordersummaryextraitemslistitem"><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22PlainText%22%2C%22filter%22%3A%7B%22type%22%3A%22identity%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.2.name%22%7D%7D%5D">Special District Taxes</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.2.price%22%7D%7D%5D" class="ecommerce---2">$ 1.76 USD</div></div><div class="w-commerce-commercecheckoutordersummaryextraitemslistitem"><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22PlainText%22%2C%22filter%22%3A%7B%22type%22%3A%22identity%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.3.name%22%7D%7D%5D">Free Shipping Over $50</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.extraItems.3.price%22%7D%7D%5D" class="ecommerce---2">$ 0.00 USD</div></div></div><div class="w-commerce-commercecheckoutsummarylineitem"><div>Taxes</div><div class="ecommerce---2">$ 0.00 USD</div></div><div class="w-commerce-commercecheckoutsummarylineitem"><div>Total</div><div data-wf-bindings="%5B%7B%22innerHTML%22%3A%7B%22type%22%3A%22CommercePrice%22%2C%22filter%22%3A%7B%22type%22%3A%22price%22%2C%22params%22%3A%5B%5D%7D%2C%22dataPath%22%3A%22database.commerceOrder.total%22%7D%7D%5D" class="w-commerce-commercecheckoutsummarytotal ecommerce---2">$ 85.42 USD</div><div class="hide w-embed w-script"><script>
document.addEventListener("DOMContentLoaded", function () {
// Seleccionamos el contenedor principal
const checkoutContainer = document.querySelector("[checkout-container]");
if (!checkoutContainer) return;
// Inicializamos la suma de todos los taxes
let totalTaxes = 0;
// Obtenemos todos los divs que contengan la palabra "Taxes", excluyendo "Total"
const taxRows = Array.from(checkoutContainer.querySelectorAll("div")).filter(
(div) =>
div.textContent.includes("Taxes") &&
!div.textContent.includes("Total") // Nos aseguramos de no afectar "Total"
);
// Iteramos sobre cada fila para sumar los valores y ocultarlas
taxRows.forEach((taxRow) => {
// Buscamos el sibling siguiente para obtener el monto
const sibling = taxRow.nextElementSibling;
if (sibling) {
const match = sibling.textContent.match(/\$\s?([\d,]+\.\d{2})\sUSD/);
if (match) {
// Convertimos el monto a número y lo sumamos
totalTaxes += parseFloat(match[1].replace(/,/g, ""));
}
}
// Ocultamos la fila completa (el div padre), no la eliminamos
const parentRow = taxRow.closest(".w-commerce-commercecheckoutsummarylineitem");
if (parentRow) parentRow.style.display = "none";
});
// Crear una nueva fila para mostrar los Taxes consolidados
const newTaxRow = document.createElement("div");
newTaxRow.className = "w-commerce-commercecheckoutsummarylineitem";
// Primer div (Título)
const titleDiv = document.createElement("div");
titleDiv.textContent = "Taxes";
// Segundo div (Monto formateado)
const amountDiv = document.createElement("div");
amountDiv.className = "ecommerce---2";
amountDiv.textContent = `$ ${totalTaxes.toFixed(2)} USD`;
// Añadimos los divs a la nueva fila
newTaxRow.appendChild(titleDiv);
newTaxRow.appendChild(amountDiv);
// Encontramos el row con el Total y aseguramos insertar antes de él
const totalRow = Array.from(checkoutContainer.children).find((child) =>
child.textContent.includes("Total")
);
if (totalRow) {
checkoutContainer.insertBefore(newTaxRow, totalRow);
}
// Observar cambios en el contenedor por si los taxes se actualizan
const observer = new MutationObserver(() => {
let updatedTaxes = 0;
// Recalcular los taxes sumando los valores visibles
taxRows.forEach((taxRow) => {
const sibling = taxRow.nextElementSibling;
if (sibling) {
const match = sibling.textContent.match(/\$\s?([\d,]+\.\d{2})\sUSD/);
if (match) {
updatedTaxes += parseFloat(match[1].replace(/,/g, ""));
}
}
});
// Actualizamos el total de taxes en la nueva fila
amountDiv.textContent = `$ ${updatedTaxes.toFixed(2)} USD`;
});
// Configuración del observer para monitorear cambios en los taxes
observer.observe(checkoutContainer, { childList: true, subtree: true });
});
</script></div></div></fieldset>Editor is loading...
Leave a Comment