• 02-02-2020, 12:38:13
    #1
    Arkadaşlar yazdıgım bir sistemde vip uyelik kısmı var 30 gunluk vip uyelik alınabiliyor. Aldıgı tarih diyelim 02.02.2020 30 gun sonra vip uyeligi biticek ve otomatik bir mail yollayacağız.
    1- Gün hesaplarken nasıl yaparız
    2-Cron işlemi ile günde bir defa bu vip üye tarihlerini kontrol mu ettirmeliyiz ya da daha mantıklı nasıl yaparız?
    3-Birde otomatik mail olayını sizce nasıl yapmalıyım? Benim kafamdaki vip gun sayısını hesaplatıp 0 a eşit olunca if ile kontrol edipmail yollama.
  • 02-02-2020, 12:46:48
    #2
    1- strtotime ile unix time kavramlarını araştırabilirsin.
    2- Saatlik olarak kontrol etmeniz gerekiyorsa günde 1 kere yeterli olmaz. Ama günlük kontrol varsa günde 1 kontrol yeterli olur.
    3- Unix kullanırsan mevcut zamanın unix'i > VIP sonlanma unix'i yaparsan mail attırabilirsin. Tertemiz çözüm olur. Ama daha sağlam bir metod olan status durumunu kullanmanda yarar var. Zaman bitince üyenin status durumunu belirlediğin bir değere güncelle. O arada mail at.
  • 02-02-2020, 12:47:35
    #3
    function dateDifference($differenceFormat = '%d Gün %h Saat')
    {
        $datetime1 = date_create("Başlangıç Tarihi");
        $datetime2 = date_create("Bitiş Tarihi");
    
        $interval = date_diff($datetime1, $datetime2);
    
        return $interval->format($differenceFormat);
    
    }
  • 02-02-2020, 12:50:48
    #4
    ben genellikle 1 ay sonrasının tarihi alıp veritabanda tutuyorum. böylelikle o tarih geçmiş tarih ise if ile kontrol ettirip vip üyeliği sonlandı mesajı yazdırıyorum.

    Misal ;
    başlangıç tarihi : 02.02.2020

    $time = strtotime("02.02.2020");
    $final = date("d-m-Y", strtotime("+1 month", $time)); // +1 ay sonrası
    
    // $final Çıktı: 02.03.2020
    • zeytin8899
    zeytin8899 bunu beğendi.
    1 kişi bunu beğendi.
  • 02-02-2020, 13:00:11
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Bu işlemi VIP üyelik sonlandıktan sonra yapmanız biraz mantıksız olacaktır, maili örn. üyeliğin sonlanmasına 3 gün kala gönderin. Ve günde 1 kez kontrol edecekseniz üyeliği sonlandırmak için sabit bir zaman seçmenizi tavsiye ederim, örneğin her zaman 30. gününün saat 12.00'ında üyelikler sonlansın ve her gün 12.00'da üyelikleri kontrol edin. 3 gün ve daha az kalanlara mail gönderin, bitenlerin üyeliğini sonlandırın.
  • 02-02-2020, 16:01:42
    #6
    Premium üyelik süresininin biteceği tarihi bir field de tutun (Ör: expiration_time isimli bir fieldde.).
    İşlem yaparken expiration_time tarihi şuanki tarihten büyük ise premium üyeliği devam ediyordur diyerek işleme devam edersiniz. Eğer expiration_time tarih verisi şuandan daha küçük bir tarih ise süresi dolmuştur.

    Mail konusunda ise günde 1 defa çalışan ve premium üyeliklerinin sonlanma tarihi yakın üyelere mail atan bir cron job işinizi görecektir.

    Veya isterseniz queue denilen kuyruk mantığı ile premium üyelik başladığı tarihte bitmeden öncesinde mail atacak şekilde kuyruğa işlem ekleyebilirsiniz.

    Mail servislerinin bazıları zamanlayarak mail gönderimini de destekliyor. Şu tarihte/saatte mail gönder diyerek o iş yükünden kurtulabiliyorsunuz.