Pada artikel ini, kita akan membahas sebuah skrip yang telah diujikan dan berhasil diimplementasikan untuk mengarahkan ulang pengguna dengan role “Author” ketika mereka mengunjungi halaman tertentu. Skrip ini dirancang untuk meningkatkan kontrol akses pada situs WordPress yang menggunakan plugin WooCommerce.
Redirect Mengunjungi Halaman Produk WooCommerce
Skrip berikut ini digunakan untuk melakukan redirect bagi pengguna dengan role “Author” saat mereka mencoba mengakses halaman produk WooCommerce:
// Fungsi untuk melakukan redirect halaman produk bagi pengguna dengan role 'Author'
function redirect_author_from_product_page() {
// Mengecek apakah pengguna sudah login
if (is_user_logged_in()) {
// Mendapatkan informasi pengguna yang sedang login
$user = wp_get_current_user();
// Memeriksa apakah pengguna memiliki role 'Author'
if (in_array('author', $user->roles)) {
// Memeriksa apakah ini adalah halaman produk WooCommerce
if (is_product()) {
// URL tujuan redirect
$url = "https://skripsiexpress.com/sys/akses-konten-terbatas/";
// Melakukan redirect
wp_redirect($url);
exit(); // Menghentikan eksekusi skrip setelah redirect
}
}
}
}
// Menambahkan fungsi ke dalam hook 'template_redirect'
add_action('template_redirect', 'redirect_author_from_product_page');
Hasil Pengujian
Skrip ini telah diuji dalam lingkungan WordPress dengan WooCommerce yang terinstal dan berjalan sesuai dengan yang diharapkan. Pengguna dengan role “Author” yang mencoba mengakses halaman produk WooCommerce berhasil diarahkan ulang ke halaman yang telah ditentukan tanpa masalah.
Redirect Role Apasaja Jika Mengunjungi Halaman Tertentu
Sedangkan skrip berikut ini digunakan untuk melakukan redirect bagi pengguna yang bisa di setting untuk role apapun (author bisa, subscriber bisa, admin juga bisa). Script ini cukup sederhana, karena untuk konfigurasi paling banyak dilakukan dengan menggunakan Smart Conditional Logic di plugin WPForm.
// Memastikan skrip hanya dijalankan di front-end
document.addEventListener('DOMContentLoaded', function() {
if (typeof wp === 'undefined' || !document.body.classList.contains('wp-admin')) {
window.location.href = "https://skripsiexpress.com/sys/akses-konten-terbatas/";
}
});
Konfigurasi Smart Conditional Logic
Untuk membuat redirect ini bekerja pada halaman dan role tertentu, Anda harus menggunakan konfigurasi Smart Conditional Logic, yang ada di plugin WPCode. Seperti ini tampilan nya:
Disana, Anda bisa melihat konfigurasi nya tentang:
- Login User= True
- Role= Author. Bisa di ubah sesuai kebutuhan.
- Page URL= Menentukan di halaman mana script ini akan bekerja.
Redirect Non Author
Script yang satu ini, sedikit berbeda, dimana yang dilakukan redirect adalah ‘JIKA’ bukan author. Script ini masih membutuhkan bantuan Conditional Logic dari WPCode, supaya hanya bisa bekerja di halaman tertentu saja.
// Fungsi untuk melakukan redirect berdasarkan role pengguna
function redirect_based_on_role() {
// Mengecek apakah pengguna sudah login
if (is_user_logged_in()) {
// Mendapatkan informasi pengguna yang sedang login
$user = wp_get_current_user();
// Memeriksa apakah pengguna memiliki role 'Author'
if (in_array('author', $user->roles)) {
// Jika role adalah 'author', arahkan ke halaman akses konten terbatas
wp_redirect('https://skripsiexpress.com/sys/akses-konten-terbatas/');
exit();
} else {
// Jika role bukan author, arahkan ke halaman paket
wp_redirect('https://skripsiexpress.com/joki-skripsi/');
exit();
}
} else {
// Jika pengguna tidak login, arahkan ke halaman paket
wp_redirect('https://skripsiexpress.com/joki-skripsi/');
exit();
}
}
// Menambahkan fungsi ke dalam hook 'template_redirect'
add_action('template_redirect', 'redirect_based_on_role');
Konfigurasi Smart Conditional Logic
Penjelasan Kode
Kode ini adalah sebuah fungsi yang digunakan untuk mengarahkan pengguna ke halaman tertentu berdasarkan peran (role) mereka dalam sistem. Berikut adalah penjelasan kode tersebut dalam bahasa yang lebih mudah dipahami:
- Fungsi
redirect_based_on_role()
: Ini adalah fungsi yang dibuat untuk mengarahkan pengguna ke halaman tertentu berdasarkan peran mereka. - Pengecekan Login: Pertama, fungsi ini memeriksa apakah pengguna sudah login atau belum dengan menggunakan fungsi
is_user_logged_in()
. - Mengambil Informasi Pengguna: Jika pengguna sudah login, fungsi akan mendapatkan informasi pengguna yang sedang login melalui
wp_get_current_user()
. - Pengecekan Role: Setelah informasi pengguna didapatkan, fungsi ini memeriksa apakah pengguna memiliki peran ‘Author’ dengan menggunakan
in_array('author', $user->roles)
.- Jika pengguna memiliki peran ‘Author’, mereka akan diarahkan ke halaman akses konten terbatas.
- Jika pengguna tidak memiliki peran ‘Author’, mereka akan diarahkan ke halaman paket.
- Pengguna yang Belum Login: Jika pengguna belum login, mereka langsung diarahkan ke halaman paket.
- Penggunaan
wp_redirect
danexit()
: Fungsiwp_redirect
digunakan untuk mengarahkan pengguna ke URL yang ditentukan, danexit()
digunakan untuk menghentikan eksekusi kode setelah redirect terjadi. - Hook
template_redirect
: Fungsi ini ditambahkan ke dalam hooktemplate_redirect
, yang berarti fungsi ini akan dijalankan pada saat template halaman sedang di-load, sebelum halaman ditampilkan kepada pengguna.
Secara keseluruhan, kode ini memastikan bahwa pengguna diarahkan ke halaman yang tepat berdasarkan apakah mereka login dan peran apa yang mereka miliki dalam sistem.
Penutup
Dengan skrip ini, Anda dapat mengatur akses pengguna berdasarkan peran mereka, menjaga halaman produk WooCommerce Anda hanya diakses oleh pengguna dengan izin yang sesuai. Implementasi ini sangat berguna dalam situasi di mana Anda ingin membatasi akses ke produk tertentu hanya untuk pengguna dengan peran yang lebih tinggi atau memiliki izin tertentu.