Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // PHP settings
- ini_set("max_execution_time", 5000);
- // PagarMe
- require_once(ABSPATH . "wp-includes/pagarme-php/vendor/autoload.php");
- $pagar_me = new \PagarMe\Sdk\PagarMe("ak_test_qtDOZfF5K0VDn17k04NxnQPIZ3r5wV");
- $postback_url = "http://aledsz.com.br/coprime/?action=postback";
- // Start session
- session_start();
- // Disable admin bar
- add_filter("show_admin_bar", "__return_false");
- add_filter('send_password_change_email', '__return_false');
- add_filter('wp_mail_from', 'new_mail_from');
- add_filter('wp_mail_from_name', 'new_mail_from_name');
- function new_mail_from($old) {
- return 'contato@coprime.com.br';
- }
- function new_mail_from_name($old) {
- return 'CoPrime';
- }
- // Remove meta tag generator
- remove_action("wp_head", "wp_generator");
- // Register menu
- function register_my_menu() {
- register_nav_menus( array(
- "header-menu" => "Menu",
- ) );
- }
- add_action( "init", "register_my_menu" );
- // Register thumbnails
- add_theme_support("post-thumbnails", array ("post", "page"));
- add_image_size("servico", 690, 460, true );
- // Remove title from the_post_thumbnail
- function the_post_thumbnail_remove_title($output) {
- $output = preg_replace("` title='(.*?)'`", "", $output);
- return $output;
- }
- add_filter("post_thumbnail_html", "the_post_thumbnail_remove_title");
- //To keep the count accurate, lets get rid of prefetching
- remove_action( "wp_head", "adjacent_posts_rel_link_wp_head", 10, 0);
- add_action("wp_enqueue_scripts", "wpmidia_enqueue_masked_input");
- function wpmidia_enqueue_masked_input() {
- if (is_page(array("trabalhe-conosco","contato", "login", "cadastro"))) {
- wp_enqueue_script("masked-input", "https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js", array("jquery"));
- }
- }
- add_action("wp_footer", "wpmidia_activate_masked_input");
- function wpmidia_activate_masked_input() {
- if (is_page(array("trabalhe-conosco", "contato"))) {
- ?>
- <script type="text/javascript">
- jQuery( function($){
- $(".telefone").focusout(function () {
- var phone, element;
- element = $(this);
- element.unmask();
- phone = element.val().replace(/\D/g, "");
- if (phone.length > 10) {
- element.mask("(99) 99999-999?9");
- } else {
- element.mask("(99) 9999-9999?9");
- }
- }).trigger("focusout");
- });
- </script>
- <?php
- }
- }
- function is_logged() {
- return isSet($_SESSION["user"]);
- }
- // Custom Post Type
- function create_posttype() {
- $args = array(
- "public" => true,
- "label" => "Parceiros",
- "supports" => array()
- );
- register_post_type("parceiros", $args);
- $args = array(
- "public" => true,
- "label" => "Usuário Coprime",
- "supports" => array("")
- );
- register_post_type("usuario_coprime", $args);
- $args = array(
- "public" => true,
- "label" => "E-mail",
- "supports" => array("title", "editor")
- );
- register_post_type("email", $args);
- $args = array(
- "public" => true,
- "label" => "Contratação de Serviços",
- "supports" => array("title")
- );
- register_post_type("contratacao", $args);
- }
- add_action("init", "create_posttype");
- // Get username
- function get_user_name($cnpj, $email) {
- $symbols = array("/", ".", "-");
- $cnpj = str_replace($symbols, "", $cnpj);
- $email = explode("@", $email);
- $new_email = str_replace(".", "_", $email[0]);
- $email = explode(".", $email[1]);
- $new_email = $new_email . "_" . $email[0];
- $user_name = $cnpj . "_" . $new_email;
- return $user_name;
- }
- // Check user
- function check_user() {
- if (is_page(array("minha-conta"))) {
- if (!is_logged()) {
- $_SESSION["error_login"] = "Favor acessar sua conta para visualizar esta página";
- header("location:" . get_bloginfo("url") . "/login?action=error");
- }
- } else if (is_page(array("login"))) {
- if (is_logged()) {
- header("location:" . get_bloginfo("url"));
- }
- }
- }
- add_action("wp_enqueue_scripts", "check_user");
- // Send mail
- function send_mail ($email, $email_data, $post_query) {
- $query = new WP_Query($post_query);
- while ($query->have_posts()) {
- $query->the_post();
- $title = get_the_title();
- $html = get_the_content();
- }
- foreach ($email_data as $key => $value) {
- $html = str_replace("#$key#", "$value", $html);
- }
- $html = strtr($html, array(
- "#br#" => "<br />"
- ));
- wp_mail($email, str_replace("–", "-", $title), $html, array("Content-type: text/html"));
- }
- function get_post_id ($post_query) {
- $query = new WP_Query($post_query);
- while ($query->have_posts()) {
- $query->the_post();
- return $query->post->ID;
- }
- return null;
- }
- function get_services ($user_id) {
- $query = new WP_Query("author=$user_id&post_type=contratacao&posts_per_page=100");
- $services = array();
- while ($query->have_posts()) {
- $query->the_post();
- $services[] = get_fields();
- }
- return $services;
- }
- // Get data when exists
- function get_data_when_exists ($data) {
- if (empty($data) || !$data) {
- return "";
- } else {
- return $data;
- }
- }
- // Get signature value
- function get_signature_value ($valor_pagarme) {
- $decimais_valor = substr($valor_pagarme, strlen($valor_pagarme) - 2);
- $valor_parcela = substr($valor_pagarme, 0, strlen($valor_pagarme) - 2);
- return "{$valor_parcela},{$decimais_valor}";
- }
- // Actions
- if (isSet($_GET["action"])) {
- switch ($_GET["action"]) {
- case "logout":
- wp_logout();
- unset($_SESSION["user"]);
- header("location:" . get_bloginfo("url"));
- die;
- break;
- case "get_token":
- $user = get_user_by("login", get_user_name($_POST["cnpj"], $_POST["email"]));
- if ($user) {
- $user_password = base64_encode(get_user_name($_POST["cnpj"], $_POST["email"]));
- $email_data["name"] = $user->data->display_name;
- $email_data["token"] = $user_password;
- $_SESSION["send_token"] = $_POST;
- send_mail($_POST["email"], $email_data, "p=95&post_type=email");
- header("location:" . get_bloginfo("url") . "/login?action=set_token&?redirect/minha-conta");
- } else {
- unset($_SESSION["user"]);
- header("location:" . get_bloginfo("url") . "/cadastro");
- }
- die;
- break;
- case "login":
- $user = wp_signon(array(
- "user_login" => get_user_name($_POST["cnpj"], $_POST["email"]),
- "user_password" => $_POST["password"],
- "remember" => true
- ));
- if (is_wp_error($user)) {
- $_SESSION["error_login"] = "Usuário e/ou senha incorretos.";
- header("location:" . get_bloginfo("url") . "/login");
- } else {
- $user = get_user_by("login", get_user_name($_POST["cnpj"], $_POST["email"]));
- $user_id = $user->data->ID;
- $data = get_userdata($user_id);
- $user->data->first_name = $data->first_name;
- $_SESSION["user"] = $user;
- $_SESSION["usuario_coprime"] = get_post_id("author=$user_id&post_type=usuario_coprime");
- header("location:" . get_bloginfo("url") . "/minha-conta");
- }
- die;
- break;
- case "register":
- $user_id = wp_create_user(
- get_user_name($_POST["cnpj"], $_POST["email"]),
- base64_encode(get_user_name($_POST["cnpj"], $_POST["email"])),
- $_POST["email"]
- );
- if (is_wp_error($user_id)) {
- header("location:" . get_bloginfo("url") . "/cadastro");
- } else {
- wp_update_user(array(
- "ID" => $user_id,
- "first_name" => $_POST["representante_nome"],
- "last_name" => $_POST["razao_social"],
- "display_name" => $_POST["representante_nome"],
- "role" => "author"
- ));
- $post_data = array(
- "post_author" => $user_id,
- "post_title" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_content" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_excerpt" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_type" => "usuario_coprime"
- );
- $post_id = wp_insert_post($post_data, true);
- if ((int) $post_id > 0) {
- foreach ($_POST as $key => $value) {
- update_field($key, $value, $post_id);
- }
- wp_update_post(array(
- "ID" => $post_id,
- "post_status" => "publish"
- ));
- $user = wp_signon(array(
- "user_login" => get_user_name($_POST["cnpj"], $_POST["email"]),
- "user_password" => base64_encode(get_user_name($_POST["cnpj"], $_POST["email"])),
- "remember" => true
- ));
- $user = get_user_by("login", get_user_name($_POST["cnpj"], $_POST["email"]));
- $data = get_userdata($user_id);
- $user->data->first_name = $data->first_name;
- $_SESSION["user"] = $user;
- $_SESSION["usuario_coprime"] = get_post_id("author=$user_id&post_type=usuario_coprime");
- header("location:" . get_bloginfo("url") . "/minha-conta");
- }
- }
- die;
- break;
- case "update_data":
- $post_id = $_SESSION["usuario_coprime"];
- $cnpj = get_field("cnpj", $post_id);
- $email = get_field("email", $post_id);
- $user = get_user_by("login", get_user_name($cnpj, $email));
- if ($user) {
- $user_login = get_user_name($_POST["cnpj"], $_POST["email"]);
- $user_password = base64_encode(get_user_name($_POST["cnpj"], $_POST["email"]));
- wp_update_user(array(
- "ID" => $user_id,
- "user_login" => $user_password,
- "user_password" => $user_password,
- "first_name" => $_POST["representante_nome"],
- "last_name" => $_POST["razao_social"],
- "display_name" => $_POST["representante_nome"],
- "role" => "author"
- ));
- foreach ($_POST as $key => $value) {
- update_field($key, $value, $post_id);
- }
- $user = get_user_by("login", get_user_name($cnpj, $email));
- $user_id = $user->data->ID;
- $data = get_userdata($user_id);
- $user->data->first_name = $data->first_name;
- $_SESSION["user"] = $user;
- }
- header("location:" . get_bloginfo("url") . "/minha-conta");
- die;
- break;
- case "generate_boleto":
- $usuario_coprime_id = $_SESSION["usuario_coprime"];
- $cnpj = get_field("cnpj", $usuario_coprime_id);
- $email = get_field("email", $usuario_coprime_id);
- $telefone = get_field("telefone", $usuario_coprime_id);
- $cep = get_field("cep", $usuario_coprime_id);
- $numero = get_field("numero", $usuario_coprime_id);
- $complemento = get_field("complemento", $usuario_coprime_id);
- $razao_social = get_field("razao_social", $usuario_coprime_id);
- $usuario_coprime = get_the_title($usuario_coprime_id);
- $user = get_user_by("login", get_user_name("99.999.999/9999-99", $email));
- if ($user) {
- $payment_method = $_POST["payment_method"];
- if ($payment_method == "a_vista") {
- $installments = 1;
- } else {
- $installments = $_POST["installments"];
- }
- $valor_total = $_POST["valor_pagarme"];
- $valor_total_pagarme = $_POST["valor_pagarme"];
- $servico = $_POST["servico"];
- $plano = $_POST["plano"];
- $assinatura = $_POST["assinatura"];
- $data_contratacao = date("Y-m-d");
- if ($assinatura == "Mensal") {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- } else if ($assinatura == "Trimestral") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("3 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Semestral") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("6 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Anual") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("12 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("7 days"));
- }
- $data_vencto = date_add($data_vencto, date_interval_create_from_date_string("1 day"));
- $data_vencimento = date_format($data_vencto, "Y-m-d");
- $parcelas_calculadas = $pagar_me->calculation()->calculateInstallmentsAmount($valor_total, 1, 12, 12);
- $valor_total = $parcelas_calculadas[$installments]["installment_amount"];
- $telefone_pagarme = explode(" ", $telefone);
- $telefone_pagarme[0] = str_replace("(", "", $telefone_pagarme[0]);
- $telefone_pagarme[0] = str_replace(")", "", $telefone_pagarme[0]);
- $telefone_pagarme[1] = str_replace("-", "", $telefone_pagarme[1]);
- $cep = str_replace("-", "", $cep);
- $dados_cep = $pagar_me->zipcode()->getInfo($cep);
- $post_data = array(
- "post_author" => $user->data->ID,
- "post_title" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_content" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_excerpt" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_type" => "contratacao"
- );
- $contrato_id = wp_insert_post($post_data, true);
- update_field("data_contratacao", $data_contratacao, $contrato_id);
- $transaction = $pagar_me->transaction()->boletoTransaction($valor_total,
- $pagar_me->customer()->create(
- $user->display_name,
- $email,
- $cnpj,
- new \PagarMe\Sdk\Customer\Address(array(
- "street" => $dados_cep->street,
- "streetNumber" => $numero,
- "neighborhood" => $dados_cep->neighborhood,
- "zipcode" => $dados_cep->zipcode,
- "complementary" => $complemento,
- "city" => $dados_cep->city,
- "state" => $dados_cep->state
- )),
- new \PagarMe\Sdk\Customer\Phone(array(
- "ddd" => $telefone_pagarme[0],
- "number" => $telefone_pagarme[1]
- ))
- ),
- $postback_url,
- array(
- "id_usuario_coprime" => $usuario_coprime_id,
- "id_usuario" => $user->data->ID,
- "id_contrato" => $contrato_id,
- "cnpj" => $cnpj,
- "email" => $email,
- "razao_social" => $razao_social,
- "softDescriptor" => "CoPrime",
- "parcela" => 1
- ),
- array(
- "boleto_expiration_date" => $data_vencimento
- )
- );
- $transaction_id = $transaction->getId();
- wp_update_post(array(
- "ID" => $contrato_id,
- "post_status" => "publish"
- ));
- update_field("transaction_id", $transaction_id, $contrato_id);
- update_field("servico", $servico, $contrato_id);
- update_field("plano", $plano, $contrato_id);
- update_field("assinatura", $assinatura, $contrato_id);
- update_field("valor_total", $valor_total_pagarme, $contrato_id);
- update_field("parcelas", $installments, $contrato_id);
- update_field("status", $transaction->getStatus(), $contrato_id);
- update_field("boleto_url", $transaction->getBoletoUrl(), $contrato_id);
- wp_update_post(array(
- "ID" => $contrato_id,
- "post_status" => "publish"
- ));
- $email_data["name"] = $user->data->display_name;
- $email_data["service_name"] = $servico;
- $email_data["plan_name"] = $plano;
- $email_data["signature_type"] = $assinatura;
- $email_data["signature_value"] = get_signature_value($valor_total);
- $email_data["boleto_expiration_date"] = $transaction->getBoletoExpirationDate()->format('d/m/Y');
- $email_data["boleto_link"] = $transaction->getBoletoUrl();
- send_mail($user->data->user_email, $email_data, "p=94&post_type=email");
- $_SESSION["payment_data"] = $transaction;
- header("location:" . get_bloginfo("url") . "/pagamento");
- }
- die;
- break;
- case "register_user":
- $user_id = wp_create_user(
- get_user_name($_POST["cnpj"], $_POST["email"]),
- base64_encode(get_user_name($_POST["cnpj"], $_POST["email"])),
- $_POST["email"]
- );
- if (is_wp_error($user_id)) {
- header("location:" . get_bloginfo("url") . "/cadastro");
- } else {
- wp_update_user(array(
- "ID" => $user_id,
- "first_name" => $_POST["representante_nome"],
- "last_name" => $_POST["razao_social"],
- "display_name" => $_POST["representante_nome"],
- "role" => "author"
- ));
- $post_data = array(
- "post_author" => $user_id,
- "post_title" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_content" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_excerpt" => $_POST["representante_nome"] . " — " . $_POST["razao_social"],
- "post_type" => "usuario_coprime"
- );
- $post_id = wp_insert_post($post_data, true);
- if ((int) $post_id > 0) {
- foreach ($_POST as $key => $value) {
- update_field($key, $value, $post_id);
- }
- wp_update_post(array(
- "ID" => $post_id,
- "post_status" => "publish"
- ));
- $user = wp_signon(array(
- "user_login" => get_user_name($_POST["cnpj"], $_POST["email"]),
- "user_password" => base64_encode(get_user_name($_POST["cnpj"], $_POST["email"])),
- "remember" => true
- ));
- $user = get_user_by("login", get_user_name($_POST["cnpj"], $_POST["email"]));
- $data = get_userdata($user_id);
- $user->data->first_name = $data->first_name;
- $_SESSION["user"] = $user;
- $_SESSION["usuario_coprime"] = get_post_id("author=$user_id&post_type=usuario_coprime");
- $usuario_coprime_id = get_post_id("author=$user_id&post_type=usuario_coprime");
- $cnpj = get_field("cnpj", $usuario_coprime_id);
- $email = get_field("email", $usuario_coprime_id);
- $telefone = get_field("telefone", $usuario_coprime_id);
- $cep = get_field("cep", $usuario_coprime_id);
- $numero = get_field("numero", $usuario_coprime_id);
- $complemento = get_field("complemento", $usuario_coprime_id);
- $razao_social = get_field("razao_social", $usuario_coprime_id);
- $usuario_coprime = get_the_title($usuario_coprime_id);
- $payment_method = $_POST["payment_method"];
- if ($payment_method == "a_vista") {
- $installments = 1;
- } else {
- $installments = $_POST["installments"];
- }
- $valor_total = $_POST["valor_pagarme"];
- $valor_total_pagarme = $_POST["valor_pagarme"];
- $servico = $_POST["servico"];
- $plano = $_POST["plano"];
- $assinatura = $_POST["assinatura"];
- $data_contratacao = date("Y-m-d");
- if ($assinatura == "Mensal") {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- } else if ($assinatura == "Trimestral") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("3 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Semestral") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("6 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Anual") {
- if ($installments == 1) {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("12 months"));
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("1 month"));
- }
- } else {
- $data_vencto = date_add(date_create($data_contratacao), date_interval_create_from_date_string("7 days"));
- }
- $data_vencto = date_add($data_vencto, date_interval_create_from_date_string("1 day"));
- $data_vencimento = date_format($data_vencto, "Y-m-d");
- $parcelas_calculadas = $pagar_me->calculation()->calculateInstallmentsAmount($valor_total, 1, 12, 12);
- $valor_total = $parcelas_calculadas[$installments]["installment_amount"];
- $telefone_pagarme = explode(" ", $telefone);
- $telefone_pagarme[0] = str_replace("(", "", $telefone_pagarme[0]);
- $telefone_pagarme[0] = str_replace(")", "", $telefone_pagarme[0]);
- $telefone_pagarme[1] = str_replace("-", "", $telefone_pagarme[1]);
- $cep = str_replace("-", "", $cep);
- $dados_cep = $pagar_me->zipcode()->getInfo($cep);
- $post_data = array(
- "post_author" => $user->data->ID,
- "post_title" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_content" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_excerpt" => "{$servico} — {$plano} — {$assinatura} — {$razao_social}",
- "post_type" => "contratacao"
- );
- $contrato_id = wp_insert_post($post_data, true);
- update_field("data_contratacao", $data_contratacao, $contrato_id);
- $transaction = $pagar_me->transaction()->boletoTransaction($valor_total,
- $pagar_me->customer()->create(
- $user->display_name,
- $email,
- $cnpj,
- new \PagarMe\Sdk\Customer\Address(array(
- "street" => $dados_cep->street,
- "streetNumber" => $numero,
- "neighborhood" => $dados_cep->neighborhood,
- "zipcode" => $dados_cep->zipcode,
- "complementary" => $complemento,
- "city" => $dados_cep->city,
- "state" => $dados_cep->state
- )),
- new \PagarMe\Sdk\Customer\Phone(array(
- "ddd" => $telefone_pagarme[0],
- "number" => $telefone_pagarme[1]
- ))
- ),
- $postback_url,
- array(
- "id_usuario_coprime" => $usuario_coprime_id,
- "id_usuario" => $user->data->ID,
- "id_contrato" => $contrato_id,
- "cnpj" => $cnpj,
- "email" => $email,
- "razao_social" => $razao_social,
- "softDescriptor" => "CoPrime",
- "parcela" => 1
- ),
- array(
- "boleto_expiration_date" => $data_vencimento
- )
- );
- $transaction_id = $transaction->getId();
- wp_update_post(array(
- "ID" => $contrato_id,
- "post_status" => "publish"
- ));
- update_field("transaction_id", $transaction_id, $contrato_id);
- update_field("servico", $servico, $contrato_id);
- update_field("plano", $plano, $contrato_id);
- update_field("assinatura", $assinatura, $contrato_id);
- update_field("valor_total", $valor_total_pagarme, $contrato_id);
- update_field("parcelas", $installments, $contrato_id);
- update_field("status", $transaction->getStatus(), $contrato_id);
- update_field("boleto_url", $transaction->getBoletoUrl(), $contrato_id);
- wp_update_post(array(
- "ID" => $contrato_id,
- "post_status" => "publish"
- ));
- $email_data["name"] = $user->data->display_name;
- $email_data["service_name"] = $servico;
- $email_data["plan_name"] = $plano;
- $email_data["signature_type"] = $assinatura;
- $email_data["signature_value"] = get_signature_value($valor_total);
- $email_data["boleto_expiration_date"] = $transaction->getBoletoExpirationDate()->format('d/m/Y');
- $email_data["boleto_link"] = $transaction->getBoletoUrl();
- send_mail($user->data->user_email, $email_data, "p=94&post_type=email");
- $_SESSION["payment_data"] = $transaction;
- header("location:" . get_bloginfo("url") . "/pagamento");
- }
- }
- break;
- case "postback":
- $postback_data = $_REQUEST;
- if ($postback_data["transaction"]) {
- $transaction = $postback_data["transaction"];
- $transaction_id = $transaction["id"];
- $dados_coprime = $postback_data["transaction"]["metadata"];
- $event = $postback_data["event"];
- $status = $postback_data["current_status"];
- $usuario_coprime = $dados_coprime["id_usuario_coprime"];
- if ($event == "transaction_status_changed") {
- $id_usuario = $dados_coprime["id_usuario"];
- $id_usuario_coprime = $dados_coprime["id_usuario_coprime"];
- $id_contrato = $dados_coprime["id_contrato"];
- $user = get_user_by("ID", $id_usuario);
- if ($user) {
- if ($status == "paid") {
- $total_parcelas = get_field("parcelas", $id_contrato);
- $parcelas_pagas = get_field("parcelas_pagas", $id_contrato);
- $valor_total = get_field("valor_total", $id_contrato);
- $valor_pago = get_field("valor_pago", $id_contrato);
- $plano = get_field("plano", $id_contrato);
- $servico = get_field("servico", $id_contrato);
- $assinatura = get_field("assinatura", $id_contrato);
- $all_transaction_id = get_field("transaction_id", $id_contrato);
- $cnpj = get_field("cnpj", $id_usuario_coprime);
- $email = get_field("email", $id_usuario_coprime);
- $telefone = get_field("telefone", $id_usuario_coprime);
- $cep = get_field("cep", $id_usuario_coprime);
- $numero = get_field("numero", $id_usuario_coprime);
- $complemento = get_field("complemento", $id_usuario_coprime);
- $razao_social = get_field("razao_social", $id_usuario_coprime);
- if ($assinatura == "Mensal") {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("1 month"));
- } else if ($assinatura == "Trimestral") {
- if ($total_parcelas == 1) {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("3 months"));
- } else {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Semestral") {
- if ($total_parcelas == 1) {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("6 months"));
- } else {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("1 month"));
- }
- } else if ($assinatura == "Anual") {
- if ($total_parcelas == 1) {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("12 months"));
- } else {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("1 month"));
- }
- } else {
- $data_vencto = date_add(date_create($transaction["date_updated"]), date_interval_create_from_date_string("7 days"));
- }
- $data_vencto = date_add($data_vencto, date_interval_create_from_date_string("1 day"));
- $data_vencimento = date_format($data_vencto, "Y-m-d");
- if ($parcelas_pagas) {
- $parcelas_pagas++;
- } else {
- $parcelas_pagas = $dados_coprime["parcela"];
- }
- if ($parcelas_pagas) {
- $valor_pago += $transaction["paid_amount"];
- } else {
- $valor_pago = $transaction["paid_amount"];
- }
- if ($parcelas_pagas < $total_parcelas) {
- $parcelas_calculadas = $pagar_me->calculation()->calculateInstallmentsAmount($valor_total, 1, 12, 12);
- $valor_total = $parcelas_calculadas[$total_parcelas]["installment_amount"];
- $telefone_pagarme = explode(" ", $telefone);
- $telefone_pagarme[0] = str_replace("(", "", $telefone_pagarme[0]);
- $telefone_pagarme[0] = str_replace(")", "", $telefone_pagarme[0]);
- $telefone_pagarme[1] = str_replace("-", "", $telefone_pagarme[1]);
- $cep = str_replace("-", "", $cep);
- $dados_cep = $pagar_me->zipcode()->getInfo($cep);
- $transaction = $pagar_me->transaction()->boletoTransaction($valor_total,
- $pagar_me->customer()->create(
- $user->display_name,
- $email,
- $cnpj,
- new \PagarMe\Sdk\Customer\Address(array(
- "street" => $dados_cep->street,
- "streetNumber" => $numero,
- "neighborhood" => $dados_cep->neighborhood,
- "zipcode" => $dados_cep->zipcode,
- "complementary" => $complemento,
- "city" => $dados_cep->city,
- "state" => $dados_cep->state
- )),
- new \PagarMe\Sdk\Customer\Phone(array(
- "ddd" => $telefone_pagarme[0],
- "number" => $telefone_pagarme[1]
- ))
- ),
- $postback_url,
- array(
- "id_usuario_coprime" => $id_usuario_coprime,
- "id_usuario" => $id_usuario,
- "id_contrato" => $id_contrato,
- "cnpj" => $cnpj,
- "email" => $email,
- "razao_social" => $razao_social,
- "softDescriptor" => "CoPrime",
- "parcela" => $parcelas_pagas + 1
- ),
- array(
- "boleto_expiration_date" => $data_vencimento
- )
- );
- $status = $transaction->getStatus();
- update_field("transaction_id", $all_transaction_id . "," . $transaction->getId(), $id_contrato);
- update_field("boleto_url", $transaction->getBoletoUrl(), $id_contrato);
- $email_data["name"] = $user->data->display_name;
- $email_data["service_name"] = $servico;
- $email_data["plan_name"] = $plano;
- $email_data["signature_type"] = $assinatura;
- $email_data["signature_value"] = get_signature_value($valor_total);
- $email_data["boleto_expiration_date"] = $transaction->getBoletoExpirationDate()->format('d/m/Y');
- $email_data["boleto_link"] = $transaction->getBoletoUrl();
- send_mail($user->data->user_email, $email_data, "p=94&post_type=email");
- }
- update_field("valor_pago", (string) $valor_pago, $id_contrato);
- update_field("parcelas_pagas", (string) $parcelas_pagas, $id_contrato);
- update_field("status", (string) $status, $id_contrato);
- } else {
- update_field("status", $status, $id_contrato);
- }
- }
- }
- }
- die;
- break;
- default:
- break;
- }
- } else {
- unset($_SESSION["error_login"]);
- unset($_SESSION["send_token"]);
- }
- ?>
Add Comment
Please, Sign In to add comment