public function render_meta_box_descricoes($post)
    {
        $postId = $post->ID;
        $this->post_id = $postId;
        if ($postId != null) {
            $this->evento = Eventos::getInstance()->getById($postId, false);
        }
        ?>
        <div id="tabs">
            <ul class="tabs">
                <li><a href="#tabs-descricao">Descrição</a></li>
                <li><a href="#tabs-realizacao">Realização</a></li>
                <li><a href="#tabs-inscricao">Inscrição</a></li>
                <?php 
        if ($this->templateExibir('campos_extras')) {
            ?>
                    <li><a href="#tabs-dados">Dados Formulário</a></li>
                <?php 
        }
        ?>
                <?php 
        if ($this->evento->pago == 'pago') {
            ?>
                    <li><a href="#tabs-treinamento">Treinamento</a></li>
                <?php 
        }
        ?>
                <!--                <li><a href="#tabs-mensagens">Mensagens</a></li>-->
                <?php 
        if ($this->templateExibir('secoes_extras')) {
            ?>
                    <li><a href="#tabs-sessoesextras">Sessões Extras</a></li>
                <?php 
        }
        ?>
            </ul>
            <div id="tabs-descricao">
                <?php 
        if (TGO_EVENTO_EVENTO_PAI === true) {
            echo "<div class=fields>";
            echo "<h3>Herdar Configurações</h3>";
            $eventos = Eventos::getInstance()->getEventosOrfaos($postId);
            $eventos = PLib::object_to_array($eventos);
            $eventos = Plib::array_to_key_value($eventos, 'id', 'titulo');
            echo input_select($postId, 'id_evento_pai', 'Evento Pai:', $eventos, null, get_post_meta($postId, 'id_evento_pai', true), 'class=ajustes_visuais');
            echo "</div>";
        }
        echo "<div class=fields>";
        echo "<h3>Chamadas Curtas</h3>";
        if ($this->templateExibir('descricao_1')) {
            echo input_texto($postId, 'descricao_1', 'Descrição Curtíssima', 100);
        }
        if ($this->templateExibir('descricao_2')) {
            echo input_textarea($postId, 'descricao_2', 'Descrição Breve', 3);
        }
        echo "</div>";
        echo "<div class=fields>";
        echo "<h3>Apresentação completa</h3>";
        if ($this->templateExibir('descricao_3')) {
            $value = get_post_meta($postId, 'descricao_3', true);
            wp_editor($value, 'descricao_3', array('textarea_rows' => get_option('default_post_edit_rows', 20)));
        }
        echo "</div>";
        ?>
            </div>
            <div id="tabs-realizacao">
                <?php 
        // Organizador
        $organizadores = Plib::object_to_array(Organizadores::getInstance()->getAll());
        $organizadores = Plib::array_to_key_value($organizadores, 'id', 'titulo');
        if (count($organizadores) > 1) {
            echo "<div class=fields>";
            echo "<h3>Organização</h3>";
            if ($this->templateExibir('id_organizador')) {
                echo input_select($postId, 'id_organizador', 'Organizador:', $organizadores, null, $this->templateValorPadrao('id_organizador'));
            } else {
                if ($this->templateValorPadrao('id_organizador') != null) {
                    echo input_hidden($postId, 'id_organizador', $this->templateValorPadrao('id_organizador'));
                } else {
                    $organizadores = array_keys($organizadores);
                    echo input_hidden($postId, 'id_organizador', $organizadores[0]);
                }
            }
            echo "</div>";
        }
        // Instrutor
        if ($this->templateExibir('id_instrutor')) {
            $instrutores = Instrutores::getInstance()->getTodosArray();
            echo input_select($postId, 'id_instrutor', 'Instrutor/Coordenador:', $instrutores);
        }
        echo "<div class=fields>";
        echo "<h3>Data e Local</h3>";
        echo input_data($postId, 'data', 'Data do Evento:');
        echo input_hora($postId, 'hora', 'Hora de Inicio:');
        if ($this->templateExibir('data_fim')) {
            echo input_data($postId, 'data_fim', 'Data Término:');
        }
        echo input_hora($postId, 'hora_fim', 'Hora Término:');
        if ($this->templateExibir('id_local')) {
            Locais::getInstance()->init();
            $locais = Plib::object_to_array(Locais::getInstance()->getAll());
            $locais = Plib::array_to_key_value($locais, 'id', 'titulo');
            echo input_select($postId, 'id_local', 'Local:', $locais);
        }
        echo "</div>";
        echo "<div class=fields>";
        echo "<h3>Medidores de Conversão</h3>";
        echo input_texto($postId, 'fb_conversion_track', 'Facebook Conversion Track:', 20);
        echo input_texto($postId, 'tw_conversion_track', 'Twitter Conversion Track:', 20);
        echo "</div>";
        ?>
            </div>
            <div id="tabs-inscricao">
                <?php 
        // Data Inicio Inscrições
        echo "<div class=fields>";
        echo "<h3>Inscrições</h3>";
        echo input_data($postId, 'data_inicio_inscricoes', 'Inicio das Inscrições:');
        echo input_data($postId, 'data_fim_inscricoes', 'Fim das Inscrições:');
        // Pago ou Gratuito
        if ($this->templateExibir('pago')) {
            echo input_select($postId, 'pago', 'Tipo de Inscrição:', array('pago' => 'Paga', 'gratuito' => 'Gratuita'), null, null, 'class=ajustes_visuais');
        } else {
            if ($this->templateValorPadrao('pago') != null) {
                echo input_hidden($postId, 'pago', $this->templateValorPadrao('pago'));
            }
        }
        if ($this->templateExibir('confirmacao')) {
            echo input_select($postId, 'confirmacao', 'Confirmação da Inscrição:', array('preinscricao' => 'Pré-inscrição', 'imediata' => 'Imediata', 'pagamento' => 'Após Confirmação do Pagamento', 'posterior' => 'Posteriormente pelo Organizador'), null);
        } else {
            if ($this->templateValorPadrao('confirmacao') != null) {
                echo input_hidden($postId, 'confirmacao', $this->templateValorPadrao('confirmacao'));
            }
        }
        if ($this->templateExibir('validacao_pessoa')) {
            echo input_select($postId, 'validacao_pessoa', 'Localizar Cadastro do Inscrito:', array('email' => 'Email', 'cpf' => 'CPF'), null, 'email');
        }
        echo "</div>";
        // Vagas
        if ($this->templateExibir('vagas')) {
            echo "<div class=fields>";
            echo "<h3>Vagas</h3>";
            echo input_numero($postId, 'vagas', 'Vagas Disponíveis:');
            echo input_checkbox($postId, 'fila_espera', 'Fila de Espera');
            echo "</div>";
        }
        // Formas de pagamento
        echo "<div id=formas_pagamento class=fields>";
        echo "<h3>Pagamento</h3>";
        // Integração PagSeguro
        if (Integracoes::getInstance()->hasByServico('PagSeguro')) {
            echo input_checkbox($postId, 'pago_pagseguro', 'PagSeguro');
            $integracoes = Plib::object_to_array(Integracoes::getInstance()->getByServico('PagSeguro'));
            $integracoes = Plib::array_to_key_value($integracoes, 'id', 'titulo');
            echo input_select($postId, 'id_integracao_pagseguro', 'Integração PagSeguro:', $integracoes);
        }
        // Integração Cielo
        if (Integracoes::getInstance()->hasByServico('Cielo')) {
            echo input_checkbox($postId, 'pago_cielo', 'Cielo');
            $integracoes = Plib::object_to_array(Integracoes::getInstance()->getByServico('Cielo'));
            $integracoes = Plib::array_to_key_value($integracoes, 'id', 'titulo');
            echo input_select($postId, 'id_integracao_cielo', 'Integração Cielo:', $integracoes);
        }
        // Local de pagamento
        echo input_checkbox($postId, 'pago_dinheiro', 'Dinheiro');
        $locais = Plib::object_to_array(Locais::getInstance()->getAll());
        $locais = Plib::array_to_key_value($locais, 'id', 'titulo');
        echo input_select($postId, 'id_local_pagamento', 'Local pagamenho Dinheiro:', $locais);
        echo input_checkbox($postId, 'pago_deposito', 'Depósito Bancário');
        echo "</div>";
        // Beta
        if ($this->templateExibir('beta')) {
            echo input_checkbox($postId, 'beta', 'Beta:');
        }
        // Confirmação da Inscrição:
        //var_dump($this->evento->confirmacao);
        //                $meta = get_post_meta($postId, 'confirmacao', true);
        //                echo "'$meta'<br>";
        //die();
        ?>
            </div>
            <div id="tabs-dados">
                <?php 
        // Campo chave de validação da pessoa
        // Campos Extra
        if ($this->templateExibir('campos_extras')) {
            echo "<div class=fields>";
            echo "<h3>Campos Extras</h3>";
            echo input_textarea($postId, 'campos_extras', 'Campos Extras:', 10, "Utilizar:<br>nome_unico/Titulo do campo<br>Exemplo:<br>empresa/Empresa em que trabalha");
            echo "</div>";
        }
        if ($this->templateExibir('avaliacao')) {
            $questionarios = Plib::object_to_array(Questionarios::getInstance()->getAll());
            $questionarios = Plib::array_to_key_value($questionarios, 'id', 'titulo');
            echo input_select($postId, 'id_questionario', 'Questionário de Feedback:', $questionarios);
        }
        ?>
            </div>
            <!--            <div id="tabs-mensagens">-->
            <!--                --><?php 
        //                if ($this->evento){
        //                    // Incluir formulário parcial de mensagens
        //                    Mensagens::getInstance()->setEvento($this->evento->id);
        //                    require_once PLUGINPATH. '/view/mensagens/partial_mensagens.php';
        //                }
        //
        ?>
            <!--            </div>-->
            <?php 
        if ($this->evento->pago == 'pago') {
            ?>
                <div id="tabs-treinamento">
                    <?php 
            echo "<div class=fields>";
            echo "<h3>Treinamento</h3>";
            // Publico Alvo
            if ($this->templateExibir('publico_alvo')) {
                echo input_textarea($postId, 'publico_alvo', 'Público Alvo', 2);
            }
            // Material Didático
            if ($this->templateExibir('material')) {
                echo input_textarea($postId, 'material', 'Material Didático oferecido:', 2);
            }
            // Certificado
            if ($this->templateExibir('certificado')) {
                echo input_textarea($postId, 'certificado', 'Certificado:', 1);
            }
            // Duração
            if ($this->templateExibir('duracao')) {
                echo input_textarea($postId, 'duracao', 'Duração:', 1);
            }
            if ($this->templateExibir('horarios')) {
                echo input_textarea($postId, 'horarios', 'Horários:', 1);
            }
            if ($this->templateExibir('requisitos')) {
                echo input_textarea($postId, 'requisitos', 'Pré-Requisitos:', 1);
            }
            // Valor
            //                if ($this->templateExibir('valor'))
            //                    echo input_numero($postId, 'valor', 'Valor:');
            echo "</div>";
            echo "<div class=fields>";
            echo "<h3>Conteúdo</h3>";
            // Tópicos
            if ($this->templateExibir('topicos')) {
                echo input_textarea($postId, 'topicos', 'Tópicos:', 10, "Utilizar um tópico por linha. Identar com 3 espaços.<br>[v] Video, [a] Arquivo");
            }
            // FAQ
            if ($this->templateExibir('faq')) {
                echo input_textarea($postId, 'faq', 'Perguntas Frequentes.:', 10, "Utilizar:<br>- Pergunta<Br>Resposta");
            }
            echo "</div>";
            ?>
                </div>
            <?php 
        }
        ?>
            <?php 
        if ($this->templateExibir('secoes_extras')) {
            ?>
                <div id="tabs-sessoesextras">
                    <?php 
            $postId = $post->ID;
            // Cada secão
            if ($this->evento) {
                $secoes = $this->evento->getSecoesExtras();
                if ($secoes != null) {
                    foreach ($secoes as $secao => $titulo) {
                        //                var_dump($secoes);
                        echo "<label for='secao_{$secao}'><div><p>{$titulo}</p></div></label>";
                        $value = get_post_meta($postId, 'secao_' . $secao, true);
                        wp_editor($value, 'secao_' . $secao, array('textarea_rows' => get_option('default_post_edit_rows', 10)));
                    }
                }
            }
            // Secões
            echo input_textarea($postId, 'secoes_extras', 'Secoes Extras:', 7, "Utilizar:<br>nome_unico/Titulo da seção");
            ?>
                </div>
            <?php 
        }
        ?>
        </div>
        <script>
            function ajustesVisuais(){
                console.log(this);
                console.log();
                if (jQuery("#pago").val() == "pago") {
                    jQuery("#formas_pagamento").css("display","block");
                } else {
                    jQuery("#formas_pagamento").css("display","none");
                }
            };

            jQuery(function ($) {
                $(document ).ready(function() {
                    $("#tabs").tabs();
                    $(".ajustes_visuais").on("change", function () {
                        ajustesVisuais();
                    });
                    ajustesVisuais();
                });
            });


        </script>

        <?php 
    }
function tt_render_list_page($itens, $titulo)
{
    //Create an instance of our package class...
    $testListTable = new TTListTable();
    //Fetch, prepare, sort, and filter our data...
    if ($itens != null) {
        $testListTable->prepare_items($itens);
    }
    ?>
    <div class="wrap">

        <div id="icon-users" class="icon32"><br/></div>
        <h2>Integrações</h2>

        <a href="admin.php?page=Integracoes&action=add-new" class="add-new-h2">Nova Integração</a>

        <!-- Forms are NOT created automatically, so you need to wrap the table in one to use features like bulk actions -->
        <form id="movies-filter" method="get">
            <!-- For plugins, we also need to ensure that the form posts back to our current page -->
            <input type="hidden" name="page" value="<?php 
    echo $_REQUEST['page'];
    ?>
" />
            <!-- Now we can render the completed list table -->
            <?php 
    $testListTable->display();
    ?>
        </form>


        <?php 
    if (Integracoes::getInstance()->hasByServico('PagSeguro')) {
        ?>
            <h3>Instruções de configuração para PagSeguro</h3>

            Acessar painel do PagSeguro e configurar:<br><br>
            1 - Em Preferências > Integracoes > Página de redicionamento - Expanda o campo e preencha em "Código de Transação para página de redicionamento": "transaction_id" (sem aspas);<br>
            2 - "Salvar configurações"<br>
           3 - Clique em "Gerar Token", salve o valor gerado para logo mais<br>
            4 - Em Preferências > Integracoes > Habilitar "Notificação de transação"<br>
            5 - Em Preferências > Integracoes > Notificação de transação, informar "Definir notificação de transações" com a URL apresentada na coluna <b>Url de Notificação</b> da integração PagSeguro<br>
            6 - "Salvar configurações"<br>
            Pronto!
        <?php 
    }
    ?>

        <?php 
    if (Integracoes::getInstance()->hasByServico('Cielo')) {
        ?>
            <h3>Instruções de configuração para Cielo</h3>

            Acessar painel da Cielo e configurar:<br><br>
            1 - Em Vendas Online > Configurações > Pagamentos<br>
            2 - Preencha o campo URL de Retorno com o valor de "URL de Retorno"<br>
            3 - Preencha o campo URL de Notificação com o valor de "URL de Notificação"<br>
            4 - Preencha o campo URL de Mudança de Status com o valor de "URL de Mudança de Status"<br>
            5 - Clique em "Salvar"<br>
            Pronto!
        <?php 
    }
    ?>


    </div>
    <?php 
}
 public static function processarNotificacao($id_integracao, $notificationCode)
 {
     // Logar notificacao
     self::logarNotificacao($_POST);
     /* @var $integracao Integracao */
     $integracao = Integracoes::getInstance()->getById($id_integracao);
     // Processar notificação
     if (strtolower($integracao->servico) == 'pagseguro') {
         $transacao = PagSeguroUtil::getTransacaoNotificacao($integracao, $notificationCode);
         if (get_class($transacao) == 'PagSeguroTransaction') {
             $return = Inscricoes::getInstance()->processarTransacaoPagSeguro($transacao);
             if (get_class($return) != 'Inscricao') {
                 throw new Exception('PagSeguro - ' . $return);
             }
         } else {
             throw new Exception("Falha ao obter transação da notificação: {$notificationCode}");
         }
     } elseif (strtolower($integracao->servico) == 'cielo') {
         // Me notificar pra eu entender a coisa
         $actual_link = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
         enviarEmail(TGO_EVENTO_ADMIN, 'Notificacao cielo', 'URL: ' . $actual_link . '<br><br>GET:<pre>' . print_r($_POST, true) . '</pre><br><br>POST<pre>:' . print_r($_POST, true) . '</pre>');
         $transacao = $_POST;
         $return = Inscricoes::getInstance()->processarTransacaoCielo($transacao);
         if (get_class($return) != 'Inscricao') {
             throw new Exception('Cielo - ' . $return);
         } else {
             echo '<status>OK</status>';
         }
     }
 }
 private static function delete($id)
 {
     Integracoes::getInstance()->delete($id);
     self::showList();
 }
 public function callbackPagamento($id_integracao, $transaction_id)
 {
     //echo "<h1>$transaction_id</h1>";
     //?transaction_id=42E40F60-032A-4590-A357-D067CAA5858F
     // Validar o pagamento
     // Incluir PagSeguro
     include_once PLUGINPATH . '/vendor/PagSeguro/PagSeguroLibrary.php';
     // Obter a transação retornada
     // Verificar situação
     /* @var $integracao Integracao */
     $integracao = Integracoes::getInstance()->getById($id_integracao);
     $credentials = new PagSeguroAccountCredentials($integracao->client, $integracao->token);
     $transaction = PagSeguroTransactionSearchService::searchByCode($credentials, $transaction_id);
     $inscricao = Inscricoes::getInstance()->processarTransacaoPagSeguro($transaction);
     return $inscricao;
 }
 /**
  * @return Integracao
  */
 public function getIntegracaoCielo()
 {
     return Integracoes::getInstance()->getById($this->id_integracao_cielo);
 }