WordPress Üyelik Sistemi Yapma [Eklentisiz] Temaya Özel Üyelik Sayfası Yapımı

Ecancan 23 Şub 2015 Wordpress 5.931  2

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 eklentisiz 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 functions.php sayfasına eklenecek.

Fonctions.php dosyasına eklenecek kodlar
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 functions.php 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.

Üye sayfası için tanımlamış olduğumuz form kodları aşağıdadır
<?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 kalici-baglanti(kalıcı bağlantı adresi) yani adres çubuğundaki sayfanın yol adresi  uye-ol 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.

 

 

Ahmet CAN {Ecancan}

Kendi çapında bir şeyler yapmaya çalışan üniversite öğrencisi :)
Flexible WordPress Portal Teması
Hızlı ve Güvenli WordPress Nasıl Olur ?
WordPresste Kullanılmayan Resimleri Silmek
Optima Renkli WordPress Blog Teması – Responsive

“WordPress Üyelik Sistemi Yapma [Eklentisiz] Temaya Özel Üyelik Sayfası Yapımı” üzerine 16 yorum

  1. Ksmolk dedi ki:

    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

    1. Ecancan dedi ki:

      Hocam sanırsam hata yaptığınız yer oluşturduğunuz sayfanın adresinin siteadresi.com/uye-ol şeklinde olmamasından kaynaklanıyor olmasıdır. Bir deneyip bakarsanız sevinrim.

      1. Ksmolk dedi ki:

        Hocam çok sağolun halletim sorunu sonradan fark ettim daha önceden üye ol olarak sayfa oluşturmuşum daha sonrada onu çöpe atmışım 🙂 tekrar aynı adreste üyelik sayfası oluşturmuyormu meğer 🙂 çöpten kalıcı olarak silince oldu hocam çok teşekkür ederim.

        1. Ecancan dedi ki:

          Rica ederim 🙂 Faydalı olduysam ne mutlu. 🙂

  2. Taha selim dedi ki:

    Ü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!

    1. Ecancan dedi ki:

      Nasil bir sorun ile karsilastiniz.

      1. Taha selim dedi ki:

        Şöyle şimdi üyelik sayfasında ad soyad ve mail adresi alıyorum bir altta da sizin verdiğiniz form temizlemeyi verdim ancak yinede spam üye var bir sürü. Bir önceki denemelerimde sayıyı toplayın dedim yine üye oldular hala değişik değişik isimler üye oluyor.

        1. Ecancan dedi ki:

          Spam korumayı geliştirebilirsiniz. yada ek spam koruması ekleyebilirsiniz.

  3. merhabalar gerçekten yararlı bir makale olmuş elinize emeğinize sağlık. spam için ekstra koruma ne eklenebilir öneriniz varmı ?

  4. Fuat dedi ki:

    Merhaba,öncelikle teşekkürler. Bende denedim lakin bir türlü üye alımı durdurulmuş şeklinde bir sorunla karşılaşıyorum? Nedir burada problem

    1. Ecancan dedi ki:

      Uyelik alimini acin o zaman 🙂

  5. Leyla dedi ki:

    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

  6. ahmet kara dedi ki:

    hocam bu .php ayarı nerede ben bulamadım nereye yazıyoruz bu kodu ben hala onu çözemedim

  7. murat dedi ki:

    makale çok yararlı olmuş ancak bunun birde üye giriş sayfası olsa daha harika olacak….

  8. Sesli chat dedi ki:

    Güzel hocam Elinize sağlık eklenti yüzünden sitemiz Geç açıyordu eklentisiz hal etmek her halukarda daha iyi

  9. Murat dedi ki:

    Çok teşekkürler, üyeden ayrıyeten GSM istersek kodda ne gibi değişiklikler yapmamız gerekir, yardımcı olabilir misiniz?

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir