Skip to content

Commit

Permalink
Merge pull request #132 from ResidenciaTICBrisa/email
Browse files Browse the repository at this point in the history
FEATURE: Adição do envio de e-mail para as mudanças de status dos for…
  • Loading branch information
WillxBernardo authored May 16, 2024
2 parents 607d20b + f245411 commit a8a136d
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 5 deletions.
Binary file modified lgbtq_connect.zip
Binary file not shown.
72 changes: 68 additions & 4 deletions lgbtq_connect/includes/admin/formulario-admin-page.php
Original file line number Diff line number Diff line change
@@ -1,27 +1,93 @@
<?php
// Função para encontrar a página ou postagem que contém o shortcode do plugin
function encontrar_pagina_com_shortcode($shortcode) {
// Obtém todas as páginas do site
$paginas = get_pages();
// Obtém todas as postagens do site
$postagens = get_posts();

// Concatena as páginas e postagens em um único array
$todos_itens = array_merge($paginas, $postagens);

// Percorre cada item para verificar se o conteúdo contém o shortcode
foreach ($todos_itens as $item) {
// Obtém o conteúdo do item
$conteudo = $item->post_content;
// Verifica se o conteúdo contém o shortcode
if (strpos($conteudo, $shortcode) !== false) {
// Se o shortcode for encontrado, retorna o item
return $item;
}
}

// Se nenhum shortcode for encontrado, retorna falso
return false;
}
// Função para aprovar o formulário
function aprovar_formulario($id) {
global $wpdb;

// Busca o estado atual do formulário
$estado_atual = $wpdb->get_var($wpdb->prepare("SELECT situacao FROM lc_formulario WHERE id = %d", $id));

// Atualiza o status do formulário para 'Aprovado' no banco de dados
$query = $wpdb->prepare("UPDATE lc_formulario SET situacao = 'Aprovado' WHERE id = %d", $id);
$resultado = $wpdb->query($query);

// Verifica se o estado anterior era 'Negado' para enviar o e-mail de notificação
if ($estado_atual === 'Negado' || $estado_atual === 'Pendente') {
// Busca as informações do formulário
$formulario = $wpdb->get_row($wpdb->prepare("SELECT * FROM lc_formulario WHERE id = %d", $id));

// Encontra o item que contém o shortcode do seu plugin
$item = encontrar_pagina_com_shortcode('lgbtq_connect');

// Se o item for encontrado, obtenha o permalink e construa o link
if ($item) {
$shortcode_url = get_permalink($item);
// Constrói o e-mail com o link para a página do shortcode
$subject = 'Seu formulário foi aprovado';
$message = 'Olá! Seu pedido de plotagem para o ' . $formulario->nome . ' foi aprovado!' . "\n\n" . 'Para mais informações acesse o link: ' . $shortcode_url;

// Envie o e-mail de notificação para o usuário
wp_mail($formulario->email, $subject, $message);
} else {
// Página ou postagem com shortcode não encontrada
// Faça o tratamento adequado aqui
}
}

// Redireciona de volta para a mesma página após a atualização
echo '<script>window.location.href = window.location.href;</script>';
}

// Função para rejeitar o formulário
function rejeitar_formulario($id) {
global $wpdb;

// Busca o estado atual do formulário
$estado_atual = $wpdb->get_var($wpdb->prepare("SELECT situacao FROM lc_formulario WHERE id = %d", $id));

// Atualiza o status do formulário para 'Negado' no banco de dados
$query = $wpdb->prepare("UPDATE lc_formulario SET situacao = 'Negado' WHERE id = %d", $id);
$resultado = $wpdb->query($query);

// Verifica se o estado anterior era 'Aprovado' ou 'Pendente' para enviar o e-mail de notificação
if ($estado_atual === 'Aprovado' || $estado_atual === 'Pendente') {
// Busca as informações do formulário
$formulario = $wpdb->get_row($wpdb->prepare("SELECT * FROM lc_formulario WHERE id = %d", $id));

// Constrói o e-mail
$subject = 'Seu formulário foi rejeitado';
$message = 'Olá! Infelizmente seu formulário para o cadastro de ' . $formulario->nome . ' foi rejeitado :(';

// Envie o e-mail de notificação para o usuário
wp_mail($formulario->email, $subject, $message);
}

// Redireciona de volta para a mesma página após a atualização
echo '<script>window.location.href = window.location.href;</script>';
}

// Função para excluir o formulário
function excluir_formulario($id) {
global $wpdb;

Expand All @@ -38,7 +104,6 @@ function excluir_formulario($id) {
// Redireciona de volta paloucademia de policiara a mesma página após a atualização
echo '<script>window.location.href = window.location.href;</script>';
}

// Verifica se o parâmetro "action" foi enviado via POST
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['action'])) {
// Verifica a ação do formulário
Expand All @@ -53,7 +118,6 @@ function excluir_formulario($id) {
}
}
?>

<!DOCTYPE html>
<html>
<head>
Expand Down
6 changes: 6 additions & 0 deletions lgbtq_connect/includes/data/process_form.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ function processar_formulario() {
'servico' => $servico
)
);

// Obter e-mail do administrador do site
$admin_email = get_option('admin_email');
// Formata a data e hora para o formato desejado
Expand All @@ -54,6 +55,11 @@ function processar_formulario() {
// Envie o e-mail de notificação para o administrador do site
wp_mail($admin_email, $subject, $message);

// Envie o e-mail de confirmação para o usuário
$subject_user = 'LGBTQ+ Connect - Sua solicitação de plotagem foi recebida';
$message_user = 'Olá! Sua solicitação de plotagem foi recebida. Aqui estão os detalhes:' . "\n" . $local_cadastrado . $tipo_servico . $data_hora_cadastro . 'Você será notificado quando sua solicitação for processada. Obrigado!';

wp_mail($email, $subject_user, $message_user);
} else {
echo "Erro: Preencha todos os campos corretamente.";
}
Expand Down
2 changes: 1 addition & 1 deletion lgbtq_connect/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Plugin Name: LGBTQ+ Connect
Plugin URI: https://residenciaticbrisa.github.io/T2G8-Plugin-Wordpress/
Description: Mapa LGBTQ+ com cadastro e validação admin, promovendo locais acolhedores para a comunidade.
Version: 0.17.1
Version: 0.18.0
Author: Igor Brandão, Gustavo Linhares, Marcos Vinicius, Max Rohrer e Will Bernardo
License: GPL v2 or later
*/
Expand Down

0 comments on commit a8a136d

Please sign in to comment.