https://www.loevegaarden.dk/vare-kategori/te/rooibush-te/

  1. 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"};
  2. //# sourceURL=wc-cart-fragments-js-extra
  3. </script>
  4. <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>
  5. <script data-wp-strategy="defer" defer id="woocommerce-analytics-js" src="https://stats.wp.com/s-202637.js"></script>
  6.  
  7. <!-- Google tag (gtag.js) snippet added by Site Kit -->
  8. <!-- Google Analytics-snippet tilføjet af Site Kit -->
  9. <script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=G-3YM1HKGLP0" async></script>
  10. <script id="google_gtagjs-js-after">
  11. window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
  12. gtag("set","linker",{"domains":["www.loevegaarden.dk"]});
  13. gtag("js", new Date());
  14. gtag("set", "developer_id.dZTNiMT", true);
  15. gtag("config", "G-3YM1HKGLP0");
  16.  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" } ); };
  17. //# sourceURL=google_gtagjs-js-after
  18. </script>
  19. <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" />
  20. <meta name="generator" content="WordPress 7.1" />
  21. <meta name="generator" content="WooCommerce 11.0.1" />
  22. <meta name="generator" content="Site Kit by Google 1.186.0" /><style>
  23.                 .lmp_load_more_button.br_lmp_button_settings .lmp_button:hover {
  24.                     background-color: #9999ff!important;
  25.                     color: #111111!important;
  26.                 }
  27.                 .lmp_load_more_button.br_lmp_prev_settings .lmp_button:hover {
  28.                     background-color: #9999ff!important;
  29.                     color: #111111!important;
  30.                 }li.product.lazy, .berocket_lgv_additional_data.lazy{opacity:0;}</style>        <style>img#wpstats{display:none}</style>
  31.                 <!-- Google site verification - Google for WooCommerce -->
  32. <meta name="google-site-verification" content="B8do0GR6Gb-RJW7Ka1n9qrQeqoCWrWRQysB5bt63Tuo" />
  33.         <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
  34.                 <style type="text/css">
  35.             .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>
  36.                                 <script  type="text/javascript">
  37.                                 window.__wc_fb_page_generated = 1788908687;
  38.                                 !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  39.                                         n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
  40.                                         n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
  41.                                         t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
  42.                                         document,'script','https://connect.facebook.net/en_US/fbevents.js');
  43.                         </script>
  44.                         <!-- WooCommerce Facebook Integration Begin -->
  45.                         <script  type="text/javascript">
  46.  
  47.                                 window.FacebookSignals = window.FacebookSignals || {
  48.         _held: false,
  49.         _releasing: false,
  50.         _pixelInitialized: false,
  51.         _pixelId: null,
  52.         _pixelUserInfo: {},
  53.         _pixelOptions: {},
  54.         _pendingPixelEvents: [],
  55.         _queue: [],
  56.         _config: {},
  57.         _attribution: {},
  58.         _seenEventIds: {},
  59.         _fbclid: (function() {
  60.                 try {
  61.                         var m = window.location.search.match(/[?&]fbclid=([^&]*)/);
  62.                         return m ? decodeURIComponent(m[1]) : null;
  63.                 } catch(e) { return null; }
  64.         })(),
  65.  
  66.         init: function(config) {
  67.                 config = config || {};
  68.                 this._config = config;
  69.                 this._attribution = config.attribution || {};
  70.  
  71.                 var cookieState = this._getCookie('wc_facebook_signals_state');
  72.                 this._held = cookieState ? cookieState === 'held' : !!config.held;
  73.  
  74.                 this._fbclid = this._fbclid || null;
  75.  
  76.                 if (typeof fbq === 'function') {
  77.                         fbq('consent', this._held ? 'revoke' : 'grant');
  78.                 }
  79.  
  80.                 try {
  81.                         var raw = window.sessionStorage.getItem('wc_facebook_signals_seen_event_ids');
  82.                         this._seenEventIds = raw ? JSON.parse(raw) : {};
  83.                 } catch (e) {
  84.                         this._seenEventIds = this._seenEventIds || {};
  85.                 }
  86.         },
  87.  
  88.         initPixel: function(pixelId, userInfo, options) {
  89.                 this._pixelId = pixelId;
  90.                 this._pixelUserInfo = userInfo && typeof userInfo === 'object' && !Array.isArray(userInfo) ? userInfo : {};
  91.                 this._pixelOptions = options || {};
  92.                 if (!this._held) {
  93.                         this._runPixelInit();
  94.                 }
  95.         },
  96.  
  97.         _runPixelInit: function() {
  98.                 if (this._pixelInitialized || !this._pixelId || typeof fbq !== 'function') return;
  99.                 fbq('init', this._pixelId, this._pixelUserInfo, this._pixelOptions);
  100.                 this._pixelInitialized = true;
  101.                 this._flushPendingPixelEvents();
  102.         },
  103.  
  104.         _flushPendingPixelEvents: function() {
  105.                 var pending = this._pendingPixelEvents;
  106.                 this._pendingPixelEvents = [];
  107.                 for (var i = 0; i < pending.length; i++) {
  108.                         var ev = pending[i];
  109.                         this._firePixelEvent(ev.name, ev.params, ev.method, ev.eventId);
  110.                 }
  111.         },
  112.  
  113.         _fireOrQueuePixelEvent: function(name, params, method, eventId) {
  114.                 if (!this._pixelInitialized) {
  115.                         this._pendingPixelEvents.push({
  116.                                 name: name, params: params || {}, method: method || 'track', eventId: eventId || null
  117.                         });
  118.                         return;
  119.                 }
  120.                 this._firePixelEvent(name, params || {}, method || 'track', eventId || null);
  121.         },
  122.  
  123.         _firePixelEvent: function(name, params, method, eventId) {
  124.                 method = method || 'track';
  125.                 if (eventId) {
  126.                         fbq(method, name, params || {}, { eventID: eventId });
  127.                 } else {
  128.                         fbq(method, name, params || {});
  129.                 }
  130.         },
  131.  
  132.         queueEvent: function(eventData) {
  133.                 if (!eventData || !eventData.event_name) return;
  134.  
  135.                 var originalId = eventData.event_id || null;
  136.                 if (originalId && this._seenEventIds[originalId]) return;
  137.  
  138.                 if (!this._held) {
  139.                         this._fireOrQueuePixelEvent(eventData.event_name, eventData.custom_data || {}, eventData.method || 'track', originalId);
  140.                         return;
  141.                 }
  142.  
  143.                 eventData = this._cloneEventData(eventData);
  144.                 eventData.event_id = this._generateEventId();
  145.                 eventData.event_time = eventData.event_time || Math.floor(Date.now() / 1000);
  146.                 this._queue.push(eventData);
  147.  
  148.                 var idToMark = originalId || eventData.event_id;
  149.                 if (idToMark) {
  150.                         this._seenEventIds[idToMark] = 1;
  151.                         try {
  152.                                 window.sessionStorage.setItem(
  153.                                         'wc_facebook_signals_seen_event_ids',
  154.                                         JSON.stringify(this._seenEventIds)
  155.                                 );
  156.                         } catch (e) {}
  157.                 }
  158.         },
  159.  
  160.         trackEvent: function(name, params, userData, method, eventId) {
  161.                 method = method || 'track';
  162.                 eventId = eventId || (params && params.eventID) || null;
  163.  
  164.                 if (this._held) {
  165.                         this.queueEvent({
  166.                                 event_name: name,
  167.                                 custom_data: params || {},
  168.                                 event_id: eventId,
  169.                                 event_time: Math.floor(Date.now() / 1000),
  170.                                 method: method
  171.                         });
  172.                 } else {
  173.                         this._fireOrQueuePixelEvent(name, params || {}, method, eventId);
  174.                 }
  175.         },
  176.  
  177.         release: function() {
  178.                 var self = this;
  179.                 if (!self._held || self._releasing || !self._config.ajaxUrl) {
  180.                         return Promise.resolve({ success: true, data: { sent_count: 0 } });
  181.                 }
  182.  
  183.                 self._releasing = true;
  184.                 var attribution = self._collectAttribution();
  185.  
  186.                 var payload = JSON.stringify({
  187.                         events: self._queue,
  188.                         attribution: {
  189.                                 fbp: attribution.fbp || null,
  190.                                 fbc: attribution.fbc || null
  191.                         },
  192.                         fbclid: self._fbclid || null
  193.                 });
  194.  
  195.                 var url = self._config.ajaxUrl +
  196.                         (self._config.ajaxUrl.indexOf('?') === -1 ? '?' : '&') +
  197.                         'action=' + encodeURIComponent(self._config.action);
  198.  
  199.                 return new Promise(function(resolve, reject) {
  200.                         var xhr = new XMLHttpRequest();
  201.                         xhr.open('POST', url, true);
  202.                         xhr.setRequestHeader('Content-Type', 'application/json');
  203.                         xhr.onload = function() {
  204.                                 if (xhr.status >= 200 && xhr.status < 300) {
  205.                                         try {
  206.                                                 var resp = JSON.parse(xhr.responseText);
  207.                                                 self._handleReleaseResponse(resp.data || {}, attribution);
  208.                                                 resolve(resp);
  209.                                         } catch(e) { self._releasing = false; reject(e); }
  210.                                 } else {
  211.                                         self._releasing = false;
  212.                                         reject(new Error('Signal release AJAX failed: ' + xhr.status));
  213.                                 }
  214.                         };
  215.                         xhr.onerror = function() { self._releasing = false; reject(new Error('Network error')); };
  216.                         xhr.send(payload);
  217.                 });
  218.         },
  219.  
  220.         _handleReleaseResponse: function(data, attribution) {
  221.                 this._syncAttributionCookies(data || {}, attribution);
  222.  
  223.                 // Override cached user_info with fresh data from the release response.
  224.                 if (data.user_info && typeof data.user_info === 'object' && !Array.isArray(data.user_info)) {
  225.                         this._pixelUserInfo = data.user_info;
  226.                 }
  227.  
  228.                 this._held = false;
  229.                 this._releasing = false;
  230.  
  231.                 fbq('consent', 'grant');
  232.                 this._runPixelInit();
  233.  
  234.                 var queue = this._queue;
  235.                 for (var i = 0; i < queue.length; i++) {
  236.                         var ev = queue[i];
  237.                         this._fireOrQueuePixelEvent(ev.event_name, ev.custom_data || {}, ev.method || 'track', ev.event_id || null);
  238.                 }
  239.  
  240.                 this._queue = [];
  241.         },
  242.  
  243.         _collectAttribution: function() {
  244.                 var clientParams = {};
  245.                 if (typeof clientParamBuilder !== 'undefined') {
  246.                         try {
  247.                                 clientParams = clientParamBuilder.processAndCollectParams(this._getAttributionUrl()) || {};
  248.                         } catch (e) {}
  249.                 }
  250.  
  251.                 var fbp = this._getCookie('_fbp') || clientParams._fbp || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbp() : null);
  252.                 var fbc = this._getCookie('_fbc') || clientParams._fbc || (typeof clientParamBuilder !== 'undefined' ? clientParamBuilder.getFbc() : null);
  253.  
  254.                 if (!fbc && this._fbclid) {
  255.                         fbc = 'fb.1.' + Date.now() + '.' + this._fbclid;
  256.                 }
  257.  
  258.                 return { fbp: fbp || null, fbc: fbc || null };
  259.         },
  260.  
  261.         _syncAttributionCookies: function(data, attribution) {
  262.                 var fbp = data.fbp || (attribution && attribution.fbp) || null;
  263.                 var fbc = data.fbc || (attribution && attribution.fbc) || null;
  264.  
  265.                 if (fbp) {
  266.                         this._setAttributionCookie('_fbp', fbp, data.fbp_domain || null);
  267.                 }
  268.                 if (fbc) {
  269.                         this._setAttributionCookie('_fbc', fbc, data.fbc_domain || null);
  270.                 }
  271.         },
  272.  
  273.         _setAttributionCookie: function(name, value, domain) {
  274.                 if (!value) return;
  275.                 var domainAttr = domain ? ';domain=' + domain : '';
  276.                 document.cookie = name + '=' + encodeURIComponent(value) + ';path=/;max-age=7776000' + domainAttr + ';SameSite=Lax';
  277.         },
  278.  
  279.         _getCookie: function(name) {
  280.                 var match = document.cookie.match(new RegExp('(?:^|;\\s*)' + name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '=([^;]*)'));
  281.                 if (!match) return null;
  282.                 try { return decodeURIComponent(match[1]); } catch(e) { return null; }
  283.         },
  284.  
  285.         _cloneEventData: function(eventData) {
  286.                 var clone = {};
  287.                 for (var key in eventData) {
  288.                         if (Object.prototype.hasOwnProperty.call(eventData, key)) {
  289.                                 clone[key] = eventData[key];
  290.                         }
  291.                 }
  292.                 return clone;
  293.         },
  294.  
  295.         _generateEventId: function() {
  296.                 if (window.crypto && typeof window.crypto.randomUUID === 'function') {
  297.                         return window.crypto.randomUUID();
  298.                 }
  299.                 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
  300.                         var r = Math.random() * 16 | 0;
  301.                         return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
  302.                 });
  303.         },
  304.  
  305.         _getAttributionUrl: function() {
  306.                 if (!this._fbclid) return window.location.href;
  307.                 try {
  308.                         var url = new URL(window.location.href);
  309.                         if (!url.searchParams.get('fbclid')) {
  310.                                 url.searchParams.set('fbclid', this._fbclid);
  311.                         }
  312.                         return url.toString();
  313.                 } catch (e) {
  314.                         return window.location.href;
  315.                 }
  316.         }
  317. };
  318.                                 FacebookSignals.init({
  319.                                         held: false,
  320.                                         ajaxUrl: "https:\/\/www.loevegaarden.dk\/wp-admin\/admin-ajax.php",
  321.                                         action: 'facebook_release_signals',
  322.                                         pixelId: "474740316063844",
  323.                                         attribution: {}
  324.                                 });
  325.                                 FacebookSignals.initPixel(
  326.                                         "474740316063844",
  327.                                         {},
  328.                                         {"agent":"woocommerce_6-11.0.1-3.7.6"}                          );
  329.  
  330.                                 document.addEventListener( 'DOMContentLoaded', function() {
  331.                                         document.body.insertAdjacentHTML( 'beforeend', '<div class=\"wc-facebook-pixel-event-placeholder\"></div>' );
  332.                                 }, false );
  333.  
  334.                         </script>
  335.                         <!-- WooCommerce Facebook Integration End -->
  336.                         <style id="wp-custom-css">
  337. /* Påske menupunkt start - class er mobilmenu, id er desktopmenu */
  338. .menu-item-9770, #menu-item-9770{background-color:#ecff18}
  339. .menu-item-9770, #menu-item-9770:hover{background-color:#e0f309}
  340. /* Påske menupunkt slut */
  341.  
  342. /* Jul menupunkt start - class er mobilmenu, id er desktopmenu */
  343. .menu-item-30204, #menu-item-30204{
  344.   background-color: rgb(228, 10, 45);
  345. }
  346.  
  347. .menu-item-30204 > ul.sub-menu > li {
  348.   background-color: rgb(228, 10, 45);
  349. }
  350.  
  351. .menu-item-30204:hover, #menu-item-30204:hover{
  352.   background-color: rgb(198,15,15);
  353. }
  354. .menu-item-30204 > a, #menu-item-30204 a{
  355.   color: white;
  356. }
  357. /* 3 for 100 style start */
  358. /* ✅ Hovedprodukt på produktsiden *//*
  359. body.single-product.product_tag-3for100 .woocommerce-product-gallery {
  360.   position: relative;
  361. }
  362.  
  363. body.single-product.product_tag-3for100 .woocommerce-product-gallery::after {
  364.   content: "3 for 100 kr";
  365.   position: absolute;
  366.   top: 10px;
  367.   left: 10px;
  368.   background-color: #fed831;
  369.   color: #000000;
  370.   padding: 6px 12px;
  371.   font-weight: bold;
  372.   font-size: 14px;
  373.   border-radius: 3px;
  374.   z-index: 10;
  375.   pointer-events: none;
  376. }
  377.  
  378. /* ✅ Produkter i lister – shop, kategori, søgning, tags, osv. */
  379. /* 🚫 Ekskluder relaterede produkter og upsells på produktsiden */
  380. ul.products:not(.related) > li.product.product_tag-3for100 .woocommerce-loop-product__link,
  381. ul.products:not(.upsells) > li.product.product_tag-3for100 .woocommerce-loop-product__link {
  382.   position: relative;
  383.   display: block;
  384. }
  385.  
  386. ul.products:not(.related) > li.product.product_tag-3for100 .woocommerce-loop-product__link::after,
  387. ul.products:not(.upsells) > li.product.product_tag-3for100 .woocommerce-loop-product__link::after {
  388.   content: "3 for 100 kr";
  389.   position: absolute;
  390.   top: 10px;
  391.   left: 10px;
  392.   background-color: #fed831;
  393.   color: #000000;
  394.   padding: 6px 12px;
  395.   font-weight: bold;
  396.   font-size: 14px;
  397.   border-radius: 3px;
  398.   z-index: 10;
  399.   pointer-events: none;
  400. }
  401.  
  402.  
Copyright © 2010-2026 brokenlinkcheck.com  |  By using this website you agree to these Terms