Jump to content

Search the Community

Showing results for tags 'PHP'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Calendars

  • Comunidade iMasters

Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 6996 results

  1. Gostaria de colocar um botão que quando clicasse no enviar do Modal enviasse o valor $nome do PHP na tabela e que o $nome não ficasse aparecendo na tabela sem que que fizesse essa solicitação pelo botão, alguém poderia me ajudar? <?php $nome = isset($_GET["nome"])? $_GET["nome"]:null; $matricula = isset($_GET["matricula"])? $_GET["matricula"]:null; $solicitacao = isset($_GET["solicitacao"])? $_GET["solicitacao"]:null; $prioridade = isset($_GET["prioridade"])? $_GET["prioridade"]:null; $orgao = isset($_GET["orgao"])? $_GET["orgao"]:null; $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); $query = "SELECT `solicitacao`,`prioridade`,`orgao`, `nome` from `analistas` WHERE `analistas`"; if (mysqli_query($conexao, $query)) { ?> <?php $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); if(mysqli_connect_errno($conexao)){ echo 'Failed to connecto to database'.mysqli_connect_error();} $query= mysqli_query($conexao, "SELECT DISTINCT * FROM tecnicos, ordem"); ?> <?php while($rows = mysqli_fetch_array($query)): ?> <tr> <td><?php echo $rows['solicitacao']; ?></td> <td><?php echo $rows['prioridade']; ?></td> <td></td> <td></td> <td><?php echo $rows['orgao']; ?></td> <td><?php echo $rows['nome']; ?></td> <td></td> </tr> <?php endwhile; ?> </tbody> </table> <!-- Modal --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title" id="myModalLabel"><strong>Solicitação</strong></h4> </div> <div class="modal-body"> <div class="insertHere"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button class="btn btn-success" type="submit" data-dismiss="modal" onclick="generate()">Confirmar</button> </div> </div> </div> </div>
  2. lucianfpaula

    Banco de dados local para Online

    Olá a todos, tenho a seguinte duvida, quero desenvolver um web app que funcione da seguinte forma: A pessoa irá efetuar um cadastro no celular, mas o que quero é que caso ele esteja off line os dados sejam colocado sei la onde no celular ou pc, para que quando a pessoa estiver online os dados sejam cadastrados no banco de dados online, lembrando que estarei usando Html, Javascript e PHP no backend
  3. Dinho Nunes LC

    Inserir mais uma variavel em "else" "php"

    Como posso adicionar uma terceira opção a essa td? Funciona assim. <td align="center"> <?php if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ?> </td> Resultado atual. if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} ~ Exibe Expirado / Está Ok = 0 Exibindo "Em 0 Dias" else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} ~ Exibe a subtração dos dias. / Está Ok Resultado pretendido if ($usuario['dia'] - $usuario['uso'] <= -1) {echo "Expirado";} Exibe Expirado / Está Ok = 0 Exibir a palavra "Hoje" else {echo "Em ", $usuario['dia'] - $usuario['uso'], " Dias";} Exibe a subtração dos dias. / Está Ok
  4. Saulo Junior

    Preciso da quantidade no php

    tenho o seguinte código em Jquery e preciso da variável numero no php, para calculo final dos produtos selecionados e não consigo recuperar com o uso de document.write(numero) Este é o código Jquery com a variável numero: $('.button-more').on('click',function() { var contador = document.querySelector('.contar'); var numero = parseInt(contador.textContent) + 1; contador.textContent = numero; }); }); $('.button-less').on('click',function() { var contador = document.querySelector('.contar'); var teste = parseInt(contador.textContent); if (teste > 0) { var numero = teste - 1; contador.textContent = numero; } }); preciso recupera-la aqui : <div class="right"><?php $quant = "<script> document.write(numero)</script>"; echo $quant?> quantias de Licor 43</a></div>
  5. drx

    Sistema multinivel - parte 1

    Olá experts !!! Alguém já desenvolveu algum sistema multinível com o plugin Ultimate Affiliate Pro ? Estou precisando de um suporte. Alguém pode me dar uma força? Desde já agradeço.
  6. jonathasouza

    Ajuda no PHP porfavor?

    Como eu poderia colocar um botão no para setar um valor na tabela do php? meu codigo php abaixo, eu gostaria que ele colocasse o valor onclick $nome na parte do analista da tabela via modal. <?php $nome = isset($_GET["nome"])? $_GET["nome"]:null; $matricula = isset($_GET["matricula"])? $_GET["matricula"]:null; $solicitacao = isset($_GET["solicitacao"])? $_GET["solicitacao"]:null; $prioridade = isset($_GET["prioridade"])? $_GET["prioridade"]:null; $orgao = isset($_GET["orgao"])? $_GET["orgao"]:null; $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); $query = "SELECT `solicitacao`,`prioridade`,`orgao`, `nome` from `analistas` WHERE `analistas`"; if (mysqli_query($conexao, $query)) { ?> <?php $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); if(mysqli_connect_errno($conexao)){ echo 'Failed to connecto to database'.mysqli_connect_error();} $query= mysqli_query($conexao, "SELECT DISTINCT `solicitacao`, `prioridade`, `orgao` FROM ordem"); ?> <?php while($rows = mysqli_fetch_array($query)): ?> <tr> <td><?php echo $rows['solicitacao']; ?></td> <td><?php echo $rows['prioridade']; ?></td> <td></td> <td></td> <td><?php echo $rows['orgao']; ?></td> <td></td> <td></td> </tr> <?php endwhile; ?> <!-- Modal --> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title" id="myModalLabel"><strong>Solicitação</strong></h4> </div> <div class="modal-body"> <div class="insertHere"> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button> <button class="btn btn-success" data-dismiss="modal" value="Add Item" onClick="addRow('OrderTable')">Confirmar</button> </div> </div> </div> </div>
  7. drx

    Editar código no WP

    Olá Pessoal! É possível editar meu código em php em qualquer página no WP ? E com relação à segurança no WP, qual procedimento devo realizar? Devo deletar algum arquivo dentro da instalação do WP? Desde já agradeço.
  8. Rengavitp

    Arquivo corrompido no download

    Boa noite pessoal, preciso ajuda com o script abaixo, ele 'e para baixar arquivos do site, ele baixa, mas o arquivo fica sempre corrompido e nao abre, (arquivos sao pdfs). Alguem pode me ajuda? <?php // Define o tempo máximo de execução em 0 para as conexões lentas set_time_limit(0); // Arqui você faz as validações e/ou pega os dados do banco de dados $aquivoNome = '62708_1.pdf'; // nome do arquivo que será enviado p/ download $arquivoLocal = '../../danfe/'.$aquivoNome; // caminho absoluto do arquivo // Verifica se o arquivo não existe if (!file_exists($arquivoLocal)) { echo "arquivo nao encontrado!"; // Exiba uma mensagem de erro caso ele não exista exit; } // Aqui você pode aumentar o contador de downloads // Definimos o novo nome do arquivo $novoNome = 'danfe.pdf'; // Configuramos os headers que serão enviados para o browser header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename="'.$novoNome.'"'); header('Content-Type: application/octet-stream'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($aquivoNome)); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Expires: 0'); // Envia o arquivo para o cliente readfile($aquivoNome); ?>
  9. Como posso criar uma query no php que não duplique varias vezes o valor? Gostaria de colocar apenas um valor desses por vez, e não a mesma coisa repetida. <?php $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); if(mysqli_connect_errno($conexao)){ echo 'Failed to connecto to database'.mysqli_connect_error();} $query= mysqli_query($conexao, "SELECT DISTINCT * FROM tecnicos, ordem"); ?>
  10. Pra aprendizado, estou tentando listar dados do banco de dados e trazer os resultados para meu html. Estou conseguindo fazer com este código. <!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="UTF-8"> <title>Chat</title> <link rel="stylesheet" href="../public/style/reset.css"> <link rel="stylesheet" href="../public/style/chatStyle.css"> <!-- É adicionado a biblioteca jquery e o fontAwesome --> <link href="https://fonts.googleapis.com/css?family=Ubuntu&display=swap" rel="stylesheet"> <link href="../public/style/fontawesome/css/all.css" rel="stylesheet"> <script src="../public/js/jquery.min.js"></script> </head> <style> .test2 { cursor: pointer; } </style> <script> $(document).ready(function(){ var itens = "", url = "../includes/configs/chat.php", itens2 = ""; // Capturar dados usando Método AJAX do jquery $.ajax({ url: url, cache: false, dataType: "json", success: function(retorno){ for(var i = 0; i<retorno.length; i++){ itens += "<li>"; itens += "<a class='test2' onclick='function retornou(){$('.Tes22').html('wadwd')}'>"; itens += "<div class='imgUserList'>"; itens += "<div class='widthUserImg'>"; itens += "<div class='imgUserListD'><img src='https://avatars0.githubusercontent.com/u/3966553?s=460&v=4' alt=''></div>"; itens += "</div>"; itens += "<div class='textUserList'>"; itens += "<input type='text' class='pegarID' value='" + retorno[i].id + "'>"; itens += "<span class='title'>" + retorno[i].email + "</span>"; itens += "<h1 class='title'>Está online</h1>"; itens += "</div>"; itens += "</div>"; itens += "</a>"; itens += "</li>"; } $(".pessoas").html(itens); } }) }); </script> <body onload="carregarItens()"> <div class="container"> <div class="listaPessoas"> <div class="headerPeople title"> <h1>Contatos</h1> <h2 class="Tes22"></h2> </div> <ul class="pessoas"> <!-- <li> <a href=""> <div class="imgUserList"> <div class="widthUserImg"> <div class="imgUserListD"><img src="https://avatars0.githubusercontent.com/u/3966553?s=460&v=4" alt=""></div> </div> <div class="textUserList"> <span class="title">10.1.196.90</span> <h1 class="title">Está online</h1> </div> </div> </a> </li> --> </ul> </div> <div class="chat"> <div class="chatHeader"> <div class="title text"> <h1>james</h1> </div> <div class="menuUser title"> <i class="fas fa-ellipsis-h"></i> </div> </div> <div class="chatMessage"> </div> <div class="chattext"> <form action=""> <input type="text" id="modal"> <button><i class="fas fa-paper-plane"></i></button> </form> </div> </div> <div class="infoPessoas"> </div> </div> <script src="../public/js/chat.js"></script> </body> </html> Porém estou querendo pegar apenas o ID e colocar em um <h2> e não estou conseguindo. Exemplo: Ao clicar em um dado vindo do banco de dados como é listado acima eu colocar o ID dele no <h2>. Este é meus dados vindo do PHP já no json. echo json_encode($dados, JSON_PRETTY_PRINT);
  11. <div align="center" id="subtitulo"> Canais Abertos </div> <div class="ui cards"> <div class="card"> <div class="content"> <a href="globo.html" style="display: block; color: black"> <div align="center"> <div> <img class="ui tiny image" id="imagem_card_casa" src="assets/images/Rede_Globo_2014.png"> <div align="center" id = "nome_time_fora"> <b>Globo RJ</b> </div> </div> Onde "globo.html" seria substituído pelo link que esta em uma tabela do banco de dados. Já fiz a conexão. E tenho a base de dados pronta. Motivo pelo qual estou buscando ajuda: Faço manualmente a mudança de cada link (são mais de 300) diariamente para evitar copias de terceiros. Sendo assim poderia usar um CRUD para facilitar a troca dos links direto no banco de dados.
  12. Kefatif

    Filtro de produtor vencidos por data

    Prezados, bom dia… Preciso da ajuda dos Srs… Pois quando filtro por janeiro ao invés de me trazer somente os produtos que venceram em janeiro acaba me trazendo de todos os outros meses incluindo o de janeiro. Segue o meu código abaixo: <?php if (isset($_POST['pesquisar'])) { $ano = $_POST["ano"]; $mes = $_POST["mes"]; $unid = $_POST["unid"]; $tipoitem = $_POST["tipoitem"]; $item = $_POST["item"]; if (isset($_POST["ano"]) and empty($_POST["mes"]) and empty($_POST["unid"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$ano."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["ano"]) and isset($_POST["mes"]) and empty($_POST["unid"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$ano."%') AND (A.VALIDADE LIKE '%".$mes."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["ano"]) and isset($_POST["mes"]) and isset($_POST["unid"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$ano."%') AND (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["ano"]) and isset($_POST["mes"]) and isset($_POST["unid"]) and isset($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$ano."%') AND (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["ano"]) and isset($_POST["mes"]) and isset($_POST["unid"]) and isset($_POST["tipoitem"]) and isset($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$ano."%') AND (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (B.ITEM LIKE '%".$item."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["mes"]) and empty($_POST["ano"]) and empty($_POST["unid"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$mes."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["mes"]) and isset($_POST["unid"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["mes"]) and isset($_POST["unid"]) and isset($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["mes"]) and isset($_POST["unid"]) and isset($_POST["tipoitem"]) and isset($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.VALIDADE LIKE '%".$mes."%') AND (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (B.ITEM LIKE '%".$item."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; } elseif (isset($_POST["unid"]) and empty($_POST["ano"]) and empty($_POST["mes"]) and empty($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.CNES LIKE '%".$unid."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["unid"]) and isset($_POST["tipoitem"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["unid"]) and isset($_POST["tipoitem"]) and isset($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (A.CNES LIKE '%".$unid."%') AND (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (B.ITEM LIKE '%".$item."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; } elseif (isset($_POST["tipoitem"]) and empty($_POST["ano"]) and empty($_POST["mes"]) and empty($_POST["unid"]) and empty($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; }elseif (isset($_POST["tipoitem"]) and isset($_POST["item"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (B.TIPO_ITEM LIKE '%".$tipoitem."%') AND (B.ITEM LIKE '%".$item."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; } elseif (isset($_POST["item"]) and empty($_POST["ano"]) and empty($_POST["mes"]) and empty($_POST["unid"]) and empty($_POST["tipoitem"])) { $sql = "SELECT * FROM REMANEJAMENTO_ITENS_DISPONIVEIS AS A LEFT JOIN REMANEJAMENTO_ITENS B ON A.ID_ITEM = B.ID_ITEM LEFT JOIN UNIDADES C ON A.CNES = C.CNES LEFT JOIN USUARIOS D ON A.ID_USUARIO = D.ID_USUARIO WHERE (B.ITEM LIKE '%".$item."%') AND (A.VALIDADE < CURDATE()) ORDER BY B.ITEM"; } //caso a consulta apresente falha, exibe mensagem de erro if (!$sql) { echo "<script>alert('Não foi possível executar a consulta: %s\n".$mysqli->error."');</script>"; exit; } $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) > 0) { if (empty($_POST["ano"])){ $ano = "TODOS"; } if (empty($_POST["mes"])){ $mes = "TODOS"; } if (empty($_POST["unid"])){ $unid = "TODOS"; } if (empty($_POST["tipoitem"])){ $tipoitem = "TODOS"; } if (empty($_POST["item"])){ $item = "TODOS"; } if ($_POST["mes"] == "01") { $mes = "Janeiro"; } if ($_POST["mes"] == "02") { $mes = "Fevereiro"; } if ($_POST["mes"] == "03") { $mes = "Março"; } if ($_POST["mes"] == "04") { $mes = "Abril"; } if ($_POST["mes"] == "05") { $mes = "Maio"; } if ($_POST["mes"] == "06") { $mes = "Junho"; } if ($_POST["mes"] == "07") { $mes = "Julho"; } if ($_POST["mes"] == "08") { $mes = "Agosto"; } if ($_POST["mes"] == "09") { $mes = "Setembro"; } if ($_POST["mes"] == "10") { $mes = "Outubro"; } if ($_POST["mes"] == "11") { $mes = "Novembro"; } if ($_POST["mes"] == "12") { $mes = "Dezembro"; } } echo '<div class="alert alert-info" role="alert">Exibindo resultados para os critérios: <br>ANO: '.$ano.' | MÊS: '.$mes.' | UNIDADE: '.$unid.' | TIPO DE ITEM: '.$tipoitem.' | ITEM: '.$item.'</div>'; if (mysqli_num_rows($result) > 0) { ?> <table class="table table-hover table-bordered" style="width: 100%;margin-top: 1%"> <tr style="background-color: #C1CDCD; color: black;"> <th>Data do<br>Registro</th> <th>Unidade</th> <th>Usuário que disponibilizou</th> <th>Tipo de Item</th> <th>Nome do Item</th> <th>Quantidade</th> <th>Lote</th> <th>Validade</th> <th>Valor</th> </tr> <?php while ($row = mysqli_fetch_array($result)){ foreach($row as $key => $values){ $row[$key]= utf8_encode($values); } $valor = $row["VALOR"]*$row["QTD"]; $valor = "R$ ".round($valor,2); ?> <tr style="background-color:white;"> <td><?php echo dataTela($row["DATA_REGISTRO"])?></td> <td><?php echo $row["NOME_UNIDADE"]?></td> <td><?php echo $row["NOME_USUARIO"]?></td> <td><?php echo $row["TIPO_ITEM"]?></td> <td><?php echo $row["ITEM"]?></td> <td><?php echo $row["QTD"]-$row["QTD_SAIDA"]?></td> <td><?php echo $row["LOTE"]?></td> <td><?php echo dataTela($row["VALIDADE"])?></td> <td><?php echo $valor?></td> </tr> <?php } ?> </table> <?php }else{ echo '<br><div class="alert alert-danger" role="alert">Atualmente não constam itens disponibilizados por outras unidades com estes critérios!</div>'; } } ?>
  13. Olá, tenho a seguinte dúvida... Tenho uma imagem na corpo do site, coloquei essa imagem como aleatória (imagem A, imagem B, imagem C), quando clico nessa imagem quero que ela me direcione para um grupo específico de imagem baseado no imagem que apareceu, Imagem A me direcione para um grupo de imagens A1, A2, A3... Imagem B me direcione para um grupo de imagens B1, B2, B3..... Puxa, será que isso é possível?
  14. granderodeo

    Abrir modal relativa ao id do pedido

    Tenho a página pedidos.php, que recebe todos os pedidos que foram feitos no site nessa página tem informações com ID do pedido, ID do usuário, Endereço etc. Fiz um botão `Produtos` para que quando o ADM clique, abra uma modal vinda de outra página `modalbox.php`, com os produtos pedidos referentes aquele pedido. Por exemplo Pedido nº 833 ao lado dele terá um botão `Produtos` e quero que quando abrir a modal venha somente os produtos pedidos pelo 833. Com o código que tenho até o momento a modal abre, mas não mostra os produtos. pedidos.php <!-------------------------------- PEDIDOS -------------------------> <div class="table-responsive mt-2"> <table class="table table-bordered table-striped text-center"> <thead> <tr> <td colspan="9"> <h4 class="text-center text-info m-0">Pedidos realizados</h4> </td> </tr> <tr> <th class="text-center">ID do pedido</th> <th class="text-center">Nome do cliente</th> <th class="text-center">E-mail</th> <th class="text-center">Endereço</th> <th class="text-center">Número da casa</th> <th class="text-center">Valor</th> <th class="text-center">ID cliente</th> <th class="text-center">Situação</th> <th class="text-center">Produtos</th> </tr> </thead> <tbody> <?php require 'conexao_pedidos.php'; $stmt = $conn->prepare("SELECT * FROM orders"); $stmt->execute(); $result = $stmt->get_result(); while($row = $result->fetch_assoc()): ?> <tr> <td> <?= $row['order_id'] ?></td> <!-- ID do pedido --> <td> <?= $row['order_name'] ?></td> </td> <td><?= $row['order_email'] ?> </td> <td> <?= $row['order_endereco'] ?> </td> <td> <?= $row['order_numero'] ?> </td> <td>R$<?= $row['valor_total'] ?></td> <td><?= $row['id_usuario'] ?> </td> <!---- BOTÃO PARA ABRIR MODAL COM OS PRODUTOS ----> <td> <a class="btn btn-danger pull-right" data-toggle="modal" href="#myModal" id="modellink" data-client="<?= $row['order_id'] ?>">Produtos</a> <div class="modal-container"></div> <!----FIM BOTÃO PARA ABRIR MODAL COM OS PRODUTOS ----> </tr> <?php endwhile; ?> </tbody> </table> </div> <!----- JQUERY PARA ABRIR MODAL -----> <script type="text/javascript"> $(document).ready(function(){ var order_id = $(this).attr("data-client"); var url = "modalbox.php?order_id=" + order_id; $_post(url,{ order_id = order_id, }, jQuery('#modellink').click(function(e) { $('.modal-container').load(url,function(result){ $('#myModal').modal({show:true}); }); }); }); </script> modalbox.php <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> </div> <div class="modal-body"> <div class="table-responsive mt-2"> <table class="table table-bordered table-striped text-center"> <thead> <tr> <td colspan="8"> <h4 class="text-center text-info m-0">Produtos dos pedidos</h4> </td> </tr> <tr> <th>ID do pedido</th> <th>ID cliente</th> <th>ID produto</th> <th>Quantidade</th> </tr> </thead> <tbody> <?php extract($order_id); if (isset($_GET['order_id'])) { $order_id = $_GET['order_id']; } else { die("ERRO: ID não definido."); } require 'conexao_pedidos.php'; $stmt = $conn->prepare("SELECT * FROM orders_items WHERE order_id = '$order_id'"); $stmt->execute(); $result = $stmt->get_result(); while($row = $result->fetch_assoc()): ?> <tr> <td> <?= $row['order_id'] ?> </td> <td> <?= $row['id_usuario'] ?></td> </td> <td> <?= $row['product_id'] ?> </td> <td> <?= $row['quantity'] ?> </td> <!------- FIM ITEM REMOVER DO CARRINHO -------> </tr> <?php endwhile; ?> </tbody> </table> </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> <button type="button" class="btn btn-primary">Save</button> </div> </div> </div> </div>
  15. <?php include("C:\wamp64\www\analistas.php"); ?> <?php $nome = isset($_GET["nome"])? $_GET["nome"]:null; $matricula = isset($_GET["matricula"])? $_GET["matricula"]:null; $solicitacao = isset($_GET["solicitacao"])? $_GET["solicitacao"]:null; $prioridade = isset($_GET["prioridade"])? $_GET["prioridade"]:null; $orgao = isset($_GET["orgao"])? $_GET["orgao"]:null; $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); $query = "SELECT `solicitacao`,`prioridade`,`orgao`, `nome` from `analistas` WHERE `analistas`"; if (mysqli_query($conexao, $query)) { ?> <?php } ?> <div class="wrapper"> <header class="main-header"> <a href="../../index.html" class="logo"> <span class="logo-mini"><b></b></span> <span class="logo-lg"><b></b></span> </a> <nav class="navbar navbar-static-top"> <!-- Sidebar toggle button--> <a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> </nav> </header> <aside class="main-sidebar"> <section class="sidebar"> <div class="user-panel"> <div class="pull-left image"> <img src="../../dist/img/user2-160x160.jpg" class="img-circle" alt="User Image"> </div> <div class="pull-left info"> <p>Victor Alves</p> <a href="#"><i class="fa fa-circle text-success"></i> 7716</a> </div> </div> </section> </aside> <section class="content"> <div class="box"> <div class="box-header"> <h3 class="box-title" style="margin-left: 250px; margin-top: 15px; font-size: 30px;"><strong> Lista Pesquisas </strong></h3> </div> <!-- /.box-header --> <div class="content" style=" margin-right: 20px; margin-bottom: 20%; width: 1200px; margin-left: 10px;"> <table id="example" class="table table-striped " cellspacing="0" width="1300px" style="margin-left: 230px"> <thead> <tr> <th style="text-align: center">Solicitação</th> <th style="text-align: center">Prioridades</th> <th style="text-align: center">Órgão</th> <th style="text-align: center">Analista</th> <th></th> </tr> </thead> <tbody style="text-align: center" action="analistas.php" method="post"> <?php $conexao = mysqli_connect('localhost', 'root', '', 'analistas'); if(mysqli_connect_errno($conexao)){ echo 'Failed to connecto to database'.mysqli_connect_error();} $query= mysqli_query($conexao, "SELECT DISTINCT * FROM tecnicos, ordem"); ?> <?php while($rows = mysqli_fetch_array($query)): ?> <tr> <td><?php echo $rows['solicitacao']; ?></td> <td><?php echo $rows['prioridade']; ?></td> <td></td> <td></td> <td><?php echo $rows['orgao']; ?></td> <td><?php echo $rows['nome']; ?></td> <td></td> </tr> <?php endwhile; ?> </tbody> </table>
  16. Rengavitp

    Disponibilizar Danfe, xml e boletos

    Boa noite pessoal, Minha dúvida é a seguinte, quero enviar um email ao cliente com um link onde ele poderá baixar a danfe, xml e o boleto da compra, a empresa tem site hospedado na godaddy, mas também tem ip fixo e servidor local onde poderia hospedar a aplicacao. Minha duvida está em qual a forma de fazer isso, tipo minha primeira idéia foi criar um subdominio e redirecionar para o ip da empresa, mas como o servidor tem varias aplicaoes webs de uso interno, acabei desistindo, outra ideia foi usar php e fazer no proprio subdominio, mas ai como faço para pegar os arquivos que estão localmente na empresa? e na hospedagem nao tem como criar mais um banco, ou seja, teria que usar banco de dados remoto também, alguém pode me dar uma ajuda?
  17. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div class="row"> <div class="col-md-6"> <div class="form-group"> <label><i class="fas fa-university"></i> Unidade</label require> <select type="text" name="unidade" class="form-control" id="unidade" onclick="formatar()"> <option selected disabled>Escolha Unidade</option required> <?php include_once("conexao.php"); $consult = "SELECT * FROM tb_unidades WHERE cnes ORDER BY nome_da_unidade"; $consulta = mysqli_query($conn, $consult); while ($row_cat_post = mysqli_fetch_assoc($consulta)) { echo '<option value="' . $row_cat_post['nome_da_unidade'] . '"> ' . $row_cat_post['nome_da_unidade'] . '</option>'; } ?> </select> </div> </div> <div class="col-md-6"> <div class="form-group"> <label><i class="fas fa-fingerprint"></i> CNES</label> <input type="text" name="cnes" class="form-control" id="cnes" placeholder="Cadastro Nacional de Estabelecimentos de Saúde"> </div> </div> </div> </body> </html>
  18. asacap1000

    Exportar para Excel com várias "abas"

    Salva galera, a tempo eu exporto os dados de consultas realizadas em nossa intranet, para excel. Porém hoje estamos precisando dividir algumas informações. por exemplo consulto saldo de estoque do cliente, e cada saldo corresponde a um documento, hoje eu trago em apenas uma aba na planilha mas o cliente solicitou para gerar cada documento uma aba ex: Eu pesquisei mas não encontrei nada que falasse sobre isso. hoje utilizo algo simples para exportar.
  19. Olá pessoal, tudo bem? Sou novo no ramo da programação, e ainda tenho bastante dificuldade quando o assunto é banco de dados. Recentemente peguei um projeto de um cliente pra criar algumas funcionalidades novas para um site em php. Eu preciso resgatar os dados de duas tabelas do banco de uma maneira específica, pra gerar uma espécie de planilha/tabela html, com esses dados. No banco, tenho duas tabelas pra trabalhar: Clientes e Fontes. A tabela de Cliente, possui todos os dados do cliente cadastrado, nessa tabela, preciso trabalhar com 2 colunas: "data_registro" e "id_fonte". A tabela de Fontes, o cliente cadastra os meios de divulgação que sua empresa faz (Ex.: panfletos, cartazes, google, facebook, etc.), dessa tabela eu precisaria trabalhar com o "id" e com a "fonte" do contato em si. O resultado final, deveria me trazer quantos contatos por tipo de fonte, foram realizados em cada dia do mês. Pra uma melhor compreensão, vou deixar uma imagem de como a tabela deveria ficar ao final do processo. Espero que alguém consiga me dar uma força. Desde já, obrigado.
  20. Salve Galera, tenho uma tabela no banco de dados que estão salvos os dados de fotos armazenadas, uma das tabela consta o caminho das mesmas. Hoje consigo buscar estas fotos, mostrar na tela do site tudo certo. Porém estou precisando adicionar um botão para o envio de email com estas imagens em anexos. Saberiam me dizer como posso fazer isso? Tenho um formulário com os campos Remetente: Nome / Email - Destinatário: Nome / Email e o campo de input file porém as imagens não carregam. Fiz um teste assim: <div class="input_fields_wrap"> <?php while ($row = oci_fetch_object($stmt2)) { ?> <div><input type="file" name="fotos[]" value="<?=$string3?>" multiple></div> <? }?> </div> Ele carrega assim até lista a quantidade de imagens na consulta mas não carrega as imagens.
  21. analuciagpontes

    Phpmailer no Hostgator

    Galera... Tenho uma hospedagem no Hostgator e quero fazer um phpmailer.... Só que não dá pra fazer com 2 arquivos (um em html e outro em php). Como faço para chamar a função no form action? Envio abaixo o código que está sendo usado. <html><head><title>Formulario Fale conosco</title><style>body { padding: 50px 100px; font-size: 13px; font-family: arial, Tahoma, sans-serif; } a { color:#000; } h2 { margin-bottom: 20px; color: #133141; }input, textarea { padding: 10px; border: 1px solid #E5E5E5; width: 200px; color: #999999; box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px; }textarea { width: 400px; height: 150px; max-width: 400px; line-height: 18px; }input:hover, textarea:hover, input:focus, textarea:focus { border-color: 1px solid #C9C9C9; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px; }.form label { margin-bottom: 10px; color: #999999; display: block; }.submit input { width: 100px; height: 40px; background-color: #133141; color: #FFF; border-radius: 3px; moz-border-radius: 3px; -webkit-border-radius: 3px; }</style></head><body><?phpif (isset($_POST['BTEnvia'])){ $function conec (mysql_connect ("XXX.hostgator.com.br","XXX", "XXX", "XXX"));{ $nome = $_POST['nome']; $email = $_POST['email']; $telefone = $_POST['telefone']; $mensagem = $_POST['mensagem']; $email_remetente = "XXX"; $email_destinatario = "XXX"; $email_reply = "$email"; $email_assunto = "Contato formmail"; $email_conteudo = "Nome = $nome \n"; $email_conteudo .= "Email = $email \n"; $email_conteudo .= "Telefone = $telefone \n"; $email_conteudo .= "Mensagem = $mensagem \n"; $email_headers = implode ( "\n",array ( "From: $email_remetente", "Reply-To: $email_reply", "Return-Path: $email_remetente","MIME-Version: 1.0","X-Priority: 3","Content-Type: text/html; charset=UTF-8" ) ); }if (mail ($email_destinatario, $email_assunto, nl2br($email_conteudo), $email_headers)){ echo "E-Mail enviado com sucesso!"; }else{ echo "Falha no envio do E-Mail!"; }}?> <form method="POST" action="conec()"> <p> Nome:<br /> <input type="text" size="30" name="nome"> </p> <p> E-mail:<br /> <input type="text" size="30" name="email"> </p> <p> Telefone:<br /> <input type="text" size="35" name="telefone"> </p> <p> Mensagem:<br /> <input type="text" size="35" name="mensagem"> </p> <p> <input type="submit" name="BTEnvia" value="Enviar"> <input type="reset" name="BTApaga" value="Apagar"> </p></form></body></html>
  22. Olá caros amigos, estou enrolado em um PDO que nao consigo corrigir. Eis meu script: <?php include "conexao.php"; $user = $_POST['user']; $senha_tec = $_POST['senha']; $codigo = $_POST['codigo']; $senha1 = hash('sha256', $senha_tec); $sql = "SELECT * FROM codigos WHERE codigo = :CODIGO"; $stmt = $PDO->prepare($sql); $stmt->bindParam(':CODIGO', $codigo); $stmt->execute(); if($stmt->rowCount() > 0) { $dados = $stmt->fetch(PDO::FETCH_ASSOC); $id_emp = $dados['id_emp']; $sql_login = "SELECT * FROM empresas WHERE id = :EMP"; $stmt_login = $PDO->prepare($sql_login); $stmt_login->bindParam(':EMP', $id_emp); $stmt_login->execute(); if($stmt_login->rowCount() > 0) { $dados_login = $stmt_login->fetch(PDO::FETCH_ASSOC); $hostname = $dados_login['host_db']; $usuario = $dados_login['user_db']; $senha = $dados_login['password_db']; $bancodedados = $dados_login['banco_db']; $dsn = "mysql:host=" . $hostname . ";dbname=" . $bancodedados . ";charset=utf8"; $PDO = new PDO($dsn, $usuario, $senha); $sql_tec = "SELECT * FROM sis_acesso WHERE login = :USER && sha = :SENHA LIMIT 1"; $stmt_tec = $PDO->prepare($sql_tec); $stmt_tec->bindParam(':USER', $user); $stmt_tec->bindParam(':SENHA', $senha1); $stmt_tec->execute(); if($stmt_tec->rowCount() > 0) { $dados_tec = $stmt_tec->fetch(PDO::FETCH_ASSOC); } else { $retornoApp = array("LOGIN"=>"ERRO"); } } $retornoApp = array("LOGIN"=>"SUCESSO", "HOST DB"=>$dados_login['empresa'], "PERMISSOES"=>$dados_tec['cli_grupos']); } else { $retornoApp = array("LOGIN"=>"ERRO"); } echo json_encode($retornoApp); ?> ele pega dados que estao em um banco de dados e abre uma nova conexao, porem eu nao consigo fazer com que ele retone erro caso nao o usuario e senha esteja errado Usando as credencias corretas ele me retorna: agora quando coloca usuario ou senha errada: ele retorna o seguinte o unico modo que ele retona erro e quando o codigo (1111-1111) esta errado: sera que conseguem me ajudar ?
  23. Olá pessoal, beleza?!! Espero que sim! Vou tentar explicar bem meu problema para ver se aparece um anjo na minha vida e me ajuda com isso! Tenho um projeto quiz para facebook. Todo o tráfego é gerado pelos próprios usuários que fazem o teste, aparece a foto do usuário e ele compartilha em seu facebook. Porém a taxa de compartilhamento está muito baixa, percebi que não esta exibindo a imagem certa dentro da janela de share do facebook. Acredito que quem conhece php e/ou javascript consegue ler o código e ver qual código é responsável por puxar a imagem do resultado dentro da janela de share. É exibida a imagem de "capa", mas não a imagem do resultado. Por favor, veja o funcionamento, basta logar com facebook e para iniciar o teste: https://testesdivertidos.com/qual-seu-status-de-relacionamento-para-este-ano/ Após aparecer o resultado, clique em COMPARTILHAR, verá que a imagem da capa aparece no share, ao invés da imagem do resultado. Bom, os arquivos responsáveis acredito serem 3. wp-quiz-pro.php inc/class-fb-quiz.php inc/class-wp-quiz-pro.php Obs: "class-fb-quiz.php" e "class-wp-quiz-pro.php" estão dentro da pasta inc Segue código, wp-quiz-pro.php: <?php /** * Plugin Name: Testes Pop * Plugin URI: https://testespop.com.br * Description: O TestesPop permite que você adicione facilmente testes para o facebook, ágeis e modernos ao seu site ou blog! Aumente o engajamento e os compartilhamentos enquanto fatura continuamente. * Version: 4122 * Author: TestesPop * Author URI: http://testespop.com.br * * Text Domain: testes-pop * Domain Path: /languages/ */ if ( ! defined( 'ABSPATH' ) ) { exit; // disable direct access } if ( ! class_exists( 'WP_Quiz_Pro_Plugin' ) ) : /** * Register the plugin. * * Display the administration panel, insert JavaScript etc. */ class WP_Quiz_Pro_Plugin { /** * Hold plugin version * * @var string */ public $version = '4122'; /** * Hold an instance of WP_Quiz_Pro_Plugin class. * * @var WP_Quiz_Pro_Plugin */ protected static $instance = null; /** * Hold the current quiz instance * * @var WP_Quiz_Pro */ public $quiz = null; /** * Plugin url. * @var string */ private $plugin_url = null; /** * Plugin path. * @var string */ private $plugin_dir = null; /** * Main WP_Quiz_Pro_Plugin instance. * @return WP_Quiz_Pro_Plugin - Main instance. */ public static function get_instance() { if ( is_null( self::$instance ) ) { self::$instance = new WP_Quiz_Pro_Plugin; } return self::$instance; } /** * You cannot clone this class. */ public function __clone() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wp-quiz-pro' ), $this->version ); } /** * You cannot unserialize instances of this class. */ public function __wakeup() { _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'wp-quiz-pro' ), $this->version ); } /** * The Constructor */ private function __construct() { $this->includes(); $this->hooks(); $this->setup_shortcode(); } /** * Load required classes */ private function includes() { // Auto loader spl_autoload_register( array( $this, 'autoloader' ) ); new WP_Quiz_Pro_Admin; } /** * Autoload classes */ public function autoloader( $class ) { $dir = $this->plugin_dir() . 'inc' . DIRECTORY_SEPARATOR; $class_file_name = 'class-' . str_replace( array( 'wp_quiz_pro_', '_' ), array( '', '-' ), strtolower( $class ) ) . '.php'; if ( file_exists( $dir . $class_file_name ) ) { require $dir . $class_file_name; } } /** * Register the [wp_quiz_pro] shortcode. */ private function setup_shortcode() { add_shortcode( 'wp_quiz_pro', array( $this, 'register_shortcode' ) ); add_shortcode( 'wp_quiz_listing', array( $this, 'quiz_listing' ) ); } /** * Hook WP Quiz into WordPress */ private function hooks() { // Common add_action( 'init', array( $this, 'load_plugin_textdomain' ) ); add_action( 'init', array( $this, 'register_post_type' ) ); add_action( 'init', array( $this, 'embeded_output' ) ); // Frontend add_action( 'wp_head', array( $this, 'inline_script' ), 1 ); add_filter( 'the_content', array( $this, 'create_quiz_page' ) ); // Ajax add_action( 'wp_ajax_wq_quizResults', array( $this, 'save_quiz_results' ) ); add_action( 'wp_ajax_nopriv_wq_quizResults', array( $this, 'save_quiz_results' ) ); add_action( 'wp_ajax_wq_submitInfo', array( $this, 'save_quiz_user_info' ) ); add_action( 'wp_ajax_nopriv_wq_submitInfo', array( $this, 'save_quiz_user_info' ) ); add_action( 'wp_ajax_wq_submitFbInfo', array( $this, 'save_quiz_fb_user_info' ) ); add_action( 'wp_ajax_nopriv_wq_submitFbInfo', array( $this, 'save_quiz_fb_user_info' ) ); add_action( 'wp_ajax_check_image_file', array( $this, 'check_image_file' ) ); add_action( 'wp_ajax_check_video_file', array( $this, 'check_video_file' ) ); add_action( 'wp_ajax_dismiss_imagick_notice', array( $this, 'dismiss_imagick_notice' ) ); add_action( 'wp_ajax_dismiss_gdlibrary_notice', array( $this, 'dismiss_gdlibrary_notice' ) ); add_action( 'wp_ajax_wpquiz_get_debug_log', array( $this, 'wp_quiz_pro_get_debug_log' ) ); add_action( 'wp_ajax_connect_aweber', array( $this, 'connect_aweber' ) ); // FB SDK version 2.9 fix if ( isset( $_GET['fbs'] ) && ! empty( $_GET['fbs'] ) ) { add_action( 'template_redirect', array( $this, 'fb_share_fix' ) ); } } /** * Initialise translations */ public function load_plugin_textdomain() { load_plugin_textdomain( 'wp-quiz-pro', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } /** * Register Quiz post type */ public function register_post_type() { $labels = array( 'name' => __( 'Testes Pop', 'wp-quiz-pro' ), 'menu_name' => __( 'Testes Pop', 'wp-quiz-pro' ), 'singular_name' => __( 'Testes Pop', 'wp-quiz-pro' ), 'name_admin_bar' => _x( 'Testes Pop', 'name admin bar', 'wp-quiz-pro' ), 'all_items' => __( 'Todos os testes', 'wp-quiz-pro' ), 'search_items' => __( 'Procurar teste', 'wp-quiz-pro' ), 'add_new' => _x( 'Adicionar novo', 'quiz', 'wp-quiz-pro' ), 'add_new_item' => __( 'Adicionar novo teste', 'wp-quiz-pro' ), 'new_item' => __( 'Adicionar novo', 'wp-quiz-pro' ), 'view_item' => __( 'Ver teste', 'wp-quiz-pro' ), 'edit_item' => __( 'Editar teste', 'wp-quiz-pro' ), 'not_found' => __( 'Nenhum teste encontrado.', 'wp-quiz-pro' ), 'not_found_in_trash' => __( 'Nenhum teste na lixeira.', 'wp-quiz-pro' ), 'parent_item_colon' => __( 'Teste pai', 'wp-quiz-pro' ), ); $args = array( 'labels' => $labels, 'description' => __( 'Mantém os testes e seus dados.', 'wp-quiz-pro' ), 'menu_position' => 5, 'menu_icon' => 'dashicons-editor-help', 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'supports' => array( 'title', 'author', 'thumbnail', 'excerpt' ), ); register_post_type( 'wp_quiz', $args ); if ( false === get_option( 'wp_quiz_pro_version' ) ) { flush_rewrite_rules(); update_option( 'wp_quiz_pro_version', $this->version ); } } public function quiz_listing( $atts = array() ) { extract( shortcode_atts( array( 'num' => 30 ), $atts ) ); $args = array( 'post_type' => 'wp_quiz', 'post_status' => 'publish', 'posts_per_page' => $num, 'no_found_rows' => true, 'update_post_term_cache' => false ); $the_query = new WP_Query( $args ); if ( ! $the_query->have_posts() ) { return ''; } wp_enqueue_style( 'wp-quiz-listing', $this->plugin_url() . 'assets/css/listing.css', null, null ); ob_start(); include_once 'tmpl-quiz-listing.php'; $out = ob_get_clean(); wp_reset_query(); return $out; } /** * Shortcode used to display quiz * * @return string HTML output of the shortcode */ public function register_shortcode( $atts ) { if ( ! isset( $atts['id'] ) ) { return false; } // we have an ID to work with $quiz = get_post( $atts['id'] ); // check if ID is correct if ( ! $quiz || 'wp_quiz' !== $quiz->post_type ) { return "<!-- wp_quiz {$atts['id']} not found -->"; } // lets go $this->set_quiz( $atts['id'] ); $this->quiz->enqueue_scripts(); return $this->quiz->render_public_quiz(); } /** * Set the current quiz */ public function set_quiz( $id ) { $quiz_type = get_post_meta( $id, 'quiz_type', true ); $quiz_type = str_replace( '_quiz', '', $quiz_type ); $quiz_type = 'WP_Quiz_Pro_' . ucwords( $quiz_type ) . '_Quiz'; $this->quiz = new $quiz_type( $id ); } /** * [create_quiz_page description] * @param [type] $content [description] * @return [type] [description] */ public function create_quiz_page( $content ) { global $post; if ( 'wp_quiz' !== $post->post_type ) { return $content; } if ( ! is_single() ) { return $content; } $quiz_html = $this->register_shortcode( array( 'id' => $post->ID ) ); return $quiz_html . $content; } /** * [save_quiz_results description] * @return [type] [description] */ public function save_quiz_results() { if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) { return; } $correct = isset( $_POST['correct'] ) ? absint( $_POST['correct'] ) : 0; $rid = isset( $_POST['rid'] ) ? $_POST['rid'] : ''; $pid = absint( $_POST['pid'] ); $type = sanitize_text_field( $_POST['type'] ); $user_ip = $this->get_ip(); $user_id = get_current_user_id(); $user_info = get_userdata( $user_id ); $username = is_user_logged_in() ? $user_info->user_login : 'Guest'; $result = ''; $results = get_post_meta( $pid, 'results', true ); if ( 'trivia' === $type ) { $rid = ''; foreach ( $results as $result ) { if ( $result['min'] <= $correct && $result['max'] >= $correct ) { $result = $result['title']; break; } } } elseif ( 'personality' === $type ) { for ( $i = 0; $i < count( $results ); $i++ ) { if ( $i == $rid ) { $result = $results[ $i ]['title']; break; } } } elseif ( 'swiper' === $type ) { $results = $_POST['results']; $questions = get_post_meta( $pid, 'questions', true ); foreach ( $questions as $q_key => $question ) { foreach ( $results as $key => $result ) { if ( $question['uid'] == $key ) { if ( '0' == $result ) { $questions[ $q_key ]['votesDown'] = $question['votesDown'] + 1; } else { $questions[ $q_key ]['votesUp'] = $question['votesUp'] + 1; } } } } update_post_meta( $pid, 'questions', $questions ); $result = ''; } // Save Result $settings = get_option( 'wp_quiz_pro_default_settings' ); if ( isset( $settings['players_tracking'] ) && 1 === $settings['players_tracking'] ) { global $wpdb; $wpdb->insert( $wpdb->prefix . 'wp_quiz_players', array( 'pid' => $pid, 'date' => date( 'Y-m-d', time() ), 'user_ip' => $user_ip, 'username' => $username, 'correct_answered' => $correct, 'result' => $result, 'quiz_type' => $type, ), array( '%d', '%s', '%s', '%s', '%d', '%s', '%s' ) ); } die( 'SUCCESS!' ); } /** * [save_quiz_user_info description] * @return [type] [description] */ public function save_quiz_user_info() { if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) { return; } $output = array( 'status' => 1 ); if ( is_email( $_POST['email'] ) ) { global $wpdb; $username = sanitize_text_field( $_POST['username'] ); $email = sanitize_email( $_POST['email'] ); $pid = absint( $_POST['pid'] ); $this->subscribe_user( $pid, $username, $email ); $result = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wp_quiz_emails WHERE email = '" . $email . "'" ); if ( ! $result ) { //Save info $wpdb->insert( $wpdb->prefix . 'wp_quiz_emails', array( 'pid' => $pid, 'username' => $username, 'email' => $email, 'date' => date( 'Y-m-d', time() ), ), array( '%d', '%s', '%s', '%s' ) ); } $output['status'] = 2; } wp_send_json( $output ); } /** * [save_quiz_fb_user_info description] * @return [type] [description] */ public function save_quiz_fb_user_info() { if ( ! wp_verify_nonce( $_POST['_nonce'], 'ajax-quiz-content' ) ) { return; } $output = array( 'status' => 1 ); if ( ! empty( $_POST['user'] ) ) { global $wpdb; $user = $_POST['user']; $result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_users WHERE uid = '" . $user['id'] . "'" ); if ( ! $result ) { $wpdb->insert( $wpdb->prefix . 'wp_quiz_fb_users', array( 'uid' => absint( $user['id'] ), 'email' => isset( $user['email'] ) ? $user['email'] : '', 'first_name' => $user['first_name'], 'last_name' => $user['last_name'], 'gender' => isset( $user['gender'] ) ? $user['gender'] : '', 'picture' => isset( $user['picture'] ) ? $user['picture'] : '', 'friends' => isset( $user['friends'] ) ? serialize( $user['friends'] ) : '', 'created_at' => date( 'Y-m-d', time() ), 'updated_at' => date( 'Y-m-d', time() ), ), array( '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ); $user['insert_id'] = $wpdb->insert_id; } else { $user['insert_id'] = $result->id; } if ( 'user' === $_POST['profile'] ) { $return = $this->generate_result_user_image( $_POST['pid'], $user ); } else { $return = $this->generate_result_friend_image( $_POST['pid'], $user ); } if ( ! empty( $return['src'] ) ) { $output['src'] = $return['src']; $output['desc'] = $return['desc']; $output['key'] = $return['key']; $output['status'] = 2; } else { $output['error'] = $return['error']; } } wp_send_json( $output ); } /** * [generate_result_user_image description] * @param [type] $post_id [description] * @param [type] $user [description] * @return [type] [description] */ public function generate_result_user_image( $post_id, $user ) { global $wpdb; $return = array(); $results = get_post_meta( $post_id, 'results', true ); if ( extension_loaded( 'imagick' ) && ! empty( $results ) ) { $index = array_rand( $results ); $result = $results[ $index ]; $result['key'] = $index; $play = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_plays WHERE user_id = '" . $user['insert_id'] . "' AND pid = '" . $post_id . "'" ); if ( ! $play ) { $wpdb->insert( $wpdb->prefix . 'wp_quiz_fb_plays', array( 'user_id' => absint( $user['insert_id'] ), 'pid' => absint( $post_id ), ), array( '%d', '%d' ) ); } $names = array( 'user_first_name' => $user['first_name'], 'user_last_name' => $user['last_name'], 'friend_first_name' => '', 'friend_last_name' => '', ); $profile = 'https://graph.facebook.com/' . $user['id'] . '/picture?width=320&height=320'; $profile = $this->get_redirect_url( $profile ); $data = $this->generate_fb_result( $post_id, $result, $profile, $names ); $return = $data; } return $return; } public function generate_result_friend_image( $post_id, $user ) { global $wpdb; $return = array(); $results = get_post_meta( $post_id, 'results', true ); if ( extension_loaded( 'imagick' ) && ! empty( $results ) && ! empty( $user['friends'] ) ) { $index = array_rand( $results ); $result = $results[ $index ]; $result['key'] = $index; $index_2 = array_rand( $user['friends'] ); $friend = $user['friends'][ $index_2 ]; $play = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wp_quiz_fb_plays WHERE user_id = '" . $user['insert_id'] . "' AND pid = '" . $post_id . "'" ); if ( ! $play ) { $wpdb->insert( $wpdb->prefix . 'wp_quiz_fb_plays', array( 'user_id' => absint( $user['insert_id'] ), 'pid' => absint( $post_id ), ), array( '%d', '%d' ) ); } $profile = 'https://graph.facebook.com/' . $friend['id'] . '/picture?width=320&height=320'; $profile = $this->get_redirect_url( $profile ); $friend_name = explode( ' ', $friend['name'] ); $names = array( 'user_first_name' => $user['first_name'], 'user_last_name' => $user['last_name'], 'friend_first_name' => $friend_name[0], 'friend_last_name' => $friend_name[1], ); $data = $this->generate_fb_result( $post_id, $result, $profile, $names ); $return = $data; } return $return; } public function generate_fb_result( $post_id, $result, $profile, $names ) { $return = array( 'src' => '', 'desc' => '', 'error' => '', ); $profile_tmp = null; $output = null; $draw = null; try { $options = get_option( 'wp_quiz_pro_default_settings' ); $settings = get_post_meta( $post_id, 'settings', true ); $find = array( '%%nomeusuario%%', '%%sobrenome%%', '%%nomeamigo%%', '%%sobrenomeamigo%%' ); $replace = array( $names['user_first_name'], $names['user_last_name'], $names['friend_first_name'], $names['friend_last_name'] ); $title = str_replace( $find, $replace, $result['title'] ); $desc = str_replace( $find, $replace, $result['desc'] ); $upload_dir = wp_upload_dir(); // Load images $profile_tmp = download_url( $profile ); $profile = new Imagick( $profile_tmp ); $profile->resizeImage( $result['proImageWidth'], $result['proImageHeight'], imagick::FILTER_LANCZOS, 0.9 ); $profile->roundCorners( $result['imageRadius'], $result['imageRadius'] ); // Create new image from result $output = new Imagick( str_replace( $upload_dir['baseurl'], $upload_dir['basedir'], $result['image'] ) ); $output->compositeImage( $profile, Imagick::COMPOSITE_DEFAULT, $result['pos_x'], $result['pos_y'] ); // Annotate it if ( ! empty( $title ) ) { $draw = new ImagickDraw(); $draw->setFillColor( $settings['title_color'] ); $draw->setGravity( 1 ); $draw->setFontSize( $settings['title_size'] ); if ( isset( $options['defaults']['external_font'] ) && ! empty( $options['defaults']['external_font'] ) ) { $external_font = str_replace( home_url( '/' ), '', $options['defaults']['external_font'] ); $draw->setFont( '../' . $external_font ); } else { $draw->setFontFamily( $settings['title_font'] ); } list( $lines, $line_height ) = $this->word_wrap_annotation( $output, $draw, $title, $result['titleImageWidth'] ); for ( $i = 0; $i < count( $lines ); $i++ ) { $output->annotateImage( $draw, $result['pos_title_x'], $result['pos_title_y'] + $i * $line_height, 0, $lines[ $i ] ); } } // Save to new image $upload_dir['basedir'] = $upload_dir['basedir'] . '/wp_quiz-result-images'; $upload_dir['baseurl'] = $upload_dir['baseurl'] . '/wp_quiz-result-images'; $output_name = 'image-' . rand( 0, 100000 ) . '.png'; $output->writeImage( $upload_dir['basedir'] . '/' . $output_name ); $return['src'] = $upload_dir['baseurl'] . '/' . $output_name; $return['desc'] = $desc; $return['key'] = $result['key']; } catch ( Exception $ex ) { $return['error'] = $ex->getMessage(); } // Clean up if ( ! is_null( $profile ) && is_a( $profile, 'Imagick' ) ) { $profile->clear(); } if ( ! is_null( $output ) && is_a( $output, 'Imagick' ) ) { $output->clear(); } if ( ! is_null( $draw ) && is_a( $draw, 'ImagickDraw' ) ) { $draw->clear(); } if ( ! is_null( $profile_tmp ) ) { @unlink( $profile_tmp ); } return $return; } public function get_redirect_url( $url ) { $response = wp_remote_head( $url ); $redirect_url = wp_remote_retrieve_header( $response, 'location' ); return $redirect_url ? $redirect_url : $url; } public function word_wrap_annotation( $image, $draw, $text, $max_width ) { $words = preg_split( '%\s%', $text, -1, PREG_SPLIT_NO_EMPTY ); $lines = array(); $i = 0; $line_height = 0; while ( count( $words ) > 0 ) { $metrics = $image->queryFontMetrics( $draw, implode( ' ', array_slice( $words, 0, ++$i ) ) ); $line_height = max( $metrics['textHeight'], $line_height ); if ( $metrics['textWidth'] > $max_width || count( $words ) < $i ) { if ( 1 === $i ) { $i++; } $lines[] = implode( ' ', array_slice( $words, 0, --$i ) ); $words = array_slice( $words, $i ); $i = 0; } } return array( $lines, $line_height ); } public function subscribe_user( $id, $name, $email ) { $settings = get_post_meta( $id, 'settings', true ); $options = get_option( 'wp_quiz_pro_default_settings' ); if ( '1' === $settings['force_action'] ) { if ( '1' === $options['mail_service'] ) { $this->subscribe_mailchimp( $options, $name, $email ); } elseif ( '2' === $options['mail_service'] ) { $this->subscribe_getresponse( $options, $name, $email ); } elseif ( '3' === $options['mail_service'] ) { $this->subscribe_aweber( $options, $name, $email ); } } } private function subscribe_aweber( $options, $name, $email ) { // check for valid data if ( empty( $email ) ) { wp_send_json( array( 'success' => false, 'error' => esc_html__( 'No email address found.', 'wp-quiz-pro' ), ) ); } if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { wp_send_json( array( 'success' => false, 'error' => esc_html__( 'Not a valid email address.', 'wp-quiz-pro' ), ) ); } // Call service subscription method try { $service = new WP_Quiz_Pro_Subscription_Aweber(); $list_id = $options['aweber']['listid']; $status = $service->subscribe( $name, $email, $list_id ); wp_send_json(array( 'success' => true, 'status' => $status['status'], )); } catch ( Exception $e ) { wp_send_json(array( 'success' => false, 'error' => $e->getMessage(), )); } } private function subscribe_mailchimp( $options, $name, $email ) { $mc_api_key = $options['mailchimp']['api_key']; $mc_list_id = $options['mailchimp']['list_id']; $double_optin = apply_filters( 'wp_quiz_mailchimp_double_notification', false ); $vendor_path = $this->get_vendor_path(); if ( $email && null !== $mc_api_key && null !== $mc_list_id ) { try { if ( ! class_exists( 'Mailchimp' ) ) { require_once( $vendor_path . '/Mailchimp.php' ); } $list = new Mailchimp_Lists( new Mailchimp( $mc_api_key ) ); $merge_vars = null; if ( $name ) { $fname = $name; $lname = ''; if ( $space_pos = strpos( $name, ' ' ) ) { $fname = substr( $name, 0, $space_pos ); $lname = substr( $name, $space_pos ); } $merge_vars = array( 'FNAME' => $fname, 'LNAME' => $lname, ); } $list->subscribe( $mc_list_id, array( 'email' => $email ), $merge_vars, 'html', (bool) $double_optin, true ); } catch ( Exception $ex ) { } } } private function subscribe_getresponse( $options, $name, $email ) { $gr_api_key = $options['getresponse']['api_key']; $gr_list_id = $options['getresponse']['campaign_name']; $vendor_path = $this->get_vendor_path(); if ( $email && null !== $gr_api_key && null !== $gr_list_id ) { try { if ( ! class_exists( 'GetResponse' ) ) { require_once( $vendor_path . '/getresponse.php' ); } $api = new GetResponse( $gr_api_key ); $campaign_ame = $gr_list_id; $subscriber_name = $name; $subscriber_email = $email; $result = $api->getCampaigns( 'EQUALS', $campaign_ame ); $campaigns = array_keys( (array) $result ); $campaign_id = array_pop( $campaigns ); $api->addContact( $campaign_id, $subscriber_name, $subscriber_email ); } catch ( Exception $ex ) { } } } public function get_vendor_path() { return plugin_dir_path( __FILE__ ) . 'vendor'; } public function check_image_file() { $output = array( 'status' => 1 ); $check = false; if ( @getimagesize( $_POST['url'] ) ) { $check = true; } $output['check'] = $check; wp_send_json( $output ); } public function check_video_file() { $output = array( 'status' => 1 ); $check = false; $id = $_POST['video_id']; $url = "//www.youtube.com/oembed?url=http://www.youtube.com/watch?v=$id&format=json"; $headers = get_headers( $url ); if ( '404' !== substr( $headers[0], 9, 3 ) ) { $check = true; } $output['check'] = $check; wp_send_json( $output ); } public static function activate_plugin() { // Don't activate on anything less than PHP 5.4.0 or WordPress 3.4 if ( version_compare( PHP_VERSION, '5.4.0', '<' ) || version_compare( get_bloginfo( 'version' ), '3.4', '<' ) || ! function_exists( 'spl_autoload_register' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; deactivate_plugins( basename( __FILE__ ) ); wp_die( __( 'O Testes Pop requer o PHP na versão 5.4.0 com extensão spl ou superior e o WordPress 3.4 ou superior.', 'wp-quiz-pro' ) ); } //Dont't activate if wp quiz is active if ( defined( 'WP_QUIZ_VERSION' ) ) { deactivate_plugins( basename( __FILE__ ) ); wp_die( __( 'Por favor, desative o plugin Testes Pop primeiro para usar os recursos Premium!', 'wp-quiz-pro' ) ); } include( 'inc/activate-plugin.php' ); } public function get_ip() { //Just get the headers if we can or else use the SERVER global if ( function_exists( 'apache_request_headers' ) ) { $headers = apache_request_headers(); } else { $headers = $_SERVER; } //Get the forwarded IP if it exists if ( array_key_exists( 'X-Forwarded-For', $headers ) && filter_var( $headers['X-Forwarded-For'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) { $the_ip = $headers['X-Forwarded-For']; } elseif ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $headers ) && filter_var( $headers['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) { $the_ip = $headers['HTTP_X_FORWARDED_FOR']; } else { $the_ip = filter_var( $_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ); } return $the_ip; } public function dismiss_imagick_notice() { add_option( 'wp_dismiss_imagick_notice', 'true' ); } public function dismiss_gdlibrary_notice() { add_option( 'wp_dismiss_gdlibrary_notice', 'true' ); } public function wp_quiz_pro_get_debug_log() { $page = new WP_Quiz_Pro_Page_Support(); $page->get_debug_log(); } public function fb_share_fix() { $data = array_map( 'urldecode', $_GET ); $result = get_post_meta( $data['id'], 'results', true ); $result = isset( $result[ $data['rid'] ] ) ? $result[ $data['rid'] ] : array(); // Picture if(isset($data['img_url']) && $data['img_url'] !== '') { $data['source'] = $data['img_url']; } else if ( 'r' === $data['pic'] ) { $data['source'] = $result['image']; } elseif ( 'f' === $data['pic'] ) { $data['source'] = wp_get_attachment_url( get_post_thumbnail_id( $data['id'] ) ); } elseif ( ( substr( $data['pic'], 0, 6 ) === 'image-' ) ) { $upload_dir = wp_upload_dir(); $upload_dir['baseurl'] = $upload_dir['baseurl'] . '/wp_quiz-result-images'; $data['source'] = $upload_dir['baseurl'] . '/' . $data['pic'] . '.png'; } else { $data['source'] = false; } // Description if(isset($data['desc_text']) && $data['desc_text'] !== '') { $data['description'] = $data['desc_text']; } elseif ( 'r' === $data['desc'] ) { $data['description'] = $result['desc']; } elseif ( 'e' === $data['desc'] ) { $data['description'] = get_post_field( 'post_excerpt', $data['id'] ); } else { $data['description'] = false; } if ( $data['description'] ) { $first = array( '%%nomeusuario%%', '%%nomeamigo%%' ); $last = array( '%%sobrenome%%', '%%sobrenomeamigo%%' ); $data['description'] = str_replace( $first, $data['nf'], $data['description'] ); $data['description'] = str_replace( $last, $data['nl'], $data['description'] ); } $settings = get_option( 'wp_quiz_pro_default_settings' ); $url = ( is_ssl() ? 'https' : 'http' ) . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; global $post; $pid = $post ? $post->ID : $data['id']; $original_url = get_permalink( $pid ); ?> <html> <head> <title><?php wp_title( '' ); ?></title> <meta property="fb:app_id" content="<?php echo $settings['defaults']['fb_app_id'] ?>"> <meta property="og:type" content="website"> <meta name="twitter:card" content="summary_large_image"> <meta property="og:url" content="<?php echo esc_url( $url ); ?>"> <?php if ( ! empty( $data['text'] ) ) : $title = get_the_title( $pid ); $text = esc_attr( $data['text'] ); $title = $title === $text ? $title : $title . ' - ' . $text; ?> <meta property="og:title" content="<?php echo $title ?>"> <meta property="twitter:title" content="<?php echo $title ?>"> <?php endif; ?> <?php if ( ! empty( $data['source'] ) ) : ?> <meta property="og:image" content="<?php echo esc_url( $data['source'] ); ?>"> <meta property="twitter:image" content="<?php echo esc_url( $data['source'] ); ?>"> <?php list( $img_width, $img_height ) = getimagesize( $data['source'] ); ?> <?php if ( isset( $img_width ) && $img_width ) : ?> <meta property="og:image:width" content="<?php echo $img_width ?>"> <?php else: ?> <meta property="og:image:width" content="600"> <?php endif; ?> <?php if ( isset( $img_height ) && $img_height ) : ?> <meta property="og:image:height" content="<?php echo $img_height ?>"> <?php else: ?> <meta property="og:image:height" content="400"> <?php endif; ?> <?php endif; ?> <?php if ( ! empty( $data['description'] ) ) : ?> <meta property="og:description" content="<?php echo esc_attr( $data['description'] ); ?>"> <meta property="twitter:description" content="<?php echo esc_attr( $data['description'] ); ?>"> <?php endif; ?> <meta http-equiv="refresh" content="0;url=<?php echo esc_url( $original_url ); ?>"> </head> <body> Redirecionando, por favor aguarde.... </body> </html> <?php exit; } /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ protected static $url_facebook = null; public static function get_url_facebook() { return self::$url_facebook; } public function set_url_facebook($url) { self::$url_facebook = $url; } /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ /** * [inline_script description] * @return [type] [description] */ public function inline_script() { $settings = get_option( 'wp_quiz_pro_default_settings' ); /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ $this->set_url_facebook($settings['defaults']['fb_app_id2']); /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ ?> <script> var quizSiteUrl = '<?php echo home_url( '/' ) ?>'; <?php if ( ! empty( $settings['analytics']['tracking_id'] ) ) { ?> (function(i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function() { (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '<?php echo $settings['analytics']['tracking_id'] ?>', 'auto'); ga('send', 'pageview'); <?php } ?> <?php if ( ! empty( $settings['defaults']['fb_app_id'] ) ) { ?> window.fbAsyncInit = function() { FB.init({ appId : '<?php echo $settings['defaults']['fb_app_id'] ?>', xfbml : true, version : 'v2.9' }); FB.getLoginStatus(function( response ) { getLogin( response ); }); }; (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/pt_BR/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); <?php } ?> </script> <?php if ( is_singular( array( 'wp_quiz' ) ) && isset( $settings['defaults']['share_meta'] ) && 1 === $settings['defaults']['share_meta'] ) { global $post, $wpseo_og; $twitter_desc = $og_desc = str_replace( array( "\r", "\n" ), '', strip_tags( $post->post_excerpt ) ); if ( defined( 'WPSEO_VERSION' ) ) { remove_action( 'wpseo_head', array( $wpseo_og, 'opengraph' ), 30 ); remove_action( 'wpseo_head', array( 'WPSEO_Twitter', 'get_instance' ), 40 ); //use description from yoast $twitter_desc = get_post_meta( $post->ID, '_yoast_wpseo_twitter-description', true ); $og_desc = get_post_meta( $post->ID, '_yoast_wpseo_opengraph-description', true ); } ?> <meta name="twitter:title" content="<?php echo get_the_title(); ?>"> <meta name="twitter:description" content="<?php echo $twitter_desc; ?>"> <meta name="twitter:domain" content="<?php echo esc_url( site_url() ); ?>"> <meta property="og:url" content="<?php the_permalink(); ?>" /> <meta property="og:title" content="<?php echo get_the_title(); ?>" /> <meta property="og:description" content="<?php echo $og_desc; ?>" /> <?php if ( has_post_thumbnail() ) { $thumb_id = get_post_thumbnail_id(); $thumb_url_array = wp_get_attachment_image_src( $thumb_id, 'full', true ); $thumb_url = $thumb_url_array[0]; ?> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image:src" content="<?php echo $thumb_url; ?>"> <meta property="og:image" content="<?php echo $thumb_url; ?>" /> <meta itemprop="image" content="<?php echo $thumb_url; ?>"> <?php } } } public function embeded_output() { if ( ! isset( $_GET['wp_quiz_id'] ) ) { return; } $qid = absint( $_GET['wp_quiz_id'] ); $quiz_html = $this->register_shortcode( array( 'id' => $qid ) ); $settings = get_post_meta( $qid, 'settings', true ); if ( empty( $quiz_html ) ) { return; } ?> <link rel='stylesheet' href='<?php echo $this->plugin_url() . 'assets/css/main.css'; ?>' type='text/css' media='all' /> <link rel='stylesheet' href='<?php echo $this->plugin_url() . 'assets/css/transition.min.css'; ?>' type='text/css' media='all' /> <link rel='stylesheet' href='<?php echo $this->plugin_url() . 'assets/css/embed.min.css'; ?>' type='text/css' media='all' /> <style> .wq_embedToggleQuizCtr{ display: none; } </style> <?php if ( 'traditional' === $settings['skin'] ) { ?> <link rel='stylesheet' href='<?php echo $this->plugin_url() . 'assets/css/traditional-skin.css'; ?>' type='text/css' media='all' /> <?php } elseif ( 'flat' === $settings['skin'] ) { ?> <link rel='stylesheet' href='<?php echo $this->plugin_url() . 'assets/css/flat-skin.css'; ?>' type='text/css' media='all' /> <?php } $this->inline_script(); ?> <script> var wq_l10n = {"correct": "Correct !", "wrong": "Wrong !","captionTrivia":"You got %%score%% out of %%total%%","captionTriviaFB":"I got %%score%% out of %%total%%, and you?","youVoted":"You voted","nonce": "<?php echo wp_create_nonce( 'ajax-quiz-content' ) ?>"}; </script> <?php echo '<div class="wq_embed">' . $quiz_html . '</div>'; ?> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/embed.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/transition.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/jquery.flip.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/hammer.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/dynamics.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/jquery.jTinder.min.js'; ?>"></script> <script src="<?php echo $this->plugin_url() . 'assets/js/main.min.js'; ?>"></script> <?php die(); } /** * [connect_aweber description] * @return [type] [description] */ public function connect_aweber() { // check for data $aweber_code = isset( $_REQUEST['aweber_code'] ) ? $_REQUEST['aweber_code'] : array(); if ( empty( $aweber_code ) ) { wp_send_json( array( 'success' => false, 'error' => esc_html__( 'No aweber authorization code found.', 'wp-quiz-pro' ), ) ); } try { $service = new WP_Quiz_Pro_Subscription_Aweber(); $data = $service->connect( $aweber_code ); wp_send_json(array( 'success' => true, 'data' => $data, )); } catch ( Exception $e ) { wp_send_json(array( 'success' => false, 'error' => $e->getMessage(), )); } } /** * Get plugin directory. * @return string */ public function plugin_dir() { if ( is_null( $this->plugin_dir ) ) { $this->plugin_dir = untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/'; } return $this->plugin_dir; } /** * Get plugin uri. * @return string */ public function plugin_url() { if ( is_null( $this->plugin_url ) ) { $this->plugin_url = untrailingslashit( plugin_dir_url( __FILE__ ) ) . '/'; } return $this->plugin_url; } } /** * Main instance of WP_Quiz_Pro_Plugin. * * Returns the main instance of WP_Quiz_Pro_Plugin to prevent the need to use globals. * * @return WP_Quiz_Pro_Plugin */ function wp_quiz_pro() { return WP_Quiz_Pro_Plugin::get_instance(); } /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ function prepare_url_facebook() { return WP_Quiz_Pro_Plugin::get_url_facebook(); } /* ////////////////////////////////////// ALTEREI AQUI //////////////////////////////////// */ endif; add_action( 'plugins_loaded', 'wp_quiz_pro', 10 ); register_activation_hook( __FILE__, array( 'WP_Quiz_Pro_Plugin', 'activate_plugin' ) ); Segue código, class-fb-quiz.php: <?php /** * Override parent 'WP_Quiz_Pro' class with facebook quiz specific markup, */ class WP_Quiz_Pro_Fb_Quiz extends WP_Quiz_Pro { /** * Constructor */ public function __construct( $id ) { parent::__construct( $id ); add_filter( 'wp_quiz_data_attrs', array( $this, 'add_fb_data_attrs' ) ); } public function get_html_questions() { $questions_html = ''; if ( ! empty( $this->questions ) ) { foreach ( $this->questions as $key => $question ) { $desc = ! empty( $question['desc'] ) ? '<p class="desc">' . $question['desc'] . '</p>' : ''; $questions_html .= ' <div class="wq_singleQuestionWrapper wq_IsFb" style=""> <div class="wq_loader-container" style="display:none;"> <div class="wq_loader_text"> <img src="' . wp_quiz_pro()->plugin_url() . 'assets/image/image_spinner.gif" /> <h3 id="wq_text_loader">' . esc_html__( 'Calculando seu resultado...', 'wp-quiz-pro' ) . '</h3> <h4 id="wq_text_loader">' . esc_html__( 'Curta nossa página!', 'wp-quiz-pro' ) . '</h4> <div class="curtir-load" style="margin:auto; width:100px; margin-top:15px;"> <iframe class="facebook-like-button" style="cursor: default;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/plugins/like.php?locale=pt_BR&href=' . WP_Quiz_Pro_Plugin::get_url_facebook() . '&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"> </iframe> </div><br><br> <center><img src="' . wp_quiz_pro()->plugin_url() . 'assets/image/seta-like.png" style="width:31px; height:71px;"></center> </div> </div> <div class="wq_questionMediaCtr" > <div class="wq_questionImage"><img src="' . $question['image'] . '" /><span>' . $question['imageCredit'] . '</span></div> </div> <div class="wq_questionTextDescCtr"> <h1 class="teste-titulo">' . $question['title'] . '</h1> <div class="titulo-descricao">Por favor, entre com o seu Facebook para ver o seu resultado</div> </div> <style type="text/css"> .mao-e-like{ margin:auto; width:140px; height: 20px; padding-top:5px;} .curta-aqui{ float:left;} .facebook-like-button{ float:right; } </style> <div class="mao-e-like"> <div class="curta-aqui"><img src="' . wp_quiz_pro()->plugin_url() . 'assets/image/gif-mao.gif"></div> <iframe class="facebook-like-button" style="cursor: default;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=https://www.facebook.com/plugins/like.php?locale=pt_BR&href=' . WP_Quiz_Pro_Plugin::get_url_facebook() . '&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"></iframe> </div> <div class="wq_questionLogin"> <button class="wq_loginFB"> <i class="fa fa-facebook-official" aria-hidden="true" style="font-size:28px; float:left; margin-left:6px; line-height:33px;"></i>&nbsp;Entrar com o Facebook </button> </div> </div>'; } }7 return $questions_html; } public function get_html_results() { $results_html = ''; $share_html = $this->get_html_share(); if ( ! empty( $this->results ) ) { $results_html .= ' <div style="display:none;" class="wq_singleResultWrapper wq_IsFb" data-id=""> <img class="wq_resultImg" src=""/> <center><div class="wq_resultDesc" style="line-height:20px; padding-top:10px;padding-bottom:10px;"></div></center> <div class="mao-e-like"> <div class="curta-aqui"><img src="' . wp_quiz_pro()->plugin_url() . 'assets/image/gif-mao.gif"></div> <iframe class="facebook-like-button" style="cursor: default; margin-top:2px;" src="https://www.facebook.com/plugins/like.php?locale=pt_BR&href=' . WP_Quiz_Pro_Plugin::get_url_facebook() . '&layout=button_count&action=like&size=small&show_faces=false&share=false&width=50&height=21" width="97" height="20" style="border:none;overflow:hidden;" scrolling="no" frameborder="0" allowTransparency="true"></iframe> </div> ' . $share_html . ' </div> '; } return $results_html; } public function add_fb_data_attrs( $data ) { $data .= 'data-quiz-profile="' . $this->settings['profile'] . '" '; return $data; } } Segue código, class-wp-quiz-pro.php: <?php /** * Generic WP_Quiz_Pro class. Extended by library specific classes. */ class WP_Quiz_Pro { /** * quiz ID */ public $id = 0; /** * quiz settings */ public $settings = array(); /** * quiz questions */ public $questions = array(); /** * quiz results */ public $results = array(); /** * quiz type */ public $type = ''; /** * quiz ad codes */ public $ad_codes = array(); /** * unique identifier */ public $identifier = 0; /** * default options */ public $options = array(); /** * Constructor */ public function __construct( $id ) { $this->options = get_option( 'wp_quiz_pro_default_settings' ); $this->id = $id; $this->settings = get_post_meta( $id, 'settings', true ); $this->questions = get_post_meta( $id, 'questions', true ); $this->results = get_post_meta( $id, 'results', true ); $this->type = get_post_meta( $id, 'quiz_type', true ); $this->ad_codes = $this->options['ad_code']; $this->identifier = 'wp_quiz_' . $this->id; } /** * @return string unique identifier for quiz */ protected function get_identifier() { return $this->identifier; } /** * Output the HTML * * @return string HTML */ public function render_public_quiz() { $html[] = '<!-- wp quiz -->'; $html[] = '<div class="wq_quizCtr ' . $this->settings['question_layout'] . ' ' . $this->type . '_quiz" ' . $this->get_data_attrs() . '>'; $html[] = ' <div class="wq_quizProgressBarCtr">'; $html[] = ' ' . $this->get_html_progress_bar(); $html[] = ' </div>'; $html[] = ' <div class="wq_questionsCtr" >'; $html[] = ' ' . $this->get_html_questions(); $html[] = ' </div>'; $html[] = ' <div class="wq_resultsCtr">'; $html[] = ' ' . $this->get_html_results(); $html[] = ' </div>'; $html[] = ' <!-- force action -->'; $html[] = ' ' . $this->get_html_force_action(); $html[] = ' <!--// force action-->'; $html[] = ' <!-- quiz timer -->'; $html[] = ' <div class="timerPlaceholder"></div>'; $html[] = ' <!--// quiz timer-->'; $html[] = ' <!-- embed code -->'; $html[] = ' ' . $this->get_embed_toggle(); $html[] = ' <!--// embed code -->'; $html[] = ' <!-- promote link -->'; $html[] = ' ' . $this->get_html_promote_link(); $html[] = ' <!--// promote link-->'; $html[] = ' <!-- retake button -->'; $html[] = ' ' . $this->get_html_retake_button(); $html[] = ' <!--// retake button-->'; $html[] = '</div>'; $html[] = '<!--// wp quiz-->'; $wp_quiz = implode( "\n", $html ); $wp_quiz = apply_filters( 'wp_quiz_output', $wp_quiz, $this->id, $this->settings ); return $wp_quiz; } public function get_data_attrs() { global $post; $id = $post ? $post->ID : $this->id; $url = $post ? get_permalink( $post->ID ) : ''; $data = ''; $data .= 'data-current-question="0" '; $data .= 'data-questions-answered="0" '; $data .= 'data-questions="' . count( $this->questions ) . '" '; $data .= 'data-transition_in="' . ( $this->settings['animation_in'] ? $this->settings['animation_in'] : 'fade' ) . '" '; $data .= 'data-transition_out="' . ( $this->settings['animation_out'] ? $this->settings['animation_out'] : 'fade' ) . '" '; $data .= 'data-correct-answered="0" '; $data .= 'data-force-action="' . ( isset( $this->settings['force_action'] ) ? $this->settings['force_action'] : '' ) . '" '; $data .= 'data-quiz-pid="' . $this->id . '" '; $data .= 'data-share-url="' . $url . '" '; $data .= 'data-post-title="' . get_the_title( $id ) . '" '; $data .= 'data-retake-quiz="' . $this->settings['restart_questions'] . '" '; $data .= 'data-question-layout="' . $this->settings['question_layout'] . '" '; $data .= 'data-featured-image="' . wp_get_attachment_url( get_post_thumbnail_id( $id ) ) . '" '; $data .= 'data-excerpt="' . get_post_field( 'post_excerpt', $this->id ) . '"'; $data .= 'data-ajax-url="' . admin_url( 'admin-ajax.php' ) . '"'; $data .= 'data-auto-scroll="' . $this->settings['auto_scroll'] . '" '; $data = apply_filters( 'wp_quiz_data_attrs', $data, $this->id, $this->settings ); return $data; } public function get_html_progress_bar() { $display = 'single' === $this->settings['question_layout'] ? 'none' : 'block'; $display = 'swiper' === $this->type ? 'none' : $display; $html[] = '<!-- progress bar -->'; $html[] = '<div class="wq_quizProgressBarCtr" style="display:' . $display . '">'; $html[] = '<div class="wq_quizProgressBar">'; $html[] = '<span style="background-color:' . $this->settings['bar_color'] . '" class="wq_quizProgressValue"></span>'; $html[] = '</div>'; $html[] = '</div>'; $html[] = '<!--// progress bar-->'; $progress_bar = implode( "\n", $html ); return $progress_bar; } public function get_html_share() { $html[] = '<!-- social share -->'; $html[] = '<div class="wq_shareCtr">'; if ( isset( $this->settings['share_buttons'] ) ) { $share_buttons = $this->settings['share_buttons']; $html[] = '<p style="font-size:14px;">' . esc_html__( '', 'wp-quiz-pro' ) . '</p>'; if ( in_array( 'fb', $share_buttons ) ) { $html[] = '<button class="wq_shareFB"><i class="fa fa-facebook-square fa-lg" aria-hidden="true"></i>&nbsp;COMPARTILHAR</button>'; } if ( in_array( 'tw', $share_buttons ) ) { $html[] = '<button class="replay-test" value="Refresh" onClick="window.location.reload()"><i class="fa fa-refresh" aria-hidden="true"></i>&nbsp;FAZER NOVAMENTE</button>'; } } $html[] = '</div>'; $html[] = '<!--// social share-->'; $social_shares = implode( "\n", $html ); $social_shares = apply_filters( 'wp_quiz_shares', $social_shares, $this->id, $this->settings ); return $social_shares; } public function get_html_force_action() { $title = ( isset( $this->options['defaults']['subscribe_box_title'] ) && ! empty( $this->options['defaults']['subscribe_box_title'] ) ) ? $this->options['defaults']['subscribe_box_title'] : __( 'Just tell us who you are to view your results !', 'wp-quiz-pro' ); $html[] = '<div class="wq_quizForceActionCtr" style="display:none;">'; $html[] = '<div class="wq_quizEmailCtr" style="display:none;">'; $html[] = '<form id="wq_infoForm" action="" method="post">'; $html[] = '<p>' . esc_html( $title ) . '</p>'; $html[] = '<div><label>' . esc_html__( 'Your first name :', 'wp-quiz-pro' ) . '</label><input type="text" id="wq_inputName"/></div>'; $html[] = '<div><label>' . esc_html__( 'Your email address :', 'wp-quiz-pro' ) . '</label><input type="email" id="wq_inputEmail"/></div>'; $html[] = '<p><button type="submit" id="" style="background:' . $this->settings['bar_color'] . '">' . __( 'Show my results &gt;&gt;', 'wp-quiz-pro' ) . '</button></p>'; $html[] = '</form>'; $html[] = '</div>'; $html[] = '<div class="wq_quizForceShareCtr" style="display:none;">'; $html[] = '<p>' . esc_html__( 'Please share this quiz to view your results . ', 'wp-quiz-pro' ) . '</p>'; $html[] = '<button class="wq_forceShareFB"><i class="fa fa-facebook icon"></i><span>' . esc_html__( 'Facebook', 'wp-quiz-pro' ) . '</span></button>'; $html[] = '</div>'; $html[] = '</div>'; $force_action = implode( "\n", $html ); $force_action = apply_filters( 'wp_quiz_capture_email', $force_action, $this->id, $this->settings ); return $force_action; } public function get_html_promote_link() { $promote_plugin = $this->settings['promote_plugin']; $html = array(); if ( $promote_plugin ) { $html[] = ''; $html[] = ''; $html[] = ''; } $promote_link = implode( "\n", $html ); $promote_link = apply_filters( 'wp_quiz_promote_plugin', $promote_link, $this->id, $this->settings ); return $promote_link; } public function get_html_retake_button() { $html[] = '<div class="wq_retakeQuizCtr" >'; $html[] = '<button style="display:none;" class="wq_retakeQuizBtn"><i class="fa fa-undo"></i>&nbsp; ' . esc_html__( 'PLAY AGAIN !', 'wp-quiz-pro' ) . '</button>'; $html[] = '</div>'; $retake_button = implode( "\n", $html ); $retake_button = apply_filters( 'wp_quiz_capture_email', $retake_button, $this->id, $this->settings ); return $retake_button; } public function get_embed_toggle() { $html = ''; $embed_toggle = isset( $this->settings['embed_toggle'] ) ? $this->settings['embed_toggle'] : false; if ( $embed_toggle ) { $html .= ''; $html .= ''; $html .= ''; $site_url = get_site_url() . '/?wp_quiz_id=' . $this->id; $iframe = ''; $html .= ''; } return apply_filters( 'wp_quiz_embed_toggle', $html, $this->id, $this->settings ); } /** * Include quiz assets */ public function enqueue_scripts() { wp_enqueue_script( 'wp_quiz-front-js', wp_quiz_pro()->plugin_url() . 'assets/js/main.min.js', array( 'jquery', 'semantic-transition-js', 'semantic-embed-js' ), wp_quiz_pro()->version, true ); wp_enqueue_script( 'semantic-transition-js', wp_quiz_pro()->plugin_url() . 'assets/js/transition.min.js', array( 'jquery' ), wp_quiz_pro()->version, true ); wp_enqueue_script( 'semantic-embed-js', wp_quiz_pro()->plugin_url() . 'assets/js/embed.min.js', array( 'jquery' ), wp_quiz_pro()->version, true ); wp_localize_script( 'wp_quiz-front-js', 'wq_l10n', array( 'correct' => esc_html__( 'Correct !', 'wp-quiz-pro' ), 'wrong' => esc_html__( 'Wrong !', 'wp-quiz-pro' ), 'captionTrivia' => esc_html__( 'You got %%score%% out of %%total%%', 'wp-quiz-pro' ), 'captionTriviaFB' => esc_html__( 'I got %%score%% out of %%total%%, and you?', 'wp-quiz-pro' ), 'youVoted' => esc_html__( 'You voted', 'wp-quiz-pro' ), 'nonce' => wp_create_nonce( 'ajax-quiz-content' ), ) ); // This will be added to the bottom of the page as <head> has already been processed by WordPress sorry. wp_enqueue_style( 'semantic-transition-css', wp_quiz_pro()->plugin_url() . 'assets/css/transition.min.css', array(), wp_quiz_pro()->version ); wp_enqueue_style( 'semantic-embed-css', wp_quiz_pro()->plugin_url() . 'assets/css/embed.min.css', array(), wp_quiz_pro()->version ); wp_enqueue_style( 'wp_quiz-front-css', wp_quiz_pro()->plugin_url() . 'assets/css/main.css', false, wp_quiz_pro()->version ); if ( 'flat' === $this->settings['skin'] ) { wp_enqueue_style( 'flat-skin-css', wp_quiz_pro()->plugin_url() . 'assets/css/flat-skin.css', array(), wp_quiz_pro()->version ); } else { wp_enqueue_style( 'traditional-skin-css', wp_quiz_pro()->plugin_url() . 'assets/css/traditional-skin.css', array(), wp_quiz_pro()->version ); } if ( is_rtl() ) { wp_enqueue_style( 'wp_quiz-rtl-css', wp_quiz_pro()->plugin_url() . 'assets/css/quiz-rtl.css', array(), wp_quiz_pro()->version ); } do_action( 'wp_quiz_register_public_styles' ); } }
  24. No meu código $this->details() me retorna todos os detalhes dos produtos, tais como ID, nome do produto, descrição etc. No carrinho de compras quando o usuário finaliza a compra os dados dos itens que ele pediu são inseridos no BD. O problema é que cada produto tem um nome, e quando o usuário finaliza a compra está sendo inserido apenas o Nome do primeiro produto do carrinho repetitivamente. Vejam na foto que o ID do produto é diferente, mas o nome é repetido em todos. Tentei fazer um foreach para tentar resolver o problema, mas continua a mesma coisa. Se alguém puder me ajudar por gentileza, agradeço :) $this->start(); foreach($this->details() as $product_name){ $product = $product_name['product_name']; } // Insert the items if ($pass) { $this->details(); $this->orderID = $this->lastID; $sql = "INSERT INTO `orders_items` (`order_id`, `product_id`, `quantity`, `product_name`) VALUES "; $cond = []; foreach ($_SESSION['cart'] as $id=>$qty) { $sql .= "(?, ?, ?, ?),"; array_push($cond, $this->orderID, $id, $qty, $product); } $sql = substr($sql, 0, -1) . ";"; $pass = $this->exec($sql, $cond); }
  25. Artes Ussler

    Exclusão sem refresh

    Olá Utilizo um sistema de cadastro de notícias com campos para imagens. Na parte de edição das notícias, existe um checkbox que, ao selecionado, exclui a imagem quando clicado no Atualizar e a página é recarregada e o PHP executado. Mas eu queria mudar isso. Gostaria que a imagem fosse excluída sem dar um refresh na página. Seria algo como na imagem abaixo: você clica no botão Excluir, aparece uma mensagem se deseja realmente excluir a imagem e você confirma sem recarregar a página. Tem como fazer? Fico grato por qualquer dica.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.