Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Cara Mengembangkan Situs Keanggotaan dengan WordPress: Bagian 2

by
Read Time:7 minsLanguages:
This post is part of a series called How to Develop a Membership Site with WordPress.
How to Develop a Membership Site With WordPress: Part 1
How to Develop a Membership Site With WordPress: Part 3

Indonesian (Bahasa Indonesia) translation by Ari Ana (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Pada bagian pertama dari rangkaian ini, kita membahas kustomisasi formulir pendaftaran dan login. Hari ini kita akan membahas bagaimana menambahkan field kustom ke formulir pendaftaran. Kita akan menambahkan masukan teks untuk handle Twitter dan kotak centang dimana pengguna harus menyetujui persyaratan sebelum mendaftar. Pekerjaan yang dibutuhkan dapat dibagi menjadi tiga bagian:

  • Menambahkan field itu sendiri
  • Validasi di field-field
  • Memproses data

Kita juga akan membahas secara singkat cara terbaik untuk memberi gaya pada email keluar Anda. Ini berarti pengguna akan menerima email bermerek yang bagus saat mereka mendaftar.

Dengan cepat sebelum kita mulai, pastikan Anyone can register dicentang di pengaturan WordPress Anda (Settings > General).

General SettingsGeneral SettingsGeneral Settings

Banyak yang Harus Dilakukan; Mari Kita Mulai

Salah satu hal terbesar tentang WordPress adalah cara ia memberi Anda tindakan dan filter. Ini memungkinkan kita mengaitkan ke event atau menyaring konten, yang memberi kita kesempatan untuk memperluas WordPress dengan anggun.

Jadi dengan menggunakan tindakan register_form, mari kaitkan ke formulir pendaftaran dan menambahkan field kita. Salin fungsi berikut ke admin.php yang kita buat di bagian satu dari serial ini.

Pada dasarnya kita menyuntikkan beberapa field baru ke dalam formulir pendaftaran kita. Markup yang digunakan adalah meniru dari field-field asli. Kita juga ingin mempertahankan nilainya jika halaman dimuat ulang, jadi kita akan memeriksa apakah mereka ada di super global $_POST. Anda mungkin bertanya-tanya mengapa label Twitter kita dibungkus dalam sebuah fungsi: <?php _e( 'Twitter name', 'tutsplus' ) ?>.

Fungsi _e memungkinkan terjemahan terjadi—Anda dapat membaca lebih banyak tentang hal itu di Codex WordPress.

Ini sangat bagus, tapi bagaimana dengan beberapa validasi? Seperti saat ini, pengguna dapat menempatkan apapun yang mereka inginkan di sana atau hanya membiarkannya kosong. Mari kita membuat field kita required dan pastikan field teks hanya mengambil karakter biasa untuk mencegah serangan berbahaya. Kali ini kita akan menggunakan filter WordPress: registration_errors.

Filter di atas dikirimkan tiga parameter:

  1. Kesalahan yang telah diproses
  2. Email pengguna
  3. Nama pengguna yang disterilkan dari pengguna

Fungsi ini dipicu setelah formulir dikirimkan tapi sebelum data menyentuh database. Dalam kasus kita, kita memeriksa apakah field-nya kosong dan jika ada karakter aneh dalam masukan nama Twitter kita. Jika salah satu dari ini benar, kita akan menyampaikan pesan kesalahan ke objek $error yang dikembalikan.

Catatan: jika Anda mendapatkan kotak kesalahan kosong, jangan khawatir. Plugin keamanan yang kita instal di bagian satu memiliki pengaturan default yang menyembunyikan pesannya. Di bagian WordPress Tweaks, hapus centang pada pilihan Disable login error messages.

Login page showing four error messagesLogin page showing four error messagesLogin page showing four error messages

Sekarang bagian terakhir dari teka-teki kita: memproses data sehingga tersimpan dalam database kita terhadap pengguna tersebut. Sekali lagi kita akan menggunakan tindakan yang didefinisikan WordPress (user_register) untuk dihubungkan ke proses ini. Dibutuhkan satu parameter, user_id—cara itu agar tahu siapa yang harus menyimpan data. Dengan asumsi superglobal $_POST berisi data kita, kita dapat menyimpannya dengan menggunakan update_user_meta.

Field Kustom di Admin

Saat ini kita telah mengumpulkan data pengguna - termasuk field kustom kita - namun kita tidak dapat mengedit nilai tersebut di admin WordPress. Mari kaitkan itu. Di admin.php kita tambahkan fungsi berikut ini:

Dengan menggunakan beberapa tindakan WordPress, kita dapat dengan mudah menambahkan field kustom.

Sekarang untuk memproses meta user kustom.

Mengarahkan Ulang pada Login

Akhirnya kita ingin mengalihkan pengguna kita ke halaman tertentu saat mereka login. Default-nya mengirim mereka ke backend WordPress. Lupakan itu. Mari mengirimkan mereka ke halaman "my account". Jadi pertama-tama Anda harus membuat halaman ini di backend. Jangan khawatir tentang konten untuk saat ini, karena kita akan membahasnya di bagian berikutnya dari serial.

Sekarang kita memiliki halaman kita, sisipkan kode di bawah ini ke dalam ____.php dan berikan pengujian. Dengan asumsi halaman "my account" memiliki slug my-account yang seharusnya bekerja. Sekali lagi kita telah menggunakan filter WordPress untuk mencapai ilmu sihir ini.

Singkatnya, kode tersebut memeriksa pengguna, dan jika mereka adalah pengguna admin, mereka diarahkan ke tempat default, jika tidak, mereka mengarahkan ulang ke halaman my-account. Semua ini dipicu saat user log in menggunakan filter login_redirect.

Catatan Singkat Tentang Email Keluar

Saat pengguna mendaftar di situs Anda, mereka akan menerima email konfirmasi. Juga jika pengguna lupa kata sandinya, mereka memiliki kemampuan untuk mendapatkannya kembali melalui email. Jadi penting kita memberi email ini beberapa cinta dan perhatian jika kita ingin situs keanggotaan kita menjadi semua itu.

Sekarang ada beberapa cara untuk melakukan ini. Untuk semua puritan di luar sana Anda dapat menggunakan filter WordPress untuk mengubah jenis konten email dan memberi gaya pada email Anda—lihat Codex WordPress. Atau ada sejumlah plugin di luar sana yang dirancang untuk tujuan ini.

Secara pribadi saya ingin menggunakan Mandrill dari MailChimp untuk mengirim email dari situs WordPress saya. Ini tidak terlalu sulit untuk disiapkan dan ia penuh dengan fitur, yang salah satunya bisa menerapkan template/gaya ke email keluar Anda.

Apa berikutnya?

Di bagian berikutnya dan terakhir dari serial ini, kita akan membuat bagian akun dasar dimana pengguna yang login dapat mengedit rinciannya. Kita juga ingin administrator bisa mengedit rincian ini dari admin area WP, jadi kita akan menambahkan beberapa field kustom di sana juga.

Jika Anda memiliki saran atau pertanyaan, silakan tinggalkan komentar. Saya akan melakukan yang terbaik untuk menjawab secara tepat waktu.

Hal yang Perlu Diperhatikan

Harap diperhatikan: jika Anda mengunduh kode dari repositori GitHub, itu termasuk semua file agar tema Anda aktif dan berjalan. Idenya adalah bahwa Anda dapat mengambil repo-nya dan cukup menjalankan perintah Gulp dan Bower yang diperlukan dan Anda akan pergi! Jika Anda hanya menginginkan file yang berisi kode khusus untuk seri ini, file-file tersebut tercantum di bawah ini.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.