WordPress Sitesi İçin Özel Kullanıcı Kayıt Formu Nasıl Oluşturulur?

WordPress, varsayılan olarak basit bir kullanıcı kayıt formu sunar. Ancak özel ihtiyaçlarınız varsa (ekstra alanlar, tasarım özelleştirmeleri veya güvenlik katmanları), özel bir kullanıcı kayıt formu oluşturmanız gerekebilir. Bu rehberde, eklenti kullanarak ve manuel kod yazarak nasıl özel kayıt formu oluşturabileceğinizi adım adım anlatıyoruz.

Neden Özel Kayıt Formu Kullanmalısınız?

  • Ekstra Alanlar Ekleme: Telefon numarası, adres, özel kullanıcı verileri gibi alanlar ekleyebilirsiniz.
  • Tasarım Kontrolü: Formun görünümünü site temasıyla uyumlu hale getirebilirsiniz.
  • Güvenlik Artırımı: CAPTCHA, e-posta doğrulama gibi önlemler ekleyebilirsiniz.
  • Kullanıcı Deneyimi: Kayıt sürecini basitleştirip yönlendirmeler ekleyebilirsiniz.

Yöntem 1: Eklenti ile Özel Kayıcı Formu Oluşturma

Eklentiler, kod bilgisi gerektirmeden hızlı çözüm sunar. İşte popüler seçenekler:

1. WPForms ile Form Oluşturma

Adımlar:

  1. WPForms Lite veya WPForms Pro eklentisini kurun ve etkinleştirin.
  2. WPForms > Yeni Ekle’ye tıklayın.
  3. Şablon olarak “User Registration Form” seçin.
  4. Form Oluşturucu’da ihtiyacınıza göre alanları sürükleyip bırakın (Örn: E-posta, Şifre, Ad Soyad).
  5. Ayarlar > Onay Mesajı’ndan kayıt sonrası yönlendirme URL’si ekleyin.
  6. Kaydet’e basın ve formu bir sayfaya yerleştirmek için kısa kodu kopyalayın.
  7. Yeni bir sayfa oluşturup kısa kodu ekleyerek formu yayınlayın.

Özelleştirmeler:

  • CAPTCHA Ekleme: Google reCAPTCHA entegre edin (WPForms ayarlarından).
  • Özel CSS: Form ID’sini kullanarak CSS ile tasarımı değiştirin.
  • Koşullu Mantık: Belirli alanları koşullara göre göster/gizle.

2. Elementor + Ultimate Member

Tasarım odaklı bir çözüm için:

  1. Ultimate Member eklentisini kurun.
  2. Elementor ile yeni bir sayfa oluşturun.
  3. Ultimate Member’ın “Kayıt Formu” widget’ını sürükleyin.
  4. Alanları özelleştirmek için Ultimate Member > Formlar’a gidin ve yeni form oluşturun.
  5. Özel alanlar ekleyin (dosya yükleme, açılır menü vb.).

Yöntem 2: Manuel Kod ile Özel Kayıt Formu

Eklenti kullanmak istemiyorsanız, temalarınızın functions.php dosyasına özel kod ekleyebilirsiniz.

1. Form HTML ve PHP Kodları

Aşağıdaki kodu bir kısayol (shortcode) olarak oluşturun:

// functions.php dosyasına ekleyin
function custom_registration_form_shortcode() {
    ob_start();
    if (!is_user_logged_in()) {
        global $reg_errors;
        $reg_errors = new WP_Error;

        // Form gönderildiğinde çalışacak fonksiyon
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            custom_registration_validation($_POST);
            if (count($reg_errors->get_error_messages()) < 1) {
                custom_complete_registration($_POST);
            }
        }

        // Form HTML
        ?>
        <form method="post" action="">
            <?php wp_nonce_field('custom_register_nonce', 'custom_register_nonce_field'); ?>
            <input type="text" name="username" placeholder="Kullanıcı Adı" required>
            <input type="email" name="email" placeholder="E-posta" required>
            <input type="password" name="password" placeholder="Şifre" required>
            <input type="submit" name="submit" value="Kayıt Ol">
        </form>
        <?php
        // Hata mesajlarını göster
        if (is_wp_error($reg_errors)) {
            foreach ($reg_errors->get_error_messages() as $error) {
                echo '<div class="error">' . $error . '</div>';
            }
        }
    } else {
        echo 'Zaten giriş yaptınız.';
    }
    return ob_get_clean();
}
add_shortcode('custom_register_form', 'custom_registration_form_shortcode');

2. Doğrulama ve Kayıt Fonksiyonları

// Doğrulama fonksiyonu
function custom_registration_validation($data) {
    global $reg_errors;
    if (empty($data['username']) || empty($data['email']) || empty($data['password'])) {
        $reg_errors->add('empty_field', 'Tüm alanlar zorunludur.');
    }
    if (!is_email($data['email'])) {
        $reg_errors->add('invalid_email', 'Geçersiz e-posta adresi.');
    }
    if (username_exists($data['username'])) {
        $reg_errors->add('username_exists', 'Bu kullanıcı adı zaten alınmış.');
    }
    if (email_exists($data['email'])) {
        $reg_errors->add('email_exists', 'Bu e-posta zaten kayıtlı.');
    }
}

// Kayıt tamamlama
function custom_complete_registration($data) {
    $user_data = array(
        'user_login' => sanitize_user($data['username']),
        'user_email' => sanitize_email($data['email']),
        'user_pass' => $data['password'],
    );
    $user_id = wp_insert_user($user_data);
    if (!is_wp_error($user_id)) {
        wp_new_user_notification($user_id, null, 'both'); // E-posta bildirimi
        echo 'Kayıt başarılı! Giriş yapabilirsiniz.';
    }
}

Güvenlik ve Geliştirmeler

  • reCAPTCHA Ekleme: Forma Google reCAPTCHA entegre edin.
  • Parola Gücü Kontrolü: JavaScript ile parola karmaşıklığını zorunlu kılın.
  • E-posta Doğrulama: Kullanıcıyı aktivasyon linki ile doğrulamaya zorunlu tutun.
  • GDPR Uyumluluğu: KVKK onay metni ve veri işleme izni ekleyin.

Değerlendirme

Özel kayıt formu oluşturmak için WPForms, Ultimate Member gibi eklentileri kullanabileceğiniz gibi, manuel kod yazarak da tam kontrol sağlayabilirsiniz. Hangi yöntemi seçerseniz seçin, kullanıcı verilerini güvende tutmak için güvenlik önlemlerini atlamayın. Test aşamasında formun tüm senaryolarda (hata mesajları, başarılı kayıt) çalıştığından emin olun.


NOT: Bu yazı bir takipçimizin isteği üzerine hazırlanmıştır. Umarım faydalı olur. Sonuçları bizimle paylaşırsanız sevinirim.

Paylaş
WPW

WPW

Yazar, teknolojiye meraklı, grafik tasarımcı, sosyal medya ve seo danışmanı...

Articles: 624