{"id":541,"date":"2026-06-26T23:33:22","date_gmt":"2026-06-27T02:33:22","guid":{"rendered":"https:\/\/www.cpd-municipal.com.br\/?page_id=541"},"modified":"2026-06-27T20:55:19","modified_gmt":"2026-06-27T23:55:19","slug":"pelo-formulario","status":"publish","type":"page","link":"https:\/\/www.cpd-municipal.com.br\/?page_id=541","title":{"rendered":"Pelo Formul\u00e1rio"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"541\" class=\"elementor elementor-541\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea894b1 e-flex e-con-boxed e-con e-parent\" data-id=\"ea894b1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-df6fa71 e-flex e-con-boxed e-con e-parent\" data-id=\"df6fa71\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b649071 elementor-widget elementor-widget-text-editor\" data-id=\"b649071\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!--ScriptorStartFragment-->\n    <section class=\"container my-5 cpd-contato-section\">\n        <div class=\"row justify-content-center\">\n            <div class=\"col-lg-8\">\n\n                <div class=\"card shadow-sm border-0 rounded-4\">\n                    <div class=\"card-body p-4 p-md-5\">\n\n                        <h2 class=\"mb-3 text-center\">Entre em contato<\/h2>\n\n                        <p class=\"text-center text-muted mb-4\">\n                            Preencha o formul\u00e1rio abaixo e a nossa equipa entrar\u00e1 em contato.\n                        <\/p>\n\n                        <div id=\"cpd-form-alert\" class=\"alert d-none\" role=\"alert\"><\/div>\n\n                        <form id=\"cpd-form-contato\" method=\"post\" novalidate>\n\n                            <input type=\"hidden\" name=\"action\" value=\"cpd_enviar_formulario_contato\">\n                            <input type=\"hidden\" name=\"security\" value=\"a780ba97ab\">\n                            <input type=\"hidden\" name=\"recaptcha_token\" id=\"cpd_recaptcha_token\" value=\"\">\n\n                            <!-- Campo anti-spam invis\u00edvel -->\n                            <div style=\"display:none !important;\">\n                                <label for=\"website\">Website<\/label>\n                                <input type=\"text\" id=\"website\" name=\"website\" autocomplete=\"off\">\n                            <\/div>\n\n                            <div class=\"mb-3\">\n                                <label for=\"nome\" class=\"form-label\">Nome completo<\/label>\n                                <input\n                                    type=\"text\"\n                                    class=\"form-control\"\n                                    id=\"nome\"\n                                    name=\"nome\"\n                                    placeholder=\"Digite o seu nome completo\"\n                                    required\n                                    minlength=\"3\"\n                                >\n                                <div class=\"invalid-feedback\">\n                                    Informe o seu nome completo.\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"mb-3\">\n                                <label for=\"email\" class=\"form-label\">E-mail<\/label>\n                                <input\n                                    type=\"email\"\n                                    class=\"form-control\"\n                                    id=\"email\"\n                                    name=\"email\"\n                                    placeholder=\"Digite o seu e-mail\"\n                                    required\n                                >\n                                <div class=\"invalid-feedback\">\n                                    Informe um e-mail v\u00e1lido.\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"mb-3\">\n                                <label for=\"assunto\" class=\"form-label\">Assunto<\/label>\n                                <select class=\"form-select\" id=\"assunto\" name=\"assunto\" required>\n                                    <option value=\"\" selected disabled>Selecione um assunto<\/option>\n                                    <option value=\"Contrato\">Contrato<\/option>\n                                    <option value=\"Suporte\">Suporte<\/option>\n                                    <option value=\"Produtos\">Produtos<\/option>\n                                    <option value=\"Servi\u00e7os\">Servi\u00e7os<\/option>\n                                    <option value=\"Outro assunto\">Outro assunto<\/option>\n                                <\/select>\n                                <div class=\"invalid-feedback\">\n                                    Seleccione um assunto.\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"mb-4\">\n                                <label for=\"mensagem\" class=\"form-label\">Mensagem<\/label>\n                                <textarea\n                                    class=\"form-control\"\n                                    id=\"mensagem\"\n                                    name=\"mensagem\"\n                                    rows=\"6\"\n                                    placeholder=\"Escreva a sua mensagem aqui...\"\n                                    required\n                                    minlength=\"10\"\n                                ><\/textarea>\n                                <div class=\"invalid-feedback\">\n                                    Escreva uma mensagem com pelo menos 10 caracteres.\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"d-flex flex-column flex-md-row gap-2 justify-content-between\">\n                                <button type=\"reset\" class=\"btn btn-outline-secondary px-4\">\n                                    Limpar\n                                <\/button>\n\n                                <button type=\"submit\" id=\"cpd-btn-enviar\" class=\"btn btn-primary px-4\">\n                                    Enviar mensagem\n                                <\/button>\n                            <\/div>\n\n                            <p class=\"small text-muted mt-3 mb-0\">\n                                Os dados enviados ser\u00e3o utilizados apenas para responder ao seu contato.\n                            <\/p>\n\n                        <\/form>\n\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n    <\/section>\n\n    \n    <script>\n        document.addEventListener('DOMContentLoaded', function () {\n\n            const form = document.getElementById('cpd-form-contato');\n\n            if (!form) {\n                return;\n            }\n\n            const alertBox = document.getElementById('cpd-form-alert');\n            const btnEnviar = document.getElementById('cpd-btn-enviar');\n\n            const ajaxUrl = 'https:\/\/www.cpd-municipal.com.br\/wp-admin\/admin-ajax.php';\n            const recaptchaSiteKey = 'SUA_SITE_KEY_AQUI';\n\n            function mostrarAlerta(tipo, mensagem) {\n                alertBox.className = 'alert alert-' + tipo;\n                alertBox.textContent = mensagem;\n                alertBox.classList.remove('d-none');\n            }\n\n            function limparAlerta() {\n                alertBox.className = 'alert d-none';\n                alertBox.textContent = '';\n            }\n\n            form.addEventListener('submit', async function (event) {\n                event.preventDefault();\n                event.stopPropagation();\n\n                limparAlerta();\n\n                if (!form.checkValidity()) {\n                    form.classList.add('was-validated');\n                    mostrarAlerta(\n                        'warning',\n                        'Por favor, preencha correctamente todos os campos obrigat\u00f3rios.'\n                    );\n                    return;\n                }\n\n                btnEnviar.disabled = true;\n                btnEnviar.textContent = 'A enviar...';\n\n                try {\n\n                    \/\/ reCAPTCHA opcional\n                    if (\n                        recaptchaSiteKey &&\n                        recaptchaSiteKey !== 'SUA_SITE_KEY_AQUI' &&\n                        typeof grecaptcha !== 'undefined'\n                    ) {\n                        const token = await grecaptcha.execute(recaptchaSiteKey, {\n                            action: 'contact'\n                        });\n\n                        document.getElementById('cpd_recaptcha_token').value = token;\n                    }\n\n                    const formData = new FormData(form);\n\n                    const response = await fetch(ajaxUrl, {\n                        method: 'POST',\n                        body: formData,\n                        credentials: 'same-origin'\n                    });\n\n                    const text = await response.text();\n\n                    let result;\n\n                    try {\n                        result = JSON.parse(text);\n                    } catch (e) {\n                        console.error('Resposta n\u00e3o JSON:', text);\n                        mostrarAlerta(\n                            'danger',\n                            'Erro inesperado no servidor. Verifique o console ou o log do WordPress.'\n                        );\n                        return;\n                    }\n\n                    if (result.success) {\n                        mostrarAlerta(\n                            'success',\n                            result.data.message || 'Mensagem enviada com sucesso.'\n                        );\n\n                        form.reset();\n                        form.classList.remove('was-validated');\n                    } else {\n                        mostrarAlerta(\n                            'danger',\n                            result.data.message || 'N\u00e3o foi poss\u00edvel enviar a mensagem.'\n                        );\n                    }\n\n                } catch (error) {\n                    console.error(error);\n\n                    mostrarAlerta(\n                        'danger',\n                        'Ocorreu um erro inesperado. Tente novamente.'\n                    );\n                } finally {\n                    btnEnviar.disabled = false;\n                    btnEnviar.textContent = 'Enviar mensagem';\n                }\n            });\n        });\n    <\/script>\n\n    <style>\n        .cpd-contato-section .card {\n            background: #ffffff;\n        }\n\n        .cpd-contato-section .form-control,\n        .cpd-contato-section .form-select {\n            border-radius: 0.75rem;\n            padding: 0.75rem 1rem;\n        }\n\n        .cpd-contato-section .btn {\n            border-radius: 0.75rem;\n            padding-top: 0.7rem;\n            padding-bottom: 0.7rem;\n            font-weight: 600;\n        }\n\n        .cpd-contato-section .alert {\n            border-radius: 0.75rem;\n        }\n    <\/style>\n\n    <!--ScriptorEndFragment--><\/p>\t\t\t\t\t\t\t\t<\/div>\n\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":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-541","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/pages\/541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=541"}],"version-history":[{"count":7,"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/pages\/541\/revisions"}],"predecessor-version":[{"id":765,"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=\/wp\/v2\/pages\/541\/revisions\/765"}],"wp:attachment":[{"href":"https:\/\/www.cpd-municipal.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}