{"id":12,"date":"2026-03-06T12:25:24","date_gmt":"2026-03-06T12:25:24","guid":{"rendered":"http:\/\/messe.weaccess.dk\/?page_id=12"},"modified":"2026-03-07T07:22:48","modified_gmt":"2026-03-07T07:22:48","slug":"messe","status":"publish","type":"page","link":"https:\/\/messe.weaccess.dk\/","title":{"rendered":"Messe"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12\" class=\"elementor elementor-12\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-167fcfe e-flex e-con-boxed e-con e-parent\" data-id=\"167fcfe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0dec53f elementor-widget elementor-widget-html\" data-id=\"0dec53f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n    :root {\n        --wa-primary: #5c9c8a; \n        --wa-primary-hover: #4a8070;\n        --wa-bg: #ffffff;\n        --wa-input-bg: #f4f5f6;\n        --wa-text-dark: #333333;\n        --wa-text-light: #666666;\n        --wa-border: #e0e0e0;\n    }\n    \n    \/* FIX: L\u00e5ser formularen horisontalt s\u00e5 den ikke kan danse *\/\n    #wa-form-card { \n        background: var(--wa-bg); \n        color: var(--wa-text-dark); \n        padding: 40px; \n        border-radius: 16px; \n        font-family: 'Inter', -apple-system, sans-serif; \n        width: 100%;\n        max-width: 650px; \n        box-shadow: 0 10px 40px rgba(0,0,0,0.08); \n        margin: 0 auto; \n        box-sizing: border-box; \n        overflow-x: hidden; \n    }\n    \n    .wa-form-header { text-align: center; margin-bottom: 35px; }\n    .wa-form-logo { display: block; margin: 0 auto 20px auto; width: 50%; max-width: 250px; height: auto; }\n    .wa-form-header h2 { margin: 0 0 10px 0; font-weight: 600; font-size: 26px; color: var(--wa-text-dark); line-height: 1.3; }\n    .wa-form-header p.wa-subtitle { color: var(--wa-text-light); font-size: 15px; line-height: 1.5; margin: 0; }\n\n    .wa-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }\n    .wa-field-group { position: relative; margin-bottom: 20px; }\n    .wa-label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; color: var(--wa-text-dark); }\n    \n    \/* FIX: font-size: 16px forhindrer Apple i at zoome ind og lave \"dansen\" *\/\n    #wa-form-card input[type=\"text\"], \n    #wa-form-card input[type=\"tel\"], \n    #wa-form-card input[type=\"email\"], \n    #wa-form-card select, \n    #wa-form-card textarea {\n        width: 100%; padding: 16px 18px; background: var(--wa-input-bg); border: 2px solid transparent; \n        color: var(--wa-text-dark); border-radius: 12px; font-size: 16px; box-sizing: border-box; \n        transition: 0.3s; -webkit-appearance: none; \n    }\n    #wa-form-card input:focus, #wa-form-card select:focus, #wa-form-card textarea:focus { border-color: var(--wa-primary); background: #fff; outline: none; }\n    .wa-input-error { border-color: #d63638 !important; background-color: #fdf2f2 !important; }\n    \n    .wa-submit-btn { background: var(--wa-primary); color: white; border: none; padding: 18px; width: 100%; font-weight: 600; border-radius: 12px; cursor: pointer; font-size: 18px; margin-top: 10px; transition: 0.3s; -webkit-appearance: none; }\n    .wa-submit-btn:hover { background: var(--wa-primary-hover); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(92,156,138,0.2); }\n    .wa-submit-btn:disabled { opacity: 0.7; cursor: not-allowed; transform: none; box-shadow: none; }\n    \n    #wa-area-badge { background: #e8f5f0; color: var(--wa-primary); padding: 14px; border-radius: 8px; font-weight: 600; margin-bottom: 20px; display: none; font-size: 14px; text-align: center; border: 1px solid #c8e6c9; }\n\n    \/* PRODUKT & PRIS GRID *\/\n    .wa-pos-grid { background: #fbfbfc; border: 1px solid var(--wa-border); border-radius: 12px; padding: 20px; margin-bottom: 20px; box-sizing: border-box; }\n    .wa-pos-row { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 15px; align-items: center; margin-bottom: 15px; }\n    .wa-pos-header { font-size: 12px; color: var(--wa-text-light); text-transform: uppercase; font-weight: 700; border-bottom: 1px solid var(--wa-border); padding-bottom: 8px; margin-bottom: 15px; }\n    .wa-pos-name { font-weight: 500; font-size: 15px; color: var(--wa-text-dark); line-height: 1.3; }\n    \n    \/* FIX: font-size 16px p\u00e5 antals-felterne *\/\n    .wa-pos-input { width: 100%; padding: 12px !important; text-align: center; border: 1px solid #ccc !important; background: #fff !important; font-weight:600; font-size: 16px !important; box-sizing: border-box; border-radius: 8px; }\n    .wa-pos-input:focus { border-color: var(--wa-primary) !important; outline: none; }\n    \n    .wa-price-box { display: flex; justify-content: space-between; align-items: center; border-top: 2px dashed var(--wa-border); margin-top: 20px; padding-top: 20px; }\n    .wa-price-label { font-weight: 600; font-size: 16px; color: var(--wa-text-dark); text-transform: uppercase; }\n    .wa-price-value { font-size: 24px; font-weight: 800; color: var(--wa-primary); }\n\n    \/* INFO BOKS TIL S\u00c6T BAGPLADER *\/\n    .wa-info-check {\n        display: flex; align-items: flex-start; gap: 12px; background: #fff8e1; border: 2px solid #ffe082; \n        padding: 18px 20px; border-radius: 12px; cursor: pointer; margin-bottom: 20px;\n        transition: 0.2s; font-size: 14px; font-weight: 600; color: #d84315; line-height: 1.4;\n        box-sizing: border-box; width: 100%;\n    }\n    .wa-info-check:hover { background: #ffecb3; }\n    .wa-info-check input { width: 22px; height: 22px; margin: 0; accent-color: #d84315; flex-shrink: 0; cursor: pointer; margin-top: -2px; }\n\n    \/* DAWA DROPDOWN *\/\n    .autocomplete-container { position: relative; }\n    #wa-dawa-dropdown { background-color: #fff; border: 1px solid #eee; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); font-family: 'Inter', sans-serif; margin-top: 5px; position: absolute; width: 100%; z-index: 999999; max-height: 250px; overflow-y: auto; padding: 0; list-style: none; display: none; box-sizing: border-box; }\n    .dawa-autocomplete-suggestion { border-bottom: 1px solid #f4f4f4; padding: 14px 18px; cursor: pointer; margin: 0; font-size: 15px; }\n    .dawa-autocomplete-suggestion:hover { background-color: var(--wa-input-bg); color: var(--wa-primary); }\n\n    \/* MOBIL OPTIMERING (Tvinger alt til at v\u00e6re inde i kassen) *\/\n    @media (max-width: 600px) {\n        #wa-form-card { padding: 30px 20px; }\n        .wa-row { grid-template-columns: 1fr; gap: 20px; }\n        .wa-pos-row { grid-template-columns: 1fr 1fr; gap: 10px; border-bottom: 1px solid #eee; padding-bottom: 15px; }\n        .wa-pos-header { display: none; }\n        .wa-pos-name { grid-column: span 2; margin-bottom: 5px; font-weight: 700; color: var(--wa-primary); }\n        .wa-price-label { font-size: 14px; }\n        .wa-price-value { font-size: 20px; }\n        .wa-form-logo { width: 65%; }\n    }\n<\/style>\n\n<div id=\"wa-form-card\">\n    <div class=\"wa-form-header\">\n        <img decoding=\"async\" src=\"http:\/\/weaccess.dk\/wp-content\/uploads\/2026\/02\/weaccess-logo-updated.png\" alt=\"WeAccess Logo\" class=\"wa-form-logo\">\n        <h2>Opret Montering & Ordre<\/h2>\n        <p class=\"wa-subtitle\">Udfyld kundeoplysninger, fasts\u00e6t antal og pris, og book kalenderen.<\/p>\n    <\/div>\n    \n    <div class=\"wa-row\">\n        <div><label class=\"wa-label\">Fornavn*<\/label><input type=\"text\" id=\"wa-firstname\" placeholder=\"Kundens fornavn\"><\/div>\n        <div><label class=\"wa-label\">Efternavn*<\/label><input type=\"text\" id=\"wa-lastname\" placeholder=\"Kundens efternavn\"><\/div>\n    <\/div>\n    <div class=\"wa-row\">\n        <div><label class=\"wa-label\">Telefon*<\/label><input type=\"tel\" id=\"wa-phone\" placeholder=\"+45 00 00 00 00\"><\/div>\n        <div><label class=\"wa-label\">E-mail*<\/label><input type=\"email\" id=\"wa-email\" placeholder=\"Kundens e-mail\"><\/div>\n    <\/div>\n    <div class=\"wa-field-group autocomplete-container\">\n        <label class=\"wa-label\">Adresse (Udfylder automatisk postnr)*<\/label>\n        <input type=\"text\" id=\"wa-address\" placeholder=\"S\u00f8g efter adresse...\" autocomplete=\"off\">\n        <ul id=\"wa-dawa-dropdown\"><\/ul>\n    <\/div>\n\n    <div id=\"wa-step-details\" style=\"display:none;\">\n        <div id=\"wa-area-badge\"><\/div>\n        <div class=\"wa-row\">\n            <div><label class=\"wa-label\">V\u00e6lg Dato*<\/label><select id=\"wa-date-select\" onchange=\"waLoadSlots()\"><\/select><\/div>\n            <div><label class=\"wa-label\">V\u00e6lg Tidsrum*<\/label><select id=\"wa-slot-select\"><option value=\"\">V\u00e6lg en dato f\u00f8rst...<\/option><\/select><\/div>\n        <\/div>\n\n        <label class=\"wa-label\">Produkter & Messepriser<\/label>\n        <div class=\"wa-pos-grid\">\n            <div class=\"wa-pos-row wa-pos-header\">\n                <div>Produkt<\/div><div>Antal<\/div><div>Stykpris (kr.)<\/div>\n            <\/div>\n            \n            <div class=\"wa-pos-row\">\n                <div class=\"wa-pos-name\">Smartl\u00e5s inkl. montering<\/div>\n                <div><input type=\"number\" id=\"wa-lock-qty\" class=\"wa-pos-input\" value=\"1\" min=\"1\" oninput=\"waCalcTotal()\"><\/div>\n                <div><input type=\"number\" id=\"wa-lock-price\" class=\"wa-pos-input\" value=\"3495\" step=\"1\" oninput=\"waCalcTotal()\"><\/div>\n            <\/div>\n            <div class=\"wa-pos-row\" style=\"margin-bottom:0; border:none; padding:0;\">\n                <div class=\"wa-pos-name\">Gateway<\/div>\n                <div><input type=\"number\" id=\"wa-gw-qty\" class=\"wa-pos-input\" value=\"0\" min=\"0\" oninput=\"waCalcTotal()\"><\/div>\n                <div><input type=\"number\" id=\"wa-gw-price\" class=\"wa-pos-input\" value=\"1000\" step=\"1\" oninput=\"waCalcTotal()\"><\/div>\n            <\/div>\n\n            <div class=\"wa-price-box\">\n                <span class=\"wa-price-label\">Samlet Pris:<\/span>\n                <span class=\"wa-price-value\"><span id=\"wa-total-val\">3.495<\/span>,-<\/span>\n            <\/div>\n        <\/div>\n\n        <div class=\"wa-field-group\">\n            <label class=\"wa-label\">Interne Noter \/ Besked til mont\u00f8r<\/label>\n            <textarea id=\"wa-comment\" placeholder=\"F.eks. kode til opgang, aftale om n\u00f8gle...\" rows=\"3\"><\/textarea>\n        <\/div>\n\n        <label class=\"wa-info-check\" id=\"lbl-backplate-info\">\n            <input type=\"checkbox\" id=\"wa-backplate-info\">\n            <span>Jeg bekr\u00e6fter, at kunden er informeret om evt. behov for et s\u00e6t bagplader.<\/span>\n        <\/label>\n\n        <button type=\"button\" class=\"wa-submit-btn\" onclick=\"waFinalSubmit()\">Opret & Bekr\u00e6ft Ordre<\/button>\n    <\/div>\n<\/div>\n\n<script>\nlet selectedZip = \"\"; let waDawaTimer;\n\nfunction waCalcTotal() {\n    let total = \n        (parseInt(jQuery('#wa-lock-qty').val()) || 0) * (parseFloat(jQuery('#wa-lock-price').val()) || 0) +\n        (parseInt(jQuery('#wa-gw-qty').val()) || 0) * (parseFloat(jQuery('#wa-gw-price').val()) || 0);\n    jQuery('#wa-total-val').text(total.toLocaleString('da-DK'));\n}\n\njQuery(document).ready(function($) {\n    $('#wa-form-card input, #wa-form-card select').on('input change', function() { $(this).removeClass('wa-input-error'); });\n    \n    $('#wa-backplate-info').on('change', function() {\n        if($(this).is(':checked')) { $('#lbl-backplate-info').css('border-color', '#ffe082').css('background', '#fff8e1'); }\n    });\n\n    $('#wa-address').on('input', function() {\n        let query = $(this).val(); let dropdown = $('#wa-dawa-dropdown');\n        if (query.length < 2) { dropdown.hide(); return; }\n        clearTimeout(waDawaTimer);\n        waDawaTimer = setTimeout(function() {\n            $.getJSON('https:\/\/api.dataforsyningen.dk\/adresser\/autocomplete', { q: query }, function(data) {\n                dropdown.empty();\n                if (data.length > 0) {\n                    data.forEach(function(item) {\n                        let li = $('<li class=\"dawa-autocomplete-suggestion\"><\/li>').text(item.tekst);\n                        li.on('click', function() {\n                            $('#wa-address').val(item.tekst).removeClass('wa-input-error'); dropdown.hide();\n                            if(item.adresse && item.adresse.postnr) { selectedZip = item.adresse.postnr; waLoadAvailableDates(selectedZip); }\n                        }); dropdown.append(li);\n                    }); dropdown.show();\n                } else { dropdown.hide(); }\n            });\n        }, 300);\n    });\n    $(document).on('click', function(e) { if (!$(e.target).closest('.autocomplete-container').length) $('#wa-dawa-dropdown').hide(); });\n});\n\nfunction waLoadAvailableDates(zip) {\n    jQuery.post('\/wp-admin\/admin-ajax.php', { action: 'check_wa_dates', zip: zip }, function(res) {\n        if(res.success) {\n            let select = jQuery('#wa-date-select').empty().append(new Option(\"V\u00e6lg en dato...\", \"\"));\n            res.data.dates.forEach(d => {\n                let opt = new Option(d.text, d.val); opt.setAttribute('data-setting-id', d.setting_id); select.append(opt);\n            });\n            jQuery('#wa-area-badge').html(\"\ud83d\udccd D\u00e6kker omr\u00e5de: <strong>\" + res.data.region + \"<\/strong>\").fadeIn();\n            jQuery('#wa-step-details').fadeIn();\n        } else { alert(\"Vi har pt. ingen ledige ruter i dit omr\u00e5de (\" + zip + \").\"); jQuery('#wa-step-details').hide(); }\n    });\n}\n\nfunction waLoadSlots() {\n    let dateInput = jQuery('#wa-date-select'); let dateVal = dateInput.val(); let settingId = dateInput.find('option:selected').attr('data-setting-id');\n    let slotSelect = jQuery('#wa-slot-select').empty().append(new Option(\"Henter tider...\", \"\"));\n    if(!dateVal) { slotSelect.empty().append(new Option(\"V\u00e6lg en dato f\u00f8rst...\", \"\")); return; }\n    jQuery.post('\/wp-admin\/admin-ajax.php', { action: 'get_wa_slots', date: dateVal, setting_id: settingId }, function(res) {\n        slotSelect.empty().append(new Option(\"V\u00e6lg et tidspunkt...\", \"\"));\n        if(res.success) {\n            res.data.forEach(s => { let opt = new Option(s.time + (s.full ? ' (Fuld)' : ''), s.time); if(s.full) opt.disabled = true; slotSelect.append(opt); });\n            slotSelect.append(new Option(\"\u00d8nsket tid (noter i besked)\", \"\u00d8nsket tid\"));\n        }\n    });\n}\n\nfunction waFinalSubmit() {\n    let $ = jQuery;\n    let firstName = $('#wa-firstname').val().trim(); let lastName  = $('#wa-lastname').val().trim();\n    let email = $('#wa-email').val().trim(); let phone = $('#wa-phone').val().trim();\n    let address = $('#wa-address').val().trim(); let date = $('#wa-date-select').val(); let slot = $('#wa-slot-select').val();\n    let infoChecked = $('#wa-backplate-info').is(':checked');\n    let hasError = false;\n\n    $('.wa-input-error').removeClass('wa-input-error');\n    if(!firstName) { $('#wa-firstname').addClass('wa-input-error'); hasError = true; }\n    if(!lastName)  { $('#wa-lastname').addClass('wa-input-error'); hasError = true; }\n    if(!email)     { $('#wa-email').addClass('wa-input-error'); hasError = true; }\n    if(!phone)     { $('#wa-phone').addClass('wa-input-error'); hasError = true; }\n    if(!address || !selectedZip) { $('#wa-address').addClass('wa-input-error'); hasError = true; }\n    if($('#wa-step-details').is(':visible')) {\n        if(!date) { $('#wa-date-select').addClass('wa-input-error'); hasError = true; }\n        if(!slot) { $('#wa-slot-select').addClass('wa-input-error'); hasError = true; }\n        if(!infoChecked) { $('#lbl-backplate-info').css('border-color', '#d63638').css('background', '#fdf2f2'); hasError = true; }\n    } else if (hasError === false) {\n        $('#wa-address').addClass('wa-input-error'); alert(\"V\u00e6lg adresse fra rullelisten.\"); return;\n    }\n    \n    if(hasError) { \n        if(!infoChecked && date) alert(\"Hov! Du skal bekr\u00e6fte, at kunden er informeret om evt. behov for et s\u00e6t bagplader.\");\n        else alert(\"Udfyld venligst alle p\u00e5kr\u00e6vede felter.\"); \n        return; \n    }\n\n    let total = \n        (parseInt($('#wa-lock-qty').val()) || 0) * (parseFloat($('#wa-lock-price').val()) || 0) +\n        (parseInt($('#wa-gw-qty').val()) || 0) * (parseFloat($('#wa-gw-price').val()) || 0);\n\n    let btn = $('.wa-submit-btn'); let originalText = btn.text();\n    btn.text(\"Sender booking...\").prop('disabled', true);\n\n    let data = {\n        action: 'submit_wa_booking', name: firstName + \" \" + lastName, email: email, phone: phone, address: address, zip: selectedZip,\n        date: date, slot: slot, comment: $('#wa-comment').val(),\n        lock_qty: $('#wa-lock-qty').val(), lock_price: $('#wa-lock-price').val(),\n        gw_qty: $('#wa-gw-qty').val(), gw_price: $('#wa-gw-price').val(),\n        total_price: total,\n        backplate_info: infoChecked ? 1 : 0\n    };\n\n    $.post('\/wp-admin\/admin-ajax.php', data, function(res) {\n        if(res.success) { alert(\"Mange tak! Ordren er oprettet i systemet og e-mails er sendt.\"); location.reload(); } \n        else { alert(\"Der skete en fejl i databasen: \" + res.data); btn.text(originalText).prop('disabled', false); }\n    }).fail(function() { alert(\"Der kunne ikke oprettes forbindelse til serveren.\"); btn.text(originalText).prop('disabled', false); });\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Opret Montering &#038; Ordre Udfyld kundeoplysninger, fasts\u00e6t antal og pris, og book kalenderen. Fornavn* Efternavn* Telefon* E-mail* Adresse (Udfylder automatisk postnr)* V\u00e6lg Dato* V\u00e6lg Tidsrum*V\u00e6lg en dato f\u00f8rst&#8230; Produkter &#038; Messepriser ProduktAntalStykpris (kr.) Smartl\u00e5s inkl. montering Gateway Samlet Pris: 3.495,- Interne Noter \/ Besked til mont\u00f8r Jeg bekr\u00e6fter, at kunden er informeret om evt. behov [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":94,"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":118,"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions\/118"}],"wp:attachment":[{"href":"https:\/\/messe.weaccess.dk\/index.php\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}