WordPress’te PHP çerezlerini kullanmak
Her zaman bir PHP kurabiyesi yapmaktan korkuyorum. Çerez, cihazınızda yaşayan ve çeşitli şeyleri hatırlayan küçük veri parçalarından oluşan çok yaygın olarak kullanılan bir web teknolojisidir: örneğin, Amazon’da keşfettiğiniz son ürün veya Gmail’e girip girmediğinizi. Bununla birlikte, her zamanki gibi, çerezler her zaman acı verici ve uygulanmayı karmaşık olduğunu düşündüğüm korkutucu bir web mimarisi gibi hissediyor. O zaman bir müşterinin projesi bir kurabiye ve tahmin etmesi gereken bir proje görünüyor mu? Yazması kolaydır – örneğin, hala öğrenmeyi reddeden pişirme keklerinden çok daha kolay.
Bu makalede, WordPress’te bir çerez kullanarak neden ve nasıl bir çerez kullanarak size rehberlik edeceğiz. PHP çerezlerini neden kullanıyorsunuz? Bir kullanıcı hesabı oluşturmanın kalıcı kullanıcı verilerini depolamak için çok beceriksiz olduğu zamanlar vardır. Çerezler, giriş gerektirmeden kullanıcı verilerini kaydedebilir. Web sitesinde birçok özel kullanıcı verisi var. Bir site, kullanıcı deneyimimi geliştirmek için her türlü şeyi bilmek isteyebilir: annemin dili, en son ziyaret ettiğimde, daha önce gönderdiğim form bilgileri vb. Birçok durumda, bu veriler kalmalıdır: Bu veriler tüm site ziyaretlerinde hayatta kalmalıdır.
WordPress tarafından site ziyaretçileri hakkında veri depolamak için kullanılan en yaygın yol, bir WordPress kullanıcı hesabıdır. Bu sistem, her türlü kullanıcı, izin, veriler, meta veri vb. Ancak, biraz fazla beceriksiz olduğu zamanlar vardı. Varsayılan olarak, kullanıcıların bir hesap oluşturmasını gerektirir – minimal, kullanıcı adı, e -posta ve şifre ile – ardından hesabı girin. Yalnızca küçük bir veri kaydetmek için (örneğin, kullanıcı dili veya saat dilimi tercihi gibi), bu çok fazla. Çerezler kullanıcı verilerini giriş gerektirmeden saklayabilir. Varsayılan WordPress çerez sistemi kullanıcı sistemi aracılığıyla çalışır ve istediğimiz bu değildir. Burada eski yola başlıyoruz, bir eklentiye sardığımız saf PHP ile. PHP kurabiye demonuz bize en sevdiğiniz yemeğinizi söylemedi! Bu demo özelliği kullanıcı girişini alır ve sürekli tutar. Bundan bir hafta sonra aynı tarayıcıda sayfaya geri dönerseniz, verdiğiniz son cevabı koruyacaktır. Tahmin edebileceğiniz gibi, okudukları son makale, e-öğrenme kursları yoluyla ilerlemeleri veya sitenizde hangi ürünleri araştırdıkları hakkında bir kullanıcı oluşturmak için ihtiyaç duydukları için birçok şeyi hatırlamak çok iyi olacaktır. Hesap WordPress.
Burada nasıl çalıştığı tam koddur (GitHub’da da mevcuttur). Boğulmayın: Onu en önemli unsura ayıracağız, ama bu önce her şey.
Çerez işlevi kısa koddan sonra aşağıdaki işlevlere sahibiz: add_action (‘init’, ‘wpcd_set_cookie’, 1); işlevi wpcd_set_cookie () {if (isset ($ _post [‘fave_food’]))))): $ cookie_value = saditize_text_field ($ _post [‘fave_food’]); Setcookie (wpcd_get_cookie_name (), $ cookie_value, time () + (86400 * 999), “/”); // 86400 = 1 gün // Şimdi yenileyin, böylece başlık değişiklikleri yakalanan başlık (“Yenile: 0”); çıkış; Endif; } işlevi wpcd_get_cookie_name () {return ‘favee_food’; } işlevi wpcd_get_cookie () {return $ _cookie [wpcd_get_cookie_name ()]; } işlevi wpcd_is_cookied () {return isset ($ _cookie [wpcd_get_cookie_name ()]); } Bunu açıklayayım, makul bir sırayla: wpcd_get_cookie_name () fave_food adını bir yerde odaklamamıza izin verir, bu yüzden istersek değiştirmek kolaydır. Kuru bir kod yazmanın basit bir yolu (kendinizi tekrarlamayın). Wpcd_is_cookied () Fave_food çerezinin iki adımda orada olup olmadığını kontrol eder:
Bu, çerezin adını wpcd_get_cookie_name () üzerinden alırSuperglobal PHP $ _cookie Php.
$ _Cookie, şu anda geçerli sayfayı yüklemek için mevcut olan bir çerez hattıdır. Bir Superglobal olarak, $ _Post ve $ _GET (HTML ve PHP’de gönderme formlarını işlemek için kullanılır) gibi diğer tanıdık değişkenler gibi PHP’de her zaman erişilebilir.
wpcd_get_cookie () Bu işlev wpcd_is_cookied () ile benzer, ancak çerez değerinin var olup olmadığı yerine çerezin değerini geri yükler. Wpcd_set_cookie () Bu gerçekten çerezi ayarlayan bir işlevdir. Sırayla yaptığı buydu:
$ _Post SuperGlobal’ın Fave_Food adlı bir öğesi olup olmadığını kontrol etti. Bu, birisi eklenti kısa kodu bölümünde yaptığımız bir “favori gıda” formu gönderdiğinde doğrudur. Formların teslimatı varsa, onu temizler ve sonuçları $ cookie_value değişken olarak kaydederiz.
Şimdi çerezi PHP setcookie () işleviyle tamamen ayarlamaya hazırız.
Setcookie () setCookie () nasıl kullanılır bir dizi argüman alır. Bunu anlamak, işlevin kendisini anlamak için var olan her şeydir. Argüman, sırayla:
WPCD_GET_COOKIE_NAME () kullanarak aldığımız çerezin adı.
Almamız gereken çerez değeri $ cookie_value.
Çerez, birkaç saniye sonra ifade edilen son kullanma tarihinden önce ne kadar yaşayacak. Çerezin bundan 999 gün yaşayacağına karar verdim. Time () PHP işlevi ile güncel zamanı alabiliriz; Ve günde 86.400 saniye olduğu için, bu argüman bir zaman alır () + 86400 * 999 değer.
Kurabiye erişilecek. “/” Tüm WPSOUT Sitelerinde Erişilmesini Sağlayın.
Çerezi ayarladıktan sonra … $ _Cookie ve $ _Post her ikisi de HTTP başlıkları olarak yaşadığından, $ _cookie’deki değişikliklerimizin görünmesi için sayfayı yenilememiz gerekir. Bu bir başlıktır (“Yenile: 0”); Yapmak. Ve bir sayfa tazeleme istedikten sonra daha fazla PHP işlemenin gerçekleşmesini istemediğimiz için, tüm PHP’yi yürütmeden daha fazla durdurmak için çıkış çağırdık.