Wordpress Üye Kayıt Sayfası Yapımı
#Wordpress - 13 Oct 2020

Merhabalar, bir web sitem üzerinde çalışırken üye kayıt olma ve üye girişi sayfası yapmam gerekmişti. Bu yapma gereğinden yola çıkarak bir kayıt ol ve giriş sayfası oluşturdum. Kodları da sizlerle paylaşmak istedim. Yazımı eksiksik okuyarak Wordpress Üye Kayıt Sayfası yapımı hakkında bilgi sahibi olabilirsiniz. Wordpress üye kayıt sayfası ve üye giriş sayfasını yapmamı için öncelikle özel şablon kullanmayı bilmemiz gerekmekte. Eğere yapmayı bilmiyorsanız Wordpress Özel Sayfa Şablonu Yapımı başlıklı yazımı okuyabilirsiniz. Wordpress Özel Sayfa Şablonu Yapımı'nı öğrendikten sonra gerekli formları oluşturup işlemi gerçekleştirebiliriz. Yapacağımız işlem sadece üye kayıt olma formunu oluşturacaktır. Üye girişi bir sonraki yazımda.

Üye Kayıt Sayfası Yapımı

Öncelikle functions.php dosyamızı açıyoruz ve gerekli olan üye profili oluşturacak kodlarımızı ekliyoruz.

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' );

Kodlarımızı ekledikten sonra ise oluşturacağımız sayfa şablonuna eklememiz gereken kodları ekliyoruz. Örneğin uyekayit.php dosyası oluşturup ekleyebilirsiniz.

<?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>
                        <p>
                        <div class="form-group ">
<label for="cemail" class="control-label col-lg-2">Telefon</label>
<div class="col-lg-10">
                            <input type="text">
                            </div></div>
                        </p>
                        <p class="checkbox-reg">
                            <label><input type="checkbox"> <span>Wanted Team Kurallarını kabul ediyor, gelecek olan SMS ve E-maller için izin veriyorum.</span></label>
                        </p>
                        <p>Üye olduktan sonra profilinizi düzenlemeyi unutmayın!</p>

<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>";?>

Yukarıda ki formu kendinize göre düzenleyebilirsiniz. Unutmadan belirtmek istiyorum sayfası link yapısı uye-ol olarak ayarlanması gerekmekte. Farklı linklendirmeler hata almanıza sebep olacaktır.