end, Entire site), staging post 754764587. Offers at regular prices only; no discounts. Data source: Italo's 12-month order analysis (Oct 19 2026). */ (function () { 'use strict'; if (window.apfpUpsells) return; window.apfpUpsells = true; /* ---------- blog posts: Klaviyo embedded sign-up forms (mid-article + end) ---------- Runs right away (this script sits at the end of
Add feminized seeds now so you’re ready to plant the day your kit arrives.' + (st.kit === 'big' ? ' These photoperiods grow big in a 35 gallon pot.' : ' These autoflowers suit your kit and flower on their own.') + '
' + seedCards(OFFER[st.kit]); var up = st.kitItem && st.kitItem.quantity === 1 && TWO_POT[st.kitItem.id]; if (up && where !== 'modal') { html += 'Our Indoor 2 Gallon kit has organic super soil, a fabric pot, grow videos and free coaching. Skip it if you already have a kit.
' + 'One peat pellet per seed gives each one an easy start. Soak it about 15 minutes, then plant your seed about 1 cm deep.
' + pelletLine(st, st.need, true); } function wire(root, after) { root.addEventListener('click', function (e) { var b = e.target.closest('button[data-add],button[data-swap]'); if (!b) return; e.preventDefault(); b.disabled = true; var old = b.textContent; b.textContent = 'Adding…'; var p = b.dataset.add ? addItem(+b.dataset.add, +(b.dataset.qty || 1)) : swapItem(b.dataset.swap, +b.dataset.to); track(b.dataset.add ? 'add' : 'swap', b.dataset.label); Promise.resolve(p).then(function () { b.textContent = 'Added ✓'; if (after) after(); }) .catch(function () { b.disabled = false; b.textContent = old; alert('Sorry, that didn’t add. Please try again.'); }); }); } /* ---------- 1. cart strip ---------- */ function renderStrip() { // Inside the cart's main (left) column, under the item list; never beside it in the flex row. var anchor = document.querySelector('.wc-block-cart__main'); if (!anchor) return; getCart().then(function (cart) { var html = offerHtml(readCart(cart), 'strip'); var box = document.getElementById('apfp-strip'); if (!html) { if (box) box.remove(); return; } if (!box) { box = document.createElement('div'); box.id = 'apfp-strip'; box.className = 'apfp-up'; anchor.appendChild(box); wire(box); track('view', 'cart-strip'); } if (box.dataset.html !== html) { box.innerHTML = html; box.dataset.html = html; } }); } /* ---------- 2. checkout bump ---------- */ function renderBump() { var anchor = document.querySelector('.wp-block-woocommerce-checkout-payment-block, .wc-block-checkout__payment-method'); if (!anchor) return; getCart().then(function (cart) { var st = readCart(cart), box = document.getElementById('apfp-bump'); var pick = st.kit ? SEEDS[OFFER[st.kit][0]] : null; var added = st.items.filter(function (it) { return pick && it.id === pick.v[0]; })[0]; var seedMode = pick && (st.seeds === 0 || added) && !(box && box.dataset.mode === 'pellet'); var bumpN = box ? +(box.dataset.bumpN || 0) : 0; if (!seedMode) { if (st.need > 0 || bumpN > 0) return renderPelletBump(anchor, st, box, bumpN); if (box) box.remove(); return; } if (!box) { box = document.createElement('div'); box.id = 'apfp-bump'; box.className = 'apfp-bump'; box.dataset.mode = 'seed'; anchor.parentNode.insertBefore(box, anchor); track('view', 'checkout-bump'); box.addEventListener('change', function (e) { var cb = e.target; cb.disabled = true; getCart().then(function (c) { var line = (c.items || []).filter(function (it) { return it.id === pick.v[0]; })[0]; var p = cb.checked ? addItem(pick.v[0], 1) : (line ? removeItem(line.key) : null); track(cb.checked ? 'add' : 'remove', 'bump-' + pick.name); return p; }).finally(function () { cb.disabled = false; }); }); } var i = info[pick.parent] || {}; var html = (i.img ? '