Cara Redirect Login WordPress Berdasarkan Role User dengan functions.php

Kucatat.com,

Dalam pengembangan website berbasis WordPress, terkadang kita membutuhkan pengaturan khusus setelah pengguna berhasil login.

Salah satu kebutuhan yang cukup sering digunakan adalah mengarahkan user ke halaman tertentu berdasarkan role mereka, seperti administrator, author, editor, maupun subscriber.

Secara default, WordPress akan mengarahkan seluruh user ke halaman dashboard yang sama. Namun dengan sedikit modifikasi pada file functions.php, proses login bisa dibuat lebih fleksibel dan terstruktur.

Kenapa Redirect Berdasarkan Role Dibutuhkan?

Pengaturan redirect login biasanya digunakan untuk meningkatkan pengalaman pengguna dan mempermudah pengelolaan website.

Baca Juga:

Contohnya:

  • author diarahkan ke halaman dashboard penulis,
  • administrator tetap masuk ke wp-admin,
  • user biasa diarahkan ke homepage atau halaman member.

Cara ini sering digunakan pada:

  • portal berita,
  • website multi author,
  • sistem membership,
  • hingga website komunitas.

Kode Redirect Login WordPress

Tambahkan kode berikut ke file functions.php pada tema aktif WordPress:

function custom_login_redirect() {
  $username = $_POST['log'];
  $user = get_user_by('login', $username);
  
  if ( is_a( $user, 'WP_User' ) ) {
    if ( in_array( 'author', $user->roles ) ) {
      return home_url('/author-dashboard/');
    } elseif ( in_array( 'administrator', $user->roles ) ) {
      return home_url('/wp-admin/');
    } else {
      return home_url();
    }
  }
}
add_filter( 'login_redirect', 'custom_login_redirect' );

Penjelasan Fungsi Kode

Berikut fungsi dari masing-masing bagian kode tersebut:

Baca Juga:

Mengambil Username Login

$_POST['log']

Kode ini digunakan untuk membaca username dari form login WordPress.

Mengambil Data User

get_user_by('login', $username);

Fungsi ini digunakan untuk mengambil data user berdasarkan username yang dimasukkan.

Memastikan Data Adalah User WordPress

is_a( $user, 'WP_User' )

Bagian ini memastikan bahwa data yang ditemukan memang user WordPress yang valid.

Mengecek Role User

in_array( 'author', $user->roles )

Digunakan untuk memeriksa apakah user memiliki role tertentu.

Baca Juga:

Menentukan Halaman Redirect

home_url('/author-dashboard/')

Berfungsi menentukan tujuan redirect setelah login berhasil.

Alur Kerja Redirect Login

Berikut proses kerjanya:

  1. User login ke WordPress
  2. Sistem membaca username
  3. WordPress mengecek role user
  4. User diarahkan ke halaman sesuai role

Menambahkan Redirect untuk Role Lain

Kamu juga bisa menambahkan role tambahan seperti editor atau subscriber.

Contohnya:

elseif ( in_array( 'editor', $user->roles ) ) {
  return home_url('/editor-dashboard/');
}

Dengan cara ini, setiap role dapat memiliki dashboard atau halaman khusus masing-masing.

Tips Pengembangan yang Lebih Aman

Agar fitur redirect lebih aman dan fleksibel, beberapa hal berikut bisa ditambahkan:

  • validasi jika $_POST kosong,
  • menggunakan parameter bawaan hook WordPress,
  • membuat custom dashboard,
  • mengatur redirect berdasarkan membership atau custom role.

Kesimpulan

Membuat redirect login berdasarkan role di WordPress cukup mudah dilakukan melalui file functions.php.

Dengan pengaturan ini, pengalaman pengguna menjadi lebih rapi dan profesional, terutama untuk website dengan banyak user seperti portal berita atau website multi-author.

Baca Juga:

Selain mempermudah navigasi, sistem redirect juga membantu membatasi akses user sesuai kebutuhan website.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Kucatat Kucatat