• 02-04-2025, 19:07:49
    #1
    Merhaba arkadaşlar aşagıdaki js ile oluşturulan çark sistemini bir projeye kullanıcılara çevirme hakkı vererek kullanmak istiyorum. buradaki kodlarla nasıl yapabilirim.

    Sql kullanıcı tablosu;
    Alıntı
    `musteri`
    `id`
    `ad`
    `soyad`
    `telefon`
    `email`
    `sifre`
    `tc_kimlik`
    `siparis_adres`
    `fatura_adres`
    `vergi_numarasi`
    `vergi_dairesi`
    `vergi_adi`
    `kayit_tarih`
    `durum`
    `bayi_grup_id`
    `cark_tarih`
    `cark_adet`
    `cark_odul`
    php alanındaki kodlar
        <link rel="stylesheet" href="cark/css/sweetalert2.min.css"> <!-- sweetalert2 -->
    
               <div class="wheel-letter-spacing"></div>
            <button type="button" class="btn btn-round btn-border btn-default wheel-letter-spacing-spin-button">Çevir</button>
    
    <script src="cark/js/lmcark.js"></script>
    lmcark.js kodları
    jQuery(document).ready(function($){
        
        $('.wheel-letter-spacing').superWheel({
            slices: [
                {
                    text: "%20 İNDİRİM",
                    value: 1,
                    message: "%20 indirim kazandın",
                    discount: "95Qm9tof",
                    background: "#f1c40f",
                    color: "#fff"
                    
                },
                {
                    text: "ŞANS YOK",
                    value: 0,
                    message: "Bugün Şansın Yok",
                    discount: "********",
                    background: "#e74c3c",
                    color: "#fff"
                    
                },
                {
                    text: "%30 İNDİRİM",
                    value: 1,
                    message: "%30 indirim kazandın",
                    discount: "8C46fBeH",
                    background: "#2980b9",
                    color: "#fff"
                    
                },
                {
                    text: "KAYBETTİN",
                    value: 0,
                    message: "Kaybettin :(",
                    discount: "********",
                    background: "#333333",
                    color: "#fff"
                    
                },
                {
                    text: "ÜCRETSİZ",
                    value: 1,
                    message: "Tebrikler ücretsiz hak kazandın",
                    discount: "aHiH4bfd",
                    background: "#27ae60",
                    color: "#fff"
                    
                },
                {
                    text: "HİÇBİR ŞEY!",
                    value: 0,
                    message: "Hiçbir şey alamıyorsun :(",
                    discount: "********",
                    background: "#8e44ad",
                    color: "#fff"
                    
                }
            ],
        width: 400,
        frame: 1,
        type: "spin",
        slice: {
            background: "#f1c40f",
            selected: {
                background: "#f1c40f",
                color: "#ecf0f1"
            }
        },
        text: {
            color: "#f1c40f",
            size: 14,
            offset: 8,
            arc: false
        },
        line: {
            color: "#1abc9c"
        },
        outer: {
            color: "#1abc9c"
        },
        inner: {
            color: "#1abc9c"
        },
        center: {
            rotate: true,
            image: {
                url: "img/ikon.jpg",
                width: 25
            }
        },
        marker: {
            background: "#f1c40f",
            animate: "true"
        }
    });
    
        var tick = new Audio('media/tick.mp3');
        
        $(document).on('click','.wheel-letter-spacing-spin-button',function(e){
            
            $('.wheel-letter-spacing').superWheel('start','value',Math.floor(Math.random() * 2));
            $(this).prop('disabled',true);
        });  
        
        $('.wheel-letter-spacing').superWheel('onStart',function(results){
            
            $('.wheel-letter-spacing-spin-button').text('Çeviriliyor...');
            
        });
        $('.wheel-letter-spacing').superWheel('onStep',function(results){
            
            if (typeof tick.currentTime !== 'undefined')
                tick.currentTime = 0;
            
            tick.play();
            
        });
        
        $('.wheel-letter-spacing').superWheel('onComplete',function(results){
            if(results.value === 1){
                swal({
                    type: 'success',
                    title: "Tebrikler!",
                    html: results.message+' <br><br><b>İndirim Kodunuz : [ '+ results.discount+ ' ]</b>'
                });
            }else{
                swal("Oops!", results.message, "error");
            }
            $('.wheel-letter-spacing-spin-button:disabled').prop('disabled',false).text('Çevir');
            
        });
          
    });
  • 02-04-2025, 19:13:09
    #2
    Takıldığınız yer olursa haber verebilirsiniz.


    <?php
    session_start();
    require 'config.php'; // Veritabanı bağlantısı
    
    if (!isset($_SESSION['user_id'])) {
        die(json_encode(['status' => 'error', 'message' => 'Lütfen giriş yapın.']));
    }
    
    $user_id = $_SESSION['user_id'];
    
    // Kullanıcının çarkı bugün çevirip çevirmediğini kontrol et
    $checkSpin = $pdo->prepare("SELECT cark_tarih FROM musteri WHERE id = ?");
    $checkSpin->execute([$user_id]);
    $user = $checkSpin->fetch();
    
    $todays_date = date("Y-m-d");
    
    if ($user && $user['cark_tarih'] == $todays_date) {
        die(json_encode(['status' => 'error', 'message' => 'Bugün zaten çark çevirdiniz.']));
    }
    
    // Rastgele ödül belirleme (JavaScript ile gelen veriyi alabilirsiniz)
    $rewards = [
        ["text" => "%20 İNDİRİM", "value" => 1, "discount" => "95Qm9tof"],
        ["text" => "ŞANS YOK", "value" => 0, "discount" => "********"],
        ["text" => "%30 İNDİRİM", "value" => 1, "discount" => "8C46fBeH"],
        ["text" => "KAYBETTİN", "value" => 0, "discount" => "********"],
        ["text" => "ÜCRETSİZ", "value" => 1, "discount" => "aHiH4bfd"],
        ["text" => "HİÇBİR ŞEY!", "value" => 0, "discount" => "********"]
    ];
    
    $spin_result = $rewards[array_rand($rewards)]; // Rastgele bir ödül seç
    $odul = $spin_result['text'];
    $kod = $spin_result['discount'];
    
    // Kullanıcının ödülünü güncelle
    $updateSpin = $pdo->prepare("UPDATE musteri SET cark_tarih = ?, cark_odul = ? WHERE id = ?");
    $updateSpin->execute([$todays_date, $odul, $user_id]);
    
    echo json_encode([
        'status' => 'success',
        'message' => $spin_result['value'] ? "Tebrikler! {$spin_result['text']} kazandınız" : "Üzgünüm, {$spin_result['text']}",
        'discount' => $kod
    ]);
    <button type="button" class="btn btn-round btn-border btn-default wheel-letter-spacing-spin-button">Çevir</button>
    
    <script>
    document.addEventListener("DOMContentLoaded", function () {
        document.querySelector('.wheel-letter-spacing-spin-button').addEventListener("click", function () {
            fetch("cark.php")
                .then(response => response.json())
                .then(data => {
                    if (data.status === "success") {
                        swal({
                            type: 'success',
                            title: "Tebrikler!",
                            html: data.message + ' <br><br><b>İndirim Kodunuz : [ ' + data.discount + ' ]</b>'
                        });
                    } else {
                        swal("Oops!", data.message, "error");
                    }
                });
        });
    });
    </script>
  • 02-04-2025, 19:15:58
    #3
    algoritmik halini söylemem gerekirse:
    1. aktif oturumdaki kullanıcının bilgileri çekilir.
    2. limit yoksa hata verir, varsa çevirme adımına geçirilir
    3. farklı tablo'da (çark özellikleri) hangi dağıtımlar verilecekse veriler diziye aktarılır
    4. çekim işlemi yapıldığında mesaj gösterilir (json ve ödül yazar - slug mantığında)
    5. animasyon kullanıcı tarafında oynatılır.
    ek olarak çarkı çevirdiği son işlem tarihini kullanıcı tablosunda yapmak daha mantıklı olur.
  • 02-04-2025, 19:17:10
    #4
    Sistemi başarıyla entegre etmek için şu adımları izlemelisiniz:

    1. `cark-kontrol.php` dosyasını oluşturun (paylaştığım ilk kod parçası)
    2. `lmcark.js` dosyasını düzenlenmiş versiyonla değiştirin
    3. HTML sayfanızı örnek HTML koduna benzer şekilde düzenleyin

    ### Sistem Nasıl Çalışacak:

    1. Kullanıcı girişi zorunlu olacak
    2. Sistem kullanıcının çark çevirme hakkını kontrol edecek
    3. Hak varsa, çark dönecek ve sonuç veritabanına kaydedilecek
    4. Her dönüşten sonra kullanıcının hakkı 1 azalacak
    5. Kazanılan ödül `cark_odul` alanına kaydedilecek

    ### Veritabanı İşlemleri için Yapmanız Gerekenler:

    1. `baglantiKur()` fonksiyonunda kendi veritabanı ayarlarınızı yapın
    2. Session kullanımı için PHP dosyalarınızda `session_start()` komutunun çalıştığından emin olun
    3. Kullanıcılarınıza çark çevirme hakkı vermek için `musteri` tablosundaki `cark_adet` alanını güncelleyin

    ### Dikkat Edilmesi Gerekenler:

    - Güvenlik için tüm giriş değerleri kontrol ediliyor ve SQL injection'a karşı korunuyor
    - AJAX ile asenkron işlemler yapılıyor, böylece sayfa yenilemeden çark kullanılabiliyor
    - Her hak kullanımı ve sonuç veritabanına kaydediliyor

    Bu sistem, kullanıcı girişi yapanların belirli sayıda çark çevirme hakkı olmasını ve her çevirme işleminin kaydedilmesini sağlar. İhtiyaçlarınıza göre çark ödüllerini ve diğer ayarları düzenleyebilirsiniz.
  • 02-04-2025, 19:18:24
    #5
    Merhaba istediğiniz yazılım hali hazırda var bende admin panelli ve yüzlerce özelliği var wp üzerinden iletişime geçin yardımcı olayım +90 542 572 26 46