		<div data-elementor-type="wp-page" data-elementor-id="3183" class="elementor elementor-3183" data-elementor-post-type="page">
				{"id":3183,"date":"2024-09-03T14:38:00","date_gmt":"2024-09-03T14:38:00","guid":{"rendered":"https:\/\/secop.org.br\/2024\/?page_id=3183"},"modified":"2024-10-28T13:19:17","modified_gmt":"2024-10-28T13:19:17","slug":"certificados","status":"publish","type":"page","link":"https:\/\/secop.org.br\/2024\/certificados\/","title":{"rendered":"Certificados"},"content":{"rendered":"<div class=\"elementor-element elementor-element-bd0fb37 e-flex e-con-boxed e-con e-parent\" data-id=\"bd0fb37\" 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-0e88ae8 elementor-widget elementor-widget-shortcode\" data-id=\"0e88ae8\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t    <form id=\"custom-form\" style=\"display: flex; flex-direction: column; align-items: center; margin: 20px; padding: 20px; border: 2px solid transparent; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); background-color: #f9f9f9; border-image: linear-gradient(90deg, #103B61, #f2c200, #00ff00) 1;\">\r\n        <img decoding=\"async\" src=\"https:\/\/secop.org.br\/2024\/wp-content\/plugins\/certificado-eventos\/assets\/certificados\/logo.png\" alt=\"Logo SECOP 2024\" style=\"max-width: 150px; height: auto; margin-bottom: 20px;\">\r\n        <h2 style=\"color: #103B61; margin-bottom: 20px; text-align: center;\">Certificados SECOP<\/h2>\r\n        <input type=\"text\" id=\"emailInput\" placeholder=\"Digite o e-mail fornecido na inscri\u00e7\u00e3o\" \r\n               style=\"padding: 10px; border: 1px solid #ccc; border-radius: 4px; margin-bottom: 10px; width: 100%; max-width: 400px; box-sizing: border-box; text-align: center;\" \/>\r\n        <button id=\"checkEmailButton\" type=\"button\" style=\"padding: 10px 20px; border: none; border-radius: 4px; background-color: #103B61; color: #fff; cursor: pointer; font-size: 16px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;\">\r\n            <img decoding=\"async\" src=\"https:\/\/img.icons8.com\/material-outlined\/24\/ffffff\/search.png\" alt=\"Search Icon\" style=\"margin-right: 8px;\">\r\n            Buscar Certificado\r\n        <\/button>\r\n        <p id=\"resultMessage\" style=\"margin-top: 20px; color: #333; text-align: center;\"><\/p>\r\n        <div id=\"file-link\" style=\"text-align: center; margin-top: 20px;\"><\/div>\r\n    <\/form>\r\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\r\n    <script>\r\n        let emailList = [];\r\n\r\n        function isValidEmail(email) {\r\n            const emailPattern = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\r\n            return emailPattern.test(email);\r\n        }\r\n\r\n        function generateCertificate(name, userEmail) {\r\n            const { jsPDF } = window.jspdf;\r\n\r\n            const pdf = new jsPDF({\r\n                orientation: \"landscape\",\r\n                unit: \"px\",\r\n                format: [1095, 793]\r\n            });\r\n\r\n            const img = new Image();\r\n            img.src = 'https:\/\/secop.org.br\/2024\/wp-content\/plugins\/certificado-eventos\/assets\/certificados\/template.png';\r\n\r\n            img.onload = async function() {\r\n                pdf.addImage(img, 'PNG', 0, 0, 1095, 793);\r\n\r\n                pdf.setFont(\"Times\", \"normal\");\r\n                pdf.setFontSize(24);\r\n                pdf.text(\"CERTIFICAMOS QUE\", 547, 280, { align: \"center\" });\r\n\r\n                pdf.setFont(\"Times\", \"bold\");\r\n                pdf.setFontSize(32);\r\n                pdf.text(name.toUpperCase(), 547, 320, { align: \"center\" });\r\n\r\n                pdf.setFont(\"Times\", \"normal\");\r\n                pdf.setFontSize(24);\r\n                pdf.text(\"PARTICIPOU DO 51\u00ba SEMIN\u00c1RIO NACIONAL DE TIC PARA GEST\u00c3O P\u00daBLICA,\", 547, 360, { align: \"center\" });\r\n                pdf.text(\"NOS DIAS 08 E 09 DE AGOSTO DE 2024, NA QUALIDADE DE\", 547, 400, { align: \"center\" });\r\n\r\n                pdf.setFont(\"Times\", \"bold\");\r\n                pdf.text(\"CONGRESSISTA.\", 547, 440, { align: \"center\" });\r\n\r\n                pdf.setFont(\"Times\", \"normal\");\r\n                pdf.setFontSize(24);\r\n                pdf.text(\"CARGA HOR\u00c1RIA: 16 HORAS\", 547, 480, { align: \"center\" });\r\n\r\n                pdf.setFontSize(12);\r\n                pdf.setTextColor(100);\r\n\r\n                \/\/ Aqui fazemos uma requisi\u00e7\u00e3o AJAX para pegar o hash do e-mail\r\n                const response = await fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php?action=get_hash&email=' + encodeURIComponent(userEmail));\r\n                const data = await response.json();\r\n\r\n                if (data.success) {\r\n                    const hash = data.data.hash.toUpperCase();\r\n                    \/\/const url = document.querySelector('input[name=\"link_validador\"]').value + `?hash=${hash}`; \/\/ajustar depois\r\n\r\n                    \/\/const url = `http:\/\/localhost\/wordpress\/wordpress\/validar_certificado\/?hash=${hash}`; \/\/ Alterado para usar 'hash'\r\n                    const linkSite = 'https:\/\/secop.org.br\/2024\/validar_certificado\/';\r\n                    const url = `${linkSite}\/?hash=${hash}`; \/\/ Alterado para usar 'hash'\r\n                    \r\n                    \/\/ Adiciona o texto no PDF\r\n                    const textX = 1040; \/\/ Posi\u00e7\u00e3o X\r\n                    const textY = 780;  \/\/ Posi\u00e7\u00e3o Y\r\n\r\n                    \/\/ Adiciona o texto no PDF\r\n                    pdf.text(`Para validar, acesse secop.org.br ou clique no ID de verifica\u00e7\u00e3o. Seu c\u00f3digo \u00e9: ${hash}`, textX, textY, { align: \"right\" });\r\n\r\n                    \/\/ Calcula a largura do texto\r\n                    const textWidth = pdf.getTextWidth(`Para validar, clique no ID de Verifica\u00e7\u00e3o: seu c\u00f3digo \u00e9 ${hash}`);\r\n\r\n                    \/\/ Adiciona o link com a largura correta\r\n                    pdf.link(textX - 250, textY - 10, textWidth, 50, { url: url }); \/\/ Ajuste a posi\u00e7\u00e3o Y se necess\u00e1rio\r\n\r\n                    \/\/ Salva o PDF localmente\r\n                    const pdfOutput = pdf.output('blob');\r\n                    const fileName = `${hash}_certificado.pdf`;\r\n\r\n                    \/\/ Atualizar a data_hora no banco de dados\r\n                    await fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php?action=update_timestamp&hash=' + encodeURIComponent(hash));\r\n\r\n                    \/\/ Aqui voc\u00ea deve fazer uma chamada AJAX para enviar o PDF para o servidor\r\n                    const formData = new FormData();\r\n                    formData.append('file', pdfOutput, fileName);\r\n\r\n                    fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php', {\r\n                        method: 'POST',\r\n                        body: formData\r\n                    });\r\n\r\n                    \/\/ Salvar o PDF localmente (opcional)\r\n                    pdf.save(fileName);\r\n\r\n                    resetForm();\r\n                } else {\r\n                    console.error('Erro ao obter hash:', data);\r\n                    alert('Erro ao gerar o certificado. Tente novamente.');\r\n                }\r\n\r\n            };\r\n        }\r\n\r\n\r\n        function checkEmail() {\r\n            const emailInput = document.getElementById('emailInput').value.trim().toLowerCase();\r\n\r\n            const resultMessage = document.getElementById('resultMessage');\r\n            const fileLink = document.getElementById('file-link');\r\n\r\n            if (!isValidEmail(emailInput)) {\r\n                resultMessage.innerHTML = '<p>Por favor, digite um e-mail v\u00e1lido.<\/p>';\r\n                fileLink.innerHTML = '';\r\n                return;\r\n            }\r\n\r\n            fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php?action=check_email&email=' + encodeURIComponent(emailInput))\r\n                .then(response => response.json())\r\n                .then(data => {\r\n                    if (data.success && data.data.exists) {\r\n                        resultMessage.innerHTML = `\r\n                            <input type=\"text\" id=\"name\" name=\"name\" placeholder=\"Nome Completo\" required style=\"padding: 10px; border: 1px solid #ccc; border-radius: 4px; margin-bottom: 10px; width: 100%; max-width: 400px; box-sizing: border-box; text-align: center;\">\r\n                            <button id=\"generateCertificateButton\" type=\"button\" style=\"padding: 10px 20px; border: none; border-radius: 4px; background-color: #103B61; color: #fff; cursor: pointer; font-size: 16px; display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;\">\r\n                                <img decoding=\"async\" src=\"https:\/\/img.icons8.com\/material-outlined\/24\/ffffff\/certificate.png\" alt=\"Certificate Icon\" style=\"margin-right: 8px;\">\r\n                                Gerar Certificado\r\n                            <\/button>\r\n                        `;\r\n\r\n                        document.getElementById('generateCertificateButton').addEventListener('click', async function() {\r\n                            const name = document.getElementById('name').value.trim();\r\n                            if (name) {\r\n                                \/\/ Gere o certificado e obtenha o hash\r\n                                const hashResponse = await fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php?action=get_hash&email=' + encodeURIComponent(emailInput));\r\n                                const hashData = await hashResponse.json();\r\n\r\n                                if (hashData.success) {\r\n                                    const hash = hashData.data.hash.toUpperCase();\r\n                                    generateCertificate(name, emailInput);\r\n\r\n                                    \/\/ Atualizar a data_hora e o name no banco de dados\r\n                                    await fetch('https:\/\/secop.org.br\/2024\/wp-admin\/admin-ajax.php?action=update_timestamp&hash=' + encodeURIComponent(hash) + '&name=' + encodeURIComponent(name));\r\n                                } else {\r\n                                    alert('Erro ao obter hash. Tente novamente.');\r\n                                }\r\n                            } else {\r\n                                alert('Por favor, insira o nome completo.');\r\n                            }\r\n                        });\r\n                    } else {\r\n                        resultMessage.innerHTML = `<p>O email \"${emailInput}\" n\u00e3o localizado. <br><br> Caso tenha participado, entre em contato atrav\u00e9s do e-mail <a href=\"mailto:secop@abep-tic.org.br\" style=\"color: #0073e6;\">secop@abep-tic.org.br<\/a>.<\/p>`;\r\n                        fileLink.innerHTML = '';\r\n                    }\r\n                })\r\n                .catch(error => {\r\n                    console.error('Erro ao verificar e-mail:', error);\r\n                    resultMessage.innerHTML = 'Erro ao verificar e-mail. Tente novamente.';\r\n                });\r\n        }\r\n\r\n        function resetForm() {\r\n            document.getElementById('resultMessage').innerHTML = '';\r\n            document.getElementById('file-link').innerHTML = '';\r\n            document.getElementById('emailInput').value = '';\r\n            document.getElementById('name').value = '';\r\n        }\r\n\r\n        document.getElementById('checkEmailButton').addEventListener('click', checkEmail);\r\n        document.getElementById('emailInput').addEventListener('keypress', function(event) {\r\n            if (event.key === 'Enter') {\r\n                event.preventDefault();\r\n                checkEmail();\r\n            }\r\n        });\r\n    <\/script>\r\n    \t\t<div class=\"elementor-shortcode\"><\/div>\n\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":34,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-3183","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/pages\/3183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/comments?post=3183"}],"version-history":[{"count":18,"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/pages\/3183\/revisions"}],"predecessor-version":[{"id":3530,"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/pages\/3183\/revisions\/3530"}],"wp:attachment":[{"href":"https:\/\/secop.org.br\/2024\/wp-json\/wp\/v2\/media?parent=3183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}