Ir para conteúdo
  • Cadastre-se

Normal [GESIOR 2012] Sistema de Coupom - Coupon System


Posts Recomendados

Descrição

  • Como funciona?

O admin do site terá a opção de gerar um código de cupom que da x quantidade de points. Ele apenas coloca a quantidade de points que deseja gerar e então, surgirá a key para o player usar e obter os points.

 

_______________________________________

 

Coupon System

Execute no MySQL query:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
CREATE TABLE IF NOT EXISTS `__cornex_redeem` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `points` int(11) NOT NULL,
  `used_by` int(11) NOT NULL DEFAULT '0',
  `time` int(11) NOT NULL,
  `code` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Crie um arquivo chamado admincoupon.php dentro do diretório /pages/

<?php
if(!defined('INITIALIZED'))
    exit;

if($group_id_of_acc_logged >= $config['site']['access_admin_panel']){
    function serialKey()
    {
        $chars = array_merge(range(0, 9), range('A', 'Z'));
        $serial = '';
        $max = count($chars)-1;
        for($i=0;$i<20;$i++){
            $serial .= (!($i % 5) && $i ? '-' : '').$chars[rand(0, $max)];
        }
        return $serial;
    }

    if (isset($_POST['points'])) {

        $error = false;
        $points = $_POST['points'];

        if (empty($points)) {
            $error[] = "<font color='red'>Field cannot be empty</font>";
        }

        if (!is_numeric($points)) {
            $error[] = "<font color='red'>Must be a number value</font>";
        }

        if (!empty($error)) {

            foreach ($error as $err) {
                $main_content .=''.$err.'<br>';
            }

        }


        if (empty($error)) {
            // Success
            $key = serialKey();
            $SQL->query('INSERT INTO `__cornex_redeem` (`code`, `points`, `used_by`, `time`, `ip`) VALUES ('.$SQL->quote($key).','.$points.', 0, 0, 0)');
            echo '<p><b>Key generated</b><font color="red">: '.$key.'</font></p>';
        }

    }

$main_content .= '
<form class="ui form" action="" method="POST">

    <div class="six wide field">
    <label>Points</label>
    <input type="text" name="points" placeholder="Amount of points for this code">
  </div>
    <input class="ui submit button" type="submit" value="Create code">

</form>';
} else {
    $main_content .= '
<div class="ui warning message">
  <div class="header">
    You dont have permission to do that!
  </div>
</div>
    ';
}

Salve o arquivo.

 

Agora crie um arquivo chamado redeem.php novamente dentro do diretório /pages/

<?php
if(!defined('INITIALIZED'))
    exit;
if($logged){
  if(isset($_POST['code'])) {

    $code =  $SQL->quote($_POST['code']);
    $query = $SQL->query('SELECT * FROM `__cornex_redeem` WHERE `code` = '.$code.' LIMIT 1;');



    // Key exist in database
    if ($query->rowCount() >= 1) {
      // $query = $query[0];
      $result = $query->fetchAll(PDO::FETCH_ASSOC)[0];

      if ($result['used_by'] > 0) {
        $error[] = 'Key has already been used';
      }

      if (!empty($error)) {

        foreach ($error as $err) {
          echo $err.'<br>';
        }

      }


      if (empty($error)) {
        $time = time();
        $code = $result['code'];
        $points = $result['points'];
        $querys = sprintf('UPDATE `__cornex_redeem` SET `time`='.time().', `used_by`='.$account_logged->getId().' WHERE `code`="'.$result['code'].'" ');
        $SQL->query($querys);
        $account_logged->setPremiumPoints($account_logged->getPremiumPoints() + $points);
        $account_logged->save();

        echo 'Amount of '.$points.' points has been added to your account!';
      }

    } else {
      echo 'Key is not valid';
    }

  }
$accid = $account_logged->getID();
$main_content .= '
<form action="" method="POST">

    <input type="text" name="code">
    <input type="submit" value="Redeem">

</form>';
} else {
    $main_content .= '
<div class="ui warning message">
  <div class="header">
    You dont have permission to do that!
  </div>
</div>
    ';
}

Salve o arquivo.

 

Abra layouts/tibiarl/layout.php

 

Para admins gerar cupons

<?PHP if($group_id_of_acc_logged >= $config['site']['access_admin_panel']){ ?>
           <a href="?subtopic=admincoupon">
              <div id="submenu_admincoupon" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)">
                <div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
                <div id="ActiveSubmenuItemIcon_admincoupon" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div>
                <div id="ActiveSubmenuItemLabel_admincoupon" class="SubmenuitemLabel">Coupons</div>
                <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
              </div>
            </a>
<?php } ?>

Para players obter points através de cupons

           <a href="?subtopic=redeem">
              <div id="submenu_redeem" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)">
                <div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
                <div id="ActiveSubmenuItemIcon_redeem" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div>
                <div id="ActiveSubmenuItemLabel_redeem" class="SubmenuitemLabel">Redeem a coupon</div>
                <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div>
              </div>
            </a>

___________________________________

Créditos

  • Cornex
  • raf

___________________________________

 

OBS. IRIA POSTAR PRA ZNOTE AAC MAS NÃO SEI SE JÁ HÁ AQUI, ENTÃO PRA EVITAR, NÃO POSTEI. CASO NÃO TENHA, ME AVISE E EU EDITO O POST.

Link para o post
Compartilhar em outros sites

Apresenta erros, precisa corrigir códigos.

Também seria legal você alterar o update dos points para accounts > premium_points, pois o shop já esta ligado à estes pontos. Caso contrário os pontos não serão debitados, e não terão serventia caso o shopsystem não esteja buscando a sua table __cornex_redeem

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo