{"id":318,"date":"2026-03-02T11:07:30","date_gmt":"2026-03-02T11:07:30","guid":{"rendered":"https:\/\/eco-conso-habitat-interface-tap.fr\/?page_id=318"},"modified":"2026-04-07T13:08:58","modified_gmt":"2026-04-07T13:08:58","slug":"confirmation-rdv","status":"publish","type":"page","link":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/confirmation-rdv\/","title":{"rendered":"Confirmation RDV"},"content":{"rendered":"\n<div id=\"confirmation-app\" class=\"rdv-container\">\n<div class=\"rdv-card\" id=\"main-card\">\n    <div class=\"rdv-header-icon\">\ud83d\udcc5<\/div>\n    <h2>Confirmation<\/h2>\n    <p class=\"rdv-subtitle\">Bonjour, merci de confirmer votre pr\u00e9sence demain \u00e0 <strong id=\"display-hour\">&#8230;<\/strong> pour le passage de notre technicien.<\/p>\n    \n    <div class=\"btn-group\" id=\"group-principal\">\n        <button id=\"btnOui\" class=\"btn btn-confirm\">\u2705 OUI, je confirme<\/button>\n        <button id=\"btnAbsent\" class=\"btn btn-cancel\">\u274c Je ne serai pas pr\u00e9sent<\/button>\n    <\/div>\n\n    <div class=\"btn-group hidden\" id=\"group-absent\">\n        <p class=\"rdv-subtitle\" style=\"margin-bottom:16px;\">Que souhaitez-vous faire ?<\/p>\n        <button id=\"btnReprogrammer\" class=\"btn btn-reschedule\">\ud83d\udcc5 Reprogrammer le RDV<\/button>\n        <button id=\"btnAnnuler\" class=\"btn btn-danger\">\ud83d\uddd1\ufe0f Annuler le RDV<\/button>\n    <\/div>\n<\/div>\n<\/div>\n\n<div id=\"overlay\" class=\"overlay hidden\">\n    <div class=\"loader-box\">\n        <div class=\"spinner\"><\/div>\n        <p id=\"overlayText\">Mise \u00e0 jour en cours&#8230;<\/p>\n    <\/div>\n<\/div>\n\n<style>\n#wrapper, #container, .site-header, .site-footer, .page-header, \n#masthead, #colophon, .breadcrumb, .entry-title, .header-post-title-container {\n    display: none !important;\n    height: 0 !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    visibility: hidden !important;\n}\n\n#confirmation-app {\n    position: fixed !important;\n    top: 0 !important;\n    left: 0 !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    background: #f8fafc !important;\n    z-index: 999999 !important;\n    display: flex !important;\n    align-items: center;\n    justify-content: center;\n    visibility: visible !important;\n}\n\n.rdv-card {\n    width: 90%;\n    max-width: 380px;\n    background: white;\n    padding: 35px 25px;\n    border-radius: 24px;\n    text-align: center;\n    box-shadow: 0 15px 35px rgba(0,0,0,0.1);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n}\n\n.rdv-header-icon { font-size: 45px; margin-bottom: 15px; }\n.rdv-card h2 { font-size: 24px; color: #1a2e1a; margin: 0 0 10px 0; }\n.rdv-subtitle { font-size: 16px; color: #64748b; margin-bottom: 30px; line-height: 1.4; }\n\n.btn {\n    display: block; width: 100%; padding: 18px; border: none;\n    border-radius: 15px; font-size: 16px; font-weight: 700;\n    margin-bottom: 12px; cursor: pointer; transition: transform 0.1s;\n}\n.btn:active { transform: scale(0.95); }\n.btn-confirm    { background: #8ab935; color: white; }\n.btn-cancel     { background: #f1f5f9; color: #64748b; }\n.btn-danger     { background: #ef4444; color: white; }\n.btn-reschedule { background: #f59e0b; color: white; }\n\n.edgar-contact {\n    margin-top: 20px;\n    background: #fffbeb;\n    border: 1px solid #fcd34d;\n    border-radius: 14px;\n    padding: 14px;\n    font-size: 15px;\n    color: #92400e;\n}\n.edgar-contact a {\n    display: block;\n    margin-top: 10px;\n    background: #f59e0b;\n    color: white;\n    padding: 14px;\n    border-radius: 12px;\n    font-weight: 700;\n    text-decoration: none;\n    font-size: 16px;\n}\n\n.overlay {\n    position: fixed; top: 0; left: 0; width: 100%; height: 100%;\n    background: rgba(255,255,255,0.9);\n    display: flex; justify-content: center; align-items: center;\n    z-index: 1000000;\n}\n.hidden { display: none !important; }\n.spinner {\n    width: 40px; height: 40px; border: 4px solid #f3f3f3;\n    border-top: 4px solid #8ab935; border-radius: 50%;\n    animation: spin 1s linear infinite; margin: 0 auto 15px;\n}\n@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n<\/style>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    const urlParams    = new URLSearchParams(window.location.search);\n    const heureRdv     = urlParams.get('h');\n    const phone        = urlParams.get('id');\n\n    const displayHour  = document.getElementById('display-hour');\n    const btnOui       = document.getElementById('btnOui');\n    const btnAbsent    = document.getElementById('btnAbsent');\n    const btnAnnuler   = document.getElementById('btnAnnuler');\n    const btnReprogrammer = document.getElementById('btnReprogrammer');\n    const groupPrincipal  = document.getElementById('group-principal');\n    const groupAbsent     = document.getElementById('group-absent');\n    const overlay      = document.getElementById('overlay');\n    const overlayText  = document.getElementById('overlayText');\n    const mainCard     = document.getElementById('main-card');\n\n    if (heureRdv) {\n        displayHour.innerText = heureRdv.replace(':', 'h');\n    } else {\n        displayHour.innerText = \"l'heure convenue\";\n    }\n\n    const scriptURL = \"https:\/\/script.google.com\/macros\/s\/AKfycbwLVgO4f-59bnbgbslIQmN1x-861ecy3who4xR8py1_yfzpYH1zSPQpIVi3jvxV7PfUmQ\/exec\";\n\n    function sendResponse(status) {\n        if (!phone) {\n            alert(\"Erreur : Aucun num\u00e9ro trouv\u00e9 dans l'URL.\");\n            return;\n        }\n\n        overlay.classList.remove('hidden');\n        overlayText.innerText = \"Mise \u00e0 jour de votre rendez-vous...\";\n\n        const finalURL = `${scriptURL}?phone=${phone}&response=${status}`;\n\n        fetch(finalURL, { mode: 'no-cors' })\n            .then(() => {\n                overlay.classList.add('hidden');\n\n                if (status === 'oui') {\n                    mainCard.innerHTML = `\n                        <div class=\"rdv-header-icon\">\u2705<\/div>\n                        <h2>C'est not\u00e9 !<\/h2>\n                        <p class=\"rdv-subtitle\">Merci d'avoir confirm\u00e9 votre pr\u00e9sence pour demain \u00e0 <strong>${heureRdv || ''}<\/strong>.<\/p>\n                    `;\n                } else if (status === 'non') {\n                    mainCard.innerHTML = `\n                        <div class=\"rdv-header-icon\">\ud83d\udc4b<\/div>\n                        <h2>C'est pris en compte<\/h2>\n                        <p class=\"rdv-subtitle\">Votre annulation a bien \u00e9t\u00e9 enregistr\u00e9e dans notre agenda.<\/p>\n                    `;\n                } else if (status === 'reprogrammer') {\n                    mainCard.innerHTML = `\n                        <div class=\"rdv-header-icon\">\ud83d\udcde<\/div>\n                        <h2>On vous rappelle !<\/h2>\n                        <p class=\"rdv-subtitle\">Le service de planification va vous contacter pour fixer un nouveau cr\u00e9neau.<\/p>\n                        <div class=\"edgar-contact\">\n                            Vous pouvez aussi l'appeler directement au :\n                            <a href=\"tel:+33787358016\">\ud83d\udcde 07 87 35 80 16<\/a>\n                        <\/div>\n                    `;\n                }\n            })\n            .catch(() => {\n                overlayText.innerText = \"Erreur de connexion. R\u00e9essayez.\";\n                setTimeout(() => { overlay.classList.add('hidden'); }, 2000);\n            });\n    }\n\n    \/\/ Bouton principal OUI\n    btnOui.onclick = () => sendResponse('oui');\n\n    \/\/ Bouton \"Je ne serai pas pr\u00e9sent\" \u2192 affiche les 2 sous-boutons\n    btnAbsent.onclick = () => {\n        groupPrincipal.classList.add('hidden');\n        groupAbsent.classList.remove('hidden');\n    };\n\n    \/\/ Sous-bouton Annuler\n    btnAnnuler.onclick = () => sendResponse('non');\n\n    \/\/ Sous-bouton Reprogrammer\n    btnReprogrammer.onclick = () => sendResponse('reprogrammer');\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcc5 Confirmation Bonjour, merci de confirmer votre pr\u00e9sence demain \u00e0 &#8230; pour le passage de notre technicien. \u2705 OUI, je confirme \u274c Je ne serai pas pr\u00e9sent Que souhaitez-vous faire ? \ud83d\udcc5 Reprogrammer le RDV \ud83d\uddd1\ufe0f Annuler le RDV Mise \u00e0 jour en cours&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"content-type":"","footnotes":""},"class_list":["post-318","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/pages\/318","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/comments?post=318"}],"version-history":[{"count":73,"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/pages\/318\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/pages\/318\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/eco-conso-habitat-interface-tap.fr\/index.php\/wp-json\/wp\/v2\/media?parent=318"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}