Gelişen internet dünyasında bir çk site sahibi wordpress yazılımını kullanmaktadır. bunun en önemli sebebi ise kolayca müdahale edilebilmesi ve kolay kullanılır olmasıdır. Biraz küçük bir araştırma yaparak internette wordpress temaya özel üyelik sistemi [onemli]eklentisiz[/onemli] yapımını hakkında türkçe bir kaynak bulamayınca bu konuyu hazırladım.
Öncelikle bu işlemlerin yapılabilmesi ve kontrol edilebilmesi için temamıza özel bir sayfa şablonu oluşturmamız gerekli. Bu konu hakkında daha önceden wordpress temaya özel sayfa şablonu yapımı konusunda kısaca değinmiştim. Ancak yinede tekrar belirteyim. Öncelikle wordpressin bizim sayfa şablonunu oluşturduğumuzu görmesi için aşağıdaki kodu oluşturduğumuz yeni php doosyasının en üstüne eklememiz gereklidir.
<?php /* Template Name: Üyelik Sayfası Ecancan.net */ ?>
Bu kdu ekledikten sonra wordpress admin panelinden yeni sayfa oluştur diyerek sağ taraftan sayfa şablnlarından oluşturmuş olduğumuz sayfanın adını seçerek sayfamızı yayına sokmuş oluyoruz ve yapacağımız değişiklikleri bu sayfadan rahatça görmemize imkan sağlıyor.Bu işlemi yaptığımızda yapacağımız işlemlerin çalışabilmesi için öncelikle fonksiyonları yazmamız gerekli. Foonksiyon kodlarını aşağıda görebilirsiniz. Bu kodlar temanın [onemli]functions.php[/onemli] sayfasına eklenecek.
[onemli]Fonctions.php dosyasına eklenecek kodlar[/onemli]
function register_a_user() { if (( isset( $_GET['kayit'] ) && $_GET['kayit'] == 'user-kaydi' )) { $errors = array( ); if (( empty( $_POST['user'] ) || empty( $_POST['email'] ) )) { $errors[] = 'Bir kullanıcı ve e-posta adresi seçiniz'; } if (!empty( $_POST['spam'] )) { $errors[] = 'Spam Koruması'; } $user_login = esc_attr( $_POST['user'] ); $user_email = esc_attr( $_POST['email'] ); $user_pass = esc_attr( $_POST['pass'] ); require_once( ABSPATH . WPINC . '/registration.php' ); $sanitized_user_login = sanitize_user( $user_login ); $user_email = apply_filters( 'user_registration_email', $user_email ); if (!is_email( $user_email )) { $errors[] = 'Geçersiz e-posta adresi'; } else { if (email_exists( $user_email )) { $errors[] = 'Bu e-posta zaten kayıtlı.'; } } if (( empty( $sanitized_user_login ) || !validate_username( $user_login ) )) { $errors[] = 'Geçersiz kullanıcı adı'; } else { if (username_exists( $sanitized_user_login )) { $errors[] = 'Kullanıcı adı zaten kayıtlı'; } } if (empty( $errors )) { $user_id = wp_create_user( $sanitized_user_login, $user_pass, $user_email ); if (!$user_id) { $errors[] = 'Kayıt başarısız...'; } else { update_user_option( $user_id, 'default_password_nag', true, true ); wp_new_user_notification( $user_id, $user_pass ); } } if (!empty( $errors )) { define( 'REGISTRATION_ERROR', serialize( $errors ) ); return null; } define( 'REGISTERED_A_USER', $user_pass ); } } add_action( 'template_redirect', 'register_a_user' );
Yukarıdaki kodları temamızın [onemli]functions.php[/onemli] dosyasına eklediğimzide geriye sadece özel olarak oluşturmuş olduğumuz üyelik kayıt sayfasının form elementlerini oluşturmak ve bunları fonksiyon dosyamızdaki parametrelere göre tanımlamak.
[onemli]Üye sayfası için tanımlamış olduğumuz form kodları aşağıdadır[/onemli]
<?php if(defined('REGISTRATION_ERROR')) foreach(unserialize(REGISTRATION_ERROR) as $error) echo "<script>$(\"#UserKayit\").show();</script><div class=\"HataLi\"><div class=\"alert alert-error\"><button data-dismiss=\"alert\" class=\"close\">×</button><strong>Hata!</strong>{$error}</div></div>"; elseif(defined('REGISTERED_A_USER')) echo "<div class=\"alert alert-success\"><button data-dismiss=\"alert\" class=\"close\">×</button><strong>Başarılı! = </strong><script>$(\"#UserKayit\").show();</script>Şifreniz <b>".REGISTERED_A_USER."</b> olarak oluşturulmuştur. </div>"; ?> <?php if(get_option('users_can_register')) { ?> <form class="cmxform form-horizontal adminex-form" id="commentForm" method="post" action="/uye-ol/?kayit=user-kaydi"> <div class="form-group "> <label for="cname" class="control-label col-lg-2">Kullanıc Adı</label> <div class="col-lg-10"> <input class=" form-control" id="cname" name="user" type="text" required /> </div> </div> <div class="form-group "> <label for="cemail" class="control-label col-lg-2">Şifre</label> <div class="col-lg-10"> <input class="form-control " id="cmail" name="pass" type="password" required /> </div> </div> <div class="form-group "> <label for="cemail" class="control-label col-lg-2">Email</label> <div class="col-lg-10"> <input class="form-control " id="cemail" name="email" type="text" required /> </div> </div> <div class="form-group "> <label for="cemail" class="control-label col-lg-2">Spam Kontrol</label> <div class="col-lg-10"> <input class="form-control " id="cemail" name="spam" type="text" value="Üye olurken siliniz" /> </div> </div> <div class="form-actions"> <button class="btn btn-success pull-right" type="submit" >Kayıt Ol</button> </div> <?php }else echo "<div class=\"alert alert-error\"><button data-dismiss=\"alert\" class=\"close\">×</button><strong>Hata!</strong>Üye kayıtları durdurulmuştur. Lütfen daha sonra deneyiniz.</div>";?> </form>
Bu form dosyasını temamız için özel oluşturmuş olduğumuz ve wordpress sistemine şablon olarak tanıttığımız dosyanın içine eklediğimizde artık üyelik sistemini tamamlanmış oldu.
Yukarıdaki form bootstrab altyapısı kullanılarak oluşturulmuştur ve şuan ki temamın güncel kayıt formudur. Bizzat kendi elimle yapmış oolduğum bir fonksiyondur bu kodların izinsiz başka siteler tarafından alıntı yapılmadan alınması sonucunda gereken işlemler yapılacaktır. Bootstrap kullanılmayan temalarda tasarımsal bzukluklar meydana gelebilir. Tasarımsal olarak düzenlemeleri kendi zevkinize göre yapabilir ve form içinde kullanmış olduğum css cınıflarını düzenleyerek dormu tekrardan istediğiniz gibi tasarımsal olarak düzenleyebilirsiniz. Şuanki temamın üyelik sistemini olduğu gibi aktarmış bulunmaktayım.Formun çalışması için tema için oluşturuşan özel sayfa şablonu adresinin slug (kalıcı bağlantı adresi) yani adres çubuğundaki sayfanın yol adresi [onemli]uye-ol[/onemli] olarak oluşturulması gereklidir aksi halde formdan gelen uyarıları göremeyebilirsiniz ve sizi hatalı bir sayfaya gönderir.
Bu işlemleri yaptığınız halde artık wordpress sisteminize kolaylıkla üyelerinizi kayıt edebileceksiniz ve wordpressin varsayılan kayıt sayfasına gerek duymayacaksınız.
Makalemin sonuna kadar okuduğunuz için teşekkür eder bir yorum ile destek verirseniz sevinirim. Soru ve sorunlarınız için konu altına youm bırakabilir yada iletşim saydasınıdan bana mail gönderebilirsiniz.
hocam ben bu kısmı anlamadım. yani ikinci verdiğiniz kodları nereye ekleyecez?
Keşke bunu yapabilecek bir arkadaşım olsaydı...
Teşekkürler. Bazı Rütuşlar yaparak kullanabiliriz değilmi
merhabalar. sayfayı oluşturdum fakat kayıt işlemi başarılı dedikten sonra üye giriş sayfasına yönlendirmek veya giriş yapmış bir şekilde anasayfaya yönlendirmek istiyorum. ek olarak (zaten üye olan kişi uyelik formunu göremesin) dönüş sağlarsanız sevinirim hocam elinize sağlık.
Çok teşekkürler, üyeden ayrıyeten GSM istersek kodda ne gibi değişiklikler yapmamız gerekir, yardımcı olabilir misiniz?
Güzel hocam Elinize sağlık eklenti yüzünden sitemiz Geç açıyordu eklentisiz hal etmek her halukarda daha iyi
makale çok yararlı olmuş ancak bunun birde üye giriş sayfası olsa daha harika olacak....
hocam bu .php ayarı nerede ben bulamadım nereye yazıyoruz bu kodu ben hala onu çözemedim
Gerçekten hos bir anladım olmuş buna ek alan nasıl ekleriz örneğin yaşadığın il ilçe tuttuğum takım profil resmi vs.. gibi bir örnek verirseniz kopyalayarak çoğaltabilirim gibi gelio
Merhaba,öncelikle teşekkürler. Bende denedim lakin bir türlü üye alımı durdurulmuş şeklinde bir sorunla karşılaşıyorum? Nedir burada problem
merhabalar gerçekten yararlı bir makale olmuş elinize emeğinize sağlık. spam için ekstra koruma ne eklenebilir öneriniz varmı ?
Üyelik sisteminin spam kormuası için sizin yöntemi kullandım ancak hala birçok spam üye var bunun önüne nasıl geçebilir acil yardım!
Hocam dedikleriniz aynen yaptım fakat başarılı olup olmadığını belirtmiyor hocam ama üye sisteme ekleniyor formda girdiğim bilgilere göre acil cevap yazarsanız çok iyi olur hocam