You are currently viewing Redirect Base on Role dan Jika Mengunjungi Halaman Tertentu

Redirect Base on Role dan Jika Mengunjungi Halaman Tertentu

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:

Smart Conditional Logic halaman tertentu
Smart Conditional Logic halaman dan role tertentu

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

Smart Conditional Logic
Smart Conditional Logic di WPCode

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:

  1. Fungsi redirect_based_on_role(): Ini adalah fungsi yang dibuat untuk mengarahkan pengguna ke halaman tertentu berdasarkan peran mereka.
  2. Pengecekan Login: Pertama, fungsi ini memeriksa apakah pengguna sudah login atau belum dengan menggunakan fungsi is_user_logged_in().
  3. Mengambil Informasi Pengguna: Jika pengguna sudah login, fungsi akan mendapatkan informasi pengguna yang sedang login melalui wp_get_current_user().
  4. 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.
  5. Pengguna yang Belum Login: Jika pengguna belum login, mereka langsung diarahkan ke halaman paket.
  6. Penggunaan wp_redirect dan exit(): Fungsi wp_redirect digunakan untuk mengarahkan pengguna ke URL yang ditentukan, dan exit() digunakan untuk menghentikan eksekusi kode setelah redirect terjadi.
  7. Hook template_redirect: Fungsi ini ditambahkan ke dalam hook template_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.

Leave a Reply