{"id":458,"date":"2026-09-04T18:28:31","date_gmt":"2026-09-04T16:28:31","guid":{"rendered":"https:\/\/gezondediervoeding.com\/?page_id=458"},"modified":"2026-10-13T11:10:45","modified_gmt":"2026-10-13T09:10:45","slug":"abonnement","status":"publish","type":"page","link":"https:\/\/gezondediervoeding.com\/de\/abonnement\/","title":{"rendered":"Abonnement"},"content":{"rendered":"\n<section class=\"gdv-subscription-page\" aria-labelledby=\"gdvSubTitle\">\n  <header class=\"gdv-subscription-hero\">\n    <div class=\"gdv-subscription-hero__copy\">\n      <p class=\"gdv-subscription-eyebrow\">JOUW VOERPLAN \u00b7 JIJ HOUDT DE REGIE<\/p>\n      <p class=\"gdv-subscription-offer\"><strong>10% korting<\/strong> op jouw voer<\/p>\n      <h1 id=\"gdvSubTitle\">Het favoriete voer van jouw maatje, precies op tijd.<\/h1>\n      <p class=\"gdv-subscription-lead\">Jouw vertrouwde voeding, in een ritme dat bij jullie past. Voor iedere levering ontvang je een factuur met betaallink. Je betaalt zelf; wij verzenden na betaling.<\/p>\n      <div class=\"gdv-subscription-actions\">\n        <a class=\"gdv-subscription-primary\" href=\"#voerplan\">Vraag mijn voerplan aan <span aria-hidden=\"true\">\u2192<\/span><\/a>\n      <\/div>\n      <p class=\"gdv-subscription-request-note\">Kies je voer, vergelijk zakmaten en ontdek hoelang je voorraad meegaat. Daarna bevestigen wij jouw aanvraag en het totaalbedrag per e-mail.<\/p>\n      <ul class=\"gdv-subscription-trust\">\n        <li><b aria-hidden=\"true\">\u2713<\/b> Geen automatische incasso<\/li>\n        <li><b aria-hidden=\"true\">\u2713<\/b> Geen vaste looptijd<\/li>\n        <li><b aria-hidden=\"true\">\u2713<\/b> Eenvoudig opzegbaar<\/li>\n      <\/ul>\n      <details class=\"gdv-subscription-details\">\n        <summary>Betalen, wijzigen of stoppen<\/summary>\n        <div>\n          <p>Wij zetten iedere afgesproken levering handmatig voor je klaar. Je ontvangt de factuur met betaallink per e-mail en kiest zelf een beschikbare betaalmethode, zoals iDEAL. We schrijven niets automatisch af en verzenden pas na betaling.<\/p>\n          <p>De 10% korting geldt op het voer binnen jouw bevestigde voerplan. Verzendkosten staan apart op de factuur. Controleer het totaalbedrag voordat je betaalt.<\/p>\n          <p>Je zit nergens voor een vaste periode aan vast. Wil je een volgende levering overslaan, je ritme wijzigen of stoppen? Geef dit door via ons contactformulier. Een al betaalde bestelling wordt niet automatisch geannuleerd.<\/p>\n          <a href=\"\/contact\/?vraag=Ik%20wil%20mijn%20voerplan%20wijzigen%2C%20een%20levering%20overslaan%20of%20stoppen.%0A%0AMijn%20wens%3A%20%0AE-mailadres%20van%20het%20voerplan%3A%20%0AVanaf%20welke%20levering%3A%20%0AEventueel%20bestelnummer%3A%20%0A%0AGraag%20ontvang%20ik%20een%20bevestiging%20per%20e-mail.#stel-je-vraag\">Mijn voerplan wijzigen of stoppen <span aria-hidden=\"true\">\u2192<\/span><\/a>\n        <\/div>\n      <\/details>\n      <a class=\"gdv-subscription-help\" href=\"\/voerkeuze\/?doel=voerplan\">Nog hulp nodig bij je voerkeuze? <span aria-hidden=\"true\">\u2192<\/span><\/a>\n    <\/div>\n    <div class=\"gdv-subscription-hero__pets\" aria-label=\"Een hond en kat die bij de voerkeuze horen\">\n      <figure><img data-recalc-dims=\"1\" fetchpriority=\"high\" src=\"https:\/\/i0.wp.com\/gezondediervoeding.com\/wp-content\/uploads\/2026\/09\/voerkeuze-hond.webp?resize=900%2C1200&#038;ssl=1\" alt=\"Vriendelijke hond\" width=\"900\" height=\"1200\" loading=\"eager\" decoding=\"async\"><figcaption>Voor mijn hond<\/figcaption><\/figure>\n      <figure><img data-recalc-dims=\"1\" src=\"https:\/\/i0.wp.com\/gezondediervoeding.com\/wp-content\/uploads\/2026\/09\/voerkeuze-kat.webp?resize=900%2C1200&#038;ssl=1\" alt=\"Vriendelijke kat\" width=\"900\" height=\"1200\" loading=\"eager\" decoding=\"async\"><figcaption>Voor mijn kat<\/figcaption><\/figure>\n    <\/div>\n  <\/header>\n<\/section>\n<style id=\"gdv-subscription-manual-invoice-v1\">\n.gdv-subscription-page{--forest:#073f31;--forest2:#0b6049;--gold:#a5792c;--cream:#fffaf1;--mint:#e6f1e9;--ink:#16382f;--muted:#52675e;max-width:1200px;margin:30px auto 52px;padding:0 22px;color:var(--ink);font-family:Inter,\"Aptos\",system-ui,-apple-system,\"Segoe UI\",sans-serif}\n.gdv-subscription-page *{box-sizing:border-box}.gdv-subscription-page h1{font-family:\"Iowan Old Style\",\"Palatino Linotype\",Baskerville,Georgia,serif}\n.gdv-subscription-page .gdv-subscription-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);min-height:560px;overflow:hidden;border:1px solid rgba(199,154,69,.24);border-radius:34px;background:radial-gradient(circle at 7% 8%,rgba(199,154,69,.13),transparent 28%),linear-gradient(135deg,#fffdf8,#e9f3eb);box-shadow:0 30px 80px rgba(7,63,49,.14)}\n.gdv-subscription-page .gdv-subscription-hero__copy{display:flex;min-width:0;padding:clamp(30px,3.8vw,52px);align-items:flex-start;justify-content:center;flex-direction:column}\n.gdv-subscription-page .gdv-subscription-eyebrow{margin:0 0 16px;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}\n.gdv-subscription-page .gdv-subscription-offer{display:inline-flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin:0 0 24px;padding:11px 16px;border:1px solid #943a34;border-radius:5px;background:#84312e;color:#fffaf1;font-size:14px;line-height:1.4;box-shadow:0 4px 12px rgba(132,49,46,.12)}\n.gdv-subscription-page .gdv-subscription-offer strong{color:inherit;font-size:20px;font-weight:700}\n.gdv-subscription-page .gdv-subscription-hero h1{max-width:660px;margin:0;color:var(--forest);font-size:clamp(46px,4.8vw,66px);font-weight:500;letter-spacing:-.045em;line-height:1.01}\n.gdv-subscription-page .gdv-subscription-lead{max-width:620px;margin:23px 0 0;color:var(--muted);font-size:16px;line-height:1.7}\n.gdv-subscription-page .gdv-subscription-actions{display:flex;max-width:100%;margin-top:24px;align-items:center}\n.gdv-subscription-page .gdv-subscription-primary{display:inline-flex;min-height:54px;max-width:100%;padding:10px 18px;align-items:center;justify-content:space-between;gap:18px;border:1px solid rgba(199,154,69,.45);border-radius:6px;background:#173f33;color:#fffaf1!important;box-shadow:0 6px 16px rgba(7,63,49,.12);font-size:14px;font-weight:650;line-height:1.4;text-decoration:none!important;transition:background .18s ease,box-shadow .18s ease}\n.gdv-subscription-page .gdv-subscription-primary>span{display:inline-grid;flex:0 0 32px;width:32px;height:32px;place-items:center;border-radius:50%;background:#fff8e9;color:#173f33;font-size:21px;font-weight:400;line-height:1}\n.gdv-subscription-page .gdv-subscription-primary:hover{background:#245440;box-shadow:0 8px 20px rgba(7,63,49,.18)}\n.gdv-subscription-page .gdv-subscription-request-note{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.65}\n.gdv-subscription-page .gdv-subscription-trust{display:flex;margin:22px 0 0;padding:0;gap:10px 18px;flex-wrap:wrap;list-style:none}\n.gdv-subscription-page .gdv-subscription-trust li{display:flex;align-items:center;gap:7px;color:var(--forest);font-size:12px;font-weight:650}\n.gdv-subscription-page .gdv-subscription-trust b{display:grid;flex:0 0 22px;width:22px;height:22px;place-items:center;border-radius:50%;background:var(--mint);color:var(--forest)}\n.gdv-subscription-page .gdv-subscription-details{width:100%;margin-top:22px;border-top:1px solid rgba(7,63,49,.18);color:var(--muted);font-size:13px;line-height:1.7}\n.gdv-subscription-page .gdv-subscription-details summary{padding:15px 0 8px;cursor:pointer;color:var(--forest);font-weight:650}\n.gdv-subscription-page .gdv-subscription-details p{margin:10px 0 14px;font-size:13px;line-height:1.7}\n.gdv-subscription-page .gdv-subscription-details a,.gdv-subscription-page .gdv-subscription-help{color:var(--forest);font-size:12px;line-height:1.7;text-decoration:underline;text-underline-offset:4px}\n.gdv-subscription-page .gdv-subscription-help{display:inline-block;margin-top:10px}\n.gdv-subscription-page a:focus-visible,.gdv-subscription-page summary:focus-visible{outline:3px solid #a5792c;outline-offset:4px}\n.gdv-subscription-page .gdv-subscription-hero__pets{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--forest);min-width:0}\n.gdv-subscription-page .gdv-subscription-hero__pets figure{position:relative;min-width:0;margin:0;overflow:hidden}\n.gdv-subscription-page .gdv-subscription-hero__pets img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 32%}\n.gdv-subscription-page .gdv-subscription-hero__pets figcaption{position:absolute;right:13px;bottom:13px;left:13px;padding:11px 12px;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:rgba(7,63,49,.78);backdrop-filter:blur(8px);color:#fff;font-size:12px;font-weight:700;text-align:center}\n@media(max-width:900px){.gdv-subscription-page .gdv-subscription-hero{grid-template-columns:1fr}.gdv-subscription-page .gdv-subscription-hero__pets{height:340px}.gdv-subscription-page .gdv-subscription-hero__pets img{object-position:center 35%}}\n@media(max-width:560px){.gdv-subscription-page{margin:14px auto 36px;padding:0 9px}.gdv-subscription-page .gdv-subscription-hero{border-radius:24px}.gdv-subscription-page .gdv-subscription-hero__copy{padding:30px 22px}.gdv-subscription-page .gdv-subscription-hero h1{font-size:43px}.gdv-subscription-page .gdv-subscription-lead{font-size:15px}.gdv-subscription-page .gdv-subscription-offer{margin-bottom:22px;font-size:13px}.gdv-subscription-page .gdv-subscription-offer strong{font-size:19px}.gdv-subscription-page .gdv-subscription-actions,.gdv-subscription-page .gdv-subscription-primary{width:100%}.gdv-subscription-page .gdv-subscription-trust{align-items:flex-start;flex-direction:column}.gdv-subscription-page .gdv-subscription-hero__pets{height:280px}.gdv-subscription-page .gdv-subscription-hero__pets figcaption{left:8px;right:8px;padding:10px 5px;font-size:11px}}\n@media(prefers-reduced-motion:reduce){.gdv-subscription-page .gdv-subscription-primary{transition:none}}\n<\/style>\n\n\n<section id=\"voerplan\" class=\"cpf-pf\" aria-labelledby=\"cpf-pf-title\"><header class=\"cpf-pf-header\"><p class=\"cpf-pf-eyebrow\">Jouw voer. Jouw ritme.<\/p><h2 id=\"cpf-pf-title\">Maak ruimte voor een passend voerplan.<\/h2><p>Kies je voeding, vergelijk zakmaten en ontdek hoelang je voorraad ongeveer meegaat.<\/p><\/header><div id=\"cpf-pf-app\"><p>De stappenhulp wordt geladen. Je kunt je voerplan ook <a href=\"https:\/\/gezondediervoeding.com\/de\/contact\/#stel-je-vraag\">via ons contactformulier aanvragen<\/a>.<\/p><\/div><noscript><p>Schakel JavaScript in om het zakverbruik te berekenen.<\/p><\/noscript><\/section>\n\n\n\n<section class=\"gdv-voordelen\" aria-labelledby=\"gdvVoordelenTitel\">\n  <div class=\"gdv-voordelen__inner\">\n    <p class=\"gdv-voordelen__kicker\">Voordelen van je voerplan<\/p>\n    <h2 id=\"gdvVoordelenTitel\">Jij houdt de regie.<\/h2>\n    <div class=\"gdv-voordelen__grid\">\n      <article class=\"gdv-voordelen__kaart\"><h3>10% korting<\/h3><p>Op al het voer in je voerplan.<\/p><\/article>\n      <article class=\"gdv-voordelen__kaart\"><h3>Je betaalt zelf<\/h3><p>Factuur met betaallink. Nooit automatische incasso.<\/p><\/article>\n      <article class=\"gdv-voordelen__kaart\"><h3>Geen looptijd<\/h3><p>Aanpassen of stoppen wanneer je wil.<\/p><\/article>\n      <article class=\"gdv-voordelen__kaart\"><h3>Jouw eigen ritme<\/h3><p>Wij rekenen uit hoelang een zak meegaat.<\/p><\/article>\n    <\/div>\n  <\/div>\n<\/section>\n<style>\n@layer gdv-packshot-sizing {\n  html body .gdv-voordelen{width:auto!important;max-width:none!important;margin-inline:calc(50% - 50vw)!important;padding:64px 22px!important;background:linear-gradient(180deg,#fbf8f0,#f2f6f2)!important;color:#073f31!important;box-sizing:border-box!important}\n  html body .gdv-voordelen__inner{width:min(1180px,100%)!important;margin-inline:auto!important}\n  html body .gdv-voordelen__kicker{margin:0 0 9px!important;color:#a87927!important;font:850 10px\/1.2 Arial,sans-serif!important;letter-spacing:.17em!important;text-transform:uppercase!important}\n  html body .gdv-voordelen h2{margin:0 0 28px!important;color:#073f31!important;font:500 clamp(30px,3.6vw,44px)\/1 Georgia,\"Times New Roman\",serif!important;letter-spacing:-.03em!important}\n  html body .gdv-voordelen__grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}\n  html body .gdv-voordelen__kaart{margin:0!important;padding:22px!important;border:1px solid rgba(7,63,49,.13)!important;border-radius:22px!important;background:#fffdf8!important;box-shadow:0 14px 34px rgba(7,63,49,.07)!important}\n  html body .gdv-voordelen__kaart h3{margin:0 0 8px!important;color:#073f31!important;font:700 17px\/1.25 Georgia,\"Times New Roman\",serif!important}\n  html body .gdv-voordelen__kaart p{margin:0!important;color:#5d746d!important;font:600 12px\/1.6 Arial,sans-serif!important}\n  @media(max-width:1020px){html body .gdv-voordelen__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}\n  @media(max-width:560px){html body .gdv-voordelen{padding:44px 14px!important}html body .gdv-voordelen__grid{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}}\n}\n<\/style>\n\n\n\n\n<script id=\"gdv-voerplan-afrekenen\">\n\/**\n * Zet stap 4 van het voerplan om van \"aanvraag via het contactformulier\" naar\n * direct in de winkelwagen, met de voerplankorting, en optioneel in het voerplan\n * zodat de klant op de leverdatum automatisch een mail met betaallink krijgt.\n * Terugdraaien: verwijder dit hele blok van de abonnementspagina.\n *\/\n( function () {\n\t'use strict';\n\n\tvar KORTINGSCODE = 'voerplan10';\n\tvar RITMES = [ 2, 3, 4, 6, 8, 12 ];\n\n\tfunction config() {\n\t\treturn window.cpfFeedPlanConfig || null;\n\t}\n\n\tfunction opschonen( tekst ) {\n\t\treturn String( tekst || '' ).replace( \/\\s+\/g, ' ' ).trim();\n\t}\n\n\tfunction zoekProduct( lijn ) {\n\t\tvar cfg = config();\n\t\tif ( ! cfg || ! cfg.products ) {\n\t\t\treturn null;\n\t\t}\n\t\tvar link = lijn.querySelector( 'a[href*=\"\/product\/\"]' );\n\t\tvar url = link ? link.getAttribute( 'href' ) : '';\n\t\tvar pad = url ? url.split( '?' )[ 0 ].replace( \/\\\/$\/, '' ) : '';\n\t\tfor ( var i = 0; i < cfg.products.length; i++ ) {\n\t\t\tvar p = cfg.products[ i ];\n\t\t\tvar ppad = String( p.url || '' ).split( '?' )[ 0 ].replace( \/\\\/$\/, '' );\n\t\t\tif ( pad ) {\n\t\t\t\tif ( ppad ) {\n\t\t\t\t\tif ( ppad === pad ) {\n\t\t\t\t\t\treturn p;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvar kop = lijn.querySelector( 'h3, h4, .cpf-pf-line-title, strong' );\n\t\tvar naam = opschonen( kop ? kop.textContent : '' ).toLowerCase();\n\t\tfor ( var j = 0; j < cfg.products.length; j++ ) {\n\t\t\tif ( naam ) {\n\t\t\t\tif ( naam.indexOf( String( cfg.products[ j ].name || '' ).toLowerCase() ) === 0 ) {\n\t\t\t\t\treturn cfg.products[ j ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction leesSamenvatting( lijn ) {\n\t\tvar uit = {};\n\t\tvar dts = lijn.querySelectorAll( 'dt' );\n\t\tfor ( var i = 0; i < dts.length; i++ ) {\n\t\t\tvar dd = dts[ i ].nextElementSibling;\n\t\t\tif ( dd ) {\n\t\t\t\tif ( 'DD' === dd.tagName ) {\n\t\t\t\t\tuit[ opschonen( dts[ i ].textContent ).toLowerCase() ] = opschonen( dd.textContent );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn uit;\n\t}\n\n\tfunction leesRegels() {\n\t\tvar lijnen = document.querySelectorAll( '.cpf-pf-line' );\n\t\tvar regels = [];\n\t\tvar weken = 0;\n\n\t\tfor ( var i = 0; i < lijnen.length; i++ ) {\n\t\t\tvar lijn = lijnen[ i ];\n\t\t\tvar product = zoekProduct( lijn );\n\t\t\tif ( ! product || ! product.offers || ! product.offers.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar s = leesSamenvatting( lijn );\n\t\t\tvar perLevering = s[ 'per levering' ] || '';\n\t\t\tvar aantalMatch = perLevering.match( \/(\\d+)\\s*zak\/i );\n\t\t\tvar kgMatch = perLevering.match( \/van\\s*([\\d.,]+)\\s*kg\/i );\n\t\t\tif ( ! kgMatch ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar kg = kgMatch[ 1 ].replace( ',', '.' );\n\t\t\tvar aanbod = null;\n\t\t\tfor ( var k = 0; k < product.offers.length; k++ ) {\n\t\t\t\tif ( parseFloat( product.offers[ k ].kg ) === parseFloat( kg ) ) {\n\t\t\t\t\taanbod = product.offers[ k ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( ! aanbod ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tregels.push( {\n\t\t\t\tid: parseInt( aanbod.id, 10 ),\n\t\t\t\taantal: aantalMatch ? Math.max( 1, parseInt( aantalMatch[ 1 ], 10 ) ) : 1,\n\t\t\t\tnaam: product.name,\n\t\t\t\tkg: kg,\n\t\t\t} );\n\n\t\t\tvar voorraad = s[ 'totale voorraad' ] || '';\n\t\t\tvar wekenMatch = voorraad.match( \/([\\d.,]+)\\s*we(ke)?n\/i );\n\t\t\tif ( wekenMatch ) {\n\t\t\t\tvar w = parseFloat( wekenMatch[ 1 ].replace( ',', '.' ) );\n\t\t\t\tif ( w > weken ) {\n\t\t\t\t\tweken = w;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar ritme = RITMES[ 2 ];\n\t\tif ( weken > 0 ) {\n\t\t\tvar beste = RITMES[ 0 ];\n\t\t\tvar afstand = Math.abs( RITMES[ 0 ] - weken );\n\t\t\tfor ( var r = 1; r < RITMES.length; r++ ) {\n\t\t\t\tvar d = Math.abs( RITMES[ r ] - weken );\n\t\t\t\tif ( d < afstand ) {\n\t\t\t\t\tafstand = d;\n\t\t\t\t\tbeste = RITMES[ r ];\n\t\t\t\t}\n\t\t\t}\n\t\t\tritme = beste;\n\t\t}\n\n\t\treturn { regels: regels, ritme: ritme };\n\t}\n\n\tfunction storeNonce() {\n\t\treturn fetch( '\/wp-json\/wc\/store\/v1\/cart', { credentials: 'same-origin' } ).then( function ( r ) {\n\t\t\treturn r.headers.get( 'nonce' ) || r.headers.get( 'x-wc-store-api-nonce' ) || '';\n\t\t} );\n\t}\n\n\tfunction naarWinkelwagen( regels ) {\n\t\treturn storeNonce().then( function ( nonce ) {\n\t\t\tvar reeks = Promise.resolve();\n\t\t\tregels.forEach( function ( regel ) {\n\t\t\t\treeks = reeks.then( function () {\n\t\t\t\t\treturn fetch( '\/wp-json\/wc\/store\/v1\/cart\/add-item', {\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\theaders: { 'Content-Type': 'application\/json', Nonce: nonce },\n\t\t\t\t\t\tbody: JSON.stringify( { id: regel.id, quantity: regel.aantal } ),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} );\n\t\t\treturn reeks.then( function () {\n\t\t\t\treturn fetch( '\/wp-json\/wc\/store\/v1\/cart\/apply-coupon', {\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\theaders: { 'Content-Type': 'application\/json', Nonce: nonce },\n\t\t\t\t\tbody: JSON.stringify( { code: KORTINGSCODE } ),\n\t\t\t\t} ).catch( function () {} );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tfunction naarVoerplan( regels, ritme ) {\n\t\tvar eerste = regels[ 0 ];\n\t\tif ( ! eerste ) {\n\t\t\treturn Promise.resolve( false );\n\t\t}\n\t\tvar cfg = config();\n\t\tvar product = null;\n\t\tif ( cfg ? cfg.products : false ) {\n\t\t\tfor ( var i = 0; i < cfg.products.length; i++ ) {\n\t\t\t\tfor ( var j = 0; j < cfg.products[ i ].offers.length; j++ ) {\n\t\t\t\t\tif ( parseInt( cfg.products[ i ].offers[ j ].id, 10 ) === eerste.id ) {\n\t\t\t\t\t\tproduct = cfg.products[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif ( ! product ) {\n\t\t\treturn Promise.resolve( false );\n\t\t}\n\n\t\treturn fetch( product.url, { credentials: 'same-origin' } )\n\t\t\t.then( function ( r ) {\n\t\t\t\treturn r.text();\n\t\t\t} )\n\t\t\t.then( function ( html ) {\n\t\t\t\tvar m = html.match( \/name=\"gdv_vp_nonce\"\\s+value=\"([a-z0-9]+)\"\/i );\n\t\t\t\tif ( ! m ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar nonce = m[ 1 ];\n\t\t\t\tvar reeks = Promise.resolve( true );\n\t\t\t\tregels.forEach( function ( regel ) {\n\t\t\t\t\treeks = reeks.then( function () {\n\t\t\t\t\t\tvar body = new URLSearchParams();\n\t\t\t\t\t\tbody.set( 'gdv_vp_nonce', nonce );\n\t\t\t\t\t\tbody.set( 'gdv_vp_actie', 'toevoegen' );\n\t\t\t\t\t\tbody.set( 'gdv_vp_product', String( product.id ) );\n\t\t\t\t\t\tbody.set( 'gdv_vp_variatie', String( regel.id ) );\n\t\t\t\t\t\tbody.set( 'gdv_vp_aantal', String( regel.aantal ) );\n\t\t\t\t\t\tbody.set( 'gdv_vp_interval', String( ritme ) );\n\t\t\t\t\t\treturn fetch( product.url, {\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\tcredentials: 'same-origin',\n\t\t\t\t\t\t\theaders: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n\t\t\t\t\t\t\tbody: body.toString(),\n\t\t\t\t\t\t} ).then( function () {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\treturn reeks;\n\t\t\t} )\n\t\t\t.catch( function () {\n\t\t\t\treturn false;\n\t\t\t} );\n\t}\n\n\tfunction bouwKnoppen( vraagKnop ) {\n\t\tif ( document.getElementById( 'gdv-vp-acties' ) ) {\n\t\t\treturn;\n\t\t}\n\t\tvar data = leesRegels();\n\t\tif ( ! data.regels.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ingelogd = document.body.className.indexOf( 'logged-in' ) > -1;\n\n\t\tvar doos = document.createElement( 'div' );\n\t\tdoos.id = 'gdv-vp-acties';\n\t\tdoos.className = 'gdv-vp-acties-blok';\n\n\t\tvar uitleg = document.createElement( 'p' );\n\t\tuitleg.className = 'gdv-vp-acties-blok__uitleg';\n\t\tuitleg.textContent = ingelogd\n\t\t\t? 'Je krijgt 10% voerplankorting. Rond de datum dat je zak op is, mailen we je een betaallink voor de volgende levering. Opzeggen kan altijd bij Mijn voerplan.'\n\t\t\t: 'Je krijgt 10% voerplankorting. Maak of gebruik een account als je automatisch een mail wil krijgen zodra je zak bijna op is.';\n\t\tdoos.appendChild( uitleg );\n\n\t\tvar rij = document.createElement( 'div' );\n\t\trij.className = 'gdv-vp-acties-blok__rij';\n\n\t\tvar hoofd = document.createElement( 'button' );\n\t\thoofd.type = 'button';\n\t\thoofd.className = 'cpf-pf-button gdv-vp-acties-blok__hoofd';\n\t\thoofd.textContent = ingelogd\n\t\t\t? 'In mijn voerplan en nu afrekenen'\n\t\t\t: 'Nu afrekenen met 10% korting';\n\n\t\thoofd.addEventListener( 'click', function () {\n\t\t\thoofd.disabled = true;\n\t\t\tvar oud = hoofd.textContent;\n\t\t\thoofd.textContent = 'Een moment\u2026';\n\t\t\tvar stappen = ingelogd\n\t\t\t\t? naarVoerplan( data.regels, data.ritme ).then( function () {\n\t\t\t\t\treturn naarWinkelwagen( data.regels );\n\t\t\t\t} )\n\t\t\t\t: naarWinkelwagen( data.regels );\n\t\t\tstappen\n\t\t\t\t.then( function () {\n\t\t\t\t\twindow.location.href = '\/afrekenen\/';\n\t\t\t\t} )\n\t\t\t\t.catch( function () {\n\t\t\t\t\thoofd.disabled = false;\n\t\t\t\t\thoofd.textContent = oud;\n\t\t\t\t\tuitleg.textContent = 'Dat lukte niet. Probeer het opnieuw, of stuur je plan via het contactformulier.';\n\t\t\t\t} );\n\t\t} );\n\n\t\trij.appendChild( hoofd );\n\n\t\tvar vraag = document.createElement( 'button' );\n\t\tvraag.type = 'button';\n\t\tvraag.className = 'cpf-pf-button cpf-pf-secondary gdv-vp-acties-blok__vraag';\n\t\tvraag.textContent = 'Liever eerst een vraag stellen';\n\t\tvraag.addEventListener( 'click', function () {\n\t\t\tvraagKnop.click();\n\t\t} );\n\t\trij.appendChild( vraag );\n\n\t\tdoos.appendChild( rij );\n\n\t\tvraagKnop.style.display = 'none';\n\t\tvar kleineTekst = vraagKnop.nextElementSibling;\n\t\tif ( kleineTekst ) {\n\t\t\tif ( kleineTekst.classList ) {\n\t\t\t\tif ( kleineTekst.classList.contains( 'cpf-pf-small' ) ) {\n\t\t\t\t\tkleineTekst.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tvraagKnop.parentNode.insertBefore( doos, vraagKnop );\n\t}\n\n\tfunction kijk() {\n\t\tvar vraagKnop = document.querySelector( '.cpf-pf [data-action=\"request\"]' );\n\t\tif ( vraagKnop ) {\n\t\t\tbouwKnoppen( vraagKnop );\n\t\t}\n\t}\n\n\tfunction start() {\n\t\t\/\/ De wizard bouwt zijn eigen sectie opnieuw op, dus we kijken naar de hele pagina.\n\t\tkijk();\n\t\tnew MutationObserver( function () {\n\t\t\tkijk();\n\t\t} ).observe( document.body, { childList: true, subtree: true } );\n\t}\n\n\tif ( 'loading' === document.readyState ) {\n\t\tdocument.addEventListener( 'DOMContentLoaded', start );\n\t} else {\n\t\tstart();\n\t}\n}() );\n<\/script>\n<style id=\"gdv-voerplan-afrekenen-stijl\">\n@layer gdv-packshot-sizing {\n\t.gdv-vp-acties-blok{margin:18px 0 0;padding:18px 20px;border:1px solid rgba(23,62,50,.12);border-radius:20px;background:#FFFDF8}\n\t.gdv-vp-acties-blok__uitleg{margin:0 0 14px;font-size:13.5px;line-height:1.55;color:#5D746D}\n\t.gdv-vp-acties-blok__rij{display:flex;flex-wrap:wrap;gap:10px}\n\t.gdv-vp-acties-blok__hoofd{border-radius:14px!important;min-height:52px!important}\n\t.gdv-vp-acties-blok__vraag{border-radius:14px!important;min-height:52px!important}\n}\n<\/style>\n\n","protected":false},"excerpt":{"rendered":"<p>JOUW VOERPLAN \u00b7 JIJ HOUDT DE REGIE 10% korting op jouw voer Het favoriete voer van jouw maatje, precies op tijd. Jouw vertrouwde voeding, in een ritme dat bij jullie past. Voor iedere levering ontvang je een factuur met betaallink. Je betaalt zelf; wij verzenden na betaling. Vraag mijn voerplan aan \u2192 Kies je voer, [&hellip;]<\/p>\n","protected":false},"author":284396210,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"Hondenvoer abonnement zonder vaste looptijd. Kies je hondenbrokken, vergelijk zakmaten en krijg 10% korting. Geen automatische incasso.","jetpack_seo_html_title":"Hondenvoer abonnement | 10% korting, geen vaste looptijd","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":""},"class_list":["post-458","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/Php1Cb-7o","jetpack-related-posts":[{"id":3205,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/labradoodle\/","url_meta":{"origin":458,"position":0},"title":"Labradoodle: karakter, verzorging en het beste voer","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij een labradoodle? Lees wat dit ras nodig heeft en welke CleanPetFood-voeding wij aanraden.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3317,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/middelgrote-honden\/","url_meta":{"origin":458,"position":1},"title":"Beste voer voor middelgrote honden (10 tot 25 kg)","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij middelgrote honden? Advies en CleanPetFood-voeding voor honden van 10 tot 25 kg.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3319,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/reuzenrassen\/","url_meta":{"origin":458,"position":2},"title":"Beste voer voor reuzenrassen (vanaf 45 kg)","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij reuzenrassen? Advies en CleanPetFood-voeding voor honden van vanaf 45 kg.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3318,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/grote-honden\/","url_meta":{"origin":458,"position":3},"title":"Beste voer voor grote honden (25 tot 45 kg)","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij grote honden? Advies en CleanPetFood-voeding voor honden van 25 tot 45 kg.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3316,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/kleine-honden\/","url_meta":{"origin":458,"position":4},"title":"Beste voer voor kleine honden (tot 10 kg)","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij kleine honden? Advies en CleanPetFood-voeding voor honden van tot 10 kg.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3206,"url":"https:\/\/gezondediervoeding.com\/de\/voer-per-ras\/europese-korthaar\/","url_meta":{"origin":458,"position":5},"title":"Beste voer voor een Europese korthaar (huiskat)","author":"Gezondediervoeding","date":"Oktober 8, 2026","format":false,"excerpt":"Welk voer past bij een Europese korthaar? Lees wat dit ras nodig heeft en welke CleanPetFood-voeding wij aanraden.","rel":"","context":"\u00c4hnlicher Beitrag","block_context":{"text":"\u00c4hnlicher Beitrag","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/pages\/458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/users\/284396210"}],"replies":[{"embeddable":true,"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/comments?post=458"}],"version-history":[{"count":13,"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/pages\/458\/revisions"}],"predecessor-version":[{"id":1503,"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/pages\/458\/revisions\/1503"}],"wp:attachment":[{"href":"https:\/\/gezondediervoeding.com\/de\/wp-json\/wp\/v2\/media?parent=458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}