Kurumsal üyelik olan sistemde kurumsal üyelerin süreleri 6 ay sonra sona eriyor. Otomatik olarak üyenin 6 ayın sonunda üyeliğinin kurumsal üyelikten normal üyeliğe geçmesi gerekiyor.
Bunu nasıl yapabilirim?
Zaman Ayarlı İşlem Yapma
5
●1.239
- 27-12-2017, 00:07:57Kimlik doğrulama veya yönetimden onay bekliyor.veritabanında kayıt_tarihi ve bitis_tarihi adında bir sütun açıp kullanıcı sisteme giriş yaptığında bir kontrol yaparak eğer kayıt tarihinden 180 gün geçmiş ise veya bugünün tarihi bitiş tarihine eşit ise gibi çeşitli kombinasyonlar yaparak üyelik durumunu güncelleyebilirsiniz.
- 27-12-2017, 01:21:14Örnek olması açısından bir güncelleme planı hazırladım mantık bu şekilde.
Bunu herhangi bir dosya olarak adlandırabilirsin.
örnek cron.php olsun diyelim bu dosya adın.
Bunu sunucuya atıyorsun ardından cronjob ile bu dosyanı belirleyeceğin süre ile otomatik çalıştırıyorsun.
günde 5 dk bir yada 1 saatte bir hafta bir orası size kalmış bir durum.
daha detaylı bilgi için php ile cronjob kullanımını araştırabilirsiniz.
$ID = 1; // Kurumsal üye id 1 olan üye global $db; $sorgula= $db->query("SELECT * FROM kurumsal_uyeler WHERE uid = '$ID'")->fetch(PDO::FETCH_ASSOC); $SimdikiZaman = date('d.m.Y'); // Gün/Ay/Yıl Cinsinden $BitisZamani = $sorgula["bitis_tarihi"]; // veritabanından gelen (d.m.Y) şeklinde zaman biçimi if($BitisZamani>$Simdiki){ //Süre henüz bitmedi hiç bir işlem yapmaya gerek yok }else{ // Mevcut süre tamamlanmıştır Sql işlemlerine başlayabilirsin. $query = $db->prepare("UPDATE kurumsal_uyeler SET WHERE uid = '$ID' "); $update = $query->execute(array("uid" => $ID)); } - 27-12-2017, 10:02:10Tarih karşılaştırmalarını date yada datetime cinsinden yapabilirsin date('d.m.Y') bunlar arasında kıyaslama yapamazsın , veritabanına baslangıç ve bitiş tarihlerini datetime tipinde kaydet, ister cronjob a bağla istersen de sitende bir sayfaya sorgu ekle bitis tarihi geçtiğinde satırı update et.
$baslangic = date('Y-m-d H:i:s'); $bitis = date('Y-m-d H:i:s', strtotime("+6 months", strtotime($baslangic)));Aşağıdaki sorguyu kullanarak da premium olan ve bitis tarihi şimdiki zamanı geçen üyelerin üyelik tipini normale çevirebilirsin.
$simdiki_zaman = date('Y-m-d H:i:s'); update tablo set uye_tipi = 'Normal' where bitis_tarihi < $simdiki_zaman and uye_tipi ='Premium'