{"id":13,"date":"2026-05-07T14:48:03","date_gmt":"2026-05-07T14:48:03","guid":{"rendered":"https:\/\/donoghoe.com\/?page_id=13"},"modified":"2026-05-07T14:50:02","modified_gmt":"2026-05-07T14:50:02","slug":"contact-us","status":"publish","type":"page","link":"https:\/\/donoghoe.com\/?page_id=13","title":{"rendered":"Contact us"},"content":{"rendered":"\n    <style>\n        .sb-contact-form-wrap {\n            max-width: 640px;\n            margin: 30px auto;\n            padding: 24px;\n            background: #fff;\n            border-radius: 12px;\n            box-shadow: 0 8px 30px rgba(0,0,0,0.08);\n            font-family: inherit;\n        }\n\n        .sb-contact-form-wrap h3 {\n            margin-top: 0;\n            margin-bottom: 18px;\n            font-size: 24px;\n        }\n\n        .sb-contact-form-group {\n            margin-bottom: 16px;\n        }\n\n        .sb-contact-form-group label {\n            display: block;\n            margin-bottom: 6px;\n            font-weight: 600;\n        }\n\n        .sb-contact-form-group input,\n        .sb-contact-form-group textarea {\n            width: 100%;\n            padding: 12px 14px;\n            border: 1px solid #d6d6d6;\n            border-radius: 8px;\n            font-size: 16px;\n            box-sizing: border-box;\n        }\n\n        .sb-contact-form-group textarea {\n            min-height: 140px;\n            resize: vertical;\n        }\n\n        .sb-contact-form button {\n            width: 100%;\n            padding: 13px 18px;\n            border: 0;\n            border-radius: 8px;\n            background: #111;\n            color: #fff;\n            font-size: 16px;\n            font-weight: 700;\n            cursor: pointer;\n        }\n\n        .sb-contact-form button:disabled {\n            opacity: 0.6;\n            cursor: not-allowed;\n        }\n\n        .sb-contact-message {\n            display: none;\n            margin-top: 16px;\n            padding: 12px 14px;\n            border-radius: 8px;\n            font-weight: 600;\n        }\n\n        .sb-contact-message.success {\n            display: block;\n            background: #e7f8ed;\n            color: #126b32;\n        }\n\n        .sb-contact-message.error {\n            display: block;\n            background: #fdeaea;\n            color: #9f1c1c;\n        }\n\n        @media (max-width: 600px) {\n            .sb-contact-form-wrap {\n                margin: 18px;\n                padding: 18px;\n            }\n        }\n    <\/style>\n\n    <div class=\"sb-contact-form-wrap\">\n        <h3>Contact Us<\/h3>\n\n        <form class=\"sb-contact-form\" id=\"sb-contact-form-872127\">\n            <input type=\"hidden\" name=\"action\" value=\"sb_send_contact_form\">\n            <input type=\"hidden\" name=\"nonce\" value=\"bfc533419b\">\n\n            <div class=\"sb-contact-form-group\">\n                <label>Name<\/label>\n                <input type=\"text\" name=\"name\" required>\n            <\/div>\n\n            <div class=\"sb-contact-form-group\">\n                <label>Email<\/label>\n                <input type=\"email\" name=\"email\" required>\n            <\/div>\n\n            <div class=\"sb-contact-form-group\">\n                <label>Subject<\/label>\n                <input type=\"text\" name=\"subject\" required>\n            <\/div>\n\n            <div class=\"sb-contact-form-group\">\n                <label>Message<\/label>\n                <textarea name=\"message\" required><\/textarea>\n            <\/div>\n\n            <div class=\"sb-contact-form-group\">\n                <div id=\"sb-recaptcha-924306\"><\/div>\n            <\/div>\n\n            <button type=\"submit\">Send Message<\/button>\n\n            <div id=\"sb-contact-message-414800\" class=\"sb-contact-message\"><\/div>\n        <\/form>\n    <\/div>\n\n    <script>\n        window.sbRecaptchaWidgets = window.sbRecaptchaWidgets || [];\n\n        window.sbRecaptchaOnload = function () {\n            window.sbRecaptchaWidgets.forEach(function (item) {\n                if (item.widgetId === null && document.getElementById(item.captchaId)) {\n                    item.widgetId = grecaptcha.render(item.captchaId, {\n                        sitekey: item.siteKey\n                    });\n                }\n            });\n        };\n\n        window.sbRecaptchaWidgets.push({\n            formId: \"sb-contact-form-872127\",\n            captchaId: \"sb-recaptcha-924306\",\n            messageId: \"sb-contact-message-414800\",\n            siteKey: \"6LfUJd4sAAAAAKay1k6m0ZIH5yhyNvpSj2zUiU74\",\n            widgetId: null\n        });\n\n        document.addEventListener(\"DOMContentLoaded\", function () {\n            const config = window.sbRecaptchaWidgets.find(item => item.formId === \"sb-contact-form-872127\");\n            const form = document.getElementById(config.formId);\n            const messageBox = document.getElementById(config.messageId);\n            const button = form.querySelector(\"button\");\n\n            form.addEventListener(\"submit\", function (e) {\n                e.preventDefault();\n\n                messageBox.className = \"sb-contact-message\";\n                messageBox.textContent = \"\";\n\n                if (typeof grecaptcha === \"undefined\" || config.widgetId === null) {\n                    messageBox.className = \"sb-contact-message error\";\n                    messageBox.textContent = \"reCAPTCHA is not ready. Please wait and try again.\";\n                    return;\n                }\n\n                const recaptchaResponse = grecaptcha.getResponse(config.widgetId);\n\n                if (!recaptchaResponse) {\n                    messageBox.className = \"sb-contact-message error\";\n                    messageBox.textContent = \"Please complete the reCAPTCHA.\";\n                    return;\n                }\n\n                button.disabled = true;\n                button.textContent = \"Sending...\";\n\n                const formData = new FormData(form);\n                formData.set(\"g-recaptcha-response\", recaptchaResponse);\n\n                fetch(\"https:\/\/donoghoe.com\/wp-admin\/admin-ajax.php\", {\n                    method: \"POST\",\n                    body: formData,\n                    credentials: \"same-origin\"\n                })\n                .then(response => response.json())\n                .then(data => {\n                    messageBox.className = \"sb-contact-message \" + (data.success ? \"success\" : \"error\");\n                    messageBox.textContent = data.data.message;\n\n                    if (data.success) {\n                        form.reset();\n                        grecaptcha.reset(config.widgetId);\n                    }\n                })\n                .catch(() => {\n                    messageBox.className = \"sb-contact-message error\";\n                    messageBox.textContent = \"Something went wrong. Please try again.\";\n                })\n                .finally(() => {\n                    button.disabled = false;\n                    button.textContent = \"Send Message\";\n                });\n            });\n        });\n    <\/script>\n\n    <script src=\"https:\/\/www.google.com\/recaptcha\/api.js?onload=sbRecaptchaOnload&render=explicit\" async defer><\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-13","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/pages\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/donoghoe.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13"}],"version-history":[{"count":3,"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/pages\/13\/revisions"}],"predecessor-version":[{"id":16,"href":"https:\/\/donoghoe.com\/index.php?rest_route=\/wp\/v2\/pages\/13\/revisions\/16"}],"wp:attachment":[{"href":"https:\/\/donoghoe.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}