Ön Uç Kayıt Formu


13

Kullanıcı kayıt formunu bir WordPress sitesinin ön ucuna yerleştirmenin kolay bir yolunu arıyorum. Giriş formunu ön uca yerleştirmek için zaten wp_login_form () kullandım, ancak şimdi kayıt formuyla aynı şeyi yapmam gerekiyor.

Herhangi bir fikir?


Üzgünüm, ama "ön uç" ile ne demek istiyorsun. Ön uç ve arka ucun ne anlama geldiğini anlıyorum, ancak bir formu ön uçtan başka bir yere nasıl yerleştirebileceğinizi anlayamıyorum. Ön sayfa mı demek istediniz?
Mads Skjern

Yanıtlar:


7

Jeff Starr, onetrickpony tarafından önerilen
benzer yaklaşımı kullanarak ön uç kaydı, giriş ve şifre kurtarma konusunda harika bir öğretici yazdı . Bunu cevabının bir takibi ve yapmanıza yardımcı olabilecek başka bir kaynak olarak alın: http://digwp.com/2010/12/login-register-password-code/

Şimdi bunu kendiniz nasıl kodlayacağınıza ve bana nasıl güveneceğinize dair iki örneğiniz var - kesinlikle bu (kendi) şekilde yapmaya değer. Bu o kadar zor değil ve size hiçbir eklentinin sunamayacağı özgürlük , esneklik ve yeniden kullanılabilirlik kazandırıyor .


4

bunu kendiniz halletmek istiyorsanız, işte şunu kullanıyorum:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    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[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registration failed...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

kod, kullanıcı kayıt sayfasındaki kodla neredeyse aynıdır.

ardından formunuzu şablonunuza ekleyin:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="register" />
</form>

bununla bir widget, bir kısa kod veya yalnızca normal sayfa şablonu oluşturabilirsiniz ...


Harika görünüyor, ama işe yaramadı gibi görünüyor. Yine de harika çalışan bir eklenti buldum, bu yüzden yardım için teşekkürler.
Pippin

benim için çalışır, ancak home_url()benim kod formun ana sayfada olduğunu varsayar çünkü geçerli sayfa url ile değiştirmeniz gerektiğini düşünüyorum . get_current_page_url()Burada başka bir soruya bir fonksiyon gönderdim , hangisini hatırlamıyorum
onetrickpony

2

Gravity Forms, WordPress, IMO için en iyi iletişim formu eklentisidir. Orada beta sürümünde bir kullanıcı kaydı eklentisi var. Denedim ve harika çalışıyor. Ama size mal olacak ... bir geliştirici lisansı için 199 $.

Fiyatlandırma sayfası http://www.gravityforms.com/purchase-gravity-forms/

Kullanıcı kaydı eklentisi hakkında konuşan blog yazısı http://www.gravityhelp.com/

Bu eklentiyi WordPress topluluğuna tavsiye ederim.

Detaylı Özellikler:

Kullanıcı Kaydı Eklentisinin bazı özellikleri şunlardır:

  • Kullanıcı Kaydı - Form alanlarınızı WordPress'teki kullanılabilir kullanıcı kayıt alanlarıyla eşleyerek kullanıcıyı kaydetmek için bir form ayarlayın.
  • Kullanıcı Meta - Bio, anlık mesajlaşma kimliği, ad, soyadı ve özel kullanıcı meta gibi kullanıcı meta verilerini ihtiyaçlarınıza göre kolayca doldurun.
  • BuddyPress Entegrasyonu - BuddyPress profil alanı verilerini kullanıcı kayıt işleminin bir parçası olarak doldurun. Şu anda BuddyPress v1.2.6 ile çalışıyor.
  • Ödeme Entegrasyonu - Kullanıcı kaydı gerçekleşmeden önce ödeme yapılmasını gerektirir. PayPal abonelikleri için destek ve kullanıcı rolünü değiştirme veya abonelik iptal edilirse kullanıcının silinmesini içerir.
  • Parola Alanı - Kullanıcı Kaydı Eklentisi, formlarınızda kullanmak için Yerçekimi Formlarına bir Parola alanı ekler. Parola alanında bir onay seçeneği ve yerleşik bir parola gücü denetleyicisi seçeneği bulunur.
  • Yazar Yaz - Oluşturulan yayının yazarı, eklenti tarafından kaydedilen kullanıcı olacak şekilde Kullanıcı Kaydı Eklentisi ve Yayını Oluşturma'yı tek bir forma entegre edin.
  • Site Oluşturma - Otomatik olarak bir WordPress ağı (çoklu site) yüklemesinde bir site oluşturun ve yeni oluşturulan kullanıcıları site için Yönetici olarak atayın.

1

Simplemodal giriş eklentisini deneyin. Kayıt ve girişe izin verir (Kullanıcı kaydını etkinleştirmeniz gerekir) ve çok güzel bir görünüme sahip.


Yakın, ama tam olarak ihtiyacım olan şey değil. Mevcut şablonuma bırakabileceğim bir şeye ihtiyacım var.
Pippin

Evet .. Ben .. Bunu şablonuna nasıl koyamazsın?
Lynne

İşte ben sadece simplemodal giriş kullanarak tasarımı bitirdim bir site .. purevapes.com üst kayıt ve giriş bağlantıları not edin. Kullanıcı asla blogun ön ucundan alınmaz. Bunları şablonunuzdaki basit HTML kodunu kullanarak dahil edebilirsiniz ve kullanıcıyı yönetici paneli yerine ön sayfaya yönlendirir. Bu yüzden bunun herhangi bir şablona nasıl 'düşürülemeyeceğinden emin değilim.
Lynne

Ben kalıcı bir pencere olarak değil, gerçek sayfaya dahil olduğu gibi "düştü" demekti. İşte bunu bulduğum eklenti: wordpress.org/extend/plugins/simplr-registration-form
Pippin

Ah, anlıyorum. Kalıcı pencerenin bir sorun yaratacağı aklımdan bile geçmedi, ama şimdi bunun için bir yer nerede olduğunu ve göremiyorum. Eklenti bağlantısı için teşekkürler, bunu cephaneme atıyorum. Cevabınızı bulduğunuza sevindim :)
Lynne

0

Sen kullanabilir Tema Benim Girişi eklentisi


Görünüşe göre eklenti harika olabilir, ancak kayıt formunu çalıştıramam. Giriş formu iyi görünüyor, ancak kayıt formuna gitmeye çalıştığımda, beni varsayılan wordpress'e götürüyor. Kayıt formunu sayfada görüntülemenin bir yolu var mı?
Pippin

Bu benim eklentim değil yazdım: P
Tareq

0

İşte bunu yapmanın güzel ve kolay bir yolu:

Alan adlarını ve diğer bilgileri geçerli Wordpress kayıt formundan kopyalayın. Özel formunuzun gizli olanlar da dahil olmak üzere aynı ad alanlarına sahip olduğundan emin olun ve sonra form eylemini yalnızca uygun kayıt URL'sine yönlendirin: http://www.yourblog.com/wp-login.php?action=register - Daha sonra isteyebilirsiniz nasıl işlendiğini beğenmezseniz formun kayıttan sonra nasıl yönlendirileceğini değiştirmek için.

Ayrıca, kayıt formunu, giriş formunu ve diğerlerini sitenizdeki sayfalara bırakmanıza izin veren Insite Login adı verilen bu eklenti de vardır: http://wordpress.org/extend/plugins/insitelogin/

İlk çözüm, ne yapmasını istediğinizi yapmalıdır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.