var wc_cart_fragments_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","cart_hash_key":"wc_cart_hash_d169915fdb04191efe8ed262ee25f421","fragment_name":"wc_fragments_d169915fdb04191efe8ed262ee25f421","request_timeout":"5000"};
//# sourceURL=wc-cart-fragments-js-extra
</script>
<script data-wp-strategy="defer" defer id="wc-cart-fragments-js" src="https://www.loevegaarden.dk/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=11.0.1"></script>
<script data-wp-strategy="defer" defer id="woocommerce-analytics-js" src="https://stats.wp.com/s-202637.js"></script>
<!-- Google tag (gtag.js) snippet added by Site Kit -->
<!-- Google Analytics-snippet tilføjet af Site Kit -->
<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=G-3YM1HKGLP0" async></script>
<script id="google_gtagjs-js-after">
window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
gtag("set","linker",{"domains":["www.loevegaarden.dk"]});
gtag("js", new Date());
gtag("set", "developer_id.dZTNiMT", true);
gtag("config", "G-3YM1HKGLP0");
window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); };
//# sourceURL=google_gtagjs-js-after
</script>
<link rel="https://api.w.org/" href="https://www.loevegaarden.dk/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.loevegaarden.dk/wp-json/wp/v2/product_cat/262" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.loevegaarden.dk/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<meta name="generator" content="WooCommerce 11.0.1" />
<meta name="generator" content="Site Kit by Google 1.186.0" /><style>
.lmp_load_more_button.br_lmp_button_settings .lmp_button:hover {
background-color: #9999ff!important;
color: #111111!important;
}
.lmp_load_more_button.br_lmp_prev_settings .lmp_button:hover {
background-color: #9999ff!important;
color: #111111!important;
}li.product.lazy, .berocket_lgv_additional_data.lazy{opacity:0;}</style> <style>img#wpstats{display:none}</style>
<!-- Google site verification - Google for WooCommerce -->
<meta name="google-site-verification" content="B8do0GR6Gb-RJW7Ka1n9qrQeqoCWrWRQysB5bt63Tuo" />
<noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
<style type="text/css">
.wdp_bulk_table_content .wdp_pricing_table_caption { color: #6d6d6d ! important} .wdp_bulk_table_content table thead td { color: #6d6d6d ! important} .wdp_bulk_table_content table thead td { background-color: #efefef ! important} .wdp_bulk_table_content table thead td { higlight_background_color-color: #efefef ! important} .wdp_bulk_table_content table thead td { higlight_text_color: #6d6d6d ! important} .wdp_bulk_table_content table tbody td { color: #6d6d6d ! important} .wdp_bulk_table_content table tbody td { background-color: #ffffff ! important} .wdp_bulk_table_content .wdp_pricing_table_footer { color: #6d6d6d ! important} </style>
<script type="text/javascript">
window.__wc_fb_page_generated = 1788908687;
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
</script>
<!-- WooCommerce Facebook Integration Begin -->
<script type="text/javascript">
window.FacebookSignals = window.FacebookSignals || {
_held: false,
_releasing: false,
_pixelInitialized: false,
_pixelId: null,
_pixelUserInfo: {},
_pixelOptions: {},
_pendingPixelEvents: [],
_queue: [],
_config: {},
_attribution: {},
_seenEventIds: {},
_fbclid: (function() {
try {
var m = window.location.search.match(/[?&]fbclid=([^&]*)/);
return m ? decodeURIComponent(m[1]) : null;
} catch(e) { return null; }
})(),
init: function(config) {
config = config || {};
this._config = config;
this._attribution = config.attribution || {};
var cookieState = this._getCookie('wc_facebook_signals_state');
this._held = cookieState ? cookieState === 'held' : !!config.held;
this._fbclid = this._fbclid || null;
if (typeof fbq === 'function') {
fbq('consent', this._held ? 'revoke' : 'grant');
}
try {
var raw = window.sessionStorage.getItem('wc_facebook_signals_seen_event_ids');
this._seenEventIds = raw ? JSON.parse(raw) : {};
} catch (e) {
this._seenEventIds = this._seenEventIds || {};
}
},
initPixel: function(pixelId, userInfo, options) {
this._pixelId = pixelId;
this._pixelUserInfo = userInfo && typeof userInfo === 'object' && !Array.isArray(userInfo) ? userInfo : {};
this._pixelOptions = options || {};
if (!this._held) {
this._runPixelInit();
}
},
_runPixelInit: function() {
if (this._pixelInitialized || !this._pixelId || typeof fbq !== 'function') return;
fbq('init', this._pixelId, this._pixelUserInfo, this._pixelOptions);
this._pixelInitialized = true;
this._flushPendingPixelEvents();
},
_flushPendingPixelEvents: function() {
var pending = this._pendingPixelEvents;
this._pendingPixelEvents = [];
for (var i = 0; i < pending.length; i++) {
var ev = pending[i];
this._firePixelEvent(ev.name, ev.params, ev.method, ev.eventId);
}
},
_fireOrQueuePixelEvent: function(name, params, method, eventId) {
if (!this._pixelInitialized) {
this._pendingPixelEvents.push({
name: name, params: params || {}, method: method || 'track', eventId: eventId || null
});
return;
}
this._firePixelEvent(name, params || {}, method || 'track', eventId || null);
},
_firePixelEvent: function(name, params, method, eventId) {
method = method || 'track';
if (eventId) {
fbq(method, name, params || {}, { eventID: eventId });
} else {
fbq(method, name, params || {});
}
},
queueEvent: function(eventData) {
if (!eventData || !eventData.event_name) return;
var originalId = eventData.event_id || null;
if (originalId && this._seenEventIds[originalId]) return;
if (!this._held) {
this._fireOrQueuePixelEvent(eventData.event_name, eventData.custom_data || {}, eventData.method || 'track', originalId);
return;
}
eventData = this._cloneEventData(eventData);
eventData.event_id = this._generateEventId();
eventData.event_time = eventData.event_time || Math.floor(Date.now() / 1000);
this._queue.push(eventData);
var idToMark = originalId || eventData.event_id;
if (idToMark) {
this._seenEventIds[idToMark] = 1;
try {
window.sessionStorage.setItem(
'wc_facebook_signals_seen_event_ids',
JSON.stringify(this._seenEventIds)
);
} catch (e) {}
}
},
trackEvent: function(name, params, userData, method, eventId) {
method = method || 'track';
eventId = eventId || (params && params.eventID) || null;
if (this._held) {
this.queueEvent({
event_name: name,
custom_data: params || {},
event_id: eventId,
event_time: Math.floor(Date.now() / 1000),
method: method
});
} else {
this._fireOrQueuePixelEvent(name, params || {}, method, eventId);
}
},
release: function() {
var self = this;
if (!self._held || self._releasing || !self._config.ajaxUrl) {
return Promise.resolve({ success: true, data: { sent_count: 0 } });
}
self._releasing = true;
var attribution = self._collectAttribution();
var payload = JSON.stringify({
events: self._queue,
attribution: {
fbp: attribution.fbp || null,
fbc: attribution.fbc || null
},
fbclid: self._fbclid || null
});
var url = self._config.ajaxUrl +
(self._config.ajaxUrl.indexOf('?') === -1 ? '?' : '&') +
'action=' + encodeURIComponent(self._config.action);
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
try {
var resp = JSON.parse(xhr.responseText);
self._handleReleaseResponse(resp.data || {}, attribution);
resolve(resp);
} catch(e) { self._releasing = false; reject(e); }
} else {
self._releasing = false;
reject(new Error('Signal release AJAX failed: ' + xhr.status));
}
};
xhr.onerror = function() { self._releasing = false; reject(new Error('Network error')); };
xhr.send(payload);
});
},
_handleReleaseResponse: function(data, attribution) {
this._syncAttributionCookies(data || {}, attribution);
// Override cached user_info with fresh data from the release response.
if (data.user_info && typeof data.user_info === 'object' && !Array.isArray(data.user_info)) {
this._pixelUserInfo = data.user_info;
}
this._held = false;
this._releasing = false;
fbq('consent', 'grant');
this._runPixelInit();
var queue = this._queue;
for (var i = 0; i < queue.length; i++) {
var ev = queue[i];
this._fireOrQueuePixelEvent(ev.event_name, ev.custom_data || {}, ev.method || 'track', ev.event_id || null);
}
this._queue = [];
},
_collectAttribution: function() {
var clientParams = {};
if (typeof clientParamBuilder !== 'undefined') {
try {
clientParams = clientParamBuilder.processAndCollectParams(this._getAttributionUrl()) || {};
} catch (e) {}
}
var fbp = this._getCookie('_fbp') || clientParams._fbp || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbp() : null);
var fbc = this._getCookie('_fbc') || clientParams._fbc || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbc() : null);
if (!fbc && this._fbclid) {
fbc = 'fb.1.' + Date.now() + '.' + this._fbclid;
}
return { fbp: fbp || null, fbc: fbc || null };
},
_syncAttributionCookies: function(data, attribution) {
var fbp = data.fbp || (attribution && attribution.fbp) || null;
var fbc = data.fbc || (attribution && attribution.fbc) || null;
if (fbp) {
this._setAttributionCookie('_fbp', fbp, data.fbp_domain || null);
}
if (fbc) {
this._setAttributionCookie('_fbc', fbc, data.fbc_domain || null);
}
},
_setAttributionCookie: function(name, value, domain) {
if (!value) return;
var domainAttr = domain ? ';domain=' + domain : '';
document.cookie = name + '=' + encodeURIComponent(value) + ';path=/;max-age=7776000' + domainAttr + ';SameSite=Lax';
},
_getCookie: function(name) {
var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '=([^;]*)'));
if (!match) return null;
try { return decodeURIComponent(match[1]); } catch(e) { return null; }
},
_cloneEventData: function(eventData) {
var clone = {};
for (var key in eventData) {
if (Object.prototype.hasOwnProperty.call(eventData, key)) {
clone[key] = eventData[key];
}
}
return clone;
},
_generateEventId: function() {
if (window.crypto && typeof window.crypto.randomUUID === 'function') {
return window.crypto.randomUUID();
}
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0;
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
},
_getAttributionUrl: function() {
if (!this._fbclid) return window.location.href;
try {
var url = new URL(window.location.href);
if (!url.searchParams.get('fbclid')) {
url.searchParams.set('fbclid', this._fbclid);
}
return url.toString();
} catch (e) {
return window.location.href;
}
}
};
FacebookSignals.init({
held: false,
ajaxUrl: "https:\/\/www.loevegaarden.dk\/wp-admin\/admin-ajax.php",
action: 'facebook_release_signals',
pixelId: "474740316063844",
attribution: {}
});
FacebookSignals.initPixel(
"474740316063844",
{},
{"agent":"woocommerce_6-11.0.1-3.7.6"} );
document.addEventListener( 'DOMContentLoaded', function() {
document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' );
}, false );
</script>
<!-- WooCommerce Facebook Integration End -->
<style id="wp-custom-css">
/* Påske menupunkt start - class er mobilmenu, id er desktopmenu */
.menu-item-9770, #menu-item-9770{background-color:#ecff18}
.menu-item-9770, #menu-item-9770:hover{background-color:#e0f309}
/* Påske menupunkt slut */
/* Jul menupunkt start - class er mobilmenu, id er desktopmenu */
.menu-item-30204, #menu-item-30204{
background-color: rgb(228, 10, 45);
}
.menu-item-30204 > ul.sub-menu > li {
background-color: rgb(228, 10, 45);
}
.menu-item-30204:hover, #menu-item-30204:hover{
background-color: rgb(198,15,15);
}
.menu-item-30204 > a, #menu-item-30204 a{
color: white;
}
/* 3 for 100 style start */
/* ✅ Hovedprodukt på produktsiden *//*
body.single-product.product_tag-3for100 .woocommerce-product-gallery {
position: relative;
}
body.single-product.product_tag-3for100 .woocommerce-product-gallery::after {
content: "3 for 100 kr";
position: absolute;
top: 10px;
left: 10px;
background-color: #fed831;
color: #000000;
padding: 6px 12px;
font-weight: bold;
font-size: 14px;
border-radius: 3px;
z-index: 10;
pointer-events: none;
}
/* ✅ Produkter i lister – shop, kategori, søgning, tags, osv. */
/* 🚫 Ekskluder relaterede produkter og upsells på produktsiden */
ul.products:not(.related) > li.product.product_tag-3for100 .woocommerce-loop-product__link,
ul.products:not(.upsells) > li.product.product_tag-3for100 .woocommerce-loop-product__link {
position: relative;
display: block;
}
ul.products:not(.related) > li.product.product_tag-3for100 .woocommerce-loop-product__link::after,
ul.products:not(.upsells) > li.product.product_tag-3for100 .woocommerce-loop-product__link::after {
content: "3 for 100 kr";
position: absolute;
top: 10px;
left: 10px;
background-color: #fed831;
color: #000000;
padding: 6px 12px;
font-weight: bold;
font-size: 14px;
border-radius: 3px;
z-index: 10;
pointer-events: none;
}