Formulir Pendaftaran Front-end

13

Saya mencari cara mudah untuk menempatkan formulir pendaftaran pengguna di ujung depan situs WordPress. Saya sudah menggunakan wp_login_form () untuk menempatkan formulir login di ujung depan, tetapi sekarang saya harus melakukan hal yang sama dengan formulir pendaftaran.

Ada ide?

Pippin
sumber
Maaf, tapi apa yang Anda maksud dengan "front-end". Saya pikir saya mengerti apa artinya front-end dan back-end, tapi saya tidak mengerti bagaimana Anda bisa menempatkan formulir di tempat lain selain di front-end. Apakah maksud Anda halaman depan?
Mads Skjern

Jawaban:

7

Jeff Starr menulis tutorial yang bagus tentang pendaftaran front-end, login dan pemulihan kata sandi
dengan menggunakan pendekatan yang sama seperti yang disarankan oleh onetrickpony . Jadi anggap ini sebagai tindak lanjut dari jawabannya dan sebagai sumber lain yang dapat membantu Anda menyelesaikannya:
http://digwp.com/2010/12/login-register-password-code/

Sekarang Anda memiliki dua contoh cara membuat kode ini sendiri dan percayalah - itu pasti layak dilakukan dengan cara Anda sendiri. Tidak sesulit itu dan memberi Anda kebebasan , fleksibilitas , dan penggunaan kembali yang tidak dapat ditawarkan oleh plugin.

Michal Mau
sumber
4

jika Anda ingin menangani ini sendiri, inilah yang saya gunakan:

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;
}

kode ini hampir identik dengan kode dari halaman pendaftaran pengguna.

kemudian tambahkan formulir Anda di templat Anda:

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

Anda dapat membuat widget dengan ini, kode pendek atau hanya templat halaman biasa ...

onetrickpony
sumber
Tampak hebat, meskipun sepertinya tidak berhasil. Saya telah menemukan plugin yang berfungsi dengan baik, jadi terima kasih atas bantuannya.
Pippin
berfungsi untuk saya, tetapi saya pikir Anda perlu mengubah home_url()dengan url halaman saat ini karena kode saya menganggap formulir ada di beranda. Saya telah memposting get_current_page_url()fungsi di sini pada pertanyaan lain, tidak ingat yang mana
onetrickpony
2

Gravity Forms adalah plugin formulir kontak terbaik untuk WordPress, IMO. Ada versi terbaru, dalam versi beta, memiliki add-on pendaftaran pengguna. Saya sudah mencobanya dan itu berhasil. Anda akan dikenakan biaya ... $ 199 untuk lisensi pengembang.

Halaman harga http://www.gravityforms.com/purchase-gravity-forms/

Posting blog berbicara tentang add-on pendaftaran pengguna http://www.gravityhelp.com/

Saya sangat merekomendasikan plugin ini ke komunitas WordPress.

Spesifikasi detail:

Berikut adalah beberapa fitur dari Add-On Registrasi Pengguna:

  • Registrasi Pengguna - Siapkan formulir untuk mendaftarkan pengguna dengan memetakan bidang formulir Anda ke bidang pendaftaran pengguna yang tersedia di WordPress.
  • User Meta - Mudah mengisi data meta pengguna seperti bio, id pesan instan, nama depan, nama belakang serta meta pengguna khusus untuk memenuhi kebutuhan Anda.
  • Integrasi BuddyPress - Mengisi data bidang profil BuddyPress sebagai bagian dari proses pendaftaran pengguna. Saat ini bekerja dengan BuddyPress v1.2.6.
  • Integrasi Pembayaran - Memerlukan pembayaran sebelum pendaftaran pengguna terjadi. Termasuk dukungan untuk langganan PayPal, dan mengubah peran pengguna atau menghapus pengguna jika langganan dibatalkan.
  • Bidang Kata Sandi - Add-On Registrasi Pengguna menambahkan bidang Kata Sandi ke Gravity Forms untuk digunakan dalam formulir Anda. Kolom Kata Sandi mencakup opsi konfirmasi, serta opsi pemeriksa kekuatan kata sandi bawaan.
  • Post Author - Mengintegrasikan Add-On Registrasi Pengguna dan Pembuatan Postingan dalam satu formulir sehingga penulis posting yang dibuat adalah pengguna yang terdaftar oleh add-on.
  • Pembuatan Situs - Secara otomatis membuat situs di jaringan WordPress (multi-situs) menginstal dan menetapkan pengguna yang baru dibuat sebagai Administrator untuk situs tersebut.
Carson
sumber
1

Coba plugin login simplemodal. Ini memungkinkan pendaftaran dan masuk (Anda harus mengaktifkan pendaftaran pengguna), dan itu terlihat sangat bagus.

Lynne
sumber
Tutup, tetapi tidak cukup apa yang saya butuhkan. Saya butuh sesuatu yang bisa saya masukkan ke template saya yang sudah ada.
Pippin
Ya .. saya .. Bagaimana Anda bisa tidak memasukkannya ke dalam template Anda?
Lynne
Inilah situs yang baru saja saya selesaikan mendesain menggunakan simplemodal login .. purevapes.com perhatikan register dan tautan login di bagian atas. Pengguna tidak pernah diambil dari front-end blog. Anda dapat memasukkan mereka menggunakan kode HTML sederhana dalam template Anda, dan mereka mengarahkan pengguna ke halaman depan, bukan panel admin. Jadi saya tidak yakin bagaimana ini tidak bisa 'dijatuhkan' ke template apa pun.
Lynne
Maksud saya "menjatuhkan" seperti yang termasuk dalam halaman yang sebenarnya, bukan sebagai jendela modal. Inilah plugin yang baru saja saya temukan untuk melakukannya: wordpress.org/extend/plugins/simplr-registration-form
Pippin
Ah, begitu. Bahkan tidak terlintas dalam pikiran saya bahwa jendela modal akan menghadirkan masalah, tetapi saya bisa melihat sekarang di mana ada tempat untuk itu dan tidak. Terima kasih atas tautan pengaya, melemparkannya ke gudang senjata saya. Senang Anda menemukan jawaban Anda :)
Lynne
0

Anda dapat menggunakan plugin Theme My Login

Tareq
sumber
Sepertinya plugin Anda mungkin berfungsi dengan baik, kecuali bahwa saya tidak dapat membuat formulir pendaftaran berfungsi. Formulir login menampilkan baik-baik saja, tetapi ketika saya mencoba untuk pergi ke formulir pendaftaran, itu hanya membawa saya ke wordpress default. Apakah ada cara untuk hanya menampilkan formulir pendaftaran di halaman?
Pippin
Itu bukan plugin saya, saya menulis: P
Tareq
0

Inilah cara yang baik dan mudah yang telah saya lakukan ini:

Salin nama bidang dan hal-hal lain dari formulir pendaftaran Wordpress saat ini. Pastikan formulir kustom Anda memiliki bidang nama yang sama termasuk yang tersembunyi dan kemudian arahkan tindakan formulir ke url pendaftaran yang tepat: http://www.yourblog.com/wp-login.php?action=register - Anda mungkin ingin untuk mengubah cara pengalihan formulir setelah pendaftaran juga jika Anda tidak suka cara penanganannya.

Ada juga plugin ini yang disebut Insite Login yang memungkinkan Anda untuk memasukkan formulir pendaftaran, formulir masuk dan lainnya ke halaman di situs Anda: http://wordpress.org/extend/plugins/insitelogin/

Solusi pertama harus melakukan apa yang Anda inginkan.

Dwayne Charrington
sumber
0

Jika Anda membutuhkan lebih banyak bidang pada formulir pendaftaran Anda, Anda dapat menggunakan plugin Builder Profil

Ini memungkinkan Anda menyesuaikan situs web Anda dengan menambahkan formulir front-end untuk login, mendaftar dan mengedit profil melalui penggunaan kode pendek.

Cristian Dumitru Antohe
sumber