Mengenal dan menggunakan WooCommerce Session

menggunakan WooCommerce Session

Menggunakan WooCommerce Session dalam pengembangan sebuah website bisa jadi merupakan teknik tingkat lanjut. Seorang pengembang Website atau toko online terkadang membutuhkan tempat penyimpanan sementara data-data dari interaksi dari pengguna. Seperti data-data pengguna yang mungkin berguna untuk meningkatkan pelayanan dan ke-relevansi-an informasi yang akan tersaji. Untuk itu teknik penggunaan Session, local storage, cookie, dan lain-lain kerap menjadi solusi yang cepat.

Namun merupakan hal yang perlu untuk mengenal terlebih dahulu apa dan bagaimana cara kerja dari WC Session ini, serta bagaimana cara penggunaannya dalam penggunaan custom. Simak dan baca artikel ini sampai habis, sehingga dapat menjadi manfaat dan pencerahan bagi kita semua.

1. Pengertian WC Session (WooCommerce Session)

WooCommerce Session adalah sebuah fitur WooCommerce, yang merupakan sebuah plugin e-commerce untuk WordPress, untuk menyimpan data sementara selama sesi browsing pengguna di situs web yang menggunakan plugin tersebut. Data yang tersimpan dalam session ini bisa berupa informasi keranjang belanja, pemberitahuan WooCommerce, atau informasi penting lainnya.

WooCommerce menggunakan cookie dan tabel database untuk menyimpan sesi ini, sebagai solusi alternatif untuk mengatasi masalah sesi PHP yang tidak sebaiknya kita menghidari penggunaannya dalam pengembangan plugin dan tema WordPress untuk beberapa alasan sesuai ketentuan WordPress. Cookie pada WooCommerce adalah “wp_woocommerce_session” yang akan tersimpan di perangkat pengguna dan berfungsi sebagai pengidentifikasi sesi ini. Data WC session ini dapat anda temukan pada tabel database “wp_woocommerce_sessions“.

Cara melihat Cookie WC Session pada Browser

Anda dapat melihat cookie apa saja yang berjalan pada browser anda ketika anda mengunjungi sebuah website. Berikut adalah cara cookie yang berjalan pada google chrome:

  1. Klik titik 3 pada sudut kanan atas google chrome anda, lalu pilih ‘more tools’ > ‘Developer tools’
  2. Pilih tab ‘Application
  3. Pada bagian kiri terdapat daftar ‘Storage‘, lalu pilih Cookies, dan pilih salah satu URL Website nya
  4. Bagian jendela Developer Tools akan menampilkan semua cookie yang berjalan, termasuk wp_woocommerce_session_**
menggunakan WooCommerce Session

2. Cara kerja WC Session

Cara kerja WooCommerce Session adalah sebagai berikut:

  1. Saat anda mengunjungi website yang menggunakan WooCommerce, maka website tersebut akan menyimpan sebuah file cookie pada peramban (browser) di perangkat anda, yang disebut “wp_woocommerce_session
  2. File cookie ini berfungsi untuk mengidentifikasi sesi browsing anda dan menyimpan informasi seperti barang yang anda tambahkan ke keranjang belanja, atau pemberitahuan dari WooCommerce.
  3. Informasi pada file cookie ini juga akan disimpan dalam sebuah tabel database di server website yang bernama “wp_woocommerce_sessions”
  4. Selama sesi browsing, pengembang website dapat menggunakan WooCommerce Session untuk menyimpan dan mengambil data yang perlu untuk meningkatkan pengalaman anda sebagai pengguna.
  5. Setelah sesi browsing selesai, file cookie “wp_woocommerce_session” akan dihapus dari perangkat anda dan data yang disimpan dalam tabel database akan dihapus juga.

Jadi, WooCommerce Session adalah untuk menyimpan data yang penting selama sesi browsing anda dan membuatnya tersedia bagi pengembang website untuk digunakan dalam mengembangkan website e-commerce.

3. Cara menggunakan WC Session sebagai Pengembang Website

Menggunakan WooCommerce Session untuk Guest (User tidak login)

Secara bawaan, WooCommerce Session hanya aktif ketika pengguna sudah login ke situs Anda, atau ketika pengguna melakukan penambahan produk ke dalam keranjang (add to cart). Namun, dengan menambahkan kode beberapa baris kode berikut, Anda dapat mengaktifkan sesi untuk pengguna yang tidak login.

Anda perlu menambahkan beberapa kode berikut ke dalam file functions.php dari tema Anda.

add_action( 'init', 'murdeni_woocommerce_session', 1 );
function murdeni_woocommerce_session() {
    if (is_user_logged_in() || is_admin()) {
        return;
    }

    if (isset(WC()->session)) {
        if (!WC()->session->has_session()) {
            WC()->session->set_customer_session_cookie(true);
        }
    }
}

Menggunakan WooCommerce Session secara custom

Karena cara kerja WC Session sebenarnya hampir sama dengan PHP Session. Alih-alih menggunakan PHP session yang sebenarnya tidak dianjurkan penggunaannya dalam mengembangan tema atau plugin WordPress. WC Session dapat menjadi alternatif yang powerfull dan lebih mudah dalam penggunaannya.

Untuk keperluan pengembangan website atau toko online secara custom, sesuai dengan keinginan dan kebutuhan, adakalanya anda butuh menyimpan berbagai interaksi yang pengguna lakukan selama mengunjungi toko online WooCommerce anda. Seperti menyimpan data isian formulir secara sementara sebelum anda memproses data tersebut atau menyimpannya secara permanen di database.

Menyimpan, mengambil, mengubah, dan menghapus data sesi custom

Penggunaan WooCommerce Session cukup mudah. Perhatikan baris-baris kode berikut:

// Menambah data sesi baru.
WC()->session->set('{nama_variabel}', {value});

// Mengambil value data sesi
WC()->session->get('{nama_variabel}');

// Mengganti / mengosongkan value
WC()->session->set( '{nama_variabel}', null );

// Menghapus data sesi
WC()->session->__unset( 'wc_notices' );

Sebagai contoh, untuk menambahkan data sesi custom baru dengan contoh ‘data_kodepos‘ yang mungkin dapat anda tangkap dari isian formulir tertentu. Untuk menyimpan data_kodepos ini anda cukup menuliskan

function simpan_data_kodepos($value) {
   WC->session->set( 'data_kodepos', $value );
}

function ambil_data_kodepos($value) {
   return WC->session->get( 'data_kodepos' );
}

function destroy_data_kodepos($value) {
   WC()->session->__unset( 'data_kodepos' );
}

Dalam penggunaan WC session, anda dapat menggunakan typedata value string, array, object, dan number.

Bermain dengan Expiry time WooCommerce Session

Dalam penggunaan WC session, anda harus memperhatikan Expiry time atau lama waktu atau umur penyimpanan cookie WC Session akan tersimpan pada browser/perangkat pengguna. Secara default lama penyimpanan WC Session adalah selama 48 Jam. Anda dapat membuat function code baru pada functions.php tema anda menggunakan 2 hook wc_session_expiring dan wc_session_expiration.

Filter hook wc_session_expiring adalah sebuah WooCommerce hook yang digunakan untuk menentukan waktu kadaluarsa WC Session. Hook ini berjalan ketika sesi akan kedaluwarsa dan digunakan untuk menentukan berapa lama sesi akan berlangsung sebelum kedaluwarsa.

Sedangkan wc_session_expiration adalah filter yang digunakan dalam WooCommerce untuk menentukan waktu kedaluwarsa sesi. Filter ini dipanggil ketika sesi akan kedaluwarsa dan digunakan untuk menentukan berapa lama sesi akan berlangsung sebelum kedaluwarsa.

Anda dapat menggunakan filter wc_session_expiring dan wc_session_expiration untuk mengubah waktu kadaluarsa sesi default menjadi waktu yang lebih sesuai dengan kebutuhan Anda. Anda dapat menambahkan kode seperti yang saya berikan sebelumnya untuk mengubah waktu kadaluarsa sesi menjadi 30 hari, atau mengubah jumlah hari sesuai kebutuhan Anda.

add_filter( 'wc_session_expiring', 'murdeni_change_session_expiring' );
add_filter( 'wc_session_expiration', 'murdeni_change_session_expiration' );
function murdeni_change_session_expiring( $seconds ) {
    return ( 60 * 60 * 24 * 30 ); // 30 hari
}
function murdeni_change_session_expiration( $seconds ) {
    return ( 60 * 60 * 24 * 30 ); // 30 hari
}

Kode tersebut akan mengubah waktu kadaluarsa sesi dari default (48 jam) menjadi 30 hari. Anda dapat mengubah jumlah hari sesuai kebutuhan Anda dengan mengubah angka dalam kurung.

Kesimpulan

WooCommerce Session adalah fitur yang digunakan untuk menyimpan data keranjang belanja dan status checkout untuk pengguna yang tidak login. Secara default, sesi hanya aktif ketika pengguna sudah login ke situs Anda, namun dengan menambahkan kode ke file functions.php dari tema Anda, Anda dapat mengaktifkan sesi untuk tamu yang tidak login.

Untuk mengubah waktu kadaluarsa sesi, Anda dapat menambahkan kode ke file functions.php dari tema Anda yang menggunakan filter wc_session_expiring atau wc_session_expiration. Dengan mengubah waktu kadaluarsa sesi, Anda dapat menyesuaikan jangka waktu yang diinginkan untuk sesi tamu yang tidak login. Jangan lupa pastikan anda menggunakan WC Session dengan bijak, agar sesuai dengan ketentuan-ketentuan yang berlaku.

Tinggalkan Balasan

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